1 / 91

第 2 章: TMS320LF240x DSP 内部资源介绍

第 2 章: TMS320LF240x DSP 内部资源介绍. 2.1 TMS320LF240x DSP 的 CPU 内部功能模块介绍 2.2 存储器和 I/O 空间 2.3 系统配置和中断 2.4 程序控制. 2.1 TMS320LF240x DSP 的 CPU 内部功能模块介绍. 中央处理单元 (CPU) 输入定标器 乘法单元 中央算术逻辑单元. 2.1 TMS320LF240x DSP 的 CPU 内部功能模块介绍. 1 、输入定标移位器 是一个 16 位到 32 位的滚动式左向移位器;

ozzy
Download Presentation

第 2 章: TMS320LF240x DSP 内部资源介绍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章: TMS320LF240x DSP内部资源介绍 • 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 2.2 存储器和I/O空间 • 2.3 系统配置和中断 • 2.4 程序控制

  2. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 中央处理单元(CPU) • 输入定标器 • 乘法单元 • 中央算术逻辑单元

  3. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 1、输入定标移位器 • 是一个16位到32位的滚动式左向移位器; • 能将输入的16位数据的0~15位在本周期内向左移位以得到32位的输出; • 本操作不需要额外的周期。

  4. 移位器的输入来源 数据读总线(DRDB),该输入值来自指令操作数据所引用的数据存储单元; 程序读总线(PRDB),改输入是指令操作数给出的常数。 移位量的来源 嵌在指令字中的常数。把移位量放在指令字中,该程序代码使用特定的数据比例; 临时寄存器TREG的提位。根据TREG的值移位,数据的定标因子是动态确定的,可适应不同的系统要求。 2.1 TMS320LF240x DSP的CPU内部功能模块介绍

  5. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 输入移位器的输出值 • 最低有效位LSBs段填0; • 未使用的最高有效位MSBs填0或者根据状态寄存器ST1的SXM位的值来确定是否需要进行符号扩展

  6. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 2、乘法器 • 16×16位的硬件乘法器,在单个周期内产生一个32位乘积结果的有符号或无符号数; • 除了MPYU指令,所有的乘法指令都执行有符号的乘法操作。

  7. 乘法器的输入 16位临时寄存器(TREG),在乘法之前把数据读总线的值加载到TREG; 数据读总线的数据存储器值和程序读总线的程序存储器值。 乘法器的输出 两个输入值相乘后的32位结果保存在乘积寄存器(PREG)中; PREG的输出连接到32位的乘积定标移位器(PSCALE),通过PSCALE将乘积结果送到CALU或数据存储器。 2.1 TMS320LF240x DSP的CPU内部功能模块介绍

  8. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 乘法定标移位器(PSCALE) • 输入:该移位器的32位输入练到PREG的输出。 • 输出:完成移位后,全部32位送到CALU,或将结果的16位存到数据存储器。 • 移位模式:该移位器可用4中移位模式,这些模式由状态寄存器ST1的乘积移位方式(PM)位确定。 • 注:PREG的内容保持不变,其值被复制到PSCALE中,进行移位。

  9. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 乘法器相关指令及操作 • 用LT指令将数据从数据总线载入TREG提供1操作数,MPY指令提供第2个操作数或从数据总线上得到。 • 使用MPY指令时,可以对一个13位的立即数进行操作,每两个指令周期得到一个乘积。 • 代码执行多路乘法和乘积求和运算时,CPU支持流水线操作。

  10. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 乘法器相关指令及操作 • 乘且累加并带动数据移动指令MAC和MACD充分利用了乘法器的计算宽度,允许两个操作数被同时处理。 • 无符号乘法运算MPYU指令执行大大方便了用于扩展精度的算术运算。 • 平行并累加前次乘积指令SQRA和平方并减去前次乘积指令SQRS传送相同的数到乘法器的两个输入端,以对一个数据存储器单元的值进行平方运算。 • 存储乘积的高字节指令SPH和低字节指令SPL,可将装入PREG的32位乘积结果传送到CALU单元或数据存储器。 • 在执行中断服务程序前必须对PREG的值进行保存。

  11. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 3、中央算术逻辑部分 • 中央算术逻辑单元(CALU):实现各种算术、逻辑功能; • 32位累加器(ACC):接收来自CALU的输出,并可以根据进位位(C)的值来实现移位; • 输出移位器:将ACC的高位字和低位字在送入数据存储器之前进行移位。

  12. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 中央算术逻辑单元(CALU) • 运算功能:16位加、16位减、布尔逻辑操作、位测试、移动和循环。 • 输入:一个由累加器提供,另一个由乘积定标移位器或输入数据定标移位器提供。 • 输出:其结果送至32位累加器,进行移位。 • 相关状态位:符号扩展模式位SXM(ST1第10位)确定CALU是否进行符号扩展。SXM=0,抑制符号扩展;SXM=1,进行符号扩展。

  13. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 累加器(ACC) • 功能:对送到ACC的CALU的运算结果进行单个移位和循环操作。 • 输入:CALU的运算结果。 • 输出:ACC的高16位和低16位中任何一个都可送到输出定标移位器,经定标移位后存入数据存储器。 • 相关状态位

  14. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 输出定标移位器 将累加器输出的内容左移0~7位,移动位数由存储器指令指定,然后用SACH或SACL指令将移位器中的高位字或低位字保存到数据存储器中,ACC的内容不变。

  15. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 4、辅助寄存器算术逻辑单元(ARAU) • 在CALU操作的同时执行8个辅助寄存器(AR7~AR0)上的算术运算。 • 8个辅助寄存器提供了灵活而有效的间接寻址。 • 通过把数值0~7写入状态寄存器ST0第3位的辅助寄存器指针(ARP),选择一个辅助寄存器作为当前AR。 • 当前AR存放被访问的数据存储器的地址,根据指令的需要分别向数据读/写地址总线读/写数据,使用完该数据后,当前AR的内容可以被ARAU增减,可实现无符号16位算术运算。

  16. ARAU可执行的操作 将辅助寄存器值增、减1,或者增、减一个变址量(借助任何支持间接寻址的指令)。 使辅助寄存器的值加/减一个常数(ADRK/SBRK指令),该常数是指令字的低8位。 将AR0的内容与当前AR的内容进行比较,并把结果放入状态寄存器ST1的测试/控制位TC(CMPR指令)。结果经数据写总线DWEB传送到TC。 辅助寄存器的用途 数据存储器地址存储器; 通过CMPR指令,使辅助寄存器支持条件分支、调用及返回; 用作暂存单元; 用作软件计数器,按需要对其进行加、减。 2.1 TMS320LF240x DSP的CPU内部功能模块介绍

  17. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • 5、状态寄存器 • 两个状态寄存器ST0和ST1,含有各种状态和控制位; • 可保存在数据存储器,也可从数据存储器加载,可以保存和恢复子程序的机器状态; • 加载状态寄存器LST指令写ST0和ST1,保存状态寄存器SST指令读ST0和ST1; • INTM位不受LST指令的影响; • 寄存器中每一位均可由SETC和CLRC指令单独置位和清0。

  18. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • ARB辅助寄存器指针缓冲器:当ARP被加载到ST0,除了使用LST指令外,原有的ARP值被复制到ARB中;当通过LST #1指令加载ARB时,把相同的值复制到ARP。 • ARP辅助寄存器指针:ARP选择间接寻址时使用的当前AR;当ARP被加载时,原有的ARP值被复制到ARB寄存器中;在讲解寻址时,ARP可由存储器相关指令改变,也可由LARP、MAR和LST指令改变;当执行LST #1时,ARP也可加载与ARB相同的值。

  19. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • OV溢出标志位:该位锁存的值指出CALU是否发生了溢出;发生溢出,OV=1,直到复位、溢出时条件转移、无溢出时条件转移或LST指令执行时才被清0。 • OVM溢出方式位:该位决定如何管理CALU的溢出。SETC和CLRC指令分别可将该位置1或清0;LST指令也可修改该位;OVM=0,ACC结果正常溢出;OVM=1,根据发生的溢出,把ACC置为最大正值或负值。

  20. 2.1 TMS320LF240x 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和AR0之间的比较条件成立。

  21. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • INTM中断模式位:该位用来允许或禁止所有可屏蔽中断。通过SETC和CLRC指令置1或清0;该位不影响不可屏蔽中断RS和NMI;LST指令不影响该位;发生中断及复位时置1;INTM=0,允许全部没有被屏蔽的中断;INTM=1,禁止全部没有被屏蔽的中断。 • DP数据存储器页指针:当指令使用直接寻址方式时,这个9位的DP寄存器与指令寄存器的低7位一起形成一个完整的数据存储器16位地址。LST和LDP指令可修改该字段。

  22. 2.1 TMS320LF240x 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位、循环指令、SETC、CLRC和LST指令均影响该标志位;条件转移、调用和返回指令可根据C的状态执行;复位时该位置1。

  23. 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 • XF引脚状态位:该位确定通用输出引脚XF的状态;通过SECT、CLRC和LST指令对该位进行置1、清0和加载;复位时该位置1。 • PM乘积移位模式:该位决定PREG的值是送往CALU或数据存储器时如何移位;SPM和LST指令可以对该位加载;复位时该位清0。 PM=00,乘法器32位乘积不经移位送到CALU或数据存储器; PM=01,送到CALU之前,PREG的输出左移1位(低位填0); PM=10,送到CALU之前,PREG的输出左移4位(低位填0); PM=11,PREG输出进行符号扩展右移6位。 注:PREG的内容保持不变,其值被拷贝到乘积移位器中进行移位。

  24. 2.2 存储器和I/O空间 • 增强的哈佛结构,三组并行总线 • 程序地址总线(PAB) • 数据读地址总线(DRAB) • 数据写地址总线(DWAB) • 三个可独立选择的空间 • 程序存储器(64K字) • 数据存储器(64K字) • I/O空间(64K字) • 注意:LF240x DSP的所有片内外设的寄存器均映射在数据存储器空间。

  25. 2.2 存储器和I/O空间 • 1、程序存储器 • 保存程序代码及数据表信息和常量 • 寻址范围为64K,包括片内DARAM和片内FLASH • 访问片外程序地址空间时,DSP自动产生一个访问外部程序地址空间的信号PS LF2407的程序存储器空间映射图

  26. 2.2 存储器和I/O空间 • 决定程序存储器的配置两个因素 • CNF位。CNF位是状态寄存器ST1的第12位,决定DARAM中的B0块配置在数据存储器空间,还是配置在程序存储器空间。 • CNF=0,256字的B0块被映射到数据存储器空间。 • CNF=1,256字的B0块被映射到程序存储器空间。 复位时,CNF=0,B0块被映射到数据存储器空间。 • MP/MC引脚。该引脚决定是从片内Flash读取指令,还是从外部程序存储器读取指令。 • MP/MC=0:微控制器方式。此时访问的是片内程序存储器(片内Flash)0000h-7FFFh空间。 • MP/MC=1:微处理器方式。此时访问的是片外程序存储器的0000h-7FFFh空间。 注:无论MP/MC引脚为何值,LF240xDSP都是从程序存储器空间的0000h单元开始执行程序。

  27. 2.2 存储器和I/O空间 • 2、数据存储器 • 寻址范围64K字:前32K字(0000h-7FFFh)是内部数据存储器空间,包括了DARAM和片内外设的映射寄存器;后32K字(8000h-FFFFh)空间的存储器为外部数据存储器。 • 片内有3个DARAM块:B0、B1和B2块。B0块:即可为数据存储器,也可配置为程序存储器。B1、B2块:只能配置为数据存储器。 LF2407的数据存储器空间映射图

  28. 2.2 存储器和I/O空间 • 两种寻址方式:直接寻址和间接寻址。 • 直接寻址时,128字为一页的数据块来对数据存储器进行寻址。右图显示了这些块是如何被寻址的。 • 全部64K的数据存储器分为512个数据页,其标号从0-511。当前页由状态寄存器ST0中的9位数据页指针(DP)值来确定。 • 因此,当使用直接寻址指令时,用户必须事先指定数据页,并在访问数据存储器的指令中指定偏移量,偏移量为7位。 数据存储器页

  29. 2.2 存储器和I/O空间 • 编程时要注意,访问下面的数据存储器的地址空间是非法的,并会对NMI置位。除了以下地址,任何对外设寄存器映射中的保留地址的访问也是非法的。 0080h-00FFh701Fh-71FFh (CAN内部的) 0500h-07FFh7230h-73FFh (部分在CAN内部) 1000h-700Fh7440h-74FFh 7030h-703Fh7540h-75FFh 7060h-706Fh7600h-77EFh 77F4h-7FFFh7080h-708Fh

  30. 2.2 存储器和I/O空间 第0页数据地址映射 • 第0页数据地址映射 数据存储器中包括存储器映射寄存器,它们位于数据存储器的第0页(地址0000h-007Fh),下表是对第0页数据地址映射的详细说明。应用中必须注意以下几点: • 以零等待状态访问两个映射寄存器:中断屏蔽寄存器(IMR)和中断标志寄存器(IFR) • 测试/仿真保留区被测试和仿真系统用于特定信息发送。因此不能对测试/仿真地址进行操作。

  31. 2.2 存储器和I/O空间 • 数据存储器配置 CNF位决定B0块的配置,CNF位是状态寄存器ST1的第12位。 • CNF=0,B0块被映射为数据存储器空间; 复位时,CNF=0; • CNF=1,B0块被映射到程序存储器空间;

  32. 2.2 存储器和I/O空间 • 3、I/O空间 • 寻址范围为64K字。 • I/O空间访问的控制信号为IS。 • 所有64K的I/O空间均可以用IN和OUT指令来访问。当执行IN或OUT指令时,信号IS*变为有效,可作为外部I/O设备的片选信号。 • 访问外部I/O端口与访问程序存储器、数据存储器复用相同的的地址总线和数据总线。 • 数据总线的宽度为16位,若使用8位的外设,即可使用高8位数据总线,也可使用低8位数据总线,以适应特定应用的需要。 • 当访问片内的I/O空间时,信号IS和STRB变成无效,外部地址和数据总线仅仅当访问外部I/O地址时有效。 LF2407 I/O空间地址映射图

  33. 2.2 存储器和I/O空间 • 下面是使用汇编语言的直接访问I/O空间的实际例子: • INDAT2,0AFEEh;从端口地址为AFEEh的外设 ;读数据,并存入DAT2寄存器 • OUTDAT2,0CFEFh;输出数据存储器DAT2的内容 ;到端口地址为CFEFh的外设 • 下面是访问等待状态发生器的寄存器的实例: • INDAT2,0FFFFh;从等待状态发生器读取数据到DAT2寄存器 • OUTDAT2,0FFFFh;将DAT2寄存器的数据写入等待状态发生器,使用等待状态发生器

  34. 2.3 系统配置和中断 • 本节介绍LF240x DSP的系统配置寄存器和中断模块。 • 系统配置:用来对DSP片内的功能模块进行用户配置,根据具体用途来进行模块定制。 • 中断模块:主要包括-中断优先级和中断向量表、外设中断扩展控制器(PIE)、中断向量、中断响应的流程、中断响应的延时、CPU中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。

  35. 2.3 系统配置和中断 • 1、系统配置寄存器 • (1)、系统控制和状态寄存器1(SCSR1) SCSR1映射到数据存储器空间的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)模式。

  36. 2.3 系统配置和中断 • 位11-9:CLK PS2-CLK PS0,(PLL)时钟预定标选择位,选择输入时钟频率fin的倍频系数,如下表(P.28)所示。

  37. 2.3 系统配置和中断 • 位8:保留 • 位7:ADC CLKEN,ADC模块时钟使能控制位 • 0-禁止ADC模块时钟(节能) • 1-使能ADC模块时钟,且正常运行 • 位6:SCICLKEN,,SCI模块时钟使能控制位 • 0-禁止SCI模块时钟(节能) • 1-使能SCI模块时钟,且正常运行 • 位5:SPICLKEN,,SPI模块时钟使能控制位 • 0-禁止SPI模块时钟(节能) • 1-使能SPI模块时钟,且正常运行

  38. 2.3 系统配置和中断 • 位4:CANCLKEN,CAN模块时钟使能控制位 • 0-禁止CAN模块时钟(节能) • 1-使能CAN模块时钟,且正常运行 • 位3:EVBCLKEN,EVB模块时钟使能控制位 • 0-禁止EVB模块时钟(节能) • 1-使能EVB模块时钟,且正常运行 • 位2:EVACLKEN,EVA模块时钟使能控制位 • 0-禁止EVA模块时钟(节能) • 1-使能EVA模块时钟,且正常运行 • 位1:保留 • 位0:ILLADR,无效地址检测位 • 检测到无效地址时,该位置1。置1后需软件来清0,即向该位写0即可。复位时该位为0。 • 注意:任何无效的地址会导致不可屏蔽中断(NMI)事件发生。

  39. 2.3 系统配置和中断 • (2)、系统控制和状态寄存器2(SCSR2) SCSR2映射到数据存储器空间的7019h,各位如下: • 位15-7:保留 • 位6:I/P QUAL,时钟输入限定,它限定输入到LF240x的CAP1-6、XINT1-2、ADCSOC、PDPINTA/PDPINTB引脚上的最小脉冲宽度。脉冲宽度只有达到这个宽度之后,内部的输入状态才会改变。 • 0-锁存脉冲至少需要5个时钟周期; • 1-锁存脉冲至少需要11个时钟周期。 如这些引脚作I/O使用,则不使用输入时钟限定电路。

  40. 2.3 系统配置和中断 • 位5:WD保护位,该位可用来禁止WD工作。该位是—个只能清除的位,复位后=1。通过向该位写1对其清0。 • 0-保护WD,防止WD被软件禁止 • 1-复位时的默认值,禁止WD工作 • 位4:XMIF HI-Z。该位控制外部存储器接口信号(XMIF)。 • 0-所有XMIF信号为正常驱动模式(非高阻态) • 1-所有XMIF信号处于高阻态 注意:该位仅对LF2407/ LF2407A型号有效,对其它型号为保留位

  41. 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:SARAM的程序/数据空间选择 • 00-地址空间不被映射,该空间被分配到外部存储器 • 0l-SARAM 被映射到片内程序空间 • 10-SARAM 被映射到片内数据空间 • 11-SARAM 被映射到片内程序空间,又被映射到片内数据空间

  42. 2.3 系统配置和中断 • 2、中断优先级和中断向量表 • LF2407 DSP具有3个不可屏蔽中断和6个级别的可屏蔽中断(INT1-INT6)。 • 对多个外设的中断需求采用了中断扩展设计来满足。 • 在每级可屏蔽中断(INT1-INT6)中又有多个中断源,有唯一的中断入口地址向量。 不可屏蔽中断源的优先级和中断入口地址向量表

  43. 2.3 系统配置和中断 可屏蔽中断源的优先级和中断入口地址向量表 INT1(级别1)

  44. 2.3 系统配置和中断 INT2(级别2)

  45. 2.3 系统配置和中断 INT3(级别3)

  46. 2.3 系统配置和中断 INT4(级别4)

  47. 2.3 系统配置和中断 INT5(级别5)

  48. 2.3 系统配置和中断 INT6(级别6)

  49. 2.3 系统配置和中断 3、外设中断扩展控制器 LF240x CPU内核提供给用户:6级可屏蔽中断INT1-INT6。 每1级别又包含多个外设中断请求,所以用一个外设中断扩展(PIE)控制器专门来管理来自各种外设或外部引脚的数十个中断请求。 外设中断扩展模块图

  50. 2.3 系统配置和中断 中断请求层次和结构 外设中断个数很多,用一个两级中断结构来扩展可响应的中断个数。 中断请求/应答硬件逻辑和中断服务程序软件都有两级层次的中断。 在低层次中断,从几个外设来的外设中断请求(PIRQ)在中断控制器处进行或运算,产生一个INTn (n=1-6)中断请求。 在高层次中断,从INTn中断请求产生一个到CPU的中断请求。

More Related