TMS320F28335外部中断分析与研究
2021-09-22鲁昕曈
鲁昕曈
【摘 要】随着信息科技的发展与变革,DSP技术已成为人们广泛关注与应用的前沿技术。DSP不仅可靠性较高,而且稳定性较好、功耗较低,可以实现大规模集成。此外,它很大程度上提高了信号处理能力,可以满足更高的实时性要求。中断处理是DSP应用系统中非常重要的一个环节。TMS320F28335提供了定时器和中断器功能,因此,在数据采集、工业控制、智能测量等方面具有广泛的应用。论文主要阐述DSP芯片TMS320F28335外部中断的相关知识和中断机制,并详细说明了中断处理过程及实例分析。
【Abstract】With the development and change of information technology, DSP technology has become the frontier technology widely concerned and applied. DSP not only has high reliability, but also has good stability and low power consumption, which can realize large-scale integration. In addition, it greatly improves the signal processing ability and can meet higher real-time requirements. Interrupt processing is a very important link in DSP application system. TMS320F28335 provides timer and interrupter functions, so it has a wide range of applications in data acquisition, industrial control, intelligent measurement and so on. This paper mainly describes the knowledge and mechanism of external interrupt of DSP chip TMS320F28335, and describes the process of interrupt processing and example analysis in details.
【关键词】外部中断;中断系统;TMS320F28335
【Keywords】external interrupt; interrupt system; TMS320F28335
【中圖分类号】TP311.5 【文献标志码】A 【文章编号】1673-1069(2021)10-0194-03
1 研究背景
1.1 DSP的发展历史
数字信号处理DSP是如今的一门新兴学科,其发展经历了3个主要阶段。
最初数字信号处理只能依靠微处理器完成,但是微处理器的处理速度较为缓慢,不能满足当时大容量信息的需求。随着大规模集成电路和半导体技术的发展,1982年第一代DSP芯片TMS32010问世,它采用了NMOS技术,速度比微处理器快数十倍,在语言合成等领域得到了广泛的使用,后来随着基于CMOS制作的DSP芯片的出现,存储容量也得到了进一步的改善,能够在图像硬件处理中占据一席之地。20世纪90年代,第三、四、五代DSP芯片的发明使运算速度又提高了许多。其中第五代的集成度较高,因此逐渐渗入人们的生活、学习和工作当中,成为电子器件更迭的关键。
1.2 DSP的发展情况
在数字化时代中,DSP己成为电子信息、通信交流器件等方面的基石。TMS320F28335是TI公司研发的一个32位浮点数字控制处理器,它的外形丰富,设计多样化,性价比高。该芯片具有丰富的系统资源,时钟控制灵活,提供了多种低功耗模式;有56个通用I/O引脚可以复用,功能丰富;独特的寄存器保护模式可确保程序稳定地运行;PIE中断扩展控制器能够增强芯片的中断处理能力。故本文主要对TMS320F28335芯片的外部中断进行详细的介绍、分析与研究。
2 DSP中断概述
CPU在正常执行程序时,有时会接受实时性要求更高或者更高级别的指令,就需要中断现有的程序而去响应其他请求,进入中断服务程序;当执行完该程序时能够返回原有的程序继续执行,该过程就是中断响应机制。中断的主要功能有:①实现CPU与外部设备的速度配合;②实时控制;③出现故障时及时发现并处理;④实现人机互联。
3 中断系统简介
3.1 中断源
当某种软件或硬件事件发生时,计算机暂时停止当前的程序,而去执行另一个程序,处理完毕后又返回原程序继续执行。引起这一过程的原因或者能触发中断请求信号的来源称为中断源。TMS320F28335处理器中断源以及连接关系如图1所示。
软件中断由指令产生,而硬件中断是由片上外设或外部中断源产生的。中断系统流程图如图2所示。
3.2 中断管理机制
F28335采用三级中断机制,包括CPU级中断、PIE级中断和外设级中断。CPU需要通过PIE级中断作为中间级,外设才能够经过外设级中断、PIE、CPU的允许并作出响应时产生中断响应。外设级中断主要管理具体的外设中断源条件;PIE级中断负责将外设级中断分组并根据优先级进行控制;CPU级中断管理则负责处理直接向CPU申请的中断请求。
3.2.1 CPU中断
当中断请求送达CPU时,CPU级中断的标志位IFR将会被置位。标志锁存到IFR,并且外设中断请求不被屏蔽时,CPU就能响应该中断。一切准备就绪后,CPU就会开始执行相应的中断服务。
3.2.2 PIE级中断
PIE模块把外部引脚中断和8个外设模块组合到1个CPU中断上,它们一共分成12组,每组能够组合到1个新的CPU中断上,所以PIE可以一共支持96个独立的中断。当PIE发出中断请求时,对应的PIED的中断标志位置1,然后检查其对应的中断应答寄存器置位,若该组的ACKx位为0,那么PIE向CPU发出中断请求;若ACKx位为1,那么PIE将继续等待,直到ACKx位被清零,才能够再次发出请求。
3.2.3 外设级中断
每个外设都能产生一个中断,并且它的寄存器中断标志位会被置位,外设模块向PIE发出中断请求;若外设模块中断使能失效,中断标志位就会保持置位状态,等待软件清零。
3.3 外部中断相关寄存器
3.3.1 外部中断控制寄存器(XINTnCR)
F28335支持7个外部中断(XINT1-XINT7),XINT13还有一个不可屏蔽的外部中断XNMI共用中断源。每一个外部中断可以被选择为正边沿或负边沿触发,也可以被使能或者禁止(包括XNMI)。其各位信息如表1所示。
3.3.2 外部NMI中断控制寄存器(XNMICR)
外部NMI中断控制寄存器(XNMICR)各位信息如表2所示。
3.3.3 外部中断x计数器(XINTXCTR)
外部中断x计数器(XINTXCTR)各位信息如表3所示。
4 外部中断配置过程
①失能CPU级中断,并初始化PIE控制器寄存器和PIE中断向量表;②使能IO口时钟,配置IO口为输入;③设置IO口与中断线的映射关系;④指定中断向量表中断服务函数地址;⑤使能外设对应的PIE中断;⑥设置外部中断出发方式并使能中断;⑦使能CPU级中断及全局中断;⑧编写外部中断服务函数。
5 外部中断实验
5.1 实验原理
5.1.1 中断处理
DSP的中断控制器发现一个中断以后,它就会把下一个将要执行的指令地址保存起来,然后跳到中断服务指令处执行,执行完以后,再把刚才保存的地址重新装入执行寄存器,然后正常执行。中断向量表里面保存着不同中断的服务指令入口地址,同时DSP内部有1个中断控制器,它能够识别每一个编号的中断,所以一旦中断发生后,中断控制器就可以根据编号在相应的中断向量表里面找中断服务指令的地址。
5.1.2 中断执行的流程
该中断执行的过程大致如下:①若外设级中断产生,则检查外设级中断是否允许,若允许则将中断送至PIE模块,令PIEIFRx,y=1。②若PIEACKx=0,则将中断送至CPU,PIEACKx=1,FIRx=1。③程序继续向下执行,判断INTM是否为0,若是则启动现场保护,清除IFRx,并且置位INTM,清除EALLOW。④识别中断向量,并且读取中断向量地址,然后执行中断服务程序,清除PIEACKx和INTM。⑤返回开始状态。
5.2 程序设计
第一,实验准备:①连接实验设备。②连接试验箱附带的键盘的PS2插头与键盘接口P8。③打开供电电源开关。第二,设置Code Composer Studio 3.1,在硬件仿真下运行。第三,启动Code Composer Studio 3.1,选择菜单Debug—Reset CPU。第四,右键点击Project Explorer窗口下的“Open Project”命令打开该工程。第五,点击菜单栏下Project/Build All命令编译、下载程序。第六,运行程序,按下键盘上的任意键,观察指示灯亮灭状态。第七,观察中断执行情况,单击“Debug”菜单中“暂停”按钮,在程序中加断点,重新运行程序,观察程序在断点停留的时间。第八,退出仿真模式,右键点击Project Explorer窗口下的工程文件的Close Project命令关闭该工程,关闭CCS软件,实验完毕。
5.3 实验说明
TMS320F28335有4个LED灯和8个开关,它们都连接到CPLD上,通过编写程序來实现特定的功能。
SW1的设置如表4所示。
拨码开关示意如图3所示。
6 实验结果与程序分析
通过编译程序生成的.out文件,再经过加载,运行以后分别按1次和8次“单脉冲输出”开关,试验箱上LED灯的情况如图4所示。
要使用外部中断,需要从2个方面进行准备:第一,硬件上必须把中断信号引到DSP的外部中断引脚上。第二,软件上需要有如下的配置:①初始外部中断寄存器。②使能CPU INT1中断。③编写中断服务程序。④将中断服务程序的入口地址赋给中断向量表。
TMS320F28335可以响应INT0~INT4五个外中断。显示模块可以通过接口P8连接到小键盘上,当收到键盘传送的扫描码时,就向DSP的INT2发送中断信号;当DSP读键盘时,将扫描码传送到数据总线上,小键盘每按下1个键就会产生2个扫描码。为了能够通过中断方式来实现数码管状态的变化,需先在主函数中进行初始化操作。首先清除所有的中断并且初始化中断向量表,然后打开GPIO时钟,GPIO50引脚为输入低电平,设置IO口与中断线的挂接关系,再确定中断向量表中断服务的地址函数,接着外设对应的PIE中断使能,设置外部中断触发方式并外设中断使能,使能CPU级中断及全局中断,编写中断函数,在中断函数结束前写1清零PIEACK对应位,即设置数码管显示、等待、写1清零PIEACK对应位。输入当按下1次“单脉冲输出”开关,第1个LED灯亮,当按下1次“单脉冲输出”开关,试验箱第4个LED灯亮。
7 结论
通过以上实验的操作与分析,对TMS320F28335外部中断相关知识有了更加深入的理解。中断分为3级,外设级一旦产生中断,对应的外设中断标志寄存器中的中断标志位IF就会置位,将中断信号送入PIE控制器;若外设中断被禁止输入,则IF仍保持为1,直到软件清零。由于在TMS320F28335中断系统中,当同时有多个外设发出中断请求时,CPU会优先响应较高一级的中断,然后再处理低级的请求。如果多个请求先后到来,则不存在优先级的问题,即按照顺序依次执行。TMS320F28335的一个缺点在于其硬件中没有断嵌套程序,并且ISR的硬件不能中断,只能通过软件程序编写实现。本文只针对TMS320F28335的外部中断作了简单的分析,对于中断嵌套程序的编写还需进一步研究。
【参考文献】
【1】刘陵顺,高艳丽,张树团.TMS320F28335 DSP原理及开发编程[M].北京:北京航空航天大学出版社,2011.
【2】赵红怡.DSP技术与应用实例[M].北京:电子工业出版社,2012.
【3】谭威,罗仁泽,高文刚,等.基于TMS320F28335的DSP最小系统设计[M].西安:西安电子科技大学出版社,2015.