首页 理论教育 中断基础知识详解

中断基础知识详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:由硬件或软件驱动的中断信号可使DSP中止当前程序并执行另一个程序,该程序一般称为中断服务程序。·复位中断取消所有的指令执行,并使TMS320C6000的所有寄存器恢复默认设置。通过指令,NMIE只能被设置为1,而不能被设置为0,这也就是NMI称为非屏蔽中断的原因。可屏蔽中断TMS320C6x系列DSP具有12个可屏蔽中断,可以用于外围芯片、片上外设等,这些中断的优先级比复位中断和NMI低。2)中断使能寄存器的NMIE=1。

中断基础知识详解

一般来说,中断表明一个特别的事件(如定时器完成计数)的开始或结束。一个DSP系统需要和多个事件打交道,这些事件可能是内部的也可能是外部的,而且这些事件发生的时间是不确定的,也就是这些时间可能是异步的。异步事件的发生具有时间上的不确定性。一旦异步事件发生,就要求DSP能够随之做出相应的反应和处理。中断就可以提供这样的一种机制,一旦异步事件发生,DSP立即暂停CPU当前的处理任务,按预先的安排对该事件进行处理,处理完毕后,CPU再继续原来的任务。

中断源可以是时钟、A/D转换单元或其他外围设备。中断可由外部设备(如A/D)向DSP产生,也可以由DSP自己产生(如定时器中断)。由硬件或软件驱动的中断信号可使DSP中止当前程序并执行另一个程序,该程序一般称为中断服务程序。和其他CPU一样,TMS320C6x系列DSP的中断处理过程也可以分为:保存中断现场、执行中断程序和恢复中断现场3个步骤,如图2-26所示。

978-7-111-37346-9-Chapter02-60.jpg

图2-26 TMS320C6x系列DSP的中断处理过程

1.中断类型和中断优先级

TMS320C6000中断共有3种类型15个,分别是复位中断(RESET)、非屏蔽中断(NMI)和可屏蔽中断(INT4~INT15)。这些中断的优先级别见表2-20。

表2-20 中断优先级

978-7-111-37346-9-Chapter02-61.jpg

(1)复位中断(RESET)

复位中断具有最高的优先级,具有如下特点:

·低电平有效。

·产生复位中断,低电平必须保持10个时钟周期。

·复位中断取消所有的指令执行,并使TMS320C6000的所有寄存器恢复默认设置。

·复位中断服务程序的指令包的存放起始地址必须是0。

·复位中断不受跳转指令影响。

复位中断后,CPU恢复到一个确定的状态下,程序从地址0处开始执行。复位后,CPU的各寄存器状态如下:

·AMR、ISR、ICR、IFR和ISTP=0h。

·IER=1h。

·IRP和NRP不确定。

·CSR的15位~0位=100h表示小端模式/000h表示大端模式。

(2)非屏蔽中断(NMI)

NMI的优先级仅仅低于复位中断,高于其他中断(INT4~INT5)。NMI一般用于TMS320C6000硬件的严重报警。

中断使能寄存器(IER)的NMIE位用于控制NMI。当NMIE=1时,使能NMI;当NMIE=0时,禁止NMI。

通过指令,NMIE只能被设置为1,而不能被设置为0,这也就是NMI称为非屏蔽中断的原因。

NMIE在TMS320C6000复位时和NMI产生后自动被清零,如果NMIE=0,除复位中断外,其他所有中断都被禁止。

(3)可屏蔽中断(INT4~INT15)

TMS320C6x系列DSP具有12个可屏蔽中断,可以用于外围芯片、片上外设等,这些中断的优先级比复位中断和NMI低。

当某一可屏蔽中断发生时,要满足以下条件,DSP才会响应该中断。

1)中断控制寄存器(CSR)中的全局中断使能位GIE=1。

2)中断使能寄存器(IER)的NMIE=1。

3)IER中相应中断的使能位IEm=1。(www.xing528.com)

4)中断标志寄存器(IFR)没有更高级别中断的标志位为1。

2.中断服务表(IST)

TMS320C6x系列DSP的中断服务表是一个512B的内存块,由16个连续的中断服务取指包(ISFP)组成,每个ISFP占32B,包含有8条指令。

(1)中断服务取指包(ISFP)

每个ISFP最多存放8条中断服务指令,如果中断服务程序超过8条,那么就需要一个转移指令,跳转到该中断服务程序的其他部分。图2-27和图2-28分别给出了以上种情况的详细描述。

978-7-111-37346-9-Chapter02-62.jpg

图2-27 中断服务表描述(中断服务程序没有超过8条)

978-7-111-37346-9-Chapter02-63.jpg

图2-28 中断服务表描述(中断服务程序超过8条)

(2)中断服务表指针(ISTP)寄存器

ISTP(Interrupt Service TablePointer)用于定位中断服务程序入口。ISTP中的ISTB字段用以确定IST的基地址;HPEINT字段用以指示当前挂起的且被IER使能的最高优先级中断序号。ISTP的格式如图2-29所示,ISTP各字段的含义见表2-21。

978-7-111-37346-9-Chapter02-64.jpg

图2-29 ISTP的格式

表2-21 ISTP各字段描述

978-7-111-37346-9-Chapter02-65.jpg

可以将IST搬移到任意256B边界对齐的存储器单元,IST的基地址由ISTB给定,但复位中断的中断处理指令包必须存放在地址0处,这是因为RESET中断使ISTB字段置0。举例说明ISTB与IST之间的关系。

例如,中断服务表(IST)的重定位。

(1)重定位IST到800h

·复制位于存储0h~200h的IST到存储器800h~A00h。

·写800h到ISTP寄存器。

978-7-111-37346-9-Chapter02-66.jpg

(2)ISTP引导CPU定位到相应的ISFP

例如,

978-7-111-37346-9-Chapter02-67.jpg

IFR中的1表示挂起的中断,IER中的1表示被使能的中断,IFR和IER表明当前有2个中断需要处理,分别是INT9和INT12,INT9的优先级高于INT12,所以,段位01001b,HPEINT在ISTP的bit9~bit5,所以,ISTP=1001 0010 0000b=920h=INT9的地址。

3.中断应答信号(IACK和INUM)

IACK和INUM是TMS320C6x系列DSP的硬件信号,其中,IACK信号用于指示TMS320C6x开始中断处理过程,INUM信号(INUM0~INUM3)用于指示开始哪一个中断处理过程。例如,

978-7-111-37346-9-Chapter02-68.jpg

上述代码指示了INT7正在被处理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