1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,DSP,原 理 及 应 用,主 讲:,黄灿水,电 话:,13960992859,Email,:,fzu_cshuang,基于,TMS320LF240 x,系列,课堂授课时间分配,:,(32,学时,),第,1,章,TMS320LF240 x,概述,2,第,2,章,TMS320LF240 x,系列,DSP,内部资源介绍,4,第,3,章,TMS320C240 x,寻址方式和指令系统,4,第,4,章,CCS3.1,集成调试环境,4,第,8,章 数字量(,I/O,)模块,4,第,9,章 事件管理器模块(,EVM,),
2、6,第,10,章,AD,转换模块,4,第,11,章 串行外设接口模块,(SPI),第,12,章 串行通信接口模块,(SCI),第,13,章,CAN,控制器模块,第,14,章 应用实例,4,第,2,章,TMS320LF240 x,系列,DSP,内部资源介绍,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,2.2,存储器和,I/O,空间,2.3,系统配置和中断,2.4,程序控制,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,中央处理单元,(CPU),输入定标器,乘法单元,中央算术逻辑单元,2.1 TMS320LF240 x,系列,D
3、SP,的,CPU,内部功能模块介绍,1,、输入定标移位器,是一个,16,位到,32,位的滚动式左向移位器;,能将输入的,16,位,数据的,0,15,位在本周期内向左移位以得到,32,位,的输出;,本操作不需要额外的周期。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,移位器的输入来源,数据读总线,(DRDB),,该输入值来自指令操作数据所引用的数据存储单元;,程序读总线,(PRDB),该输入是指令操作数给出的常数。,移位量的来源,嵌在指令字中的常数,。把移位量放在指令字中,该程序代码使用特定的数据比例;,临时寄存器,TREG,提供,。根据,TREG,的值移位,
4、数据的定标因子是动态确定的,可适应不同的系统要求,。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,输入移位器的输出值,最低有效位,LSBs,段填,0,;,未使用的最高有效位,MSBs,填,0,或者根据状态寄存器,ST1,的,SXM,位的值来确定是否需要进行符号扩展,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,2,、乘法器,1616,位的硬件乘法器,,在单个周期内产生一个,32,位乘积结果,的有符号或无符号数;,除了,MPYU,指令,所有的乘法指令都执行有符号的乘法操作。,2.1 TMS320LF240 x,系列,DSP,的
5、CPU,内部功能模块介绍,乘法器的输入,16,位临时寄存器,(TREG),,在乘法之前把数据读总线的值加载到,TREG,;,数据读总线的数据存储器值和程序读总线的程序存储器值。,乘法器的输出,两个输入值相乘后的,32,位结果保存在乘积寄存器,(PREG),中;,PREG,的输出连接到,32,位的乘积定标移位器,(PSCALE),,通过,PSCALE,将乘积结果送到,CALU,或数据存储器。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,乘法定标移位器,(PSCALE),输入,:该移位器的,32,位输入到,PREG,的输出。,输出,:完成移位后,全部,32,位
6、送到,CALU,,或将结果的,16,位存到数据存储器。,移位模式,:该移位器可用,4,种移位模式,这些模式由状态寄存器,ST1,的乘积移位方式,(PM),位确定。,注:,PREG,的内容保持不变,其值被复制到,PSCALE,中,进行移位。,PM,移位,说明,00,不移位,乘积结果没有移位地送到,CALU,单元或数据总线,01,左移,1,位,移去在一次,2,的补码乘法运算中产生的,1,位附加符号位,以得到一个,Q31,的乘积,10,左移,4,位,当与一个,13,位的常数相乘时,移去在,1613,位的,2,的补码乘法运算中产生的,4,位附加符号位,以生成一个,Q31,的乘积,11,右移,6,位,对
7、乘积结果进行定标,以使得运行,128,次的乘积累加器不会溢出,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,乘法器相关指令及操作,用,LT,指令将数据从数据总线载入,TREG,提供,1,操作数,,MPY,指令提供第,2,个操作数或从数据总线上得到。,使用,MPY,指令时,可以对一个,13,位的立即数进行操作,每两个指令周期得到一个乘积。,代码执行多路乘法和乘积求和运算时,,CPU,支持流水线操作。,指令,操作,LT,把通过,CALU,得到的前次乘积结果装载到,TREG,LTP,把,PREG,的值装载入,ACC,LTA,把,PREG,的值加载到,ACC,DMOV
8、LTD,把,PREG,的值加到,ACC,,移位,TREG,输入数据到数据存储器的下一地址,LTS,从,ACC,中减去,PREG,的值,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,乘法器相关指令及操作,乘且累加并带动数据移动指令,MAC,和,MACD,充分利用了乘法器的计算宽度,允许两个操作数被同时处理。,无符号乘法运算,MPYU,指令执行大大方便了用于扩展精度的算术运算。,平行并累加前次乘积指令,SQRA,和平方并减去前次乘积指令,SQRS,传送相同的数到乘法器的两个输入端,以对一个数据存储器单元的值进行平方运算。,存储乘积的高字节指令,SPH,和低字节指
9、令,SPL,,可将装入,PREG,的,32,位乘积结果传送到,CALU,单元或数据存储器。,在,执行中断服务程序前必须对,PREG,的值,进行保存。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,3,、中央算术逻辑部分,中央算术逻辑单元,(CALU),:实现各种算术、逻辑功能;,32,位累加器,(ACC),:接收来自,CALU,的输出,并可以根据进位位,(C),的值来实现移位;,输出移位器,:将,ACC,的高位字和低位字在送入数据存储器之前进行移位。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,中央算术逻辑单元,(CALU)
10、运算功能,:,16,位加、,16,位减、布尔逻辑操作、位测试、移动和循环。,输入,:一个由累加器提供,另一个由乘积定标移位器或输入数据定标移位器提供。,输出,:其结果送至,32,位累加器,进行移位。,相关状态位,:符号扩展模式位,SXM(ST1,第,10,位,),确定,CALU,是否进行符号扩展。,SXM=0,,抑制符号扩展;,SXM=1,,进行符号扩展。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,累加器,(ACC),功能,:对送到,ACC,的,CALU,的运算结果进行单个移位和循环操作。,输入,:,CALU,的运算结果。,输出,:,ACC,的高,16,
11、位和低,16,位中任何一个都可送到输出定标移位器,经定标移位后存入数据存储器。,相关状态位,状态位,状态寄存器,说明,进位位,C,ST1,第,9,位,C=0:,减结果产生借位,/,加结果未产生进位;,C=1:,加结果产生进位,/,减结果未产生借位;左移或左循环,,ACC,最高位送至,C,,否则最低位送至,C,。,溢出方式位,OVM,ST0,第,11,位,决定,ACC,如何反映算术运算的溢出。,OVM=1:,正溢出,,ACC,填充最大正数,否则填充最大负数;,OVM=0:,正常溢出。,溢出标志位,OV,ST0,第,12,位,ACC,未发生溢出时,,OV=0,;否则,OV=1,且被莎存。,测试,/
12、控制标志位,TC,ST1,第,11,位,根据被测试位的值,该位被置,0,或,1,。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,输出定标移位器,将累加器输出的内容左移,0,7,位,移动位数由存储器指令指定,然后用,SACH,或,SACL,指令将移位器中的高位字或低位字保存到数据存储器中,,ACC,的内容不变。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,4,、辅助寄存器算术逻辑单元,(ARAU),在,CALU,操作的同时执行,8,个辅助寄存器,(AR7AR0),上的算术运算。,8,个辅助寄存器提供了灵活而有效的间接寻址。
13、通过把数值,07,写入状态寄存器,ST0,第,3,位的辅助寄存器指针,(ARP),,选择一个辅助寄存器作为当前,AR,。,当前,AR,存放被访问的数据存储器的地址,根据指令的需要分别向数据读,/,写地址总线读,/,写数据,使用完该数据后,当前,AR,的内容可以被,ARAU,增减,可实现无符号,16,位算术运算。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,ARAU,可执行的操作,将辅助寄存器值增、减,1,,或者增、减一个变址量,(,借助任何支持间接寻址的指令,),。,使辅助寄存器的值加,/,减一个常数,(ADRK/SBRK,指令,),,该常数是指令字的低,
14、8,位。,将,AR0,的内容与当前,AR,的内容进行比较,并把结果放入状态寄存器,ST1,的测试,/,控制位,TC(CMPR,指令,),。结果经数据写总线,DWEB,传送到,TC,。,辅助寄存器的用途,数据存储器地址存储器;,通过,CMPR,指令,使辅助寄存器支持条件分支、调用及返回;,用作暂存单元;,用作软件计数器,按需要对其进行加、减。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,5,、状态寄存器,两个状态寄存器,ST0,和,ST1,,含有各种状态和控制位;,可保存在数据存储器,也可从数据存储器加载,可以保存和恢复子程序的机器状态;,加载状态寄存器,LS
15、T,指令写,ST0,和,ST1,,保存状态寄存器,SST,指令读,ST0,和,ST1,;,INTM,位不受,LST,指令的影响;,寄存器中每一位均可由,SETC,和,CLRC,指令单独置位和清,0,。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,ARB,辅助寄存器指针缓冲器,:当,ARP,被加载到,ST0,,除了使用,LST,指令外,原有的,ARP,值被复制到,ARB,中;当通过,LST#1,指令加载,ARB,时,把相同的值复制到,ARP,。,ARP,辅助寄存器指针,:,ARP,选择间接寻址时使用的当前,AR,;当,ARP,被加载时,原有的,ARP,值被复制
16、到,ARB,寄存器中;在讲解寻址时,,ARP,可由存储器相关指令改变,也可由,LARP,、,MAR,和,LST,指令改变;当执行,LST#1,时,,ARP,也加载与,ARB,相同的值。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,OV,溢出标志位,:该位锁存的值指出,CALU,是否发生了溢出;发生溢出,,OV=1,,直到复位、溢出时条件转移、无溢出时条件转移或,LST,指令执行时才被清,0,。,OVM,溢出方式位,:该位决定如何管理,CALU,的溢出。,SETC,和,CLRC,指令分别可将该位置,1,或清,0,;,LST,指令也可修改该位;,OVM=0,,,
17、ACC,结果正常溢出;,OVM=1,,根据发生的溢出,把,ACC,置为最大正值或负值。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,CNF,片内,DARAM,配置位,:,CNF=0,,可配置双口,RAM,被映射到数据存储空间;,CNF=1,,可配置双口,RAM,被映射到程序;该位可通过,SETC,、,CLRC,和,LST,指令修改;,RS,复位时该位清,0,。,TC,测试,/,控制标志位,:,TC=1,,由,BIT,或,BITT,指令测试位为,1,;利用,NORM,指令测试时,,ACC,的,2,个最高有效位“异或”为真;,CMRP,所测试的当前,AR,和,A
18、R0,之间的比较条件成立。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,INTM,中断模式位,:该位用来允许或禁止所有可屏蔽中断。通过,SETC,和,CLRC,指令置,1,或清,0,;该位不影响不可屏蔽中断,RS,和,NMI,;,LST,指令不影响该位;发生中断及复位时置,1,;,INTM=0,,允许全部没有被屏蔽的中断;,INTM=1,,禁止全部没有被屏蔽的中断。,DP,数据存储器页指针,:当指令使用直接寻址方式时,这个,9,位的,DP,寄存器与指令寄存器的低,7,位一起形成一个完整的数据存储器,16,位地址。,LST,和,LDP,指令可修改该字段。,2.
19、1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,SXM,符号扩展模式位,:,SXM=1,数据通过定标移位器传送到累加器时产生符号扩展,,SXM=0,抑制符号扩展;该位不影响某些指令的基本操作,如,ADDS,指令不管,SXM,位的状态如何都抑制符号扩展;通过,SECT,、,CLRC,和,LST,指令对该位进行置,1,、清,0,和加载;复位时该位置,1,。,C,进位位,:,C=1,,加法结果产生进位或减法结果未产生借位;,C=0,,反之;移位,16,位的,ADD,指令只能使,C,位置,1,,,SUB,指令只能使,C,位清,0,,不会对,C,位产生其他影响;移,1,位、循
20、环指令、,SETC,、,CLRC,和,LST,指令均影响该标志位;条件转移、调用和返回指令可根据,C,的状态执行;复位时该位置,1,。,2.1 TMS320LF240 x,系列,DSP,的,CPU,内部功能模块介绍,XF,引脚状态位,:该位确定通用输出引脚,XF,的状态;通过,SECT,、,CLRC,和,LST,指令对该位进行置,1,、清,0,和加载;复位时该位置,1,。,PM,乘积移位模式,:该位决定,PREG,的值是送往,CALU,或数据存储器时如何移位;,SPM,和,LST,指令可以对该位加载;复位时该位清,0,。,PM=00,,乘法器,32,位乘积不经移位送到,CALU,或数据存储器;
21、PM=01,,送到,CALU,之前,,PREG,的输出左移,1,位,(,低位填,0),;,PM=10,,送到,CALU,之前,,PREG,的输出左移,4,位,(,低位填,0),;,PM=11,,,PREG,输出进行符号扩展右移,6,位。,注,:,PREG,的内容保持不变,其值被拷贝到乘积移位器中进行移位。,2.2,存储器和,I/O,空间,增强的哈佛结构,三组并行总线,程序地址总线,(PAB),数据读地址总线,(DRAB),数据写地址总线,(DWAB),三个可独立选择的空间,程序存储器,(64K,字,),数据存储器,(64K,字,),I/O,空间,(64K,字,),注意,:LF240 x DS
22、P,的所有片内外设的寄存器均映射在数据存储器空间。,2.2,存储器和,I/O,空间,1,、程序存储器,保存程序代码及数据表信息和常量,寻址范围为,64K,,包括片内,DARAM,和片内,FLASH,访问片外程序地址空间时,,DSP,自动产生一个访问外部程序地址空间的信号,PS,2.2,存储器和,I/O,空间,决定程序存储器的配置,两个因素,CNF,位。CNF位是状态寄存器ST1的第12位,决定DARAM中的B0块配置在数据存储器空间,还是配置在程序存储器空间。,CNF=0,,,256,字的B0块被映射到数据存储器空间。,CNF=1,,,256,字的B0块被映射到程序存储器空间。,复位时,CNF
23、0,B0块被映射到数据存储器空间。,MP/MC,引脚。该引脚决定是从片内Flash读取指令,,,还是从外部程序存储器读取指令。,MP/MC=0,:微控制器方式。此时访问的是片内程序存储器(片内Flash)0000h-7FFFh空间。,MP/MC=,1,:微处理器方式。此时访问的是片外程序存储器的0000h-7FFFh空间。,注,:无论,MP/MC引脚为何值,LF240 xDSP都是从程序存储器空间的0000h单元开始执行程序。,2.2,存储器和,I/O,空间,2,、数据存储器,寻址范围,64K,字,:,前,32K,字,(,0000h-7FFFh,)是内部数据存储器空间,包括了,DARAM,和片
24、内外设的映射寄存器;,后,32K,字,(,8000h-FFFFh,)空间的存储器为外部数据存储器。,片内有,3,个,DARAM,块,:,B0,、,B1,和,B2,块。,B0,块,:,即可为数据存储器,也可配置为程序存储器。,B1,、,B2,块,:,只能配置为数据存储器。,2.2,存储器和,I/O,空间,两种寻址方式:,直接寻址,和,间接寻址,直接寻址时,,128字为一页,的数据块来对数据存储器进行寻址。,右图显示了这些块是如何被寻址的,。,全部64K的数据存储器分为512个数据页,,其标号从,0-511,。当前页由状态寄存器ST0中的9位,数据页指针,(,DP,),值来确定,。,因此,当使用,
25、直接寻址,指令时,用户必须事先指定,数据页,,并在访问数据存储器的指令中指定,偏移量,,偏移量为,7位,。,数据存储器页,2.2,存储器和,I/O,空间,编程时要注意,,,访问下面的数据存储器的地址空间是非法的,,并,会对NMI置位,。除了以下地址,任何对外设寄存器映射中的,保留地址,的访问也是,非法的,。,0080h-00FFh,701Fh-71FFh(CAN内部的),0500h-07FFh,7230h-73FFh(部分在CAN内部),1000h-700Fh,7440h-74FFh,7030h-703Fh,7540h-75FFh,7060h-706Fh,7600h-77EFh,77F4h-7
26、FFFh,7080h-708Fh,见,P29,图,2.6,2.2,存储器和,I/O,空间,第,0,页数据地址映射,数据存储器中包括,存储器映射寄存器,,它们位于数据存储器的,第,0,页,(地址,0000h-007Fh,),下表是对第,0,页数据地址映射的详细说明:,以零等待状态访问,两个映射寄存器,:,中断屏蔽寄存器(,IMR,),和,中断标志寄存器(,IFR,),测试,/,仿真保留区,被测试和仿真系统用于特定信息发送。因此,不能对测试,/,仿真地址进行操作,。,地址,名称,描述,0000h0003h,保留,0004h,IMR,中断屏蔽寄存器,0005h,保留,0006h,IFR,中断标志寄存
27、器,0023h0027h,保留,002Bh002Fh,保留用作测试和仿真,0060h007Fh,B2,双口,RAM(DARAM B2),第,0,页数据地址映射,2.2,存储器和,I/O,空间,数据存储器配置,CNF,位决定,B0,块的配置,,CNF,位是状态寄存器,ST1,的第,12,位。,CNF,0,,,B0,块被映射为数据存储器空间;,复位时,,CNF,0,;,CNF,1,,,B0,块被映射到程序存储器空间;,2.2,存储器和,I/O,空间,3,、,I/O,空间,寻址范围为,64K,字。,I/O,空间访问的,控制信号为,IS,。,所有,64K,的,I/O,空间均可以用,IN,和,OUT,指
28、令来访问,。当执行,IN,或,OUT,指令时,信号,IS*,变为有效,可作为外部,I/O,设备的片选信号。,访问外部,I/O,端口与访问程序存储器、数据存储器,复用相同的的地址总线和数据总线,。,数据总线的宽度为,16,位,,若使用,8,位的外设,,即可使用,高,8,位,数据总线,也可使用,低,8,位,数据总线,以适应特定应用的需要。,当访问,片内,的,I/O,空间时,信号,IS,和,STRB,变成无效,外部地址和数据总线仅仅当访问外部,I/O,地址时有效。,LF2407 I/O,空间地址映射图,2.2,存储器和,I/O,空间,下面是使用汇编语言的直接访问I/O空间的实际例子,:,IN,DAT
29、2,0AFEEh,;从端口地址为AFEEh的外设,;读数据,并存入,DAT2,寄存器,OUT,DAT2,0CFEFh,;输出数据存储器DAT2的内容,;到端口地址为CFEFh的,外设,下面是访问等待状态发生器的寄存器的实例:,IN,DAT2,0FFFFh,;从等待状态发生器读取数据到DAT2寄存器,OUT,DAT2,0FFFFh,;将DAT2寄存器的数据写入等待状态发生器,使用等待状态发生器,课时小结,DSP,内部功能模块的输入移位定标器、硬件乘法器、中央逻辑算术单元、辅助寄存器算术逻辑单元的输入和输出?注意数据的位数(,16,或,32,位),状态寄存器各位的作用?如何设置?(重点),程序存储
30、空间大小?分配?影响其分配的因素?,数据存储空间大小?分配?影响其分配的因素?,I/O,空间大小?数据和地址线?,等待状态发生器,?,2.3,系统配置和中断,本节介绍,LF240 x的,系统配置寄存器,和,中断模块,系统配置,:对DSP片内的功能模块进行用户配置,中断模块,:主要包括中断优先级和中断向量表、外设中断扩展控制器(PIE)、中断向量、中断响应的流程、,中断响应的延时,、CPU中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。,2.3,系统配置和中断,1,、系统配置寄存器,(1),、,系统控制和状态寄存器,1,(,SCSR1,),SCSR1,映射到数据存储器空间的,
31、7018h,,各位如下:,位,15,:保留,位,14,:,CLKSRC,,为,CLKOUT,引脚输出时钟源的选择位,0,CLKOUT,引脚输出,CPU,时钟,;,1,CLKOUT,引脚输出,WDCLK,时钟,。,位,13,、,12,:,LPM1,,,LPM0,,,低功耗模式选择,,指明在,执行,IDLE,指令后进入,哪一种低功耗模式,。,00,进入,IDLE1(LPM0),模式;,01,进入,IDLE2(LPM1),模式;,1x,进入,HALT(LPM2),模式。,2.3,系统配置和中断,位119,:CLK PS2-CLK PS0,(PLL)时钟预定标选择位,,选择输入时钟频率,fin,的,倍
32、频系数,,,如下表,(,P,.31),所示。,CLKPS2,CLKPS1,CLKPS0,系统时钟频率,0,0,0,4,fin,0,0,1,2,fin,0,1,0,1.33,fin,0,1,1,1,fin,1,0,0,0.8,fin,1,0,1,0.66,fin,1,1,0,0.57,fin,1,1,1,0.5,fin,2.3,系统配置和中断,位8,:保留,位7,:ADC,CLKEN,,,ADC,模块,时钟使能控制位,0,-禁止ADC模块时钟(节能),1,-使能ADC模块时钟,且正常运行,位,6,:,SCICLKEN,,,SCI,模块,时钟使能控制位,0,-禁止SCI模块时钟(节能),1,-使能
33、SCI模块时钟,且正常运行,位,5,:,SPICLKEN,,,SPI,模块,时钟使能控制位,0,-禁止SPI模块时钟(节能),1,-使能SPI模块时钟,且正常运行,2.3,系统配置和中断,位,4,:,CANCLKEN,,,CAN,模块,时钟使能控制位,0,-禁止CAN模块时钟(节能),1,-使能CAN模块时钟,且正常运行,位,3,:,EVBCLKEN,,,EVB,模块,时钟使能控制位,0,-禁止EVB模块时钟(节能),1,-使能EVB模块时钟,且正常运行,位,2,:,EVACLKEN,,,EVA,模块,时钟使能控制位,0,-禁止EVA模块时钟(节能),1,-使能EVA模块时钟,且正常运行,位1
34、保留,位0,:ILLADR,,,无效地址检测位,检测到无效地址时,,该位置,1,。置1后需软件来清0,即向该位写0即可。,复位时,该位为,0,。,注意,:任何无效的地址会导致不可屏蔽中断(NMI)事件发生,。,2.3,系统配置和中断,(2),、,系统控制和状态寄存器,2,(,SCSR2,),SCSR2,映射到数据存储器空间的,7019h,,各位如下:,位,15-7,:保留,位,6,:,I/P QUAL,时钟输入限定,它限定输入到LF240 x的,CAP1-6、XINT1-2、ADCSOC、PDPINTA/PDPINTB,引脚上的最小脉冲宽度,。脉冲宽度只有达到这个宽度之后,内部的输入状态才
35、会改变。,0,锁存脉冲至少需要,5个时钟周期,;,1,锁存脉冲至少需要,11个时钟周期,。,如这些,引脚作,I/O,使用,,则,不使用输入时钟限定,电路。,2.3,系统配置和中断,位,5,:WD保护位,,可用来禁止WD工作。,该位是个只能清除的位,复位后,1。通过向该位写1对其清0。,0,-保护WD,,WD,不能被软件禁止,1,-复位时的默认值,可通过软件来,禁止,WD工作,位,4,:,XMIF HI-Z。该位控制外部存储器接口信号(XMIF)。,0,-所有XMIF信号为正常驱动模式(非高阻态),1,-所有XMIF信号处于高阻态,注意,:该位仅对LF2407/LF2407A有效,对其它型号为保
36、留位,2.3,系统配置和中断,位,3,:使能位。这位反映了BOOTEN引脚在复位时的状态。,0,-使能引导ROM。地址,0000h-00FFh被片内引导ROM块占用,。禁止用FLash存储器,1,-禁止引导ROM。LF2407片内Flash,程序存储器,映射地址范围为,0000h-7FFFh,。,位,2,:,MP/MC(微处理器微控制器选择)。,0,-DSP设置为,微控制器方式,,片内FLASH映射到程序存储器空间,地址为0000h-7FFFh。,1,-,DSP,设置为,微处理器方式,,程序,空间,0000h-7FFFh,被映射到片外程序存储器空间,(,必须外扩外部程序存储器,),位,1-0,
37、SARAM,的程序,/,数据空间选择,00,-,地址空间不被映射,该空间被分配到外部存储器,0l,-SARAM 被映射到片内程序空间,10,-SARAM 被映射到片内数据空间,11,-SARAM 被映射到片内程序空间,又被映射到片内数据空间,2.3,系统配置和中断,2.3,系统配置和中断,2,、中断优先级和中断向量表,LF2407 DSP具有,3个不可屏蔽中断,和,6个级别的可屏蔽中断,(INT1-INT6)。,对多个外设的中断需求采用了,中断扩展设计,来满足。,在每级可屏蔽中断(INT1-INT6)中又,有多个中断源,,,有唯一的中断入口地址向量,。,中断优先级,中断名称,CPU,中断向
38、量,描述,1,Reset,0000h,复位引脚和,WD,溢出,2,保留,0026h,用于仿真,3,NMI,0004h,软件中断,不可屏蔽中断源的优先级和中断入口地址向量表,2.3,系统配置和中断,中断优先级,中断名称,外设中断向量,描述,4,PDPINTA,0020h,功率驱动保护中断,5,PDPINTB,0019h,功率驱动保护中断,6,ADCINT,0004h,高,优先级,ADC,中断,7,XINT1,0001h,高,优先级外中断,8,XINT2,0011h,高,优先级外中断,9,SPINT,0005h,高,优先级,SPI,中断,10,RXINT,0006h,高,优先级,SCI,接收中断,
39、11,TXINT,0007h,高,优先级,SCI,发送中断,12,CANMBINT,0040h,高,优先级,CAN,邮箱中断,可屏蔽中断源的优先级和中断入口地址向量表,INT1(,级别,1),2.3,系统配置和中断,中断优先级,中断名称,外设中断向量,描述,13,CANMBINT,0041h,高,优先级,CAN,错误中断,14,CMP1INT,0021h,比较器,1,中断,15,CMP2INT,0022h,比较器,2,中断,16,CMP3INT,0023h,比较器,3,中断,17,T1PINT,0027h,定时器,1,周期溢中断,18,T1CINT,0028h,定时器,1,比较溢中断,19,T
40、1UFINT,0029h,定时器,1,下溢中断,20,T1OFINT,0029h,定时器,1,上溢中断,21,CMP4INT,0024h,比较器,4,中断,22,CMP5INT,0025h,比较器,5,中断,23,CMP6INT,0026h,比较器,6,中断,24,T3PINT,002Fh,定时器,3,周期溢中断,25,T3CINT,0030h,定时器,3,比较溢中断,26,T3UFINT,0031h,定时器,3,下溢中断,27,T10FINT,0032h,定时器,3,上溢中断,INT2(,级别,2),2.3,系统配置和中断,中断优先级,中断名称,外设中断向量,描述,28,T2PINT,002
41、Bh,定时器,2,周期溢中断,29,T2CINT,002Ch,定时器,2,比较溢中断,30,T2UFINT,002Dh,定时器,2,下溢中断,31,T2OFINT,002Eh,定时器,2,上溢中断,32,T4PINT,0039h,定时器,4,周期溢中,33,T4CINT,003Ah,定时器,4,比较溢中断,INT3(,级别,3),2.3,系统配置和中断,中断优先级,中断名称,外设中断向量,描述,34,T4UFINT,003Bh,定时器,4,下溢中断,35,T4OFINT,003Ch,定时器,4,上溢中断,36,CAP1INT,0033h,比较器,1,中断,37,CAP2INT,0034h,比较
42、器,2,中断,38,CAP3INT,0035h,比较器,3,中断,39,CAP4INT,0036h,比较器,4,中断,40,CAP5INT,0037h,比较器,5,中断,41,CAP6INT,0038h,比较器,6,中断,INT4(,级别,4),2.3,系统配置和中断,中断优先级,中断名称,外设中断向量,描述,42,SPINT,0005h,低优先级,SPI,中断,43,RXINT,0006h,低优先级,SCI,接收中断,44,TXINT,0007h,低优先级,SCI,发送中断,45,CANMBINT,0040h,低优先级,CAN,邮箱中断,46,CANERINT,0040h,低优先级,CAN,
43、错误中断,INT5(,级别,5),2.3,系统配置和中断,中断优先级,中断名称,外设中断向量,描述,47,ADCINT,0004h,低优先级,ADC,中断,48,XINT1,0001h,低优先级,外中断,49,XINT2,0011h,低优先级,外中断,INT6(,级别,6),2.3,系统配置和中断,3,、外设中断扩展控制器,LF240 x CPU内核提供给用户:,6级可屏蔽中断,INT1-INT6,。,每1级别又包含多个外设中断请求,,所以用一个外设中断扩展(PIE)控制器,专门来管理来自各种外设或外部引脚的数十个中断请求,。,外设中断扩展模块图,2.3,系统配置和中断,中断请求层次和结构,外
44、设中断个数很多,用,一个两级中断结构,来扩展可响应的中断个数,。,中断请求/应答,硬件逻辑,和,中断服务程序,软件都有,两级层次的中断,。,在低层次中断,,从几个外设来的外设中断请求(PIRQ)在中断控制器处进行或运算,产生一个,INTn(n=1-6)中断请求,。,在高层次中断,,从INTn中断请求产生一个到,CPU的中断请求,。,2.3,系统配置和中断,如果一个引起中断的外设事件发生且相应的中断使能位被置,1,,则,会产生一个外设到中断控制器的中断请求,。,如果一个外设既可产生高级的中断请求,又可产生低级中断请求,(,如,SCI,、,SPI,、,ADC,等,),,对应的中断优先级位的值也被送
45、到,PIE,来进行判断。,中断请求,(PIRQ),标志位,一直保持到,中断应答自动清除,或,用软件,将其清除。,在高层次中断,,或逻辑运算的多个外设中断请求,INTn,产生一个到,CPU,的中断请求,它是,2,个,CPU,时钟脉冲宽,的低电平脉冲。,当,多个外设同时发出中断请求时,,,CPU,总是,响应优先级高,的中断请求。,注意,:外设中断请求标志位是在,CPU,响应中断时自动清除,即在高层次中断时清,0,,而不是在低层次中断时,清,0,。,2.3,系统配置和中断,4,、,中断,向量,当,CPU,接受中断请求时,它并不知道是哪一外设事件引起的中断请求。,为了使,CPU,能够区别不同外设引起的
46、中断事件,需,经,PIE,译码,,,决定哪个中断请求被响应,。,某个外设的中断请求有效时,都会产生,唯一的外设中断向量,被装载到外设中断向量寄存器,(PIVR),。,CPU,应答外设中断请求时,从,PIVR,中读取相应的中断向量,并产生一个转到该,中断服务子程序,(GISR),入口的向量。,2.3,系统配置和中断,LF240 x,有,两个中断向量表:,CPU,向量表,和,外设向量表,CPU,向量表,用来得到响应中断请求的,一级,通用中断服务子程序,(GISR),。,外设向量,表用来获取响应某,外设,事件的特定中断服务子程序,(SISR),。,在一级通用中断服务子程序,GISR,中可读出,PIV
47、R,中的值,,保护现场后,用,PIVR,中的值来产生一个转到,SISR,的向量。,例如,,可屏蔽中断,XINT1,(,高级模式级别为,INT1,,优先级为,7),产生一个中断请求,,CPU,对其响应。这时,,0001h(XINT1,的外设中断向量,),被装载到,PIVR,中,,CPU,获取被装载到,PIVR,中的值之后,,用这个值来判断是哪一个外设引起的中断,接着转移到相应的,SISR,。,将,PIVR,中的值装载入累加器时需先左移,再加上一个固定的偏移量,,然后程序转到累加器指定的地址入口,这个地址将指向,SISR,,从而执行,XINT1,的中断服务子程序。,2.3,系统配置和中断,(1),
48、假中断向量,如果一个中断应答被响应,但没有获得相应的外设的中断请求,,那么就使用,假中断,。,假中断向量特性,可以保证中断系统的完整性,,从而使,中断系统一直可靠安全地运行,,而,不会进入无法预料的中断死循环中,。,以下两种情况会产生假中断,:,CPU,执行一个,软件中断指令,INTR,,使用参数,1-6,,用于请求服务,6,个可屏蔽中断,(INT1-INT6),之一。,当外设发出中断请求,,,但是其,INTn,标志位却在,CPU,应答请求之前已经被清,0,。,在上述两种情况下,并没有外设中断请求送到中断控制器,因此,中断控制器不知道哪个外设中断向量装入到,PIVR,,此时向,PIVR,中,
49、装入假中断向量,0000h,。从而,避免程序进入中断死循环中,。,2.3,系统配置和中断,(2),、软件结构,中断服务子程序有两级:,通用中断服务子程序,(GISR),和,特定中断服务子程序,(SISR),。,在,GISR,中保存必要的上下文,从外设中断向量寄存器,(PIVR),中读取外设外设中断向量,这个向量用来,产生转移到,SISR,的地址入口,。,程序一旦进入特定中断服务子程序后,所有的可屏蔽中断都被屏蔽。,外设中断扩展(,PIE,)不包括,象复位和,NMI,这样的,不可屏蔽中断,。,2.3,系统配置和中断,(3),、不可屏蔽中断,LF240 x DSP,无,NMI,引脚,在,访问无效的
50、地址时,,不可屏蔽中断,(NMI),就会发出请求。当,NMI,被响应后,程序将转到,不可屏蔽中断向量入口地址,0024h,处,2.3,系统配置和中断,5,、中断响应的过程,下面介绍某一外设中断请求的响应过程,。,(,1,)某一外设发出中断请求。,(,2,)如该外设的,中断请求标志位,(IF),为,1,,且该外设的,中断使能位,(IE),为,1,,则产生一个到,PIE,控制器的中断请求标志位,(IF),为,1,的状态保持到被软件清,0,。,(,3,),如果不存在相同优先级,(INTn),的中断请求,,那么,PIRQ,会使,PIE,控制器产生一个到,CPU,的中断请求,(INTn),,为,2,个,






