1 / 59

第七章 DSP 外设及应用

第七章 DSP 外设及应用. 第一节 中断系统 一、中断类型 中断是由硬件或软件驱动的信号。中 断信号使 DSP 暂停正在执行的程序,并进 入中断服务程序。. C54X 既支持软件中断,也支持硬件中断: 1 、由程序指令( INTR , TRAP 、 RESET )要求的软件中断。 2 、由外围设备信号要求的硬件中断。这种硬件中断又有两种形式: ( 1 )、受外部中断口信号触发的外部 中断信号。 ( 2 )、受片内外围电路信号触发的内

nevaeh
Download Presentation

第七章 DSP 外设及应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 DSP外设及应用 第一节 中断系统 一、中断类型 中断是由硬件或软件驱动的信号。中 断信号使DSP暂停正在执行的程序,并进 入中断服务程序。

  2. C54X既支持软件中断,也支持硬件中断: 1、由程序指令(INTR,TRAP、RESET)要求的软件中断。 2、由外围设备信号要求的硬件中断。这种硬件中断又有两种形式: (1)、受外部中断口信号触发的外部 中断信号。 (2)、受片内外围电路信号触发的内 部硬件中断。

  3. 当同时有多个硬件中断出现时,按照优先 级的高低进行处理,按优先级可以将中断分为 两类: 第一类:可屏蔽中断。 可以用软件屏蔽或开放的硬件和软件中断, C54X最多可支持16个用户可屏蔽中断。 例、C541,只有9个此类中断。 INT0~INT3, RINT0,XINT0,RINT1,XINT1 TINT。

  4. 第二类:非屏蔽中断 这类中断是不可屏蔽的。C54X对这类 中断总是响应的,并从主程序转移到中断 服务程序。 C54X的非屏蔽中断包括所有的软件中 断以及两个外部硬件中断:RS和NMI(也 可用软件进行RS和NMI中断)。

  5. 二、中断寄存器 中断标志寄存器(IFR,01H) 中断屏蔽寄存器(IMR,00H) 1、中断标志寄存器(IFR) 当某个中断触发时,寄存器响应位置1,直到中断处理完毕为止。

  6. 不同型号芯片的IFR中5~0位的中断源相同,是外部中断和通信中断标志位。其他15~6位中断源根据芯片的不同,定义的中断源类型不同。不同型号芯片的IFR中5~0位的中断源相同,是外部中断和通信中断标志位。其他15~6位中断源根据芯片的不同,定义的中断源类型不同。 • 中断标志置1后,以下四种情况都将使其清0: (1)、软件或硬件复位; (2)、中断得到处理; (3)、将1写到IFR的适当位(相应位变成0),相 应的尚未处理完的中断被清除; (4)、利用适当的中断号执行INTR指令,相应的 中断标志位清0。

  7. 2、中断屏蔽寄存器 用来屏蔽外部和内部中断。如果状态寄存器ST1中的 INTM位=0,IMR寄存器中某一位为1,就开放相应的中 断。NMI和RS都不包括在IMR中,IMR不能屏蔽这两个 中断。

  8. 三、中断控制 中断控制主要是屏蔽某些中断,避免其他 中断对当前运行程序的干扰,以及防止同级中 断之间的响应竞争。 1、中断请求的接收 • 对硬件中断请求:不论中断是否被DSP确认,DSP将在IFR相应的位置1。 • 对软件中断请求: 由INTR、TRAP和RESET三条指令产生。

  9. 当软件中断请求时: (1)、INTR K。 K表示将转移到的中断矢量单元。当INTR中断被确认,状态寄 存器ST1的中断方式(INTM)置1,以便禁止其他可屏蔽中断。 (2)、TRAP K。TRAP和INTR的不同之处就是TRAP启动中断 时,INTM位不受影响。所以在TRAP启动中断服务时,该中断服务 程序可被其他硬件中断所中断。 (3)、RESET。执行一种不可屏蔽的软件复位操作。它影响ST0 和ST1,但不影响处理器工作方式寄存器PMST,因此,RESET复 位指令和RS硬件复位是有区别的。

  10. 左移2位,构成低7位 构成中断地址的高9位

  11. 2、中断确认 • 对软件中断和非屏蔽中断,DSP将立即响应,进入相应中断服务程序。 • 对硬件可屏蔽中断,只有满足以下3中条件后,DSP才响应中断。 (1)、当前优先级为最高级。 (2)、IMR屏蔽位为1。 (3)、INTM位为0。 满足上述条件后,DSP响应中断,终止当前正进行的操作,指令计数器PC自动转向相应的中断向量地址,取出中断服务程序地址,并发出硬件中断响应信号IACK,清除相应的中断标志位。

  12. 3、中断服务程序 CPU执行中断服务程序的步骤如下: • 保护现场,将PC值压入栈顶; • 载入中断矢量表,将中断矢量表地址送入PC; • 执行中断矢量表中指令,程序进入中断入口; • 执行中断服务程序,直至遇到返回指令; • 恢复现场,将栈顶值弹回PC; • 继续主程序。

  13. 4、中断向量地址 • TMS320C54X中,中断向量地址由PMST寄存器中的9位中断向量地址指针IPTR和左移2位后的中断向量序号(中断向量序号为0~31,左移两位后变成7位)所组成。 • 复位时,IPTR为全1,因此复位中断向量地址为FF80H。

  14. 5、外部中断的触发 • 外部中断的触发方式有两种:电平触发和边沿触发。 • 5402为电平触发。

  15. 四、中断应用 例、有8个外部中断源,分别为IR0、IR1、IR2、….IR8,各中断都是边沿触发方式,

  16. 中断服务程序: ;外部中断INT0中断服务子程序: INT0ISR: PSHM ST0 PSHM ST1 PSHM AG PSHM AH PSHM AL PORTR HPIPORT,*AR1 STL *AR1,A AND #01B , A BC IR2,ANEQ

  17. 注意: • 中断源的优先顺序为INT0,INT1,INT2,INT3。 • 中断响应时间相对较长。 • 中断申请信号宽度要求较宽。 • 堆栈深度较深。

  18. 第二节 定时器 一、定时器结构 片内定时器是一个软件可编程定时器,可以用来周 期地产生中断。定时器主要由3个寄存器所组成: • 定时器寄存器(TIM,24H),TIM是一个减1计数器; • 定时器周期寄存器(PRD,0025H),存放时间常数; • 定时器控制寄存器(TCR,26H)。 其中,定时器控制寄存器TCR包括:预标定分频系 数TDDR,预标定计数器PSC、控制位TRB和TSS等及相 应的逻辑控制电路组成。

  19. TCR中包含有定时器的控制位和状态位:

  20. 注1: • 正常工作情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。当系统复位或定时器单独复位时,PRD中的时间常数重新加载到TIM。 • 复位后,定时器控制积存器(TCR)的停止状态位TSS=0,定时器启动工作,时钟信号CLKOUT加到预定标计数器PSC。 • PSC也是一个减1计数器,每当复位或减到0后,自动将定时器分频系数TDDR加载到PSC。 所以,定时中断的周期为: CLKOUT*(TDDR+1)*(PRD+1) • 若要关闭定时器,只要将TCR的TSS置1,就能切断时钟输入,定时器停止工作。

  21. 定时器初始化的步骤: (1)、先将TCR中的TSS置1,关闭定时器。 (2)、加载PRD。 (3)、重新加载TCR(使TDDR初始化;令TSS为0,以接通CLKOUT;TRB置1,以便TIM减到0后重新加载定时器时间常数),启动定时器。 要开放定时中断: (1)、将IFR中的TINT位置1,清除尚未处理完的定时器中断; (2)、将IMR中的TINT位置1,开放定时中断; (3)、将ST1中的INTM位清零,从整体上开放中断。 其中,复位时TIM和PRD都置成最大值FFFFH,定时器的分频系数(TCR的TDDR)清0,定时器开始工作。

  22. 例、定时器的初始化和开放定时中断: STM #0000H,SWWSR; STM #0010H,TCR ;TSS=1,关定时器 STM #0100H,PRD ;加载周期寄存器(PRD) STM #0C20H,TCR ;定时分频系数TDDR初始化为1 ;TSS=0,启动定时器 ;TRB=1,当TIM减到0后,重新加载PRD, ;soft=1,free=1,定时器遇到断点后继续运行 STM #0008H, IFR ;清除中断 STM #0008H,IMR ;开放定时中断 RSBX INTM ;开放中断

  23. 二、时钟发生器 时钟发生器为C54X提供时钟信号。时钟发生器由 内部振荡器和锁相环(PLL)电路两部分组成。时钟发 生器要求有一个参考时钟输入,可以有两种方法提供:

  24. C54X内部的PLL兼有频率放大和信号提纯的功能。用高稳定的参考振荡器锁定,可以提供高稳定的频率源。所以,C54X的外部频率源的频率可以比CPU的机器周期CLKOUT的速率低,这样就能降低因高速开关时钟所造成的高频噪声。

  25. 锁相环PLL的配置分为硬件和软件两种 (1)、硬件配置的PLL

  26. (3)、软件可编程PLL DSP可以通过软件编程的方法,对时钟方式寄存器(CLKMD,58H)进行设置,以实现对时钟的控制。 两种时钟方式: • PLL方式。输入时钟(CLKIN)乘以0.25~15共31个系数。 • DIV(分频器)方式。输入时钟除以2或4。当采用DIV方式时,所有的模拟电路,包括PLL电路都关断,以使功耗最小。

  27. 注: 在PLL锁定之前,不能用作时钟。可通过对CLKMD 寄存器中的PLLCOUNT位编程,进行延时,直到PLL锁 定为止。 这里主要靠PLL中的锁定定时器,PLLCOUNT的数 值(0~255)加载后,每16个输入时钟CLKIN,锁定定 时器减1,直到0为止。因此,锁定延时时间的设定可以 为0~255*16*CLKIN。

More Related