DSP_28335的中断PIE系统的个人理解

DSP_TMS320F28335学习了很长时间,也用了很多次。每次用完过了一段时间就忘了,每次都有重复看,后来发现看完写点东西可以加深记忆,以及后续忘了之后再看。

        DSP的中断系统是编程时最常用的,初学以及学完忘了之后,再回去看,往往很难理解。个人觉的主要从其结构理解会更容易一些。

     1.总体结构

  首先DSP28335支持1个不屏蔽中断(NMI)和16个具有优先级的可屏蔽中断。什么叫做不可屏蔽中断NMI呢?主要是指不需要通过IFR、IER、INTM来控制,只要满足中断条件需要就可以向CPU发送中断请求,其中断级别很高为3(复位为1,EMUINT-在线仿真为2);也就是说只要在正常情况下只要有满足中断条件,CPU就会保存当前的工作,率先来执行中断。当然这个中断是怎么实现的呢?主要是通过控制外部引脚,即通过外部引脚中断选择寄存器GIPOXNMISEL(详细见GPIO章节),来选择需要的引脚;注意这里还需要外部NMI中断控制寄存器XNMICR。具体怎样配置参考TI官方手册 http://www.ti.com.cn/cn/lit/ug/sprufb0d/sprufb0d.pdf



  


16具有中断优先级的中断为(INT1——INT14,RTOSINT、DLONGINT)后面两个一般不用。其中定时器0可以选择INT1-INT12,但是PIE中断向量表选择在中断向量表第1组(即TIN0)。定时器1可以和其他类型的可以使用INT13,定时器2一般为DSP/BIOS保留使用中断INT14。也可以这么说定时器0,和1一般为用户使用,定时器2如果不被实时DSP/BIOS使用,可以被用户使用。还有它们对应的中断接口也不一样,需要注意注意一下。

在这14个中断接口中,又拿出12个中断接口为DSP的外设和外部中断使用(即INT1-INT12)组成了PIE中断扩展,中断扩展主要用来解决CPU没有空闲来解决所有中断的问题,所有采用了一个中断管理器PIE来管理这些中断。为了解决DSP28335太多的外设和外部中断XINT,又把每个中断接口分为INTx1——INTx8。这样就完成了12个中断扩展到96个中断的问题,当然这96个中断没有全被使用,有些是用户定义。具体结构如下图所示。



2.PIE中断结构

PIE中断实现过程主要分为以下几部分:

   1.外设或者是外部引脚产生中断
外设如SCI或者定时器当满足中断条件时,一般每个外设都有一个中断标志位如定时器的TIF,一般会置位。如果外设中断使能,将向PIE寄存器发送中断请求,同时将PIE寄存器的PIE IFR寄存器置位。注意外设的中断标志只有软件才能清除,一般在中断程序结尾,清除中断标志。否则将一直置位,并且在中断使能的情况下一直向PIE发送中断请求。
        2.PIE级的中断
        当PIE的管理器收到来自某个PIEINTx(12个中断接口之一)的中断时,首先将对应接口的中断标志PIE IFR置位,如果此时该端口的中断使能即PIE IER对应置位,这时候就要检查PIEACK位是否为0,如果为0,这向CPU发送中断请求,否则只有等待PIEACK为0。一般情况PIEACK为1,说明还有其他接口的中断正在处理。只有等待。另外还要注意PIEACK位的清除也只有软件清除,一般在中断程序的结尾向对应PIE ACK位写1来清除。
        3.CPU级中断
当PIE ACK为0时,对应的INTx(12个的一个)像CPU发送中断请求,这时候就用到了CPU级中断寄存器IFR,和IER。IFR在INTx端口发送CPU级中断请求后置位。IFR为16位的寄存器正好对应上面的16个中断控制,它是可屏蔽中断的总体的中断标志。同样如果对应位的IER(中断使能寄存器使能),就需要判断全局中断屏蔽位INTM位是否为0,如果为0,CPU保存当前工作状态经过9个周期后开始执行中断。如过INTM为1,则只有等待。一般INTM为1,说CPU正在处理别的中断。INTM只是个位不是寄存器,编程中不会出现,由硬件控制,同时其清除也在中断程序执行完后由硬件自动清除。具体执行流程如下图

  



总的说来,DSP28335的外部中断是通过层层控制来实现的,可以表示为


外设中断标志产生——外设中断使能——PIEx IFR置位——PIExIER使能——判断PIExACK——IFR置位——IER使能——判断INTM位——CPU执行中断程序。

