摘要:TMS320F206是德州仪器公司定点DSP芯片中具有代表性的一种,在介绍其特点和中断技术的基础上,重点阐述了该芯片在软件开发过程中中断技术是如何实现的。
|
以信息高速公路为标志的信息化,已成为社会发展的大趋势,并在逐步成为现实。信息化是以数字化为背景的,而数字信号处理技术则是数字化重要的基本技术之一。在过去短短的十几年里,各种集成化的单片数字信号处理器(DSP)的性能得到了很大的改善,软件开发工具越来越多,也越来越好;而价格却大幅度下降,从而使得数字信号处理器件及技术更容易使用,价格也能够为广大用户接受。从市场上各种DSP产品来看,德州仪器公司产品占据半壁江山,特别是TMS320系列,本文讨论的TMS320F206就是这个系列中的定点数字信号处理芯片。
|
1 TMS320F206的结构特点
|
2 TMS320F206的中断 在TMS320F206的程序空间中,中断向量占据了00~3fh的位置,并且中断的优先级也是固定的,所以在编程开发时先要编好一个中断向量表,对于没有用到的中断也应该编上,并让它返回到一个空位置,以免发生意外情况。TMS320F206的中断有许多特殊的地方,如HOLD和INT1共用一个中断向量,INT2与INT3也共用一个中断向量。如果在实际应用中用到的中断比较多时,那么控制中断就是一件比较难的事,此时就要对它的三个中断寄存器灵活运用。下面就来介绍这三个寄存器。 (1) 16位的中断标志寄存器(IFR),地址为0006h,各位情况如所示。当有一个可屏蔽中断到达CPU时,IFR的相应标志位就置1,这表明相应的中断正在被挂起或正在等待响应。将1写入到相应的标志位,可清除相应的位并清除其中断请求。 在中,0表示一般情况下读的数为0,R表示读,W1C表示写1时把这位清为0。-0表示复位后这位为0。 |
(2) 16位的中断屏蔽寄存器(IMR),地址为0004h,各位情况如所示。它用来屏蔽外部和内部硬件中断(NMI和RS除外)。当要屏蔽某硬件中断时,就把相应位清0当要开放某硬件中断时,就把相应位置1,并且它的每一位不受硬件复位的影响。 在中,0表示一般情况下读的数为0,R表示读,W表示写,-0表示复位后这位为0.2位是定时器中断,该位为1表示开放定时器中断。 |
(3)16位的中断控制寄存器(ICR),地址为0FFECh,各位情况如所示。主要用来控制HOLD/INT1和INT2/INT3。 |
在中,0位为0时表示屏蔽中断2(INT2),0位为1时表示开放中断2;1位为0时表示屏蔽中断3(INT3),1位为1时表示开放中断3;2、3位分别为INT2、INT3的标志位,当其为1时表示对应的中断有中断请求;4位1时表示单边沿触发模式,INT1引脚下降沿到来时,向CPU发出中断请求,用于INT1中断。4位为0时表示双边沿触发模式,这种模式适用于HOLD操作。
|
3 TMS320F206的中断实现 在应用实际中,让INT2引脚测交流电压频率和相位而交流电流相位则由INT3引脚来测量,并计算电压、电流间的相位差。在本实例中,中断信号均采用过零信号,定时器的中断向量为timer,INT2/INT3的中断向量为intp2(中断向量表略)。 主程序流程图如所示。 |
主程序如下: start:nop setc intm ;禁止所有中断 splk #0ffffh,ifr ;清中断标志 splk #2h,imr ;清INT2,INT3的屏蔽位 splk #1h,60h out 60h,0ffech ;仅开INT2 splk #0h,61h splk #0f9fh,62h ;设置定时器 out 61h,0fffah out 62h,0fff9h clrc intm ;开中断 waitl idle b waitl ;等待中断 中断INT2/3服务程序(intp2)流程图如所示。 |
中断INT2/3服务程序(intp2)如下: Intp2 setc intm ;进入INT2,INT3中断服务程序。 …… ;根据控制字判断是进入频率 测试子程序还是进入相位测试 子程序 bond intp23,tc b intp21 intp23: in 60h,0fffech ;读控制字ICR bit 60h,13 sst #1h,62h bit 62h,4 ;判断是INT2还是INT3 bcnd intp22,tc 中断 b intp31 intp22: splk #0002h,60h ;INT2服务程序 out 60h,0ffech ;开INT3中断 splk #0c29h,63h out 63h,0fff8h ;启动定时器 splk #0002h,ifr ;清INT2/INT3的标志位 clrc intm ;开中断 ret intp31: setc intm ;INT3服务程序 splk #0412h,64h out 64h,0fff8h ;停止定时器 splk #0002h,ifr ;清INT2/INT3的标志位 clrc intm ret in 65h,0fffah ;读定时器的时间 …… ;计算相位 intp21: setc intm ;判断中断次数,次开 …… ;定时器,第二次关定时器 bcnd stoptimerl,ntc out 63h,0fff8h ;启动定时器 splk #0002h,ifr ;清除INT2/3标志 clrc intm ;开中断 ret stoptimer1: splk #0412h,64h out 64h,0fff8h ;关定时器 …… ;计算频率 b $ ;等待 定时器中断服务程序(timer)流程图如所示。 |
Timer: lacl 73h ;定时器中断服务程序
|
参考文献 |
7 TMS320F206 datasheet https://www.dzsc.com/datasheet/TMS320F206_17297.html.
8 TMS320 datasheet https://www.dzsc.com/datasheet/TMS320_1699215.html.
9 TQFP datasheet https://www.dzsc.com/datasheet/TQFP_1528902.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。