1、15第三章 面向电机控制的 DSP 芯片TMS320F240 简介3.1 引言TMS320F240 芯片是美国得州仪器公司( TI)在 1997 年推出的面向电机数字控制领域的芯片,它不仅继承了数字信号处理器(DSP)运算速度快,能实现电流实时控制的优点,而且由于它面向电机数字控制领域,因而使得由 F240 为核心芯片构成控制系统具有结构简单,可靠性高等诸多优势。图 3-1 为其总体结构框图。TMS320F240 芯片的指令周期可达 50ns,它不仅具有 512 字的片内双访问RAM(DARAM),还集成了两个 10 位的 A/D 转换器和一个串口通讯模块(SCI ),其独有的事件管理器(Ev
2、ent Manager)单元提供了 3 个 16 位的定时器,3 个单比较单元和 3 个全比较单元,可提供多达 12 路 PWM 脉冲输出。F240 芯片采用多个中断源共享某一中断级的中断结构,因而(与 80C196KC 芯片相比)提供了更多的中断源,使得用户能更加方便,灵活地编写中断处理程序。3.2 TMS320F240 芯片的组成及特点3.2.1 F240 特点综述 39:1.TMS320C2xx 内核 CPU:(1)32 位中央算术逻辑单元(CALU) 及 32 位累加器(2)16 位 16 位并行乘法器,产生 32 位乘积(3)三个定标移位器(4)八个 16 位辅助寄存器和一个用于数据
3、存储器间接寻址的专用算术单元2.存储器:(1)544 字 16 位片内数据/程序双口 RAM(2)16K 16 位片内 Flash(3)224K 16 位最大寻址范围 (64K 字程序空间、64K 字数据空间、64K 字 I/O空间和 32K 字的全局数据存储空间)(4)外部存储器接口模块包括:软件等待状态发生器、16 位地址总线和 16 位数据总线(5)支持插入硬件等待状态163.程序控制:(1)四级流水线操作及八级硬件堆栈(2)六个外部中断:功率驱动保护中断、复位、NMI(不可屏蔽中断)和三个可屏蔽中断4.指令集:(1)源码兼容 TMS320 家族的 C2x,C2xx 和 C5x 定点系列
4、(2)单指令重复操作及单指令乘/加指令(3)用于程序 /数据管理的存储块移动指令(4)变址寻址能力(5)用于基 2FFT 变换的位反转变址寻址能力5.功耗:(1)静态 CMOS 技术(2)四种用于减少功耗的省电方式6.仿真:符合 IEEE1149.1 标准的测试访问口,可以连接片内的基于扫描的仿真逻辑7.速度:50ns 的指令周期(20MIPS),且大多数指令为单周期8.事务管理器:(1) 12 路比较 /PWM 通道,其中 9 路为独立(2) 3 个 16 位通用定时器,共有 6 种模式,包括连续向上计数和连续向上/ 下计数 (3) 3 个具有死区功能的全比较单元(4) 3 个单比较单元(5
5、) 4 个捕获单元,其中两个具有直接连接正交编码器脉冲的能力9.双 10 位共 16 路 A/D 转换器10.28 个可单独编程的多路复用 I/O 引脚11.基于锁相环(PLL) 的时钟模块12.带实时中断的看门狗定时器模块13.串行通信接口(SCI)14.串行外设接口(SPI)17测试/仿真外部存储 器 接 口软件等待状态寄存器事件管理器通用定时器比较单元捕获/正交解码脉冲单元乘法器暂存寄存器结果寄存器结果移位器输入移位器算术逻辑单元累加器输出移位器辅助寄存器算术单元状态/控制寄存器辅助寄存器存储映射寄存器程 序 控 制 器指令寄存器时钟模块 系统接口模块双 10 位 A/D转 换 器串 行
6、 外设 接 口串 行 通讯 接 口看 门 狗模 块闪 烁存 储器双访问RAM B0块双访问RAM B1/B2块数据 总 线中断数字输入/输出复位 外设总线16494存储器控制中断初始化3程序总线CPU 内核功率驱动保护7218图 3-1 TMS320F240 芯片结构框图3.2.2 中央处理单元 40411.输入定标单元:32 位的输入数据定标移位器(输入移位器)用来把存储器中送来的 16 位值左移 0 至 16 位后送至 32 位的 CALU。移位时低位填零,高位根据状态寄存器ST1 中的符号扩展位 SXM 填充:SXM 为零时填零,为 1 时根据数据最高位进行扩展。2.乘单元:C24x 使
7、用 16 位16 位的硬件乘法器在单机器周期内产生有符号或无符号的32 位结果。乘单元包括:(1)用来保存一个乘数的 16 位暂时寄存器(TREG)(2)乘法器,用来将 TREG 中的值乘以从数据/程序存储器送来的另一个值;(3)32 位乘积寄存器(PREG) ,接收乘的结果;(4)乘积移位器,将 PREG 中的值在传送至 CALU 前进行移位。3.中央算术逻辑单元包括:(1)中央算术逻辑单元(CALU),实现大动态范围内的算术和逻辑运算。(2)32 位累加器(ACC),ACC 接收来自 CALU 的输出,并且可以根据进位位(C) 的值来实现移位。(3)输出移位器,该移位器可以将累加器的高位字
8、或低位字在送入数据存储器前左移 0 到 7 位。4.符号扩展方式位:对于绝大多数指令来说,状态寄存器 ST1 的第 10 位符号扩展方式位(SXM)决定了 CALU 在计算时是否使用符号扩展。若 SXM=0,符号扩展被抑制;若SXM=1,符号扩展被使能。5.辅助寄存器算术单元(ARAU):该算术单元完全独立于中央算术单元(CALU)。ARAU 的主要功能是 CALU操作的同时执行 8 个辅助寄存器(AR0 至 AR7)上的算术运算。这 8 个辅助寄存器(AR0 至 AR7)提供了灵活而强大的间接寻址能力。利用包含在辅助寄存器中的 16位地址可以访问 64K 数据存储器空间的任一单元。16 41
9、96.状态寄存器 ST0 和 ST1:ST0 和 ST1 含有各种状态和控制位,可以被保存至数据存储器或从数据存储器加载。3.2.3 存储器和 I/O 空间 4041C24x 的设计基于增强的哈佛总线结构。C24x 可通过三组并行总线访问多个存储空间,它们分别是 64K 字的程序存储器、64K 字的局部数据存储器、32K字的全局数据存储器和 64K 字的输入/输出(I/O)空间。这里应引起注意的是MP/MC 引脚。当 MP/MC=0 时,器件从片内存储器读取复位向量;当MP/MC=1 时,器件从外部存储器读取复位向量。由于在开发阶段程序都放在外部存储器中,因此应将此引脚接高电平。我们采用的方法
10、是在此引脚接一个拨码开关,可在 0V 与+5V 之间切换,开发阶段拨码开关接至+5V,使 MP/MC=1。3.2.4 程序控制 40411.堆栈C24x 具有 16 位宽度,8 级深度的硬件堆栈。用户可以用两组指令访问堆栈:(1)PUSH(压入)和 POP(弹出)(2)PSHD 和 POPD这两条指令允许用户在数据存储器中为超过八级的子程序或中断嵌套建立堆栈。2.微堆栈:在执行某些指令之前,程序地址产生逻辑使用 16 位宽度、1 级深度的MSTACK 存储返回地址。MSTACK 操作对用户是不可见的。3.流水线操作:C24x 流水线具有四个独立的阶段:取指令、指令译码、取操作数以及指令执行。在
11、任何给定的周期内,一至四条不同指令可以激活,每条指令处于不同阶段。3.2.5 寻址方式 404120C24X 有三种寻址方式:1.立即寻址方式:在立即寻址方式中,指令字中包含指令所使用的一个常数。(1)短立即寻址:把一个 8 位、9 位或 13 位的常数作为操作数。(2)长立即寻址:采用长立即寻址的指令把一个 16 位常数作为操作数。2.直接寻址方式:在直接寻址方式中,数据存储器按地址组织为以 128 个字为单位的数据页。全部 64K 的数据存储器共包含 512 个数据页,标号从 0 至 511。当前数据页由状态寄存器 ST0 中的 9 位数据页指针(DP)值决定。该页上被索引的特定单元取决于
12、 7位偏移量。偏移量由指令寄存器的 7 位最低有效位(LSB)提供。3.间接寻址方式:八个辅助寄存器(AR0-AR7)提供了灵活而强大的间接寻址能力。通过包含在辅助寄存器中的 16 位地址,可以访问 64K 数据存储器空间的任一单元。为选择一特定的辅助寄存器,可向状态寄存器 ST0 中的 3 位辅助寄存器指针(ARP)装入 0-7。当前辅助寄存器内容用作将被访问的数据存储器地址。当指令用毕该数据值后,辅助寄存器内容可由 ARAU 采用无符号 16 位算术运算执行增量或减量。间接寻址选项:C24x 提供四种间接寻址选项:(1)不增不减当前辅助寄存器的内容。(2)增 1 减 1:将当前辅助寄存器内
13、容增 1 或减 1。(3)增加或减去索引量:AR0 中的值作为索引量,将当前辅助寄存器内容增加或减去索引量。(4)加或减去索引量且反向进位:AR0 中的值作为索引量,当前辅助寄存器内容增加或减去索引量。加法或减法进行反向进位, 这适用于 FFT 算法。3.2.6 事务管理器 4041事件管理器模块包括以下功能模块:三个通用定时器21三个全比较单元PWM 电路,其中包括空间矢量的 PWM 电路,死区发生单元和输出逻辑四个捕获单元正交编码器脉冲电路中断逻辑1.通用定时器事件管理器模块有三个通用定时器,每个通用定时器包括:一个可读/写的 16 位增加和增/减计数器,TxCNT(x=1,2,3)一个可
14、读/写的 16 位定时器比较寄存器(屏蔽的), TxCMPR(x=1,2,3)一个可读/写的 16 位定时器周期寄存器(屏蔽的), TxPR(x=1,2,3)可读/写的 16 位控制寄存器 TxCON(x=1,2,3)可用于内部和外部时钟输入的可编程的预定标器控制和中断逻辑一个通用定时器比较输出引脚 TxPWM/TxCMP(x=1,2,3)输出逻辑另一个控制寄存器 GPTCON 规定了通用定时器针对不同定时器事件所应采取的操作,并且指明了所有三个通用定时器的计数方向。通用定时器计数操作:每个通用定时器有 6 种可选操作模式:(1) 停止/保持模式定时器计数器、比较输出和预定标计数器都保持不变(
15、2) 单增计数模式通用定时器按照规定频率的输入时钟计数,直到定时计数器的值与周期寄存器的值匹配为止。匹配之后的下一个输入时钟的上升沿,通用定时器将复位为零并且通过复位定时器使能位 TxCON6来禁止它的计数操作。(3) 连续增计数模式在这种模式下,每次定时器复位为零后,该通用定时器重复在单增计数模式下的操作。(4) 定向增/减计数模式通用定时器在定向增/减计数模式中将根据定标的时钟和 TMRDIR 输入来增或22减计数。(5) 单增/减计数模式通用定时器将根据定标的时钟输入增计数至它的周期寄存器值。然后该通用定时器改变它的计数方向并且以减方向计数,直到 0 为止。(6) 连续增/减计数模式每当
16、定时器复位后将重复单增/减计数模式下的操作。通用定时器比较操作每个通用定时器都有一个相关的比较寄存器 TxCMPR 和一个比较/PWM 输出引脚 TxPWM/ TxCMP。当定时计数器与比较寄存器值相等时,就发生比较匹配。可通过置 TxCON1为 1 来使能比较操作。如果被使能,当比较匹配时将发生下列情况:定时器的比较中断标志位被设置如果通用定时器不处于定向增/减计数模式,根据 GPTCON 中位的配置情况,相关的比较/PWM 输出上发生跳变2.比较单元事件管理器模式中有三个全比较单元(全比较单元 1、2 和 3)和三个单比较单元(单比较单元 1、2 和 3)。每个全比较单元有两个相关的比较/
17、PWM 输出,每个单比较单元有一个相关的比较/PWM 输出。全比较单元的时基由通用定时器 1提供,单比较单元的时基由通用定时器 1 或 2 提供。三个全比较单元包括:三个 16 位比较寄存器(CMPRx,x=1 ,2,3),各带有一个相关的荫影寄存器,可读/写一个 16 位比较控制寄存器(COMCON),可读/写一个 16 位动作控制寄存器(ACTR),带有一个相关的荫影寄存器,可读/写六个比较/PWM(三态)输出引脚,PWMy/CMPy,y=1,2,3,4,5,6控制和中断逻辑全比较单元可工作于比较模式或 PWM 模式:当比较模式被选中并且比较被使能时,通用定时器 1 的计数器就不断地与比较
18、寄存器进行比较。发生匹配时,比较单元的两个输出将根据动作控制寄存器23(ACTR)的位产生跳变。每个全比较单元可单独被置成 PWM 模式。在该模式下,全比较单元的操作类似于通用定时器的比较操作,它们的区别在于:全比较单元由不同的控制寄存器来控制,并且全比较 PWM 的输出也被死区单元和空间矢量 PWM 逻辑改变。3.捕获单元捕获单元在捕获单元引脚上出现跳变时使能触发。共有四个捕获单元,每一个捕获单元都有一个相关的捕获输入引脚。每个捕获单元可选择通用定时器 2 或 3 作为它的时基。当检测到捕获输入脚 CAPx 上出现一个指定的跳变时,就将通用定时器 2 或 3 的值捕获并存储在相应的两级 FI
19、FO 队列中。4.正交解码脉冲(QEP)电路可用于连接光电编码器以获得旋转机械的位置和速率信息正交解码脉冲电路的时基可由通用定时器 2、3 或 2 和 3 联用的 32 位定时器提供。所选的通用定时器或 32 位定时器必须设置成增/减计数模式并以正交解码脉冲电路作时钟源。正交解码脉冲是具有变化频率和 1/4 个周期(90 度)固定相移的两个脉冲。电机的旋转方向可通过检测两个序列中的哪一列先到达来确定。两列正交输入脉冲两个边沿都被正交解码脉冲电路计数,因此,产生的时钟频率是每个输入序列的四倍。3.2.7 A/D 转换器 4041模-数转换器是带有内部采样-保持电路的 10 位串行/ 电容转换器,
20、包括两个带有内部采样和保持电路的模-数转换器。C24x 中共有 16 个模拟输入通道可用。每八个模拟输入通过 8 到 1 的多路转换器提供给每个模-数转换器,最大总转换时间是 6.6s,基准电压由外部源提供。数字结果 = 1023 (输入电压/基准电压)第一个模块的引脚 ADC0 和 ADC1 以及第二个模块的引脚 ADC8 和 ADC9 与数字 I/O 多路复用,精度低于专用模拟输入引脚3.2.8 PLL 时钟模块 404124时钟模块提供系统所需的四种时钟:CPU 时钟,用于所有存储器和直接连接到 CPU 总线的外设。系统时钟 SYSCLK,为 CPU 时钟的 1/2 或 1/4,用于所有
21、连接到外设总线的设备。模拟时钟 ACLK,约 1MHz,用于模拟模块。看门狗时钟 WDCLK,用于看门狗定时器/实时中断模块。系统上电复位后,PLL 模块未工作,CPU 时钟为外接晶振或时钟的 1/2 频率,系统时钟为 CPU 时钟的 1/4。可对相应的寄存器进行设置来启动 PLL 时钟模块,PLL 启动约需 100 微秒。3.2.9 复位操作 4041最多有 5 个原因可产生器件复位:1.看门狗定时器复位。2.软件产生的复位。3.上电复位/VDD 超限复位。4.非法地址。任何对位于非法区域内单元的访问都将产生一个非法地址复位。5.复位引脚有效。典型复位电路包括一个从引脚至 VDD 的 10k
22、 上拉电阻。3.3 TMS320F240 中断系统的特点及中断响应过程3.3.1 F240 芯片中断系统的特点在单片机构成的应用系统中,中断及其处理是一个极为重要的问题。从早期的 8031 单片机到后来的 8098 系列单片机,中断源越来越丰富,中断处理能力也不断增强。作为电机数字控制中的首选芯片,F240 器件也具备强大的中断处理能力。下面详细地予以介绍。TMS320F240 器件中断系统的基本特点是:通过赋予每个中断源以不同的优先级,使多个中断源可以共享 DSP 内核中同一中断级,从而提供了较多的中断源和更灵活的中断处理方法。具体而言,F240 器件识别四种类型的中断源 4041:1. 复位中断2. 由五个外部引脚(XINT1 ,XINT2,XINT3,PDPINT 及 NMI 引脚产生的外部中断。