文档详情

DSP第08章 中断系统及其应用+页码 (1)

野鹰
实名认证
店铺
PDF
1.28MB
约54页
文档ID:2966933
DSP第08章 中断系统及其应用+页码 (1)_第1页
1/54

第8章中断系统及应用第章张云洲2010.11.221章节结构81中断概述及中断源8.1 中断概述及中断源82PIE中断扩展8.2 PIE中断扩展83中断向量8.3 中断向量84可屏蔽中断处理8.4 可屏蔽中断处理85定时器中断应用举例8.5 定时器中断应用举例28.1 中断概述及中断源¾ C28x内核共有16个中断线,包括2个不可屏蔽中断(RESET和NMI)和14个可屏蔽中断和)和个3122F281X中断分配¾在F281X处理器中,定时器1和定时器2预留给实时操作系统使用,其中断分配给INT14和INT13¾两个可屏蔽中断RESET和NMI各自占用独立的专用中断,同时NMI中断也可以选择同定时器1复用INT13复用¾其余12个可屏蔽中断直接连接在外设中断扩展模块提供给外部中断和处理器内部的外设单模块,提供给外部中断和处理器内部的外设单元使用4122F2810和F2812的中断源和复用情况¾所有16个中断线连接到“中线连接到“中断向量表”上¾中断向量表中中断向量表中每个中断都对应一个32位的应一个位的中断入口地址¾应用程序利用应用程序利用这些入口地址可以跳转到相转到应的中断服务程序。

51248.2 PIE 中断扩展¾ C281x处理器内部集成了多种外设,每个外设处理器内部集成了多种外设,每个外设都会产生一个或者多个外设级中断¾ CPU没有能力处理所有CPU级的中断请求,因此C281x CPU除了支持16个CPU级的中断外,还有一个中断扩展控制器来仲裁外设中断还有个中断扩展控制器来仲裁外设中断¾中断仲裁机制根据PIE向量表存放的每个中断服中断仲存每个中断务程序的地址确定中断服务程序的位置6123处理器中断扩展模块结构7123PIE中断扩展原理8124通过PIE中断扩展单元连接中断线9124F2812的3级中断机制108.2.1 外设级中断¾外设产生中断时,中断标志寄存器(IF)相应的位将被置1,如果中断使能寄存器(IE)中相应的使能位也被置位,则外设产生的中断将向PIE控制器发出中断申请¾如果外设级中断没有被使能,中断标志寄存器中中的标志位将保持不变,除非采用软件清除¾如果中断产生后才被使能,且中断标志位没有如果中断产生后才被使能,且中断标志位没有清除,同样会向PIE申请中断¾需要注意的是外设寄存器的中断标志必须采用需要注意的是外设寄存器的中断标志必须采用软件进行清除。

11125中断标志位的手动清除¾例:清除T1PINT标志位的语句例:清除标志位的语句EvaRegs.EVAIFRA.bit.T1PINT=1; 备注:在2812的编程中,很多时候是通过写1来对该位进行清除的写0是无效的,只有写1才能将该标志位复位将该标志位复位12总结:外设级需手动之处¾外设中断的使能,需要将与该中断相关的外设外设中断的使能,需要将与该中断相关的外设寄存中的中断使能位置1;¾外设中断的屏蔽,需要将与该中断相关的外设寄存中的中断使能位置0;¾外设中断标志位的清除需要将与该中断相关外设中断标志位的清除,需要将与该中断相关的外设寄存中的中断标志位置1外寄存中中断138.2.2 PIE 级中断¾ PIE模块将96个外设或引脚的中断分为12组,每一组有一个中断信号向CPU申请中断例如,PIE第1组复用CPU的中断1(INT1) PIE第12组复用CPU的中断的中断,第组复用的中断12(INT12)¾其余的中断直接连接到CPU中断上且不复用¾对于不复用的中断,PIE直接将这些中断连接到CPU对于不复用的中断,直接将这些中断连接到对于复用中断,在PIE模块内每组中断有相应的中断标志位(PIEIFR )和使能位(PIEIER )志位x.y和使能位x.y。

