基于Matlab/Simulink的DSP仿真调试研究

2013-07-19 01:56王成
中国科技信息 2013年21期
关键词:管理器命令代码

王成

西安航空学院电气学院, 陕西 西安 710077

1. 概述

Mathworks公司与TI公司联合开发的Matlab Link for CCS Development Tools,提供了Matlab与CCS的接口,即把Matlab与TI CCS即目标DSP连接起来。Matlab Link for CCS Development Tools作为工具箱被集成在Matlab中,利用此工具箱可以像操作Matlab变量一样来操作 DSP寄存器[1]。

TMS320C28x是到目前为止用于数字控制领域性能最好的D5P芯片。这种芯片采用32位的定点DSP核,可以在单个指令周期内完成32×32位的乘累加运算,具有增强的电机控制外设,高性能的模/数转换能力和改进的通信接口,采用低电压供电(3.3v外设/1.8vCPU核),与TMS320C24x源代码兼容。TMS320F2812芯片具有较高的性能和适用于控制领域的功能,广泛应用于工业自动化、电机控制等领域[2]。本文以SEED-DSK2812开发板作为硬件工具。

2. DSP代码生成流程

首先根据系统的设计要求,在Matlab/Simulink 平台下搭建系统模型,仿真实现后,通过Matlab 提供的Real Time Workshop 生成面向DSP 编译器的工程文件代码,并进一步完成代码的编译、链接生成DSP可执行文件,最后下载到目标DSP 开发板上运行,完成系统的开发。

上述开发过程全部在Matlab//Simulink环境下进行,开发人员不需编写程序代码,只需利用Matlab/Simulink 的模块完成系统设计即可。而且在系统设计过程可对系统进行实时仿真验证,保证系统设计的正确性[3]。

2.1 CCS Link的配置方法

为验证CCS Link是否安装正确,打开matlab,在命令窗中键入命令help ccslink,如CCSLink安装正确,命令窗即显示产品信息,如图1所示。

图1 CCS Link安装信息

验证CCS是否在主机系统安装并合理配置,在Matlab命令窗键入命令ccsboardinfo,如CCS已安装并合理配置,则命令窗即显示产品信息,如图2所示。

图2 CCS安装配置图

2.2 TMS320F2812 ADC控制PWM输出电平信号

TMS320F2812 ADC模块是一个12位分辨率、具有流水线结构的模数转换器,具有16个通道,可配置为2个独立的8通道模块,也可级联成一个16通道的模块。本例通过使用ADC模块进行采样的模拟电压,并产生一个PWM的脉冲波形,并通过输入的模拟电压来控制PWM输出波形的占空比。

TMS320F2812 ADC模块表示连接到选定模块输入引脚的信号,并进行模拟量到数字量的转换。该ADC块的输出为模拟输入信号的数字值,并且将转换后的值存储在结果寄存器中。本例中可以使用此块捕获和数字化输入的模拟信号,应用DSP 单序列发生器,外部输入来自可调电压信号,接入DSP模数转换输入引脚ADCINB0引脚。

TMS320F2812 包含用于生成信号的脉冲宽度调制器。其能够提供选项来设定事件管理器A或时间管理器B的生成所需波形。每个事件管理器在同一时刻可产生8个PWM的波形输出,通过带有可编程死区的3个全比较单元可单独产生3对输出;通过GP定时器的比较功能可产生两个单独的PWM。本例选择事件管理器B作为PWM信号输出。设计思路流程如图3所示。

图3 ADC控制PWM输出设计图

Matlab/Simulink 模型搭建如图4所示

图4中Pulse Generator模块可设置输出信号参数,通过调整ADC的输入电压值,可使输出的PWM信号占空比随之发生变化,但PWM信号的周期保持不变。如图5所示,分别产生占空比分别为50%和75%的PWM信号。

图4 ADC控制PWM占空比模型图

图5 ADC控制PWM输出波形图

3. DSP代码直接生成

当Matlab/Simulink 模型仿真实现后,在Real-Time Workshop 界面,选择系统目标为ccslink_ert.tlc,选择语言为C语言,再点击generate code 按钮。如图6所示。

图6 DSP代码生成图

Matlab 将根据设置自动生成DSP 工程文件自动连接打开CCS 开发环境,并且对C 语言代码进行编译、链接,下载到目标板。通过观察Matlab命令窗可知,代码的生成过程中建立了DSP工程文件,其中包括:源文件、库文件、输出文件等[4]。如图7所示。

图7 DSP生成文件图

将输入电压连接到ADC输入ADCINA0的管脚,电路设计框图如图8所示。

图8 硬件电路连接框图

利用示波器观察PWM1管脚波形,通过不断调整ADC模块电压输入值,可观察到PWM1管脚输出波形按照设定进行变化。可分别生成占空比为50%和占空比为75%的PWM波形,如图9所示。证明由Simulink模型DSP生成代码正确,达到设计要求。

图9 DSP芯片PWM输出波形图

4. 结语

通过以上示例,验证了利用Matlab/Simulink 搭建模型并直接生成DSP代码开发方法。通过此方法,开发人员仅通过Matlab/Simulink搭建系统模型,利用Matlab Link for CCS Development Tools工具箱,即可实现DSP系统的开发过程,不但减轻了开发人员的工作负担,提高了工作效率,还可以实现更加复杂的控制算法,具有很强的实用意义。

[1]李真芳,苏涛,黄小宇. DSP程序开发-Matlab调试及直接目标代码生成[M ]. 西安:西安电子科技大学出版社, 2003

[2]王忠勇,陈恩庆. TMS320F2812 DSP原理与应用技术[M ]. 北京: 电子工业出版社, 2012

[3]齐星刚,赵刚,李原. 在Matlab/ Simulink 平台上DSP 代码的自动生成[J]. 中国测试技术,2005 ,31 (1) : 87-88.

[4]卢小锦,曾岳南. 基于Matlab/ Simulink 的TMS320F2812代码开发[J]. 单片机与嵌入式系统应用,2009,2:79-81

猜你喜欢
管理器命令代码
只听主人的命令
启动Windows11任务管理器的几种方法
应急状态启动磁盘管理器
安装和启动Docker
Windows文件缓冲处理技术概述
创世代码
创世代码
创世代码
创世代码
移防命令下达后