第4.4节 外设中断扩展(PIE)
- 格式:pdf
- 大小:1.58 MB
- 文档页数:17
“简简单单DSP”系列学习活动第四期中断结构学习简简单单DSP, 学习活动1、外围帧寄存器2812将外围帧寄存器分为3个空间,分别是:外围帧0:直接映射到CPU存储器总线外围帧1:映射到32位外围总线外围帧2:映射到16位外围总线,只允许16操作这里所说的外围帧寄存器就是外设寄存器,如ADC寄存器。
映射就是分配地址,外围一个地址,CPU一个地址,外围地址映射到CPU地址上。
有的寄存器受保护,对其进行操作的时候好,要屏蔽保护(EALLOW),操作完在开启保护(EDIS).2、外围中断扩展PIE外设寄存器中的中断标志位必须由软件清0,才能允许下一次中断进入,而且每次中断后要把PIEACKx清0,只有PIEACKx=0,才可以把中断送到CPU级中断分为3级:a、外设级b、PIE级c、CPU级下面分别介绍这个不同的中断级以及这3级的联系a、外设级一旦外设产生了中断,对应的外设中断标志寄存器中的中断标志位IF就会置位,如果此时对应的中断使能位设为1,那么外设中断信号可以送到PIE控制器,如果外设的中断被禁止输入进来,那么外设中断标志位保持为1,直到软件清0。
外设级和PIE级的联系就在外设中断使能位那了,实际外设的中断使能位使能的就是允许外设中断进入PIE级,相当于PIE级的中断源,就像外设的中断源一样,有了中断事件,外设中断标志位就会置位,这里也是外设级就是PIE级得中断事件,有了外设级的中断标志位置位,中断使能位使能,那么PIE级的中断标志位才会置1.注意的是外设中断标志寄存器中的中断标志位必须由软件清0,才能允许下一次中断进入。
b、PIE级PIE级有两中寄存器,一种是中断标志寄存器PIEIFRx,上面已经说过他跟外设级的联系,另一个是中断使能寄存器PIEIERx,这个跟外设级的中断使能寄存器功能差不多,实现的是和CPU级的联系.PIE级还有两个寄存器,一个是控制寄存器PIECTRL,这个是控制整个PIE级的,还有一个应答寄存器PIEACK,在PIEIFRx置位,PIEIERx使能还要PIEACKx清0才能把中断送到CPU级。
DSP中断向量表和中断子向量表DSP中断向量表和中断子向量表类别:单片机/DSP本案例在介绍数字PID控制器和模糊Pl控制器的DSP应用程序设计的同时,还介绍TI公司C2000系列DSP芯片开发时,中断向量表和中断子向量表的编写和配置方法。
一个实用DSP程序除包括主程序和系统初始化程序以及存储器配置文件之外,还需要有中断向量表和中断子向量表程序,对于一个DSP控制器来说,中断的使用和管理是不可缺少的。
在系统中,控制器的作用就是控制整个系统实时、有序地按照程序的要求运行,而DSP只有一个CPU,所以只有L个进程,当外部设各要求DSP控制时,就采用中断的方式,DSP根据中断的优先级,通过响应中断并执行中断服务子程序(ISR)来对外部设各进行控制。
一个正确的中断向量表和中断子向量表程序能够使系统正常运行,并能保证在系统不正常时自动恢复到程序初始化的状态,防止系统崩溃,提高工业控制的鲁棒性。
DSP LF2407有两级中断,第一级中断是CPU中断,共6个;第二级中断是外围设各中断,共46个。
由外设中断扩展控制器(PIE)和中断子向量表把外围设备中断映射到CPU中断,然后等待CPU的响应。
此外CPU中断向量表还包括19个软件中断和硬件复位中断(Reset)以及一个不可屏蔽申断(NMI)。
这种两级中断是采用集中化的中断扩展设计方法,特别适合有大量外设中断的工业控制系统。
以下就是采用通用定时器GPTI的比较操作来产生中断时,LF2407的中断向量表和申断子向量表程序。
当需要采用其他中断时,可以直接在此程序中根据需要修改。
该程序对LF2407来说是通用的,只是发生中断时,CPU要跳转的地址不一样而已。
对于一个实际的DSP系统来说,系统的中断管理是不可缺少的,因为目前任何DSP实时系统都具有中断,中断是DSP系统和外部世界发生实时联系的一个重要手段。
作为TI公司的C2000系列DSP,它是偏向于控制的DSP 芯片,因此它的中断管理更丰富和先进,读者理解起来也较困难。
外部中断工作原理外部中断是计算机处理器在执行当前指令时,突然发生的来自外部设备或其他处理器的中断请求。
当中断请求发生时,处理器立即停止当前任务的执行,保存当前的执行状态,并转去执行中断服务程序。
中断服务程序完成后,处理器会返回到之前被中断的任务继续执行。
外部中断的工作原理主要包括以下几个步骤:1. 中断请求:外部设备(如键盘、鼠标、打印机等)通过与处理器连接的中断请求线发出中断请求信号。
这个中断请求信号被称为硬件中断。
2. 中断识别:处理器通过中断控制器或中断控制单元来识别并区分不同的中断请求。
中断控制器负责对中断源进行编码,并将中断信号传递给处理器。
3. 中断响应:处理器接收到中断信号后,立即停止当前任务的执行,并保存相关的执行状态。
这包括保存指令执行的位置、寄存器的内容以及当前的运行环境。
处理器将这些信息保存在特定的寄存器或内存区域中。
4. 中断处理程序:处理器会根据中断信号的不同,转向相应的中断服务程序。
中断服务程序是由操作系统或应用程序编写的一段代码,用于处理特定的中断请求。
它会执行一系列的操作来满足外部设备发出的请求,并恢复被中断的任务的执行环境。
5. 中断返回:当中断服务程序执行完毕后,处理器会根据保存的执行状态信息恢复被中断的任务的执行。
处理器将之前保存的指令执行位置、寄存器内容以及运行环境恢复到中断发生时的状态。
被中断的任务会继续执行,从中断点之后的指令开始执行。
处理器完成中断处理后,会继续正常执行后续的指令。
通过外部中断的工作原理,计算机可以及时响应外部设备的请求,并在尽可能短的时间内处理相应的任务。
这使得计算机能够快速地与外部设备进行交互,提高了系统的实时性和响应能力。
第一章绪论1 什么是DSP?答:DSP是数字信号处理器(Digital Signal Processor ),是特别适合于实现各种数字信号处理运算的微处理器。
主要应用场合:(1)数字信号处理运算,(2)通信,(3)网络控制及传输设备,(4)语音处理,(5)电机和机器人控制,(6)激光打印机、扫描仪和复印机,(7)自动测试诊断设备及智能仪器仪表、虚拟仪器,(8)图像处理,(9)军事,(10)自动控制等。
2. DSP芯片的特点有哪些?答:(1) 采用改进的哈佛结构;(2) 采用流水线技术;(4) 配有专用的硬件乘法-累加器;(5) 具有特殊的DSP指令;(6) 快速的指令周期;(7) 硬件配置强;(8).支持多处理器结构;(9) 省电管理和低功耗。
3. DSP采用改进的哈佛总线结构,画出改进的哈佛总线结构示意图。
答:改进的哈佛结构如下:4. DSP中由哪些地址和数据总线组成多总线结构?答:存储器接口有三条地址总线:(1) PAB(Program Address Bus (22))程序地址总线,用来传送来自程序空间的读写地址。
PAB是一个22位的总线。
(2) DRAB(Data-read Address Bus (32))数据读地址总线。
32位的DRAB用来传送来自数据空间的读地址。
(3) DWAB(Data-write Address Bus (32))数据写地址总线。
32位的DWAB用来传送来自数据空间的写地址。
存储器接口还有三条数据总线:(1) PRDB(Program-read Data Bus (32))程序读数据总线,PRDB 在读取程序空间时用来传送指令或数据。
(2) DRDB(Data-read Data Bus (32) )数据读数据总线。
32位的DRDB在读取数据空间时用来传送数据。
(3) DWDB(Data/Program-write Data Bus (32))数据/程序写数据总线。
2812中断系统中断:是在硬件和软件驱动事件,它使得CPU 暂停当前的主程序,并转而去执行一个中断服务子程序。
合理的中断安排可以提高事件的执行效率,流程图:三级中断体系外设中断,CPU 中断,PIE 中断内部中断源XINT 1 XINT 2 外部中断源 PDPINTRS ⬚ XNMI _XINT 13 外设级 PIE 级 CPU 级 CPU 定时器中断TINT2TINT1TINT0片内外设中断 EV,ADC,SCI,SPI,CAN 等 PIE 外设中断扩展 INT 14 INT 1 ~INT 12RS2812 INT 13NMI触发方式:1.在软件中写指令,例如:INTR,OR,IFR或者TRAP指令2.硬件触发,来自片内外设或者外围设备的中断信号(引脚XNMI_XINT13产生NMI硬件中断)。
无论是硬件触发还是软件触发,都可以归结为可屏蔽中断和不可屏蔽中断二.执行过程如下外设或者其他方式向CPU提出中断请求如果是可屏蔽中断,CPU检查这个中断使能情况,再决定是否响应中断准备执行中断服务子程序并保存寄存器的值执行中断服务子程序执行完后,回到主程序,IER 寄存器使能禁止中断。
IFR 寄存器作为各中断请求标志位。
当某个可屏蔽中断提出请求时,将其在中断标志位寄存器IFR 中断标志位置位。
接这CPU 检测IER 中该中断是否使能。
如果使能,则CPU 接着检查全局中断INTM (状态寄存器ST1的位0)是否使能。
如果使能,则CPU 执行中断后,IFR 中断标志位被自动请0,目的是使CPU 能够去响应其他中断或者该中断下一次中断。
三.CPU 中断向量和优先级2812共有32个CPU 中断,其中每一个中断都是一个32位的中断向量,也就是2个16位的寄存器,存储的是相应中断服务子程序的入口地址,只是用低22为。
优先级和地址可以查表获得。
在所有中断中,使用最多的还是INT1 ~INT12. 说明:当中断A 和中断B 同时发出时,A 的优先级高于B ,先执行A ,同时清除A 的中断标志位,A 执行完后。
电气信息类专业课程DSP原理及应用——跟我动手学TMS320F2833xDSP原理及应用第4.4节外设中断扩展(PIE)外设中断扩展模块(PIE)通过复用少量的中断输入来扩展大量的中断源。
•PIE模块支持96个独立的中断源,这些中断源被分成8组。
每组中断都连接至12个CPU核中断(INT1~INT12)中的一个;•96个中断都对应有各自的中断向量表,这些向量表存储在特定的RAM模块并且可以根据需要修改,•CPU响应中断时,可自动获取相应的中断向量。
•中断的优先级可以通过硬件和软件来控制•在PIE模块中,每个中断都可以独立的使能和禁止•28x系列CPU支持一个不可屏蔽中断(NMI)和16个具有优先级别的可屏蔽的CPU级中断请求(INT1~INT14,RTOSINT及•CPU无法在CPU级处理这么多的外设中断请求,因此用PIE控制器来仲裁来自外设和外部管脚的中断请求3~7利用PIE模块复用中断PIE中断:外设级、PIE级、CPU级外设级:•外设中,触发中断的事件发生时,会将寄存器中相应的中断标志位(IF)置位。
•在外设级,如果该中断的使能位(IE)被置位,则外设会向PIE模块产生中断请求;•如果该中断没有被使能,则IF将保持置位状态直至被软件清零;如果该中断在稍后被使能并且IF处于置位状态,外设仍然向PIE模块产生中断请求。
•中断标志位需要人为的清零。
PIE中断:外设级、PIE级、CPU级PIE级:•PIE模块使来自外设或外部管脚的8个中断复用一个CPU级中断信号。
PIE模块将所有的中断源分成12组:PIE分组1~12,在同一PIE分组的中断将共用一个CPU中断。
•对于共用同一个CPU中断的中断组,在PIE模块都有一个相应的标志寄存器PIEIFRx和使能寄存器PIEIERx(x为1~12),这些寄存器的每一位都对应着一个中断分组中的某一个中断。
•每一个中断分组都对应着一个中断应答位PIEACKx(x=1~12)•一旦外设向PIE发送了中断请求,PIE相应的中断标志位(PIEIFRx.y)就会被置位;如果PIE中断使能位(PIEIERx.y)也被置位,则PIE就会检查相应的PIEACKx位来判断CPU是否准备好响应该组的中断。
第一章1. 什么是可编程DSP芯片?它有什么特点?答:可编程DSP芯片即通用数字信号处理器,其有完整的指令系统,可通过编程来实现各种数字信号处理功能,易于软件更新与系统升级。
主要特点有:(1)快速的指令周期,支持在一个指令周期内可完成一次乘法和一次加法运算;(2)采用改进的哈佛总线结构,可以同时完成获取指令和数据读取操作;(3)片内具有快速RAM,可通过独立的总线对多个存储器块并行访问;(4)硬件支持低开销或无开销的循环及跳转指令,使得FFT、卷积等运算速度大大提高;(5)快速的中断处理和硬件I/O支持,保证了实时响应能力;(6)专用寻址单元,具有在单周期内操作的多个硬件地址产生器;(7)采用流水线操作,使取指、译码、取操作数和执行指令等操作可以重叠执行;(8)片内集成了丰富的外设模块,简化了系统硬件设计。
2. 什么是定点DSP芯片和浮点DSP芯片?各有什么特点?答:定点DSP芯片:数据以定点格式工作的DSP芯片,DSP里面运算的数据的小数点位置是固定的。
主频高、速度快、成本低、功耗小,计算复杂度不高。
浮点DSP芯片:数据以浮点格式工作的DSP芯片,DSP里面运算的数据的小数点位置是浮动的。
处理速度比定点DSP低,成本和功耗比定点DSP高,其动态范围和处理精度远高于定点DSP芯片,运算复杂度高,精度要求高。
3. 简述TMS320C2000、TMS320C5000、TMS320C6000的特点和应用领域。
答:(1) TMS320C2000 系列面向控制应用领域进行了优化,基于32位处理器内核,主频300MHz,具有强大运算和控制功能,片内集成了丰富的控制外设模块,便于构成高效能的工业测控系统,片内集成了Flash存储器,简化了用户硬件电路;集成了异步串行通信接口,易于通过标准通信接口实现与计算机或其他微处理器间的远距离通信。
主要用于大存储设备管理、高效能的实时控制等场合,如电机驱动控制、大容量开关电源、医疗仪器等。
电气信息类专业课程DSP原理及应用
——跟我动手学TMS320F2833x
DSP原理及应用
第4.4节
外设中断扩展(PIE)
外设中断扩展模块(PIE)通过复用少量的中断输入来扩展大量的中断源。
•PIE模块支持96个独立的中断源,这些中断源被分成8组。
每组中断都连接至12个CPU核中断(INT1~INT12)中的一个;•96个中断都对应有各自的中断向量表,这些向量表存储在特定的RAM模块并且可以根据需要修改,
•CPU响应中断时,可自动获取相应的中断向量。
•中断的优先级可以通过硬件和软件来控制
•在PIE模块中,每个中断都可以独立的使能和禁止
•28x系列CPU支持一个不可屏蔽中断(NMI)和16个具
有优先级别的可屏蔽的
CPU级中断请求(INT1~
INT14,RTOSINT及
•CPU无法在CPU级处理这么多的外设中断请求,因此
用PIE控制器来仲裁来自
外设和外部管脚的中断请
求
3~7
利用PIE模块复用中断
PIE中断:外设级、PIE级、CPU级
外设级:
•外设中,触发中断的事件发生时,会将寄存器中相应的中断标志位(IF)置位。
•在外设级,如果该中断的使能位(IE)被置位,则外设会向PIE模块产生中断请求;
•如果该中断没有被使能,则IF将保持置位状态直至被软件清零;如果该中断在稍后被使能并且IF处于置位状态,外设仍然向PIE模块产生中断请求。
•中断标志位需要人为的清零。
PIE中断:外设级、PIE级、CPU级
PIE级:
•PIE模块使来自外设或外部管脚的8个中断复用一个CPU级中断信号。
PIE模块将所有的中断源分成12组:PIE分组1~12,在同一PIE分组的中断将共用一个CPU中断。
•对于共用同一个CPU中断的中断组,在PIE模块都有一个相应的标志寄存器PIEIFRx和使能寄存器PIEIERx(x为1~12),这些寄存器的每一位都对应着一个中断分组中的某一个中断。
•每一个中断分组都对应着一个中断应答位PIEACKx(x=1~12)•一旦外设向PIE发送了中断请求,PIE相应的中断标志位(PIEIFRx.y)就会被置位;如果PIE中断使能位(PIEIERx.y)也被置位,则PIE就会检查相应的PIEACKx位来判断CPU是否准备好响应该组的中断。
•如果PIEACKx被置位,则PIE将等待直到该位被清零,然后发送中断请求至INTx。
PIE中断:外设级、PIE级、CPU级
CPU级:
•中断请求信号送至CPU后,与INTx相对应的CPU级中断标志位将被置位,该标志位锁存至IFR。
•如果CPU中断使能寄存器(IER)、调试中断使能寄存器(DBGIER)或全局中断屏蔽寄存器(INTM)的相应位被使能,那么CPU将会响应该中断。
典型的PIE/CPU中断响应过程•CPU响应中断后,IERx=0
,INTM=1。
•中断服务程序执行完毕后,应答PIEACKx。
•中断返回时,IERx、INTM 会自动回至原始值。
CPU级中断使能条件
中断处理过程中断使能条件
标准处理过程INTM=0且IER中相应位为1 DSP处于实时运行且暂停IER和DBGIER中的相应位均为1
CPU响应外设复用中断请求流程
1.PIE控制寄存器(PIECTRL)
PIEVECT ENPIE
•PIEVECT:指明PIE提供的中断向量在PIE中断向量表中的地址。
•使能或禁止从PIE向量表中获取中断向量。
2.PIE中断应答寄存器(PIEACK)
Reserved PIEACK
•PIEACK:当相应位读取值为0时,表示该位所对应的PIE分组可以向CPU发送中断请求
•PIEACK:当相应位读取值为1时,表明已有一个来自该位所对应的PIE分组中断请求信号被送至CPU,该PIE分组其它中断将暂时被锁定。
向相应位写1,则会将该位清除。
3.PIE中断标志寄存器(PIEIFRx,x=1~12)
INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1•表明当前是否存在有效中断。
当一个中断有效时,相应的中断标志位将
被置位。
•当中断被服务或向该位写0时,该标志位将被清除。
4.PIE中断使能寄存器(PIEIERx,x=1~12)
INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1
•可以独立的使能每一PIE分组中的中断。
INTx指CPU中断INT1~INT12。
•将使能位置1,就使能了对相应中断的响应,置0则禁止响应相应的中断。
5.CPU中断标志寄存器(IFR)
RTOSINT DLOGINT INT14INT13INT12INT11INT10INT9 INT8INT7INT6INT5INT4INT3INT2INT1
•用来识别和清除挂起的中断标志位。
•当一可屏蔽中断发出中断请求后,相应外设控制寄存器的标志位会被置1;如果相应的屏蔽位也设置为1,则这个中断请求就会送至CPU,并将IFR 中的相应标志位置位。
•为了清除CPU IFR标志位,用户需要向IFR寄存器相应位写0。
6. CPU中断使能寄存器(IER)
RTOSINT DLOGINT INT14INT13INT12INT11INT10INT9 INT8INT7INT6INT5INT4INT3INT2INT1•使能或禁止相应的中断
7. CPU调试中断使能寄存器(DBGIER)
RTOSINT DLOGINT INT14INT13INT12INT11INT10INT9 INT8INT7INT6INT5INT4INT3INT2INT1
•当CPU在实时仿真模式下处于暂停状态时,才会用到DBGIER。
•CPU在实时仿真模式下暂停时,只有在IER中使能的实时中断才能进入中断服务程序(DBGIER与IER中的相应位需同时使能)。
•若CPU在实时仿真模式下处于运行状态,DBGIER被忽略。
8. 外部中断控制寄存器(XINTnCR,n=1~7)
Reserved Polarity Reserved Enable
•Polarity:用来确定外部引脚的上升沿或下降沿信号产生中断•Enable:该位用来使能或禁止外部中断XINTn
9. 外部不可屏蔽中断控制寄存器(XNMICR)
Reserved Polarity Select Enable
•Polarity:用来确定外部引脚的上升沿或下降沿信号产生中断
•Select:INT13中断源选择(定时器1或XNMI_XINT13)
•Enable:该位用来使能或禁止外部中断XINTn。
10. 外部中断1、2和不可屏蔽中断计数器(XINT1CTR、XINT2CTR、XNMICTR)
INTCTR[15-0]
•计数器的值在检测到中断触发边沿时复位至0,可以用来记录中断发生的时间。