个人认为PIExACK的作用于INTM的作用相同都是判断同组中有没有其他中断的产生。如PIExACK判断INTx中其它8个有没有产生中断请求,INTM判断其它INTx 12个接口有没有产生中断请求。
还要注意上图中stageH中实现了IFRx和IERx的清零,也就是IER和IFR由系统自动清零,stage I 完成了获取中断向量表(中断程序的地址)和PIE IFR和IER清零(对应位),在stage J 要在程序中完成PIExACK的清零(程序中实行),INTM的自动清零。

3、外部中断XINT和中断向量表的原理以后有时间再续写。

到此DSP28335的中断结构大体说完,个人观点,错误难免,欢迎纠正。










  • 11
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
TMS320F2833x TMS320F2823x DSC .................................................................................. 10 1.1 特性 ......................................................................................................................... 10 1.2 开始使用 .................................................................................................................... 11 2 .................................................................................................................................. 12 2.1 引脚分配 .................................................................................................................... 14 2.2 信号说明 .................................................................................................................... 23 3 ............................................................................................................................ 33 3.1 内存映射 .................................................................................................................... 34 3.2 简要说明 .................................................................................................................... 41 3.2.1 C28x CPU ....................................................................................................... 41 3.2.2 内存总线(哈弗总线架构) .................................................................................... 41 3.2.3 外设总线 ......................................................................................................... 41 3.2.4 实时 JTAG 和分析 .............................................................................................. 42 3.2.5 外部接口(XINTF) ................................................................................................ 42 3.2.6 闪存 ............................................................................................................... 42 3.2.7 M0,M1 SARAM ............................................................................................... 42 3.2.8 L0, L1, L2, L3, L4, L5, L6, L7SARAM ........................................................................ 43 3.2.9 引导 ROM ........................................................................................................ 43 3.2.9.1 引导加载器使用的外设引脚 ....................................................................... 44 3.2.10 安全性 ............................................................................................................ 44 3.2.11 外设中断扩展 (PIE) 块 ......................................................................................... 46 3.2.12 外部中断 (XINT1-XINT7,XNMI) ............................................................................. 46 3.2.13 振荡器和锁相环 (PLL) .......................................................................................... 46 3.2.14 安全装置 ......................................................................................................... 46 3.2.15 外设时钟 ......................................................................................................... 46 3.2.16 低功率模式 ....................................................................................................... 46 3.2.17 外设帧 0,1,2,3 (PFn) ...................................................................................... 47 3.2.18 通用输入/输出 (GPIO) 复用器 ................................................................................. 47 3.2.19 32 位 CPU 定时器 (0,1,2) .................................................................................. 47 3.2.20 控制外设 ......................................................................................................... 48 3.2.21 串行端口外设 .................................................................................................... 48 3.3 寄存器映射 ................................................................................................................. 49 3.4 器件仿真寄存器 ............................................................................................................ 51 3.5 中断 .......................................................................................................................... 52 3.5.1 外部中断 ......................................................................................................... 56 3.6 系统控制 .................................................................................................................... 57 3.6.1 OSC 和 PLL 块 .................................................................................................. 58 3.6.1.1 外部基准振荡器时钟选项 .......................................................................... 59 3.6.1.2 基于 PLL 的时钟模块 .............................................................................. 60 3.6.1.3 输入时钟损失 ....................................................................................... 61 3.6.2 安全装置块 ....................................................................................................... 62 3.7 低功率模式块 .....................................................................................
DSP28335中断采用了3级中断机制,包括外设级中断PIE中断和CPU级中断。在DSP28335中,中断源分为片内中断源和片外中断源。片内中断源包括CPU定时器和各个外设,如eCAP、ePWM和看门狗等。片外中断源一般与DSP的引脚相连,当检测到一定的脉冲长度或电平转变时,会产生中断标志事件。然而,DSP28335只有有限的中断线可供使用,其中包括2条不可屏蔽中断线(NMI&RESET)和14条可屏蔽中断线(INT1-INT14)。因此,为了管理中断源,DSP28335提供了PIE中断来进行控制。外设要能够成功产生中断响应,需要经过外设级中断允许、PIE允许和CPU响应的过程。虽然DSP28335有58个外设中断源,但实际可供使用的中断线只有12个,因此需要通过中断线的复用来管理中断源。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [DSP28335中断系统(一)](https://blog.csdn.net/qq_35874924/article/details/104473343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [DSP F28335中断系统](https://blog.csdn.net/u012616827/article/details/121941800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值