¾每组PIE中断(INT1到INT12)有响应标志位(PIEACK)14125PIEACK¾问题:PIE模块是多路复用的,那么每一组同一时间应该只能是个中断被响应PIE是怎么做到的呢?该只能是一个中断被响应,是怎么做到的呢?¾机制:PIE除了每组具有PIEIERx,PIEIFRx寄存器之外还有PIEACK寄存器其低12位分别对应INT1 INT12,还有寄存器,其低位分别对应-,高位保留¾举例:假如T1的周期中断被响应了则PIEACK 2位(对举例:假如的周期中断被响应了,则.位对应于INT2)就被置位,并一直保持直到手动清除当CPU在响应T1PNT的时候,PIEACK.2一直是1,这时如果PIE2组内发生其他的外设中断,则暂时不会被PIE响应送给CPU,必须等到PIEACK.2被复位之后,如果该中断请求还存在那么由PIE将中断请求送至CPU中断请求还存在,那么由将中断请求送至¾结论:每个外设中断被响应之后,一定要对PIEACK的相关位进行手动服务否则同组内的其他中断都不会相关位进行手动服务,否则同组内的其他中断都不会被响应15PIEIER&PIEIFR的数据结构16典型的PIEICPU响应流程图¾一旦PIE控制器有中断产生相应的中断产生,相应的中断标志位(PIEIFRx.y)将被置1。

¾若相应的PIE中断使能位被置1,PIE将检查相应PIEACKx确定CPU是否准备响应该中断¾如果相应PIEACKx如果相应被清零,PIE向CPU申请中断如被¾如果PIEACKx被置1,PIE将等待直到相应的IEACKx被清零才向CPU申请中断17125总结:PIE级需要手动之处¾ PIE中断的使能需要使能某个外设中断,就得中断的使能需要使能某个外设中断,就得将其相应组的使能寄存器PIEIERx的相应位进行置位;¾ PIE中断的屏蔽这是和使能相反的操作;¾ PIE应答寄存器PIEACK相关位的清除以使得应答寄存器相关位的清除,以使得CPU能够响应同组的其他中断够应其中断18比较:PIE和外设级¾外设中断的中断标志位是需要手工清除的,而外设中断的中断标志位是需要手工清除的,而PIE级的中断标志位都是自动置位或者清除的¾ PIE多了一个PIEACK寄存器,相当于一个同行的关卡,同一时间只能放一个中断过去,只有等到这个中断被响应给关卡一个放行命令之等到这个中断被响应,给关卡个放行命令之后,才能让同组的下一个中断过去,被CPU响应198.2.3 CPU 级中断¾一旦向CPU申请中断,CPU级中断标志(IFR)位将被置1中断标志位锁存到标志寄存器后只有CPU中断使能。

中断标志位锁存到标志寄存器后,只有中断使能寄存器(IER)或中断调试使能寄存器(DBGIER)相应的使能位和全局中断屏蔽位(INTM)被使能时才会响应中断能位和全局中断屏蔽位 被使能时才会响应中断¾ CPU级使能可屏蔽中断采用CPU中断使能寄存器(IER)还是中断调试使能寄存器(DBGIER)和中断处理方式有关是中断调试使能寄存器(G和中断处理方式有关标准处理模式下,不使用中断调试使能寄存器¾只有当F281x使用适时调试(Real-time Debug)且CPU被停止(Halt)时,才使用中断调试使能寄存器(DBGIER),此时INTM不起作用如果F281x使用适时调试(Real-iDb)CPU仍然正常运行则采用标准的中断time De ug)而仍然正常运行,则采用标准的中断处理201268.3 中断向量8.3.1 中断向量的分配¾ PIE 支持的96 个中断,每个中断都有自己的中断向量存放在RAM 当中,构成整个系统的中断向量表,用户可以根据需要适当的对中断向量表进行调整¾在响应中断时,CPU 将自动的从中断向量表中获取相中,中中应的中断向量CPU 获取中断向量和保存重要的寄存器需要花费9 个CPU 时钟周期。

