图 3-12 DSP 外围电路
图 3-12 中 a 为电源电路,采用 TI 公司的专用电源芯片 TPS7333Q,
点 C 为 3.3V 电压输出端。图 b 为复位电路。RS 是一个 I/O 引脚,当开 关 SW1 闭合,RS引脚为低电平,系统复位[28]。
§3.4 软件设计和实现
§3.4.1 DSP 软件编程特点
作为一款用于实时性控制的专用的定点 DSP 芯片,TMS320F2407A 在 软件编程上有其特别的地方,下面从目标文件格式、精度控制以及如何 提高效率等三个方面予以阐述[25]。
(1)公共目标文件格式:
TI 公司汇编器和链接器创建的目标文件采用一种称为 COFF 的目标 文件格式(Common Object File Format,简称 COFF),采用这种目标文件 格式更利于模块化(代码块和数据块)编程,并且为管理代码段和目标系统 存储器提供更强有力和更加灵活的方法,使程序具有更强的可读性和可 移植性。
(2) 定点数计算和精度选取:
TMS320LF2407A 属于 16 位的定点芯片,采用定点数进行运算,芯
片中的 16 位数以 2 的补码形式表示,数的定标采用了 Q 表示法,同样的 一个 16 为数,若小数点的位置不同,它所表示的数也不同。Q 越大,表 示范围越小,精度越高;相反,Q 越小,数值范围越大,精度越低。因 此对于浮点而言,数值范围和精度是一对矛盾。在进行复杂的浮点计算 时,可以采用 C 语言来编写,C 语言编译器会自动把浮点数转换为 DSP 可以识别的定点数。
(3) 利用延迟跳转;充分利用片内 RAM;利用高效率指令和特殊寻址方 式;避免流水线冲突等方法来提高程序效率。
DSP 事件管理器[26]
每个 240x 器件都包括两个时间管理模块 EVA 和 EVB,每个时间管理 模块包含通用定时器、比较单元、捕获单元以及正交编码脉冲电路。EVA 和 EVB 的定时器,比较单元和捕获单元的功能都相同,只是定时器和单 元的名称不同。EVA 模块使用 CAP1/QEP1、CAP2/QEP2 和 CAP3 这 3 个引脚 作为捕获或正交编码器脉冲的输入脚。事件管理模块中的通用定时器可 以编程为外部或内部 CPU 时钟的基础上运行。引脚 TCLKINA 提供了外部 时钟输入,引脚 TDIRA 用于当通用定时器处于定向增/减计数方式时规定 计数方向。事件管理器模块中的所有输入都由内部 CPU 协调同步。
事件管理器中断事件分为 3 组:事件管理器中断组 A,B 和 C。每一个 组都有各自不同的中断标志,中断使能寄存器和一些外设事件中断请求。
当事件管理器模块中产生一个中断事件,则其中一个事件管理中断标志 寄存器的相应标志位被置 1。如果 EVAIMRx 中的相应位置 1,外设中断控 制器(PIE)就产生一个外设中断请求。当中断请求被 CPU 接受时,已置 位的中断标志位中具有高优先级的中断标志相应的那个中断向量被加载 到累加器中。
中断
LF240x 内核提供 6 个按优先级获得服务的可屏蔽中断 INT1 至 INT6,
而这 6 个中断级的每一个都可被很多外设中断请求共享。DSP 的中断请
第三章 逆变控制系统设计
求、应答硬件逻辑和中断服务程序软件都是一个两级的层次。
在底层中断,从几个外设来的外设请求(PIRQ)在中断控制器处相 或产生一个到 CPU 的中断请求(INTn)。这就是内核级的中断请求。在外 设配置寄存器中,对每一个产生外设中断请求的事件都有中断使能位和 标志位。对某些要设置中断优先级的外设事件,当这类事件发生时,其 中断优先级的值也被送到中断控制器,而中断请求也是保持到中断应答 或者软件将其清 0。
在高层中断,被或的多个外设中断请求产生一个到 CPU 的中断(INTn)
请求,当任何一个控制 INTn 的外设中断请求 PIRQ 有效时都会产生一个 到 CPU 的中断请求脉冲 INTn,CPU 总是响应优先级高的外设中断请求。
在 CPU 内核,这些中断标志在 CPU 响应中断时自动清 0。
16 位的中断标志寄存器(IFR)用于识别和清除挂起的中断,IFR 包 含用于所有可屏蔽的中断的标志位。读取 IFR 可以识别挂起的中断,而 写 IFR 则将清除已挂起的中断。为了清除一个中断请求,向相应的 IFR 位写 1。把 IFR 中当前的内容写回 IFR,则可清除所有挂起的中断。
IMR 是一个 16 位的寄存器,包含所有中断级(INT1~INT6)的屏蔽 位。读 IMR 寄存器可以识别出已被屏蔽或被使能的中断级。而向 IMR 中 写则可屏蔽中断级或将使能所有的中断级。为了使能中断级,应设置相 应的 IMR 位为 1,而屏蔽中断时只需将相应的 IMR 位设为 0。
§3.4.2 程序设计和流程图 一 电流电压采样
TMS320LF2407 的模数转换模块 ADC 具有以下特性[27]: ・带内置采样和保持的 10 位模数转换模块 ADC。
・多达 16 个的模拟输入通道(ADCIN01~ADCIN15)。
・自动排序的能力,每次要转换的通道都可通过编程来选择。
・在给定的排序方式下,4 个排序器(CHSELSEQn)决定了模拟通道转 换的顺序。
・可单独访问的 16 个结果寄存器(RESULT0~RESULT15)用来存储转 换结果。
・多个触发源可以启动 AD 转换:软件立即启动;事件管理器 A;事件 管理器 B;外部 ADCSOC 引脚。
・排序器可工作在启动/停止模式,允许多个按事件排序的触发源同 步转换。
・EVA 和 EVB 可各自独立地触发 SEQ1 和 SEQ2。
由公式(3-2)可知,要得到最佳的死区时间,需要获得槽路电压的有 效值 V 和槽路电流有效值 I ,以及负载的工作频率 f 。我们选用 ADCIN00, ADCIN01 对电流和电压采样,用事件管理器 EVA 中的定时器 1 周期产生 ADC 转换触发信号,在 ADC 中断程序中读取转换值,为了提高精度,
可以设置采样次数,取其平均值。
中 断
清 除 T1 中 断 标 志
读 取 I,
U 的 值
采 样 次 数 n=0?
求 I, U的 平 均 值
开 总 中 断
返 回
图 3-13 采 样 中 断 流 程 图 Y
N
中 断
读 取 捕 获 值
清 捕 获 中 断 标 志 位
捕 获 次
数 n=0? 计 算 频 率 f
的 平 均 值
调 用 死 区 计 算 子 程 序 返 回
Y
N
捕 获 中 断 流 程 图 图 3-14
如下为 AD 模块初始化程序,图 3-13 为采样流程图。
LDP #0E1h
SPLK #0100000000000000b, ADCTRL1
第三章 逆变控制系统设计
NOP
SPLK #0011001100110000b, ADCTRL1 SPLK #0002h, MAXCONV
SPLK #0010h, CHSELSEQ1 SPLK #1100010000000000b, ADCTRL2
二 频率检测
DSP 内的捕获单元可以检测负载频率。捕获单元在捕获引脚上出现 跳变时使能触发,事件管理器总共有 6 个捕获单元。对于 EVA 模块与相 关的捕获单元引脚有 3 个,它们分别是 CAP1,CAP2 和 CAP3。它们可以选 择通用定时器 1 或 2 作为它们的时基,然而 CAP1 和 CAP2 一定要选择相 同的定时器作为它们的时基。相对应的 EVB 模块也是如此。当捕获输入 引脚上检测到所选的跳变时,所选的 GP 定时器的计数值被捕获并存入到 一个 2 级深的 FIFO 堆栈中。
捕获单元包括下列特性:
・1 个 16 位的捕获控制寄存器 CAPCONx;
・1 个 16 位的捕获 FIFO 状态寄存器 CAPFIFOx;
・可选择通用定时器 1/2(EVA)或者 3/4(EVB)作为时基;
・6 个 16 位 2 级深的 FIFO 堆栈,每个捕获单元一个;
・用户定义的跳变检测方式(上升沿,下降沿,或者上升下降沿);
・6 个可屏蔽的中断标志位,每个捕获单元一个。
用定时器 2 作为 CAP1 的时基,检测 CD4046 输出波形的上升沿,
在中断程序中读取捕获值。跟采样程序相似,为了得到比较准确的结果,
避免第一次捕获时同步误差大,重复测试并取其平均值。同时,在捕获 单元的中断程序中,根据求得的频率值,以及电流电压有效值的平均值,
调用最佳死区计算子程序,其中toff 的值查相关资料可得,求得相应死区 宽度。具体流程如图 3-14 所示。
三 死区形成
用 DSP2407A 的一路外部中断引脚 XINT1 检测 6N137 的输出波形的 上升沿和下降沿。TMS320LF2407 中,XINT1CR 和 XINT2CR 为两个控 制和监视 XINT1 和 XINT2 引脚状态的外部中断控制寄存器。通过给寄 存器各位赋不同的值,可以决定:中断发生在引脚的上升沿还是下降沿;
引脚中断是高优先级还是低优先级;使能或屏蔽外部中断。 XINT1 引脚 中断有高优先级模式和低优先级模式,本文选用前者。当输入从高电平 跳变为低电平时,在高优先级的中断服务程序中,延迟一段时间后让输 出引脚 IOPA6 变为低电平,延迟时间为死区时间减去程序指令执行时间。
当检测到上升沿时,立即让 IOPA6 输出高电平,但是由于程序执行需要 时间,低电平跳变为高电平相对应地会存在一段时间的延迟,工作流程 如图 3-15 所示,DSP 输出引脚接光耦隔离 6N137 后的波形,如图 3-7 中 波形②所示。
中 断
下 降 沿 中 断
清 中 断 标 志 位 延 迟 置 I/O输 出 低 电 平 置 XINT1CR_2 =1
返 回
清 中 断 标 志 位
置 I/O输 出 高 电 平
置 XINT1CR_2 =0 N
Y
外 部 引 脚 中 断 流 程 图 图 3-15
第四章 调功控制系统设计