微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 数字信号控制器的中断系统分析与实现方法

数字信号控制器的中断系统分析与实现方法

时间:01-26 来源:互联网 点击:

引言

数字信号控制器(Digital Signal Controller, DSC)是将DSP内核与MCU接口相结合的微处理器芯片。DSC同时具有数字信号处理能力和MCU控制接口,并且中断系统功能非常丰富。中断是指CPU正在处理某件事情时,突然发生的某一外部事件(如一个电平的变化,一个脉冲沿的发生或定时器的计数溢出等)请求CPU迅速去处理,此时,若条件允许,CPU暂时中断当前的工作,转去处理所发生的事件(中断服务程序),处理完后,再回到原来中断的地方,继续原来的工作,这样一个完整的过程称为中断[2]。外设在需要时通过中断,中止CPU当前的工作,进行信息交换;这样可以实现CPU和多个外设同时工作,提高系统的吞吐率和使用效率[3,4]。因此,中断具有处理突发事件、提高CPU的效率、可以实现多任务数据事件管理等特点。当多个中断源发出中断请求时,CPU需要选择接收哪一个中断源,这就带来中断源选择问题[5]。

解决这个问题的方法有屏蔽选择法、优先级选择法和优先屏蔽选择法三种。屏蔽选择法主要是通过屏蔽手段将某些中断源请求与CPU隔离;这种屏蔽中断方法可以屏蔽系统所有中断,也可以只屏蔽某个模块中断。屏蔽系统所有中断意味着系统所有中断请求CPU都不接受,屏蔽某个模块中断说明只是屏蔽的模块中断请求CPU不接受,其它没屏蔽模块中断请求可以进入CPU。传统51芯片采用这种方法,飞思卡尔的MC9S08AW60也采用该种方法。屏蔽选择法通过屏蔽手段,有效地解决某些中断源的干扰问题[6]。优先级选择法通过对中断源设置不同的优先级,当多个中断源发出请求时,优先级高的中断请求率先进入CPU,该中断处理完成后,次优先级的中断源进入CPU,以此类推[7]。这种方法有效避免了屏蔽选择法造成的被屏蔽中断永远不能被处理的不足。优先屏蔽选择法同时具有其他两种方法的功能,既可屏蔽所有中断源,又可屏蔽某些模块中断源,也可以对非屏蔽的中断源进行优先级设置。这种方法既能避免优先级选择法不能解决某些中断源的干扰问题,又能有效避免屏蔽选择法造成的被屏蔽中断永远不能被处理的缺点[8]。该种方法目前逐步被DSC芯片商采用,如MC56F8257芯片就采用这种方法。从上面分析看出,DSC对中断处理比51芯片要复杂,但从另外角度看,DSC中断带来更大的灵活性。灵活性与稳定性一对矛盾,本文以MC56F8257为例,从分析DSC中断系统及其中断处理技术入手,阐述其中断处理方法,并给出处理步骤,为其应用提供指导。

1 MC56F8257中断系统

MC56F8257共有67个中断源、5个中断优先级。中断的请求是通过中断控制器模块控制的。中断控制器模块由中断源、优先级设置和控制部分组成,其框图如图1所示,主要用于配置中断优先级、解析中断请求,并且将中断向量交给CPU执行。

  

图1 中断控制器框图

从图1可以看出,在中断请求处理过程中,当有多个中断源发出请求(INT1…INTn)时,首先优先级别译码模块根据用户设置的优先级进行译码,译码后进入相应的优先级编码器进行编码,最后通过控制模块进行优先级的配置。控制模块根据DSP56800E核中的状态寄存器SR中的屏蔽等设置位,对编码后的中断源进行处理,处理后的结果反映在控制寄存器INTC_CTRL中的INT、VAB和IPIC位。

INT是中断位,该位反映内核中断的状态。当该位值为1时,有中断送入内核;否则,无中断送入内核。IPIC是中断优先级位,该位表示送入内核的中断源的优先级,也表示当前内核所接收的中断的最高优先级。VAB是中断向量信号,也是对应中断在中断向量表中的地址的[7:1]位[9]。

MC56F8257内核为16位增强型DSP56800E,该内核处理中断请求有两种模式:标准和快速中断处理模式[10]。MC56F8257标准中断处理模式具体流程如图2所示,该模式通过JSR指令,转向中断服务程序,占用一定数量的软件开销,但所有级别中断都支持该模式。一般中断处理的控制流程图如图2所示。

  

\  

  图2 一般中断处理的控制流程图

快速中断处理不需要执行JSR指令,如图3所示,而是通过快速中断向量地址寄存器获得中断服务程序首地址,节省了软件资源,但它只能用于中断优先级为2级的中断。具体采用何种模式,应根据实际应用需要进行设置。

2 MC56F8257中断设置方法

2.1 中断的关闭与开放

开放MC56F8257中某个模块中断,通常需要开放总中断及模块中断来实现。这两部分缺一不可,并且开放总中断在前,开放模块中断在后。同理,关闭MC56F8257中某个模块中断,需要关闭总中断及模块中断来实现,先关闭模块中断,再关闭总中断;如果允许中断嵌

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top