微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于 DSP 的电子负载:电子负载控制系统软件设计

基于 DSP 的电子负载:电子负载控制系统软件设计

时间:01-23 来源:3721RD 点击:

t(偏置误差)
实际的和理想的转换计算曲线如图5.3所示:

用标准的0~3V信号经过A/D转换器,由示波器测出电压信号的精确值,调用CCS的A/D转换结果寄存器数值,换算成模拟值,计算出可靠的增益误差和偏置误差。在数字控制环中直接使用公式5.1得到的模数转换结果。

5.3软件系统代码的编写

通用DSP的源代码开发可以用两个方法:一种是利用汇编指令编写源代码,然后经汇编器和链接器汇编链接后生成可执行目标代码;另一种方法是用标准C/C++语言在CCS环境下编写源代码,经C/C++编译器、汇编器和链接器进行编译链接,生成可执行目标代码。这两种代码开发方法都需要花费大量的时间,耗时又耗力,大大的增加了产品开发难度,延长了产品开发的周期,从而影响到开发的效率。

Math Works公司和TI公司联合开发的工具包-MATLAB Link for CCS Development Tools,把MATLAB和TI的DSP集成开发环境CCS(Code Composer Stadiu)及目标DSP连接起来。用此工具可以来方便的操做DSP的存储器或寄存器设置,像操作MATLAB变量一样,整个目标DSP对于MATLAB像透明的一样,在MATLAB环境下,开发人员可以方便的完成对CCS的操作。MATLAB Link for CCS Development Tools支持CCS识别的任何目标板,包括TI公司EVM板、DSK板和用户自己开发的DSP板。如果再把MATLAB Link for CCS Development Tools与另外一个工具包Embedded Target for the TI TMS320C2000 DSP Platform配合(MathWorks公司和TI公司联合开发的)配合使用,则可以直接由MATLAB里面的Simulink模型生成DSP的可执行代码,即在MATLAB环境完成DSP开发的过程。

首先,根据系统的设计在MATLAB/Simulink平台下搭建系统模型(.mdl),仿真满意后,通过MATLAB提供的Real Time Workshop(RTW)生成面向TI编译器的工程文件代码(.prj)并进一步完成代码的编译,运行仿真模型产生C代码程序,并且生成DSP可执行机器码(.out),最后下载到目标DSP板上,运行测试程序,完成系统的开发。

上述开发过程全部在MATLAB/Simulink环境下进行,开发人员不需要写任何代码,仅仅需要利用MATLAB的模型模块,就可以完成系统的设计。而且开发人员在系统设计过程中可随时对系统进行仿真验证,确保系统设计的正确性。下图5.4即为DSP代码自动生成的开发流程图。

根据设计的控制算法,利用MATLAB Link for CCS Development Tools工具包和Simulink工具包里面的功能模块,搭建出控制系统的仿真模型,TMS320LF2812是一款32位定点DSP,为了能进行浮点运算,我们一般在DSP数据处理中会使用IQmath库,用定点运算代替浮点运算,在建模过程中要处理好数据格式的设置,在建立模型的过程中尤其要注意那些前后两级都有连接的模块,选用统一的Q格式。遇到模拟信号时用采样保持器和量化器把模拟连续信号离散化和数字化,数字控制环的时间选用为3.3微秒,如下图5.5所示。

然后根据实际电路中控制效果,改变配置的PID参数大小,使控制效果达到最佳。本文中根据实际情况,只采用了PI控制。最后需要注意的是,建模的时候一定要加入F2812 eZdsp模块,在自动生成代码的时候需要对一些模块进行相关参数设置。F2812 eZdsp模块主要的配置信息包括:DSPBoardLabel和BuildAction,其中,BuildAction配置代码生成的四种功能模式:①Code(代码)模式,只生成C代码;②Project(工程)模式,只生成工程文件;③Build(编写)模式,生成工程文件并编译链接;④Build and Load(编写下载)模式,生成工程文件,编译链接并下载到目标板。DSPBoardLabel配置仿真器型号,所用仿真器为F2812 XDS510 Emulator,选择Build and load功能模式。然后进入Simulink的Simulation-Configuration Parameters,单击实时工作室Real-Time Workshop进入配置界面。进行如下配置:

System target file:ti_c2000_grt.tle

Make command:make_rtw

Template makefile:ti_c2000_grt.tmf

最后在Real-Time Workshop界面中,点击generate code按键,MATLAB根据设置自动生成DSP工程文件,并且自动连接打开CCS开发环境,对C代码进行编译,链接、下载到目标板上。通过CCS IDE,我们可以看到代码生成过程中自动建立的Project.prj工程文件,工程文件中包括:源文件,库文件,链接文件等。

实时工作站针对不同的目标系统,产生相应的代码,主要包括目标系统相关的I/O驱动和中断服务程序(ISR)。产生代码的过程中MATLAB环境会实时的提供相关的信息,如一些警告或出错信息,用户可以根据提示修改相应的模块的设置。由于生成的代码是C代码,我们还可以根据具体的需要,在后期的时候方便的修改生成的代码,以完善设计。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top