0 弁言
传统的DSP软件设计开拓一样平常分为两个阶段:设计仿真和源代码开拓实现[1]。设计仿真阶段根据系统开拓的须要,以DSP算法研究与仿真验证为主,这阶段可以利用MATLAB的Simulink模块仿真来实现;源代码开拓常日采取汇编指令或C措辞编写源代码,由汇编器和连接器进行链接后天生目标可实行代码。源代码开拓完成后,功能的实现紧张在硬件电路板上来验证设计方案的精确性,对付软件开拓者关于DSP数字芯片与硬件电路的事理有一定程度的哀求,特殊是各个寄存器的浸染和存储空间的特性和扩展。这两个部分常日是在不同阶段相互独立地完成,因此大大增加了系统开拓的韶光,系统设计的实时性也不能得到担保。本文先容了MATLAB中的MATLAB与CCS的接口和Embeded Target for TIC2000 DSP,提出了一种基于TI C2812的软件设计思路,实现将设计仿真和源代码开拓在同一平台下开展,从而有效地将开拓过程中的两大阶段有机地结合在一起,大大缩短了开拓周期,并通过运用实例进行验证。

1 ETTIC2000概述
Embedded Target for the TI TMS320C2000TM为TI C2000 DSP实时掌握软件的自动天生的模型仿真、源代码开拓、目标代码自动天生、实时调试等各个环节都供应了技能方面的支持[2]。
1.1 ETTIC2000的功能和特点
ETTIC2000首先利用Real-Time Workshop从Simulink模型天生标准C措辞程序代码,然后通过MATLAB Link for CCS Development Tools调用CCS开拓工具,编译链接Simulink所天生的程序,自动天生目标板(C2812 Simulator)的可实行代码(.out文件),末了把天生的可实行代码加载到目标板中,并利用嵌入式工具对程序运行进行实时监控和调试。
Embedded Target for the TI C2000 DSP、Simulink、Real-Time Workshop、CCS和TI目标之间的关系如图1所示。
1.2 C281×DSP模块库
ETTIC2000供应了多个Simulink模块,以支持不同型号的DSP,在MATLAB窗口中实行命令C2000lib,就会显示对应型号的DSP芯片模块。个中,本文利用的C281×的各模块如图2所示。
2 MATLAB与TI CCS的接口
2.1 CCSLink的功能及特点
MATLAB Link for CCS Development Tools作为MATLAB的一个工具箱被集成在MATLAB中,可以支持CCS能够识别的任何目标板。利用此工具箱,将调用函数、读写存储器或寄存器中的数据、实时测试等事情统一在MATLAB平台下进行,把MATLAB和TI CCS及目标DSP连接起来。其功能图如图3所示。
2.2 CCSLink的连接办法
利用CCSLink供应的MATLAB函数可以完成MATLAB与TI CCS、目标板的存储器或寄存器的数据及信息的交流。
CCS IDE的连接工具用于创建CCS与MATLAB的连接。从MATLAB的命令窗中可以运行CCS IDE中的程序,向目标板的存储器或寄存器读取数据,检讨DSP的运行状态,而且可以掌握DSP上运行程序的起止。
在MATLAB环境中可以创建一个嵌入式工具访问目标板的存储器或寄存器中的变量,即把C措辞代码中的变量作为MATLAB的一个变量处理。转变数据类型,创建函数声明,改变变量值,读取DSP中的数据与信息,所有这些操作都在MATLAB平台下进行。
在MATLAB中,对所有工具的操作办法是一样的,只是对应的属性及属性值不同而已。
3 运用实例
32位的TMS320C281×系列芯片领悟了DSP和微掌握器的最佳特性,能够完成64位的数据处理,专门的分支硬件减少了条件指令实行的反应韶光,使该处理器能够实现更高精度的处理任务[3]。
在TMS320F281×DSP中,ADC模块是一个12位带流水线的模/数转换器,由16个结果寄存器ADCResult存放ADC的转换结果,转换的打算过程为:
本系统搭建的是一个由AD模块采集来的数字旗子暗记量来掌握PWM输出的占空比的模型。通过读取AD转换的数据与信息,同时,利用示波器显示的PWM输出波形,剖析由CCS实时掌握的DSP代码自动天生的效果。
详细步骤如下:
(1)在MATLAB中的Simulink环境搭建模型如图4所示,选用ADC模块中A0通道,由PWM1通道输出结果,设置参数并进行仿真。
(2)配置CCSLink。 验证CCS是否在PC上安装并配置好,在MATLAB命令窗中输入命令:ccsboardinfo,则MATLAB命令窗中会返回图5所示的板卡信息。
图5证明CCS已经安装并配置好。CCSLink事情时CCS将自动启动。
(3)在Real-Time Workshop中设置编译链接(Build)选项。
指定ti_c2000.tlc作为系统目标文件(system target file)。设置好Build选项后,通过编译链接选项,Real-Time Workshop会自动产生实时可实行代码,同时,可通过设置将可实行代码自动加载到指定的目标板上并且开始运行。图6为MATLAB命令窗口显示。
(4)实时代码调试。
在MATLAB环境下编辑m文件,并运行以下代码:
cc=ccsdsp(′boardnum′,0,′procnum′,0)
//创建一个连接工具
visible(cc,1)//CCS IDE窗口在桌面上可见
linkinfo=info(cc)//测试DSP目标板的状态信息
projfile=fullfile(matlabroot,′work′,...);
projpath=fileparts(projfile);
open(cc,projfile)//加载工程文件
build(cc)//编译文件
load(cc,′.out′)//可实行文件加载到DSP中
run(cc)//运行
halt(cc)//停滞
ddatv=read(cc,address(cc,′ddat′),′double′,2)
//访问嵌入在目标DSP存储器中的值
在MATLAB环境下完成了对工程文件的调入、编译,天生可实行文件并将其加载到DSP目标板。切换到已经打开的CCS界面,可以看到在MATLAB环境下已经完成了对CCS的各种操作。
(5)运行结果。
当由变位器给定仿照电压输入为1 V时,加载自动天生代码到DSP后,读取DSP寄存器的值如图7所示。
自动天生代码F2812.ADC=(AdcRegs.ADCRESULT0)>>4;之以是右移4位,是由于在级联序列发生器模式中,读取时,ADCRESULTn寄存器为左对齐,应向右平移4位后读取[4]。 结果寄存器存放的数字量与打算得出的理论值 1 355非常靠近,如图8所示,验证目标板AD转换有效。
程序的目标板输出波形比较如图9所示。
图9证明了由MATLAB模型天生的代码是有效的,运行结果也与理论输出占空比近似,进而证明这种设计方法快捷、高效。
4 结论
运用MATLAB自动天生DSP代码的方案,有效地战胜了传统DSP代码设计方法效率低、难度大等缺陷,快速天生了标准化的C措辞代码和DSP可实行文件,极大地缩短了代码的开拓韶光。实验结果表明,自动天生的代码运行效果良好,可以运用于项目的设计与实现,表示了方案的实用性与可行性。
参考文献
[1] 李利.DSP事理及运用[M].北京:中国水利水电出版社,2004.
[2] 李真芳,苏涛,黄小宇.DSP程序开拓:MATLAB调试及直接目标代码天生[M].西安:西安电子科技大学出版社,2003.
[3] 苏奎峰,吕强,常天庆,等.TMS320281×DSP事理及C程序开拓[M].北京:北京航空航天算夜学出版社,2008.
[4] 张雄伟,陈亮,徐光辉.DSP芯片的事理与开拓运用[M].北京:电子工业出版社,2003.










