第 5 章 中断及定时器本章简要介绍了 TMS320DM642 的中断系统及定时器,对中断控制寄存器和定时器寄存器进行了重点阐述,本章的知识要点为掌握中断和定时器寄存器的配置方法,本章建议安排 4 个课时进行学习5.15.1 中断系统中断系统中断系统是 TMS320DM642 处理器的重要组成部分,DM642 共有 16 级中断 INT0-INT 15,但 DSP 的中断事件多于 16 个,缺省情况下 INT0-INT15 与中断事件之间的映射关系如表 5-1 所示, DM642 的 CPU 有 3 种类型中断,即 RESET(复位)、不可屏蔽中断(NMI)和可屏蔽中断(INT4-INT15) 表 5-1 TMS320DM642 的中断源中断编号中断选择控制寄存器(MUXL,MUXH)中断选择控制寄存器(缺省值)中断事件中断功能INT0--RESET复位中断INT1--NMINMI 中断INT2--保留保留、未用INT3--保留保留、未用INT4MUXL[4:0]00100GPINT4/EXTINT4GPIO 中断 4/外部中断 4INT5MUXL[9:5]00101GPINT5/EXTINT5GPIO 中断 5/外部中断 5INT6MUXL[14:10]00110GPINT6/EXTINT6GPIO 中断 6/外部中断 6INT7MUXL[20:16]00111GPINT7/EXTINT7GPIO 中断 7/外部中断 7INT8MUXL[25:21]01000EDMA_INTEDMA 通道(0~63)中断事件INT9MUXL[30:26]01001EMU_DTDMAEMU DTDMA 中断事件INT10MUXH[4:0]00011SD_INTASDRAM 的 Timer 中断INT11MUXH[9:5]01010EMU_RTDXRXINT12MUXH[14:10]01011EMU_RTDXTXINT13MUXH[20:16]00000DSP_INTDSP_INT 中断INT14MUXH[25:21]00001TINT0定时器 0 中断事件INT15MUXH[30:26]00010TINT1定时器 1 中断事件--01100XINT0--01101RINT0--01110XINT1--01111RINT1--10000GPINT0GPINT0 中断事件--10001保留未用--10010保留未用--10011INT2定时器 1 中断事件--10100保留未用--10101保留未用--10110ICINT0--10111保留未用--11000EMAC_MDIO_INTEMAC 相关中断--11001VPINT0视频口 0 中断事件--11010VPINT1视频口 1 中断事件--11011VPINT2视频口 2 中断事件--11100AXINT0音频发送中断事件--11101ARINT0音频接收中断事件--11110~11111保留未用5.1.1 复位复位是最高级别中断,复位与其它类型中断在以下方面是不同的:RESET 是低电平有效信号,而其它的中断是边沿有效信号;产生 RESET 中断,低电平必须保持 10 个时钟周期;复位取消所有的指令执行,并使所有的寄存器恢复默认设置;复位中断服务程序的指令包的存放地址必须为 0;复位不受跳转指令的影响。
复位中断后,CPU 恢复到一个确定的状态下,程序从地址 0 处开始执行5.1.2 不可屏蔽中断(NMI)NMI 优先级别为 2,它通常用来向 CPU 发出严重硬件问题的警报,如电源故障等中断使能寄存器(IER)的 NMIE 位用来控制 NMINMIE=1 时,使能 NMI 中断;NMIE=0 时,禁止NMI 中断需注意的是,通过指令 NMIE 只能置 1,不能清 0NMIE 在复位或一个 NMI 发生时被清零如果 NMIE=0,所有可屏蔽中断(INT4-INT15)也都被禁止5.1.3 可屏蔽中断(INT4-INT15)DM642 有 12 个可屏蔽中断,可以用于外围芯片、片内外设等,也可由软件控制或者不用当一个可屏蔽中断发生时,要满足下列条件,CPU 才能响应该中断;控制状态寄存器(CSR)中的全局中断使能位 GIE=1;中断使能寄存器(IER)中的 NMIE=1;IER 中相应中断使能位 IEm=1;中断标志寄存器(IFR)中没有更高优先级别的中断标志位为 15.1.4 中断优先级三种中断中,复位 RESET 具有最高优先级,不可屏蔽中断为第 2 优先级,相应信号为 NMI 信号,最低优先级中断为 INT15。
RESET、NMI 和一些 INT4-INT15 信号反映在 DM642 芯 片的引脚上,有些 INT4-INT15 信号被片内外设所用,有些可能无用,或在软件控制下使用 DM642 的中断优先级如表 5-2 所示表 5-2 中断优先级优先级 中断名称 中断类型RESET复位NMI不可屏蔽INT4可屏蔽INT5可屏蔽INT6可屏蔽INT7可屏蔽INT8可屏蔽INT9可屏蔽INT10可屏蔽INT11可屏蔽INT12可屏蔽INT13可屏蔽INT14可屏蔽最高最低INT15可屏蔽5.1.5 中断控制寄存器DM642 芯片有 8 个中断控制寄存器管理中断服务,如表 5-3 所示表 5-3 中断控制寄存器缩写 寄存器名称描 述CSR控制状态寄存器控制全局使能或禁止中断,CSR 的第 0 位用于控制中断,GIE=1 时,使能所有可屏蔽中断,GIE=0 时,禁止所有可屏蔽中断IER中断使能寄存器使能或禁止中断处理,控制每一个中断源是否使能,IER位 0 对应于复位,位 1 对应于 NMIE,位 4-15 分别对应于 IE4-IE15,通过 IER 中相应某个中断位置 1 使能对应中断,清 0 禁止对应中断。
IFR中断标志寄存器显示出有中断请求但尚未得到服务的中断,中断标志寄存器(IFR)包括 INT4-INT5 和 NMI 的状态,IFR 位 0 永远为 0,位 1 对应于 NMIF,位 4-15 分别对应于 IF4-IF15,其余位为保留位,当一个中断发生时,IFR 中的相应位被置 1,否则为 0ISR中断设置寄存器人工设置 IFR 中的标志位,ISR 的位 4-15 分别对应于IS4-IS15,ISR 的 IS4-IS15 位写 1 会引起 IFR 对应中断标志位置 1ICR中断清除寄存器人工清除 IFR 中的标志位,ICR 的位 4-15 分别对应于IC4-IC15,ICR 的 IC4-IC15 位写 1 会引起 IFR 对应中断标志位置 0ISTP中断服务表指针指向中断服务表的起始地址NRPNMI 中断返回指针包含从不可屏蔽中断返回的地址,该中断返回通过 B NRP 指令完成IRP中断返回指针包含从可屏蔽中断返回的地址,该中断返回通过指令 B IRP 完成5.1.6 中断服务表(IST)IST(Interrupt Service Table)是一个 512KB 的内存块,由 16 个连续的中断服务取指包(ISFP)组成,每个 ISFP 占 32 个字节,包含 8 条指令,中断服务取址包如图 5-1 所示。
RESET ISFP NMI ISFP 保留 保留 INT4 ISFP INT5 ISFP INT6 ISFP INT7 ISFP INT8 ISFP INT9 ISFP INT10 ISFP INT11 ISFP INT12 ISFP INT13 ISFP INT14 ISFP INT15 ISFP中断服务表(IST)程序存储器000h 020h 040h 060h 080h 0A0h 0C0h 0E0h 100h 120h 140h 160h 180h 1A0h 1C0h 1E0hInstr1 Instr2 Instr3 Instr4 Instr5 Instr6 B IRPISFP for INT6 0C0h 0C4h 0C8h 0CCh 0D0h 0D4h 0D8h 0DChNOP 5图 5-1 中断服务取指包5.1.7 中断服务表指针寄存器(ISTP)中断服务表指针寄存器(ISTP)用于定位中断服务程序入口ISTP 中的字段 ISTB 确定 IST 的基地址:HPEINT 字段确定当前响应的中断ISTP 的格式如图 5-2 所示表 5-4 描述了各字段含义及使用方法31 16ISTB15 10 9 5 4 3 2 1 0ISTBHPEINT 00000图 5-2 中断服务表指针寄存器(ISTP)表 5-4 ISTP 各字段描述字 段字段名描 述4:0设置为 09:5HPEINTIER 寄存器使能的当前最高优先级中断的序号(相应位 IFR 的位数) 。
如果没有中断挂起和使能,HPEINT 的值为 00000b31:10ISTB IST 的基地址,复位时置 0.复位完成后,可通过改写 ISTB 重新定位IST复位取指包必须定位于地址 0 处,而 IST 中的其余取指包可放在 256 个字范围内的任何程序存储单元内IST 的位置由中断服务表基值(ISTB)确定5.25.2 定时器定时器5.2.1 概述TMS320DM642 的通用 32 位定时器可以用于以下 5 种情况:事件计时、事件计数、中断 CPU、发送同步指令给 DMA、事件计数定时器有两种模式,且能够被内部源或者外部时钟计时定时器拥有一个输入管脚和一个输出管脚,输入管脚和输出管脚(TINP 和TOUT)能够作为定时器的时钟输入和时钟输出,它们也可分别设定为通用的输入和输出引脚如果使用内部时钟时,定时器可以发信号给一个外部的 A/D 转换器使之开始一次转换,或者定时器可以触发 DMA 控制器开始一个数据的传送;使用外部时钟,定时器可以对外部事件进行计数并且在达到指定的事件数后发中断信号给 CPU,TMS320DM642 定时器不支持竞争中断,定时器内部输入时钟为 1/8 CPU 频率。
Edge detectHLD1 0 同步装置DATIN内部时钟源INVINPTINP脚定时器计数寄存器定时器周期寄存器到CPU和DMA的外设总线计数到0比较器脉冲产生器C/P PWID TSTAT,定时器输出TINT,定时器中断到CPU和EDMAINVOUT0 1 DAVOUTTINP脚FUNCCLKSRCGOHLD图 5-3 TMS320DM642 的定时器的模块框图定时器可以选择内部时钟,也可以使用外部时钟提供时钟源定时器拥有一个输入引脚和一个输出引脚,输入引脚和输出引脚可以作为定时器的时钟输入和时钟输出,他们也可分别配置为通用的输入和输出引脚,图 5-3 给出了定时器的模块框图5.2.2 定时器寄存器配置定时器的 3 个寄存器如表 5-5 所示表 5-5 定时器寄存器十六进制地址 名称和缩写描述 定时器 0定时器 1定时器 2定时器控制器(CTL)决定定时器的运行模式,监控定时器的状态,并且控制 TOUT 引脚的功能019400000198000001AC0000定时器计数器(CNT)增量计数器的当前值019400080198000801AC0008定时器周期寄存器(PRD)控制定时器输入时钟的循环次数,这个数字控制 TSTAT 信号的频率019400040198000401AC0004(1) 定时器控制寄存器(CTL)图 5-4 显示了定时器控制寄存器各位的含义。
表 5-6 描述了控制寄存器的各位描述信息31 12 。