高性能DSP芯片TMS320F240的中断机制及其编程

2014-04-29 20:09何立军高杨高毅
电脑知识与技术 2014年21期
关键词:嵌入式系统中断

何立军 高杨 高毅

摘要:中断是指某一外设在数据准备就绪后,向CPU发出请求中断信号,请求CPU暂时中断目前的工作而进行数据交换。中断是嵌入式系统必不可少的重要组成部分,是嵌入式系统中外设功能实现的一种重要方法。该文介绍了TI公司常用DSP芯片TMS320F240的中断机制及其编程,文章从中断源,中断内部结构和中断流程这三个方面对TMS320F240的中断机制进行了详细说明,同时给出了具体的在工程中得到验证的中断编程实例。

关键词:DSP;TMS320F240;中断;嵌入式系统;中断服务程序

中图分类号:TP332 文献标识码:B 文章编号:1009-3044(2014)21-5095-04

中断是指某一外设在数据准备就绪后,向CPU发出请求中断信号,请求CPU暂时中断目前的工作而进行数据交换。当CPU响应这个中断时,便暂停运行主程序,并自动转移到该设备的中断服务程序。直到中断服务程序结束后,CPU又回到原来的主程序。中断是嵌入式系统必不可少的重要组成部分,是嵌入式系统中外设功能实现的一种重要方法。中断对输入输出处理、多道程序和分时操作、实时处理和人机联系等方面都起着重要的作用。

1 TMS320F240芯片简介

TMS320F240芯片是TI公司生产的用于数字发动机控制和嵌入式系统研发的DSP芯片,采用TMS320系列特有的专为实时信号处理所设计的体系结构,是DSP C2000平台的成员之一,并针对控制功能应用进行了优化。TMS320F240在拥有强大的实时处理能力的同时,将控制器的各种外设功能集成于一身,在控制系统领域得到了很好的应用。TMS320F240的主要技术指标为:32位中央算术逻辑单元、32位累加器、16位*16位并行硬件乘法器,并带有32位结果寄存器、3个定标移位寄存器和8个辅助寄存器;片上544W的数据RAM和16KW的程序FLASH;带有软件等待状态产生器的外部存储器接口;4级流水线,8级硬件堆栈,6个外部中断;单指令周期为62.5ns,绝大多数指令可在单周期内完成;片上集成事件管理器、锁相环时钟发生器;具有在线调试功能,使用JTAG接口来调试DSP。

2 TMS320F240芯片的中断机制

2.1 中断源

F240内部可以处理三种类型的中断源,分别是:

1)复位:复位操作确保设备按照确定的序列来运行,设备不会进入非法状态。复位源有5种,它们分别是看门狗定时器复位,软复位,非法地址复位,外部硬件引脚RS复位和外部硬件引脚PORESET复位。其中,看门狗定时器复位:当看门狗定时器溢出或者看门狗寄存器写入非法值时,F240产生看门狗定时器复位;软复位:清除系统控制寄存器(SYSCR)中RESET0位和RESET1位将产生系统复位;非法地址复位:F240的存储器空间中有一部分存储器空间标注为非法空间(即未实现的地址空间),对非法空间的任何访问都会产生非法地址复位;外部硬件引脚RS复位:在RS引脚上输入外部复位脉冲即可;外部硬件引脚PORESET复位:在RS引脚上产生上电复位脉冲。其中前3种复位源由F240内部产生,最后两种复位源由外部控制的。复位发生后,F240停止运行程序。在复位期间,RAM的数据保持不变,所有受复位控制的寄存器被复位。复位后,程序可以检查上电复位标志、非法地址标志、软复位标志和看门狗复位标志以确定复位原因;

2)硬件中断:硬件中断有两种类型,一是F240硬件中断信号,二是片内硬件产生中断。其中,硬件中断信号:F240有5个外部硬件中断信号,它们分别是XINT1,XINT2,XINT3,PDPINT和NMI。其中XINT1,XINT2,XINT3和NMI这四个中断都具有各自的中断控制寄存器和中断状态寄存器,可以通过设置它们各自的中断控制寄存器来触发一个上升沿的中断或者下降沿的中断。硬件产生的中断:F240片内外围设备模块(包括事件管理器,SPI,SCI,看门狗和ADC)通过内核产生中断;

3)软件中断:F240可以通过INTR指令,NMI指令和TRAP指令产生。其中,INTR指令:这条指令允许软件对F240中断的任何初始化。这条指令的操作码是CPU 程序分支中断向量的位置,同时,这条指令禁止了可屏蔽中断。NMI指令:这条指令将强制程序跳转到中断向量24h的中断复位程序处。TRAP指令:这条指令将强制程序跳转到中断向量22h的中断复位程序处。TRAP指令不禁止其他的可屏蔽中断,因此,非屏蔽中断可中断TRAP指令的中断服务程序。

