09第二章_中断_引导_第1页
09第二章_中断_引导_第2页
09第二章_中断_引导_第3页
09第二章_中断_引导_第4页
09第二章_中断_引导_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章DSP的硬件结构(7),2.12C54xDSP芯片的中断,一、DSP中断的概念与其他CPU的中断一样,DSP的中断也是一种由硬件或软件驱动的信号。中断信号使DSP暂停正在执行的程序,并转移执行中断服务程序。中断服务程序结束后返回继续执行原来被暂停的程序。C54x既支持软件中断,也支持硬件中断:1、软件中断:由指令(INTR,TRAP、RESET)触发的中断信号。2、硬件中断:由外围设备触发的中断信号。这种硬件中断又有两种形式:(1)受外部中断口信号触发的外部中断信号。(2)受片内外围电路信号触发的内部硬件中断。,当同时有多个中断出现时,将按照优先级的高低进行处理,按优先级可以将中断分为两类:第一类:可屏蔽中断。可以用软件屏蔽或开放的硬件和软件中断,C54x最多可支持16个用户可屏蔽中断,每种C54x器件仅使用这16个中断中的一个子集(如VC5402有14个)。当所有的可屏蔽中断请求时,优先级可以分为16级。第二类:非屏蔽中断。这类中断是不可屏蔽的。C54x对这类中断总是响应的,并从主程序转移到中断服务程序。C54x的非屏蔽中断包括所有的软件中断以及两个外部硬件中断:/RS和/NMI,优先级最高。软件中断不分优先级,立即执行。,可屏蔽与非屏蔽中断:,软件中断的执行:INTRK:使PC指向由K确定的中断向量地址,可使程序执行任意的中断服务程序。不管INTM为何值。TRAPK:使PC指向由K确定的中断向量地址,可使程序执行任意的中断服务程序。不管INTM为何值。INTR和TRAP指令的区别在于当执行“INTRK”时,ST1的INTM自动设为1,关断所有的中断。而执行“TRAPK”不影响INTM位。另外注意RESET指令与/RS的区别是RESET指令不影响PMST寄存器;不采集MP/MC引脚;不修改IPTR。,二、C54xDSP的中断向量地址,1、中断位置和优先级,十六进制,十进制,2、C54xDSP中断向量地址的计算,TMS320C54X中,中断向量地址由PMST寄存器中的9位中断向量地址指针IPTR和左移2位后的中断向量序号(中断号)K(中断向量序号031,左移两位后变成7位)所组成。IPTR(高9位)K2(低7位)例如:INT0的中断向量序号为16(10h),左移2位后变成40h。如果PMST寄存器的IPTR=001h,那么中断向量的地址就是00C0h。,31(10)=1F(16)=11111(2),例:复位时,PMST寄存器的9位中断向量指针IPTR为全1(IPTR=1FFh),而/RS硬件复位中断序号为0。,除了硬件复位向量以外,对于其他的中断向量,只要改变IPTR的值,就可以重新安排它们的地址。,三、中断标志寄存器(IFR)和中断屏蔽寄存器(IMR),中断标志寄存器和中断屏蔽寄存器都是存储器映像寄存器(IFR地址为01H,IMR地址为00H)。1、中断标志寄存器(IFR)当某个中断触发时,寄存器相应位置1,有四种情况可以将中断标志清0:(1)、中断得到处理;(2)、软件或硬件复位(3)、将1写到IFR的对应位(该位变成0),使尚未处理完的中断被清除;(4)、利用对应的中断号执行INTR指令,相应的中断标志位清0。,2、中断屏蔽寄存器(IMR)用来屏蔽外部和内部中断。要打开某个中断,当ST1中的INTM=0时,只要向IMR中相应位写1,就开放相应的中断。ST1中INTM位为中断总开关,INTM=1时,关闭所有的中断。IMR不能屏蔽/RS和/NMI中断。3、不同型号的芯片,IFR和IMR略有不同。,4、IFR和IMR位域安排,写1(变0)可以清除某个中断标志位,写1可以开放某个中断,四、中断处理过程,C54x处理中断分为三个阶段1、第一阶段,中断请求当硬件装置或软件指令请求中断时,将CPU的IFR中相应标志位置1。注:硬件中断分外部和内部两种,对于VC5402来说:来自外部中断口的中断:有/RS、/NMI、INT0INT3共6个(/RS和/NMI不占用IFR和IMR);来自片内外围电路的有:BRINT0、BXINT0、BRINT1(DMAC2)、BXINT1(DMAC3)、TINT0、TINT1(DMAC1)、HPINT、DMAC0、DMAC4、DMAC5共10个。软件中断都是由程序中的指令:INTR、TRAP和RESET产生的。软件中断指令“INTRK”和“TRAPK”可以用来执行任何一个中断服务程序。,2、第二阶段,响应中断对于软件中断和非屏蔽中断,CPU是立即响应的。对于可屏蔽中断,只有满足以下条件才能响应:A、优先级别最高(当同时出现一个以上中断时)。优先级别高B、状态寄存器ST1中的INTM位为0。总体开中断C、中断屏蔽寄存器IMR中相应位为1。相应位开中断CPU响应中断时执行:(1)将当前PC值压到栈顶;(2)执行分支转移指令,用中断向量地址加载PC;(3)发出中断响应信号/IACK,清除相应的中断标志位。,3、第三阶段,执行中断服务程序CPU响应中断以后,执行下列操作:(1)执行中断服务程序;(2)中断返回,从堆栈弹出返回地址加载PC;(3)继续执行被中断了的程序。,4、C54xDSP中断流程图,2.13自举加载,1、C54x的自举引导,C54xDSP的启动过程是在上电时把用户的程序代码装载到DSP的程序空间,并且正确的导入用户程序的入口地址。C54x支持的引导模式:(1)HPI总线;(2)串行E2PROM;(3)一个外部8位或16位并行EPROM;(4)8位或16位的并行I/O口;(5)任何一个串行口;(6)用户自定义的地址热自举。,2、自举方式的选择在硬件复位期间,DSP探测MP/MC引脚信号:()如果MP/MC=1,DSP从外部程序存储器的FF80h处执行用户程序;()如果MP/MC=0,DSP处于微计算机工作方式,就从片内ROM的FF80h处执行用户程序。地址FF80h处是一条指向中断向量表的分支转移指令(BDF800h),使程序直接跳转至F800h处执行自举引导程序。复习:程序存储空间高2K,即F800h-FFFFh是TI公司定义的内容,包括自举加载程序,u和A律压扩表,sine函数表,自检和中断向量表。,复习:C54xDSP片内程序存储器,自举引导程序:、自举加载前进行初始化初始化的内容如下:INTM=1,(禁止所有可屏蔽中断)OVLY=1,(将片内RAM映象到程序/数据空间)SWWSR=7FFFh,(所有外部程序、数据和IO空间都插入7个等待状态)BSCR=FFFFh,(分区切换控制寄存器设定片外存储器按4K字分区,在程序和数据空间转换时,插入一个等待周期)B、检查HPI接口或串行E2PROM引导:如果INT2引脚为低电平,则采用HPI引导装载模式;否则,如果INT3引脚为低电平,则采用串行E2PROM引导装载模式;,C、如果INT2和INT3都为高电平,则使I/O选择信号为低电平即:/IS=0,然后从地址为FFFFh的I/O端口读入自举程序选择字(BootRoutineSelection,BRS)。,C54x自举流程图,、C54x的自举引导的实现,(1)、从HPI自举加载,HOST和C54x具有共享的片内存储器(1000h17FFh)。当选择HPI自举加载方式时,要将INT2和HINT引脚连在一起,当C54x拉低HINT时,C54x的中断标志寄存器IFR的第2位将置位,自举加载程序等待20个机器周期后读出INT2中断标志位,如果INT2被识别,自举加载程序将启动HPI自举加载。(i)对于标准HPI接口如C542,DSP处于复位状态时,HPI自动设置为HOM模式,在HOM模式下主机将用户代码写到DSP片内HPI存储块中,DSP复位后直接从起始地址(1000h)执行程序。(ii)对于增强型HPI接口都是共享模式如VC5402,采用的方法是先把0 x7E和0 x7F两个单元写入0,DSP将重复查询0 x7E和0 x7F单元是否为0,在这个过程中,主机把用户代码转移到DSP存储器以后,再把代码的起始地址写入0 x7E和0 x7F。DSP一旦检测到0 x7F不等于0,就会自动执行0 x7E和0 x7F内容指定的起始地址。0 x7E的内容装入XPC0 x7F的内容装入PC,HPI自举加载的HINT连接方法:,DSP先把HINT拉低事后HOST再把HINT拉高,(2)、串口E2PROM自举加载,如果INT2未被识别,DSP将检测INT3。在对INT3进行检测之前,引导程序会在BDX1引脚上产生一个由高到低的电平变化。这时如果将INT3引脚和BDX1引脚相连,就会触发INT3中断;也可以在复位后的30个机器周期之内触发INT3中断。引导程序对McBSP1进行初始化,使其工作在使用内部时钟和帧同步信号。引导程序从E2PROM的0地址开始读取数据,并判断是否为一个有效的自举表。如果确认具有有效的关键字,引导程序继续读自举表的剩余部分;若无效,则重新读取E2PROM。串行E2PROM自举方式可以装载多个程序段到程序存储空间,引导程序先将用户程序入口地址保存,然后按照所读取的段大小和段目标地址进行程序装载,直到读取的下一个段大小为0,则判为装载结束,并跳转到程序入口地址,执行用户程序。,地址数据00h-01h08AAh有效自举表关键字02h-09h忽略0ah-0bh程序入口地址XPC值0ch-0dh程序入口地址PC值0eh-0fh第一段大小10h-11h段目标地址XPC12h-13h段目标地址PC.段内程序具体内容.0000h(引导表结束标志),有效关键字:08AAh8位模式10AAh16位模式,(3)、从EPROM并行加载要加载的程序代码放在并行EPROM(8或16位)中,加载时将这些程序代码传送到程序存储器。从FFFFh读入的自举程序选择(BRS)字的SRC域(BRS的72位)规定了源地址的6个最高有效位。由此构成EPROM的16位地址。,BRS,EPROM自举表包含的信息,自举加载器从(SRC+10个0)地址将EPROM的程序代码全部传送到程序存储器以后,立即执行分支转移到目的地址,并执行程序代码。对于8位传送方式:低8位是数据,而C54x并没有自动屏蔽高8位,所以需要注意D15-D8要下拉。,(4)、热自举加载,热自举方式是按照用户定义的地址,改变C54x的程序执行方向。热自举方式不传送自举表,而是按照自举加载程序读入的BRS中所规定的地址开始执行。热自举时,程序计数器PC等于BRS中的72位作为地址的高6位(1510),后面再加上10个0。,BRS,(5)、从I/O口自举加载,I/O自举加载方式下,从IO空间0000h异步传送程序代码到DSP内部或外部程序存储器,利用/BIO和XF两根口线握手与外部器件进行通讯。可以有两种数据传输模式:8位和16位。当采用8位模式时,从I/O空间0000h读入的数据只取低8位,而自动忽略总线上的高8位。按高位在前,低位在后约定,连续读出两个8位字节形成一个16位字。C54x收到的最前面两个16位字,一定是程序的目的地址和程序代码长度。代码传送完毕,C54x自举加载程序就转移到目的地址,开始执行程序代码。,BRS,I/O自举引导数据顺序说明,(6)、从串行口自举加载,从串行口自举加载需要自举程序选择字(BRS)提供更多的信息,需要确定是按字还是按字节传送数据、串行口的类型,以及FSR和CLKR的信号是输入还是输出等。串行传送数据时,DSP先把XF引脚拉低,主机开始传送数据,头两个16位字,分别是程序的目的地址和程序代码长度。代码传送完毕,C54x自举加载程序就转移到目的地址,开始执行程序代码。,BRS,2.14VC5402的引脚说明,C5402器件及外引线说明,TMS320VC5402为LQFP封装,外引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论