DSP技术和应用实例结业论文------中止在TMS320C54x系列DSP中应用
班级:电气08-6
姓名:王少农
学号:4073619
中止在TMS320C54x系列DSP中应用
中止是嵌入式芯片灵魂,这是因为多数嵌入式系统对实时性全部有很高要求,即对出现事件响应要极为快速。中止和软件查询方法相比有着更高实施效率。在TI企业TMS320C54x系列(以下简称C54x系列)DSP中,一样也提供了很好中止机制。
而数字信号处理器(DSP)作为一个可编程专用芯片,是数字信号处理理论实用化过程关键技术工具,在语音处理、图像处理等技术领域得到了广泛应用。但对于算法设计人员来讲,利用汇编语言或C语言进行DSP功效开发,含有周期长、效率低缺点,不利于算法验证和产品快速开发。
1.C54x中中止机制
中止机制包含硬件中止装置和操作系统中止处理服务程序中止信号实质上是由
转换器需要从DSP中取走数据,全部是经过硬件中止向DSP发出请求。
C54x系列DSP支持软件中止和硬件中止。软件中止是由指令(INTR、TRAP、RESET)触发,硬件中止是由外围器件触发。硬件中止实际上又分为两类:一类是由DSP片外外设(如A/D转换器)触发,另外一类是由DSP片内外设(如定时器中止)触发。硬件中止又有优先级区分,这是为了处理同一时刻有多个硬件中止源触发中止情况。硬件中止种类和优先级请参看具体使用芯片资
料。
假如根据可屏蔽情况分类,中止又可分为可屏蔽中止(C54x至多支持16个)和不可屏蔽中止。可屏蔽中止受ST1寄存器中INTM位和IMR寄存器中对应位影响。当INTM=0时,IMR中某位为1,则开放对应中止。 件中止并不一定要由外围器件触发,它一样能够由指令INTR、TRAP触发,而
且不受INTM限制。有一点需要引发注意是:指令RESET复位和硬件RS复位对IPTR和外围电路初始化是不相同。硬件复位时IPTR总是被置为0x1FF,软件复位时则不会修改目前IPTR值。C54x中止处理过程分为三个阶段: ①中止请求。能够用硬件器件或软件指令请求中止。假如请求中止是可屏蔽中止,则IFR寄存器中对应位被置为1,而不管中止是否会被响应。②中止响应。对于软件中止和不可屏蔽中止,CPU是立即响应。对于可屏蔽中止,要满足下列条件才能响应:
·优先级最高(同时出现多个中止时)
·INTM位为0
·IMR中对应位为1
CPU在取到软件向量第一个字后会产生IACK信号,对可屏蔽中止而言,IACK会清除IFR中对应位。
保护寄存器标准是实施中止服务程序后能正确返回并恢复原来运行程序环境。 ③中止处理。保护特定寄存器,实施中止服务程序,完成后恢复寄存器。
对应芯片。C54x中止向量表地址是由PMST寄存器中IPTR组成高9位地址
形成,所以向量表地址必需是128倍数。硬件复位时,IPTR总是默认置为
0x1FF,所以中止向量表地址为0xFF80。每个中止向量地址按以下组成方法
形成:PC=(IPTR)<<7+(Vector[n])<<2 (Vector[n]为中止向量号,在0~31之间),
中止向量号左移两位是因为每个中止向量占用4个字节缘故。中止向量表总是
以汇编形式出现。
2.扩展地址模式下中止控制
早期DSP共有192K空间(程序、数据和I/O空间各为64K),伴随DSP处理能力越来越强,192K空间已经不能满足需要。以后C54x均提供了扩展地址
行说明。
模式,使程序空间扩展到8M。扩展模式下中止控制有自己特殊地方,有必需进
假如用户使用是FarCall指令,则XPC会自动保留和恢复。但在进行中止处
理时候,只有16位PC寄存器能够自动得到保留(这是因为考虑了非扩展模式下中止效率问题),所以XPC必需由用户自己来保留,不然在中止返回时候往往会跳到不一样页面(由返回前后XPC值不一样引发)造成不可估计后果。程序如表1所表示。
因为必需在长跳转之前保留XPC值,没法使用延迟指令(如FBD),所以中止时延会增加两个周期。
再来考虑另外一个情况:设程序运行在XPC=2页面上,假如这个时候有中止发生并得到了CPU响应,DSP会加载PC:PC=(IPTR)<<7+(Vector[n])<<2, XPC值不发生改变,于是中止向量地址为:0x0+0xPC。这就显著地说明:中止向量表必需和应用程序在同一64K程序空间页面内。假如应用程序不是只分
布在一个程序空间页面内,那应该怎样处理呢?可分三种类型共四种技巧来应对这么情况:描述OVLY为任意情况;描述OVLY=1情况;描述OVLY=0情况。
有应用中,部分程序一旦运行是不许可中止。把不许可中止程序部分放到扩展空间内,而把中止向量表和ISR和许可中止程序部分全部放在XPC=0页面。当调用扩展空间程序时关闭中止使能,而当扩展空间程序返回到XPC=0页面时再开中止。这么做好处是不用关注XPC值对中止向量寻址影响。中止时候也不需要保留XPC值。调用过程图1所表示,Y表示需要关注XPC值,N表示不需要关注XPC值,数字表示调用次序。
DSP中影响存放器映射原因有三个:OVLY、DROM和MP/MC。OVLY是Overlay简写。当OVLY=1时,数据空间里一部分RAM变为重合区域
(Overlay Memory)。 | 这部分重合区域同时映射空间上部。 | 具体示例图2 所表示 |
(MP/MC=0,C5416)。
可见OVLY=1时候,数据空间DARAM0~3被映射到程序空间每一页上。
基于这么特点,能够把中止向量表定位到数据空间重合区域DARAM0~3中,
置OVLY为1。当有中止发生时,不管程序运行于DSP哪个程序页面空间,只
用PC寻址全部能够正确地取到中止向量表,而不会受XPC影响。中止程序ISR
能够放到任何一个程序页面中,但这时跳转到ISR指令只能用长跳转指令(FB
等),跳转之前注意将XPC压入堆栈,程序同表1。示意图图3所表示。
假如片内RAM比较大,分给数据空间RAM也比较多(如C5416有64KRAM能够作为数据空间),数据空间可能会有余量。这时能够把中止向量表和ISR全部全部放进数据空间OverlayMemory区域,并把OVLY置1。这么不仅在任何程序页面空间全部能够正确地取到中止向量表,同时用短跳转指令(BD等)就能够实现跳转到ISR,不再需要对XPC进行保留和还原。程序请参看表2。
在扩展模式下,即使程序空间扩为8M,但假如OVLY=1,则程序空间中存在大量重合区域,如C5416在OVLY=1情况下真正可用程序空间最大为4.03M。有场所需要程序空间大于4.03M,就必需使用OVLY=0情况。这个时候程序空间不存在重合区域,但能够模拟出来。方法是:把中止向量表拷贝到会发生中止每一页程序空间,图4所表示。这么,中止时候就能正确找到中止向量表而
比较上面四种方法,方法(2.1)更为适应普遍情况。它不限制ISR地址范围,
实现中止跳转。
3.DSP/BIOS 下中止管理
BIOS设置程序是储存在BIOS芯片中,只有在开机时才能够进行设置。CMOS关键用于存放BIOS设置程序所设置参数和数据,而BIOS设置程序关键对计算机基础输入输出系统进行管理和设置,使系统运行在最好状态下,使用BIOS设置程序还能够排除系统故障或诊疗系统问题。形象地说,BIOS应该是连接软件程序和硬件设备一座"桥梁",负责处理硬件即时要求。主板上BIOS芯片或许是主板上唯一贴有标签芯片,通常它是一块32针双列直插式集成电路,上面印有"BIOS"字样。它在计算机系统中起着很关键作用。一块主板性能优越是否,很大程度上取决于主板上BIOS管理功效是否优异。
DSP/BIOS是TI最近推出准实时操作系统,它一样支持扩展地址模式,只是
需要将GlobalSettings 中函数调用模式设置为Far就能够了。需要强调是:
BIOS只支持OVLY=1扩展模式,而不支持OVLY=0扩展模式。扩展模式下在BIOS
Code中会多出一个段“.bios:.norptb”,这个段会被自动放入OverlayMemory
之中,
和IDL。上面所提到全部中止属于优先级最高HWI线程。每个中止向量全部是具体原因请参看参考文件。BIOS管理线程有四种类型:HWI、SWI、TSK
名为VECTObject,它实质上是用来给中止向量表分配存放空间,用户能够自己
配置中止向量表地址(必需是128倍数)。
4.结论:
中止使得硬件得以和处理器进行通信。举个例子,在你敲打键盘时候,键盘控制器(控制键盘硬件设备)会发送一个中止,通知操作系统有键按下。中止本质是一个特殊电信号,由硬件设备发向处理器。处理器接收到中止后,会立即向操作系统反应此信号到来,然后就由os负责处理这些新到来数据。硬件设备生成中止时候并不考虑和处理器时钟同时——换句话说就是中止随时能够
产生。所以, 内核随时可能因为新到来中止而被打断。
不一样设备对应中止不一样,而每个中止全部经过一个惟一数字标识。所以,来自键盘中止就有别于来自硬盘中止,从而使得操作系统能够对中止进行区分,并知道哪个硬件设备产生了哪个中止。这么,操作系统才能给不一样中止提供不一样中止处理程序。在实施程序时候,假如有另外事件发生(比如用户又打开了一个程序)那么这时候就需要由计算机系统中止机制来处理了。
因篇幅问题不能全部显示,请点此查看更多更全内容