因此,CPU 能够快速个钟,的响应中断¾此外,中断的极性可以通过硬件和软件进行控制,每此外,中断的极性可以通过硬件和软件进行控制,每一个中断也可以在PIE 模块内控制中断的使能或禁止21126-127表8.1 PIE中断分组情况221268.3.2 中断向量的映射方式¾ F281X复用中断模式在使用中断过程中多个中断源共用一条中断线,每一条中断线连接的中断向量都在中断向量表中占32 位地址空间,该存储空间存放中断服务程序的入口地址¾传统做法:中断服务程序处理所有输入的中断请求,这要求编程人员在服务程序入口处采用软件方这要求编程人员在服务程序入处采用软件方法将这些中断分离开,以便能够正确的处理这种方法势必会影响中断的响应速度,在实时这种方法势必会影响中断的响应速度,在实时性要求高的应用中不能使用23127F281X的PIE模块¾在F281x中采用外设中断扩展模块(Peripheral Interrupt Expansion—PIE)解决上述问题外设中断扩展模块实质上是将中断向量表范围扩展,使得96个可能产生的中断都有各自独立的32位入口地址这样在扩展模块作用下就会加快中断的响应时间。

¾为使用PIE,用户必须重新定位中断向量表到0x 00 0D00地址,该地址是一个可变地址空间,因此在使用地址,该地址是个可变地址空间,因此在使用前必须初始化¾ C28xx器件中中断向量表可以映射到5个不同的存储器件中,中断向量表可以映射到个不同的存储空间在实用中,F28xx只使用PIE中断向量表映射24127中断向量映射的位/信号控制¾ WMAP:该位在状态寄存器1(ST1)的位3,复位后值为1可以通过改变ST1的值或使用SETC/CLRC VMAP指令改变WMAP的值过改变的值或使用 VMAP指令改变,正常操作该位置1¾ M0M1MAP:该位在状态寄存器1(ST1)的位11,复位后为1可通寄存(),复过改变ST1的值或用SETC/CLRC M0M1MAP指令改变M0M1MAP的值,正常操作该位置1M0M1MAP = 0为厂家测试使用¾ MP/MC该位在XINTCNF2寄存器的位8对于有外部接(:该位在口(XINTF)的器件(如F2812),复位时XMP/MC 引脚上的值为该寄存器位的值对于没有外部接口的器件(如F2810),XMP/MC 存值于有外部件(),内部拉低器件复位后,可以通过调整XINTCNF2寄存器(地址:0x0000 0B34)改变该位的值。

¾ ENPIE该位在PIECTRL寄存器的位0复位的默认值为0(PIE被: 该位在,(被屏蔽)器件复位后,可通过调整PIECTRL寄存器(地址:0x0000 0CE0)改变该位的值25127中断向量表映射配置表¾ M1和M0向量表映射保留,只供TI测试使用当用其他向量表映射时,M0和M1存储器作为RAM使用,可以随意使用没有任何限制随意使用没有任何限制26127、128处理器复位后的中断向量分配¾复位程序引导(boot)完成后,用户需要重新初始化PIE中断向量表应用程序使能PIE中断向量表中断中断向量表,应用程序使能中断向量表,中断将从PIE向量表中获取向量当器件复位时,复位向量总是从上表中的向量表中获取复位完成后PIE向量总是从上表中的向量表中获取复位完成后,向量表将被屏蔽27128PIE中断向量映射关系28129中断向量重新分配方法29128PIE中断向量表30129补充:F2812优先级F2812中断硬件上优先级是做好的,但软件上有办法来设置优先级步骤:1加载相应h和到应用程序.加载相应.和.c到应用程序,DSP281x SWPrioritizedDefaultIsr.c _DSP281x_SWPrioritizedIsrLevels.h2.在DSP281x_SWPrioritizedI。

下载提示
相似文档
正为您匹配相似的精品文档