2.2 TMS320F240芯片的中断结构

F240提供了32个中断向量位置(0000-003E),这些向量包括硬件中断向量和软件中断向量。F240 内核对所有硬件中断线指定了从1到10(1是最高优先级)的优先级。当F240识别到中断时,首先处理高优先级的中断,然后按照顺序处理其它中断。

F240提供6个可屏蔽中断级(INT1,INT2,INT3,INT4,INT5和INT6) ,因为F240有超过6个的可屏蔽中断源,因此每个中断级可被多个中断源共享。图1说明了CPU的INT1中断及接收和识别可屏蔽中断的结构过程,图中表示出了7个中断源(XINT1, XINT2, XINT3, SPI, SCIRX, SCITX和RTI)共享INT1中断级的结构。INT2-INT6与INT1的结构控制相似。

每个中断源都有自己的控制寄存器,控制寄存器中包括1个中断标志位和一个可屏蔽位。当F240内核接收到中断信号后,将相应控制寄存器的标志位置为‘1以表示有中断请求。如果可屏蔽位被置‘1,中断信号会被送到中断仲裁逻辑处。仲裁逻辑对发出请求的中断的优先级进行比较,将发出请求的最高优先级的中断传递到CPU处,CPU便对该中断进行处理。

2.3 TMS320F240芯片的中断流程

当F240识别到可屏蔽中断,将按照如下的序列进行操作:

1) 设置相应中断控制寄存器的标志位,如果同时设置了掩码,那么相应的IFR位也会被设置;

2) 一旦IFR位被设置,就会判断确认条件(INTM位=0且IMR位=1) 。如果条件成立,CPU就会处理中断,并产生一个中断应答信号;否则即忽略中断并继续处理现行的代码序列;

3) 中断被处理之后,IFR位就会被清零且INTM位被置为1(用以过滤其它可屏蔽中断)。但相应的控制寄存器的标志位不会被清除;

4) 返回地址(增加的PC值)被存储在堆栈内;

5) CPU会转向并执行中断服务程序(ISR)。当遇到一个返回指令时,ISR即告结束,同时将返回地址从堆栈中弹出。CPU会继续处理中断代码序列。

当F240识别到非屏蔽中断,F240将按照如下的序列进行操作:

1) CPU立刻响应中断,并产生一个中断应答信号;

2) 如果是由RS管脚、NMI管脚、NMI指令或者INTR指令产生的中断,INTM位会被设置为1以阻止可屏蔽的硬件中断。如果是由TRAP指令产生的中断,则INTM位不会被设为1;

3) 返回地址(增加的PC值)被存储在堆栈内;

4) CPU会转向并执行中断服务程序(ISR)。当遇到一个返回指令时,ISR即告结束,同时将返回地址从堆栈中弹出。CPU会继续处理中断代码序列。

3 TMS320F240芯片的中断编程

TMS320F240芯片的中断编程主要包括中断服务程序的连接,中断寄存器的初始化和中断服务程序的编写。其中,中断服务程序的连接是在中断和中断服务程序上建立对应关系;中断寄存器的初始化包括对事件管理控制寄存器,中断控制寄存器和中断屏蔽寄存器的控制;中断服务程序是中断的核心,是用户功能的实现。下面通过某型号课题已经通过验证的实例对F240的中断编程进行说明。

改实例中包括三个主要的中断复位程序Timer_isr(), Host_isr()和Watchdog_isr(),它们的占用的中断分别是INT3, INT6 和NMI,它们的中断源分别是定时器,XINT3和外部NMI中断信号。

下面中断服务程序的连接,也是程序的最开始部分,对中断的初始化也可以写在程序段START段内。这里的START是F240复位后程序运行的起始点。

4 结束语

本文阐述了TMS320F240的中断机制,并从工程应用的角度阐述F240中断编程的实现方法,该应用已经在某型号机载计算机上得到了验证,因此,文中所介绍的方法可以为不同情况下的TMS320F240中断编程提供参考。

参考文献:

[1] TMS320F/C240 DSP Controllers Reference Guide.pdf[EB/OL].TI公司官方网站 www.ti.com.

[2] 文全刚,苗雨.S3C2410芯片的中断机制及编程[J].计算机技术与发展,2006(16):36-38.

[3] 徐佩.高性能DSP芯片TMS320F2812应用技术研究[J].航空计算技术,2007,37(5):86-88.

猜你喜欢
嵌入式系统中断
跟踪导练(二)(5)
千里移防,卫勤保障不中断
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析