DSP开发环境

2024-11-05

DSP开发环境(精选7篇)

DSP开发环境 篇1

1 引言

DSP一般认为有两种含义, 一种是指DSP器件 (Digital Signal Processor) , 另外一种是指DSP技术 (Digital Signal Processing) , 下文提到的均为第一种含义。伴随全球信息化进程的不断推进使得人们对于信息处理的需求更加迫切, 相应的推动了计算机技术、电子技术等学科的进步, 越来越多的领域开始借助于DSP实现高速的数据处理、有效的设备控制等功能[1]。DSP实际上是在对硬件设备进行必要的设置后通过软件编程的方法控制硬件进行操作和处理的, 因此, 一个DSP程序如何进行设计就变得非常重要。

2 DSP程序的开发及运行

DSP程序的开发需要一定的编程语言和开发环境, CCS (Code Composer Studio) 是TI公司推出的DSP集成开发平台, 该平台集成了编辑、编译连接、调试及仿真等功能, 支持汇编、C语言, 并提供多种实时分析和编程方法, 是目前功能最全的DSP开发平台[2]。配合DSP的代码生成和代码调试等开发工具, 我们可以在CCS下完成一个基本的DSP程序的设计。

2.1 DSP程序的开发流程

一般来讲, 一个DSP程序的设计运行需要经过以下的操作流程:

⑴建立工程文件。

⑵编辑源文件、命令文件, 库文件等。源文件可以采用C语言或汇编语言或者二者混合进行编辑, 它是实现DSP程序功能的主体。CMD文件指定存储分配。库文件包含需要的一些系统函数或者数据定义。

⑶编译链接源程序, 生成目标代码程序和可执行程序。尽管采用C语言会汇编语言作为编程语言, DSP程序的目标及可执行文件有其特有的格式设置, 一般是COFF目标文件和COFF可执行文件。

⑷下载执行程序, 观测运行结果。在程序编译好运行之前, 需要将其载入目标扳。CCS的连接器输出的目标文件的后缀为.OUT。每次程序改动之后, 都要进行重新编译和载入[4]。

2.2 DSP程序开发运行的要点

DSP程序区别于一般的汇编语言程序或C语言程序, 在开发过程中有几点非常关键:

⑴在遵循基本的编程语法和规则的基础上, 充分考虑DSP器件的特点。实际应用中需要大量的硬件设置, 这些都要通过软件方式实现。其中, 最关键的就是相关寄存器的操作, 通过寄存器值的设置或读取, 可以完成对很多硬部件的操作设定也就是DSP需要使用的功能的设计或设备工作状态的判定。因此, 学会熟练的操作寄存器是DSP程序设计成功与否的关键。而DSP器件本身型号多种多样, 不同系类的芯片也有很大的区别, 所以一定要细心。

⑵熟悉相应的开发芯片的基本特征。一款DSP芯片上包含很多的部件, 这些部件的有机配合完成了最终程序功能的实现。其中CMD文件的编写对于整个程序的顺利执行至关重要, 因为所有的DSP程序最终都需要在DSP芯片的内部存储器上存储并最终运行, 而DSP芯片的存储是有限的, 因此, 必须对程序中所涉及到的代码和数据给出准确的存储映射, 这样程序存储执行时才能有条不紊的进行。

⑶仿真实现的重要性。既然是通过软件的方式操纵硬件, 在设计阶段, 我们必须借助于仿真对程序进行测试, 因此仿真器的使用非常关键, 有了它, 计算机和DSP芯片间能实现有效的沟通, 设计出的程序才更准确。

3 C语言编写的DSP程序实例

3.1 DSP下C的特点

DSP下的C语言有着其自身的特点:

⑴DSP的C语言是标准的ANSIC, 它不包括同外设联系的扩展部分, 如屏幕绘图等。但在CCS中, 为了方便调试, 可以将数据通过printf函数的调用虚拟输出到主机的屏幕上。

⑵DSP的C语言的编译过程为, C编译为ASM, 再由ASM编译为OBJ。因此C和ASM的对应关系非常明确, 非常便于人工优化。

⑶DSP的代码需要绝对定位;主机的C的代码有操作系统定位。

⑷DSP的C的效率较高, 非常适合于嵌入系统。

3.2 一个例子

正因为标准的C语言和DSP下的C语言使用有所区别, 因此在运行过程中会出现一些问题, 下面以安装F2812开发板的瑞泰创新实验系统作为程序开发对象, 在CCS2.2环境下给出一个简单的C语言程序的运行给出说明, 该程序实现简单的数据输出, 且在TURBORC下调试通过, 运行得到正确结果, 程序命名为Cprogram, 全文如下:

将这一程序移植到CCS下, 建立同名的工程, CMD文件, 选择库文件后进行编译链接, 结果出现两个警告, 程序得不到输出结果。这也是大部分学生在编写了DSP程序后编译时出现的警告信息。警告信息如下:

⑴警告信息的消除。第一个警告是因为DSP下的C程序最后一行必须是空行, 因此在源程序最后一行末尾按回车键换到下一行即可。第二个警告是因为包含stdio.h中函数的.cio段在命令文件中未定义, 将其加上后再编译, 所有的警告消除, 但程序仍然不显示结果。

⑵程序输出的显示。DSP下的printf函数非常占资源的指令, 它的顺利执行需要栈 (heap) 的设置, 因此, 在命令文件中需要将-heap大小设为400h。此外, 由于本例中要使用库文件, 最初设定的是rts2800.lib, 但是仔细考虑后发现rts2800.lib和rts2800_ml.lib有较为明显的应用区别, 尽管都支持C/C++运行支持库, 但rts2800_ml.lib支持的是大内存模式且在指针访问区间上更占有是, 因此将库文件替换为rts2800_ml.lib后程序再经过编译链接下载运行后得出了最终的输出。

4 结论

DSP程序的开发是一项复杂的工作, 相比传统的程序设计需要考虑的东西更多, 更全面, 因此, 在学习中要坚持谨慎、细心, 把握好每个细节, 再能更好的完成特定功能的DSP程序开发。

摘要:随着DSP技术的快速发展, 其应用程序的开发引起了更多人的关注。本文探讨了在主流的CCS环境下进行DSP程序开发的一般流程, 并通过一个实例给出了用C语言编写的DSP应用程序在实际运行过程中无法得到有效输出的问题及解决方案。

关键词:CCS,DSP,CMD文件

参考文献

[1]王忠勇, 陈恩庆.TMS320F2812DSP原理与应用技术[M].电子工业出版社, 2012:1-9.

[2]何望春, 蔡卫平.CCS仿真软件中的文件输入输出方法[J].中国科技信息, 2012 (2) .

[3]周德卿.CCS集成环境下C与汇编的混合编程实现[J].微电子技术, 2002 (4) .

[4]李建国.基于CCS的DSP软件开发方法[J].海军航空工程学院学报, 2002 (7) .

基于DSP开发系统设计与实现 篇2

TMS320F28335是TI公司最新推出的32位浮点型DSP,可直接参与浮点型数据的运算,无需Q格式的转换,其主要特点为:高性能的静态CMOS技术,在最高为150 MHz振荡频率下,指令周期为6.67 ns;高性能的32位CPU,单精度浮点运算单元(FPU),采用哈佛总线结构,能快速中断响应和处理,并有统一的存储器规划,可用C/C++语言实现复杂的算法;控制时钟系统具有片内振荡器和看门狗定时器模块,支持动态改变锁相环(PLL)的参数值以改变CPU的输入时钟频率;8个外部中断,相对于TMS320F281x系列DSP,无专门的中断引脚;支持58个外设中断的外设中断扩展寄存器(PIE),管理片上外设和外部引脚引起的中断请求;增强型的外设模块;12位A/D转换器,可实现16通道的数据转换;88个可编程的分时复用GPIO引脚;低功耗模式,1.9 V或1.8 V内核,3.3 V I/O供电[1,2]。设计一个集这些优点于一身的DSP开发系统,对于初学者和开发人员有着重要的意义。本文首先分析和对比DSP电源设计方案,选择合适的设计方案并详细介绍;然后设计存储器扩展电路,并给出其存储范围;通过对比时钟电路的各种实现方案,择优选择适合于该系统的时钟电路并详细介绍;最后给出复位电路的设计方法和提高硬件抗干扰能力的措施。

1 系统电源设计

TI公司的DSP系列一般都有独立的内核和I/O电源。因为在DSP在系统中要承担大量的数据计算,在CPU内部,部件的高频率的转换会使系统功耗大大增加[3]。所以采用双电源的供电方式,F28335一路为I/O提供3.3 V电压,另一路为CPU内核提供1.8 V或1.9 V电压,这样可大大降低系统的功耗。

电源设计方案一:两路电源独立设计,其优点是调试方便且互不干扰,缺点是不能适合某些对上电次序有要求的DSP,成本较高。

电源设计方案二:采用TI公司的双路低压差电压调整器。TPS767D3xx系列电压调整器是TI公司为DSP开发的电源管理芯片[4],通过简单的设计,可以适合某些系列DSP内核与I/O电压的上电顺序问题。

本设计采用方案二,利用TI公司的双路低压差电压调整器TPS767D301。它的特点是:带有可独立供电的双路输出,一路固定输出为3.3 V,另一路可以在1.5~5.5 V调整,每路输出电流范围为0~1 A;电压差大小与输出电流成正比,且在最大输出电流为1 A时,最大电压差仅为350 mA;超低的静态电流85 μA,器件无状态时,静态电流仅为1 μA。

TMS320F28335对内核和I/O的上电顺序没有要求,可以同时上电,使得电源电路大大简化。具体电路如图1所示。

TPS767D301的输出端1OUT的电压由式(1)确定:

Vo=Vref(1+R1/R2)(1)

式中:Vref =1.183 4 V为电压调整器的内部参考电压;R1和R2的取值应保证驱动电流近似为50 μA。如果电阻过小,会使电流过大,消耗电力;如果电阻过大,FB引脚会出现电流脉冲尖峰,会使输出电压波动[5]。典型电压输出时,R1和R2的取值如表1所示。

为了提高输出电压的稳定性,模拟电源与数字电源之间通过铁氧体磁珠和电容进行滤波,铁氧体磁珠具有可以忽略的寄生电容,电气特性和一般的电感相似,这样可以减少来自模拟电源或其他并联电路所产生的噪声生干扰。

2 系统RAM扩展

在TMS320F28335的片上已经集成了34 K×16 b的RAM,且内部RAM的访问速度可达150 MIPS,通常用于放置系统对运算速度要求较高的程序。F28335的片上还集成了256 K×16 b的FLASH,但由于FLASH烧写次数有限,而且烧写速度慢,操作麻烦。使用外扩RAM后,仿真时程序可以放入外扩RAM中运行,程序长度不受限制,这样程序的设计和调试就非常方便。在调试完成后通过修改.cmd文件等方法将程序烧进FLASH中运行。同时,外扩RAM还可以开放给其他任务。外扩RAM选用ISSI公司的IS61LV25616,存储容量为256 K×16 b,3.3 V的供电电压。使用区间6作为外扩存储区间,存储地址范围为0x100000~0x13FFFF。由于IS61LV25616的访问速度有8 ns,10 ns,12 ns,15 ns可选择,而当CPU运行在150 MHz时,地址和数据的最小有效时间为3个时钟周期,即20 ns,所以不用考虑时序问题[6]。存储器的地址线和数据线分别对应DSP的地址线和数据线,片选端CS和DSP的GPIO28连接,存储器的读/写端口分和DSP的读/写端口连接,具体电路图如2所示。

3 时钟电路设计

TI的DSP时钟电路分为三类:晶体电路、晶振电路和可编程时钟电路。其中时钟电路如图3所示。

其特点是:结构简单,但频率范围较小,一般为20 kHz~60 MHz,驱动能力较弱。晶振电路利用外部独立的时钟源给系统提供时钟。其特点是:频率范围较大,一般为1 Hz~400 MHz,驱动能力强,可为具有相同时钟的多DSP系统使用。可编程时钟电路可以为外设提供不同的时钟,适用于不同时钟源的系统使用,频带宽度可达[7]200 MHz。F28335的外部时钟可以有两种输入方法,如图4~图5所示。

该设计使用1.9 V的外部时钟源晶振电路,如图6所示。其中,100 Ω电阻用来衰减外部杂波的干扰,提高时钟波形的质量,SN74LVC1G14是单路施密特反向触发器[8]。

4 复位电路设计

复位电路是在系统上电或程序跑飞时对系统自动或手动的初始化。该设计采用TI公司推出的三端监控芯片TPS3307系列来实现系统初始化和电源监控功能[9]。TMS320F28335采用1.8 V或1.9 V内核电压,3.3 V I/O电压。利用TPS3307-18来实现对系统的自动和手动复位。SENSE1,SENSE2和SENSE3管脚分别对3.3 V I/O电压、1.8 V内核电压和3.3 V模拟电压监控。手动复位ΜR¯引脚接至复位键,当按下时RESEΤ¯变为低有效,实现手动复位的功能。具体电路如图7所示。在上电期间,当电源电压高于1.1 V时,RESEΤ¯开始有效,然后开始监控SESEN输入管脚的电压。当SENSE1,SENSE2和SENSE3分别低于门限电压2.93 V,1.68 V和2.5 V时,TPS3307-18的RESEΤ¯向F28335发出低电平复位信号,实现自动复位的功能。

5 结 语

基于DSP开发系统的PCB设计对最终系统的性能有着重要的影响。特别是对于DSP,管脚多且管脚间的间距小,导致布线时线间距受到限制,容易受到干扰。为了有效抑制干扰,在布局时输入时钟应尽可能靠近DSP,使其输入线路尽可能短,并使晶振外壳接地;为了减小芯片上的电源电压瞬时过冲,在电源的输入端使用去耦电容;电源是系统的主要干扰源,使用旁路电容及去耦电容来尽量减小电源对系统的影响。在设计中,可以利用0.1 μF的电容来避免内在的振动和高频噪声,利用10~100 μF的旁路电容减小电压输出的脉动[10]。基于以上考虑,DSP开发系统才能够稳定可靠地运行。

参考文献

[1]雷晓瑜,曹广忠.TMS320F28335及其最小应用系统设计[J].电子设计工程,2009,17(1):91-95.

[2]Texas Instruments.TMS320F2335/28334/28332,TMS320F28235/28234/28232digital signal controllers[R].USA:Texas Instruments,2008.

[3]汤旭慧.基于硬件逻辑的微处理器通用开发系统的设计[J].现代电子技术,2008,31(2):68-71.

[4]Texas Instruments.TPS767D301,TPS767D317,TPS767-D325 dual-output low-dropout votage regulators[R].USA:Texas Instruments,2003.

[5]张云安,冯志华,王晓峰.双路输出低压差电压调整器TPS767D301及其应用[J].电子元器件应用,2006(7):112-114.

[6]闫晓燕,张洪亮.基于DSP的高速外扩存储器的设计[J].现代电子技术,2008,31(24):4-6.

[7]王立华,刘志军.DSP系统中时钟电路的设计[J].电子世界,2005(5):29-30.

[8]Texas Instruments.Single schmitt-trigger inverter[R].USA:Texas Instruments,2007.

[9]Texas Instruments.TP3307-18,TP3307-25,TP3307-33tripleprocessor supervisors[R].USA:Texas Instruments,2006.

DSP开发环境 篇3

一、磁场定向算法 (FOC) 模型简介

本例中对于FOC算法, 采用Id=0的转速和电流闭环控制方案, 速度环具有增强系统抗负载扰动的能力, 根据速度给定和速度反馈, 通过速度调节器输出电流转矩分量给定值。电流环为双环结构分别调节电流转矩分量与电流励磁分量跟踪给定值的变化, 快速提高系统的响应性能。经两个电流调节器输出的d-q轴电压分量合成为一个电压矢量, 通过svpwm调制, 直流母线电压将以PWM波的方式加到电机上。

模型中用到的模块是由matlab中提供的TIC2000系列的Digital Motor Control (DMC) 和IQMath库构建, 这些库是专门针对TIC2000系列处理器编写, 生成代码的效率可以和汇编语言相媲美。Target Preference设置为F2812, 具体设置和处理器相一致。在模型中设置Rate Tranation2模块输出采样时间为0.01s, 为转速闭环的采样周期。电流环采用系统的采样时间5E-5s即PWM频率为20KHZ。由于TIC2000系列处理器为定点处理器, 所以本例在建模时是按照定点模型建立。对于FOC所有输入信号都采用的是Q17格式, 所以空间矢量发生模块输出的也是Q17格式的数据, 但是TIC2000中PWM模块默认的输入数据是Uint16格式, 所以要进行数据格式的转换, 这一功能由PWM Scaing模块实现。

二、处理器在环测试

处理器在环测试是在Simulink中搭建被控对象的模型, 而将控制器算法代码下载到目标处理器中去执行。

系统输入端口信号是利用永磁同步电机控制系统仿真时产出的数据, 通过logsout数据结构记录, 然后导入到PIL测试模块中, 最后记录其输出的PWM波形。图中的FOC子系统为Simulink搭建的算法模块, FOC1是有FOC子系统生成的PIL测试模块。通过Inspect Logged Signal工具观察其具体波形, 结果如图1所示:

通过观察结果可知其PWM和PWM_PIL波形误差为零, 验证了算法生成代码在处理器中执行的正确性。

三、总结

基于模型的设计优势在于算法的早期验证, 使得开发者可以将主要精力放在算法开发上, 代码则由Matlab自动生成, 很好的提高工作效率。在实际的开发中, 将算法生成为函数进行调用, 一般底层驱动和控制流程使用汇编语言或者C手工编写。如果通过Matlab对底层驱动建模则十分复杂, 得不偿失, 控制流程开发也没有C语言灵活。

参考文献

[1]赵纪倩, 贾要勤.基于Matlab/Simulink的DSP控制代码开发技术[J].电力电子技术, 2010, 12:59-61

[2]刘杰.基于模型的设计及其嵌入式实现[M].北京:北京航空航天大学出版社, 2010

[3]The MathWorks, Inc.Embedded Coder Guide, April 2011

DSP开发环境 篇4

仿真技术迎接SoC挑战

从1989年TI发明JTAG仿真技术,取代内电路仿真器(ICE)以来,DSP仿真器正因为SoC设计又一次需要技术突破。So C集成了更多的外设,已经无法通过常规的示波器和逻辑分析仪完成设计过程中的仿真,而多核处理器技术也对仿真系统的实时处理能力提出新的挑战。此外,CPU自身的主频和芯片总线时钟频率的提高,对仿真器的稳定性提出了新的要求。片上存储空间越来越大,通过仿真器交换的数据量越来越大,要求仿真器的带宽也越来越大。

为了应对这些挑战,合众达北京分公司技术工程师向涛表示针对XDS560 DSP的开发工具SEED-XDS560PLUS采用了更高速的2 M/s RTDX,可以实时获取目标系统数据。程序下载速度也高达500k/s,是此前推出的XDS510的8倍。并可支持TI全系列的DSP的仿真,无需外接电源,方便易携。

基于达芬奇的视频服务器方案

合众达发布的另一款产品SEED-DVS6446是基于TI的达芬奇平台DM6446的视频服务器方案。DVS6446的视频输出采用DM6446片内的四路10位的DAC输出,实现CVBS与VGA输出。其中CVBS输出接口使用了1路DAC, VGA输出接口使用了3路的DAC。当配置为VGA输出接口时,还使用了行场同步信号H S Y N C和VSYNC。

SEED-DVS6446的VGA视频输出接口由VPBE模块提供。VPBE输出接口分为数字接口和模拟接口两部分,模拟接口包括4路视频DAC信号,一路DAC电压参考线和R偏差信号。其中,DAC1被用来作为模拟R信号输出,DAC2被用来作为模拟G信号输出,DAC3被用来作为模拟信号B输出,模拟RGB信号与HD、VD一起,组成了V G A接口的基本输出信号。

DSP开发环境 篇5

关键词:开放式运动控制器,DSP,CPLD

1 引言

运动控制器是数控机床、机器人等一类机电一体化设备中常用的核心运动控制部件。现代数控技术对运动控制系统的开放性、实时性、加工速度和精确度等性能指标提出了越来越高的要求。随着集成电路技术、微电子技术、计算机技术不断发展,运动控制器已经从以单片机、微处理器和专用芯片作为核心的运动控制器发展到基于PC机平台的以数字信号处理器(DSP)和复杂可编程逻辑器件(CPLD)作为核心处理器的协处理架构的开放式运动控制器[1]。这种将PC机的信息处理能力和开放式的特点与运动控制器很强的运动轨迹控制能力有机地结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确和通用性好的特点。这种模式在一个统一的人机对话平台上,通过D S P算法和C P L D配置进行适当的调整来实现不同的硬件功能模块,可以方便地和多种类型的驱动器进行连接。因此现在基于PC的新一代运动控制器成为控制系统的主流和发展方向[2]。

本文开发的开放式运动控制器以PC机为平台,完成坐标变换、轨迹规划、粗插补运算等控制指令的设置和发送,同时可以实时显示当前伺服系统的运动位置、速度和电机状态等参数。运动控制器以DSP芯片作为核心处理器,完成数据处理和控制算法、进行保护中断的处理,通过P C I或U S B总线与P C机实时通讯。CPLD芯片作为协处理器完成编码信号的采集,鉴相处理,对脉冲和模拟量进行配置和输出,把D S P处理过的控制数据经过内部转换送到外部设备,并管理D S P和各种外部设备的接口。该运动控制器可以完成非匀速比同步运动控制,支持N U R B S插补,并提供了丰富的动态链接库函数。

2 运动控制器工作原理和硬件构成

该控制器可实现四路编码器反馈和电机控制,其核心是T I公司的TMS320LF2407数字信号处理芯片和A L T E R A公司的M A X 7 0 0 0 S系列C P L D器件EPM7128SLC84。控制器的硬件结构如图1所示。DSP完成与上位机的实时通讯,对伺服电机速度和位置的精确控制,电机状态监测和外部信号检测等功能。双口S R A M(D U A L-P O R T S T A T I C R A M)不仅提供控制器与上位机的通讯接口,而且还为运动轨迹控制提供了足够的缓冲区。由于一片D S P只提供两组正交编码脉冲(Q E P)电路,对于多于两个电机的控制器,若用多片D S P不仅会造成D S P资源的浪费,而且还会增加由于协调D S P之间的工作而产生的难度,因此这里我们用C P L D来提供另外两组正交编码脉冲电路,对速度、位置进行采样,同时用CPLD提供高速稳定的其它逻辑控制电路。

运动控制器由基板和接口卡组成,集成了DSP核心电路,通信电路,CPLD译码、中断、正交编码处理电路,编码器信号处理电路,电压转换电路,光电隔离电路等。运行过程中,P C机把粗插补的数

据通过ISP-1581芯片传递给DSP进行时间分割精插补。在每一个伺服周期中,CPLD器件和DSP各处理两路反馈的正交编码信号进而获取实时位置和速度,DSP计算出理论插补位置与实际位置的偏差,基于速度和加速度前馈进行PID调节,计算获得速度控制量,产生的输出信号经DAC7625进行数模转换及放大电路放大后将模拟电压发送至伺服驱动器以控制电机。

DSP两个事件管理模块中的正交编码脉冲(Q E P)电路可以实现对两对正交编码信号的四倍频和方向检测,其定时器工作在增减计数模式,依据电机运行情况进行计数。根据不同伺服周期定时器内数值的变化,可以计算获得电机的实际位置,由M/T测速法可求得其运行速度。另外两个电机的反馈信号由EPM7128进行处理,DSP与之通讯以获取电机运行信息。扩展4个32位寄存器用来存储电机当前位置,通过实时从计数器读取每个伺服周期走过的脉冲数与之累加实现。每隔一定的伺服周期,将4个16位的计数器赋初值32000使之重新计数。

2.1 CPLD处理电路

C P L D主要包括正交编码检测逻辑电路,D S P地址译码电路和计数器及中断逻辑四个部分,它对两个正交编码输入四倍频后进行计数,反馈给DSP。正交编码脉冲电路的方向检测逻辑决定了输入序列中的哪一个是先导序列,接着就产生方向信号作为计数器的计数方向输入。如果QEP1是先导序列,则所选的定时器增计数;如果Q E P 2是先导序列,则所选的计数器减计数。正交编码脉冲电路对输入的两列脉冲的两个边沿都进行计数,因此,由它所产生的时钟频率是每个输入脉冲序列频率的四倍。中断逻辑,限位和报警等信号产生时向DSP申请中断。每个轴的正负限位信号、归零信号和报警信号,四个轴共计16个信号,这些信号相或,只要有一个信号产生时就产生一个上升沿信号,此上升沿触发DSP中断,DSP以查询方式判断是哪个信号产生的中断。

2.2 控制卡通讯及接口

早期P C机通过I S A总线实现对电机的控制,但响应速度慢,实时性差,后来的PCI局部总线,解决了ISA的传输速度慢等问题。近几年通用串行总线U S B(Universal Serial Bus)以其较快的传输速率和支持热插拔等诸多优点而受到用户的广泛受青睐。得到了许多硬件和软件厂商的支持。USB 2.0接口的最高传输速率由12Mb/s提高到了480Mb/s,能够更好地支持数据实时传输。把USB引入运动控制器,实现了运动控制器的热插拔,解决了计算机接口资源有限等问题,满足了多轴运动控制卡对数据实时通讯的需要[3]。为提高运动控制器硬件上的开放性,开发了通用的接口卡,辅助完成基板与外部的通讯。除了进行反馈信号等的必要传输外,还提供了电机的限位、回零、报警、伺服使能等信号和通用I/O各8路。为防止外界信号干扰,保证控制器的可靠性和安全性,输入输出信号都经由T L P 5 2 1进行光电隔离。

3 速度、加速度前馈PID控制算法

本控制器采用典型的三环调节,其中速度调节器和电流调节器的功能由伺服电机驱动器完成,电流环用来提高系统的动态响应指标,增强系统抗干扰能力;速度环用于调节伺服电机的转速。位置闭环调节原理框图如图2所示,它包括位置PID调节和速度、加速度前馈,由运动控制器底层程序完成,用于实现精确定位、回零等,输出饱和控制可保证输出电压不会超过设定范围。

位置环的计算公式为:

En=(Ptarget)n-(Pactual)n(1)

其中En为第n个采样时刻的位置误差;Ptatget为第n个采样时刻的目标位置;Pactual为第n个采样时刻的实际位置;Un为位置环输出速度指令电压为第n个采样时刻的累积误差值;Vt为当前目标速度;Kvff为速度前馈增益;At为当前目标加速度;Kvff为加速度前馈增益;Kp、Ki、Kd分别为比例、微分和积分增益。

4 Matlab仿真及结果分析

基于KLD-200二维数控平台进行仿真。平台由两个Panasonic公司的MSMA012A 1E伺服电机及配套的M S D A 0 1 3 A 1 A驱动器进行控制。电机最高转速为3000RPM,功率100W,增量式编码器,2500P/r,丝杠导程为4 m m/r。取KP=100、K i=12、Kd=2进行仿真。Y轴电机速度曲线与余弦曲线类似,跟随误差曲线如图3所示。无前馈情况下电机跟随误差从开始的63个脉冲在0.137秒后上升到114个脉冲,随后作类似余弦曲线的变化。引入前馈后,跟随误差从开始的63个脉冲迅速上升到109个脉冲,然后逐渐下降,在大约0.2秒后稳定在±2个脉冲之间。可见,速度和加速度前馈大大减小了系统的跟随误差。利用自己开发的运动控制器对数控平台反复进行控制实验,效果良好。梯形曲线控制实验中,设定加速度为10rev/s2,目标速度300RPM,位移120mm。到达目标速度后,驱动器显示的电机速度波动范围在±2RPM之间。利用VC的OnTimer()函数实时获取位置信息并进行显示,可以看出,到位后的最大超调量约为5~10个脉冲,稳态误差在±2个脉冲之内,小于1 m m。

5 结束语

本运动控制采用基于DSP和CPLD的硬件方案充分发挥了D S P芯片实时高效的处理能力,系统设计合理,可以实现变传动比的电子齿轮和多轴插补功能。控制器采用了基于速度和加速度前馈的PID调节和N U R B S插补等先进理论,实验和仿真结果表明,该运动控制器实时性好,控制精确度高,跟随误差小,理论跟随误差小于2个脉冲,位置控制误差小于1 m m,可以满足高速高精度加工的要求。

参考文献

[1]张广立,谈世哲等.基于Windows NT的开放式机器人控制系统[J].机器人,2002,24(5):443-446

[2]EROL N.A.,ALTINTAS Y.,ITO M.R.Open sys-tem architecture modular tool kit for motion and machin-ing process control..IEEE/ASME Transactions onMechatronics,2000,5(3):281-291

DSP开发环境 篇6

笔者利用Matlab /Simulink建立了矩阵变换器仿真模型,验证了间接矢量调制策略的正确性,设计制作了矩阵变换器样机,输入采用LC滤波器,箝位电路,输出带阻感负载,并在样机上实现四步换流FPGA逻辑算法设计。

1 矩阵变换器的系统构成

矩阵变换器分为单级和双级两种,也分别称为直接和间接矩阵变换器。笔者以单级矩阵变换器为研究对象,其由9 个双向开关构成,如图1 所示。三相输入与输出通过开关直接相连,通过对双向开关的逻辑控制,可以实现AC-DC、DC-DC、DC-AC任意电力变换,但AC-AC变换是研究的重点[3,4]。

控制器采用FPGA + DSP结构实现,总体设计框图如图2 所示。主电路采用高频IGBT作为主功率器件; DSP负责完成矩阵变换器控制算法,并最终生成9 路PWM控制信号,送至FPGA控制器; FPGA接收DSP时钟信号,通过DCM( 时钟管理模块) 将15MHz时钟信号分频为FPGA所需的6MHz时钟信号,接收复位、三路电流方向检测信号和9 路DSP输出PWM信号; 电流方向检测信号供FPGA实现四步换流,最终得到矩阵变换器的18 路PWM控制信号,并通过驱动电路实现对矩阵变换器主电路的控制。

2 电流四步换流原理

矩阵变换器是一次变换器,无须中间储能环节。通过双向开关的逻辑控制,快速改变输入与输出的连接方式,即可实现幅值和频率的改变[5]。由于矩阵变换器通过9 个双向开关将三相输入/输出直接相连,不存在续流环节,因此需要对双向开关进行逻辑控制来实现安全换流、调频、调幅。通常,矩阵变换器的输入侧为三相电压源,而输出侧可等效为三相电流源。为实现安全换流,矩阵变换器的工作过程中必须遵循两个基本原则[6,7]:

a. 为避免过流,与同一输出相相连的3 个开关有且只能有一个导通;

b. 为防止过压,三相输出端的任意一相电路均不能断路。

图3 为两个双向开关之间的换流示意图,图中两个单向开关S1n与S1p组成双向开关S1,两个单相开关S2n与S2p组成双向开关S2。为防止出现过流,换流过程输入电源端不能短路,即S1p和S2n不能同时导通,S1n和S2p也不能同时导通; 为防止出现过压,换流过程中输出端不能出现断路,即在换流过程中,4 个单向开关中至少有1 个处于导通状态。换流的过程是伴随着电流方向来区分的,由于能量是在电源和负载之间双向流动交换的,因此电流方向分为电源流向负载和负载流向电源两种,此处定义电源流向负载为正方向,图4所示为iL> 0 时4 步换流控制信号波形。

设计中设置IGBT的导通、关断延时统一为2μs,IGBT的关断时间为1μs,开通时间小于关断时间,因此2μs的延时足够满足一个IGBT的导通或者关断时间。

3 空间矢量调制策略

空间矢量调制算法是虚拟直流储能环节,将矩阵变换器虚拟为电压源整流器与电压源逆变器,采用传统的空间矢量法进行合成[8 ~ 10]。

图5a所示的正六边形由6 个有效矢量划分为6 个输出电压扇区,在每个扇区中的参考输出电压矢量可由该扇区中相邻的两个有效矢量按相应占空比合成得到; 两个相邻有效矢量的占空比分别为dm与dn; 图5b中为虚拟整流器,两个相邻有效矢量的占空比分别为dα与dβ。

每个PWM周期内实际矩阵变换器的4 个有效矢量开关状态分别定义 αm、αn、βn、βm。由于虚拟整流器和虚拟逆变器空间矢量调制中分别存在6 个输入电流扇区和6 个输出电压扇区,实际矩阵变换器存在36 种不同的输入电流- 输出电压扇区组合[11,12]。

4 个有效矢量开关状态与零矢量开关状态的占空比分别为[13,14]:

4 样机和实验波形

基于四步换流和空间矢量调制策略,分别在仿真和实验中对方案进行研究:

a. 仿真验证。在Matlab / Simulink中利用理想开关搭建MC的模型,其输入采用LC滤波,输出分别采用带纯阻性负载和阻感负载,直接给定调制系数0. 8,实验中负载采用36Ω 电阻和8m H电感,其仿真波形如图6、7 所示。

b. 实验验证。为进一步验证所采用的控制策略,在仿真的基础上利用FPGA和DSP控制器搭建了实验平台。矩阵变换器输入侧为电网电压,输出侧为阻感负载,参数与仿真中设置一致。实验波形如图8、9 所示。

在实测波形中发现,当输出PWM波形中出现窄脉冲(脉冲作用时间小于换流时间)时,会导致触发脉冲的丢失,引起输出波形畸变。

经实验验证,高调制比输出时,出现窄脉冲的几率小,给定调制比越低,实际输出电压中谐波含量越大,THD值越高,因此实验中直接给定调制系数为0. 8,保证了输出电流、电压的正弦性[15]。通过仿真和实验实测波形对比,波形基本相符,验证了四步换流程序和空间矢量调制策略的正确性、可行性。由于实验样机的功率管不是仿真中的理想开关,双向开关的开通、闭合具有响应延时,使实验波形没有仿真中的效果好。引入闭环控制,可以改善矩阵变换器的输出电能质量。

5 结束语

DSP开发环境 篇7

传统使用FPGA的数字信号处理系统的设计,首先需要用仿真软件进行建模仿真,得到预想中的仿真结果后,再根据仿真过程和结果,使用硬件描述语言创建硬件工程,最后完成硬件仿真。整个过程漫长而繁杂,尤其困难的是仿真过程不够直观,一旦遇到问题无法及时准确地确定问题所在。随着业界引入Simulink仿真开发工具,虽然可以对数字系统进行直观的仿真,但由于软件仿真仍与硬件实现有着相当大的距离,最初只被用于软件仿真阶段。而Altera DSP Builder将MathWorks Matlab和Simulink系统级设计工具的算法开发、仿真和验证功能与Altera开发工具整合在一起,缩短了软件仿真与硬件实现间的鸿沟。DSP Builder在算法友好的开发环境中可以帮助设计人员快速生成DSP设计硬件表征,从而缩短了DSP设计周期。已有的Matlab函数和Simulink模块可以和Altera DSP Builder模块以及Altera知识产权(IP)MegaCoreR功能相结合,将系统级设计实现和DSP算法开发相链接。DSP Builder支持系统、算法和硬件设计共享一个公共开发平台[1]。它还引入回路硬件(HIL)的思想,可以将硬件平台接入仿真链路,在不具备测试条件和环境的情况下,进行软硬件协同仿真,具有很强的实用性。

2 基于DSP Builder的DSP系统开发流程

首先使用DSP Builder模块搭建完成特定功能的系统,然后使用Simulink构建软件测试环境以及测试向量。软件仿真完成后使用Signal Compiler编译DSP Builder模块生成HDL工程[2]。但由于现阶段自动生成的代码可读性不够强,效率上不够高,所以需要对代码进行优化。即使这样,相对于传统开发方式还是极大地减少了开发者的劳动强度。完成之后就可以结合Altera其他开发工具进行综合、布局、布线。在不存在硬件测试环境的情况下,还可以使用HIL模块,将硬件平台链接入DSP Builder进行软硬件协同仿真。DSP Builder开发流程如图1所示。

3 基于DDS的多功能调制器设计

直接数字合成器(Direct Digital Synthesizer,DDS)是采用数字技术的一种新型频率合成技术,其通过控制频率、相位增量的步长,产生各种不同频率的信号,进而达到调制的目的[3]。它的优点有:较高的频率分辨率;可以实现快速的频率切换;在频率改变时能够保持相位的连续;容易实现频率、相位和幅度的数控调制。

3.1 基于DDS的调制器原理

DDS系统的核心是相位累加器,它由一个累加器和一个N位相位寄存器组成。每到一个时钟脉冲,相位寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为正(余)弦查找表的地址。正(余)弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0~360°范围内的一个相位点。查找表把输入的地址信号映射成正(余)弦波的数字幅度信号,同时输出到乘法器输入端[4],与幅度控制字相乘后产生输出波形。图2是基于DDS技术调制器的基本原理图。

3.2 利用DSP Builder设计基于DDS的调制器

由于篇幅所限,只列举出基于DDS的频率调制器。其调制原理是:使用输入的数字信号控制电子开关在两个不同的频率控制字间进行切换,从而达到输出不同频率信号的目的。具体实现如图3所示。幅度与相位调制器的原理与调频类似,也是通过调制信息选择不同的幅度控制字和相位控制字来实现。

本设计中累加器由带缓存功能的加法器模块实现,在生成的HDL工程,可以看出,软件调用的是Altera的LPM加法器模块来实现硬件电路。用于储存波形数据的ROM是由Altera的IP核LPM_ROM实现的。

3.3 仿真结果及分析

本仿真通过引入HIL模块来进行软硬件协同仿真。首先在Simulink平台下进行软件仿真,当结果满足设计要求时,使用Signal Compiler将Input,Output模块之间DSP Builder模块生成HDL工程,经代码优化后搭建顶层含HIL模块的仿真平台,如图4所示。设置两个不同的频率控制字分别为500000和900000,由输入数字信号对这两个频率控制字进行选择,进而影响载波频率,达到调频的目的。设置相位控制字为90,幅度控制字为5,由脉冲发生器产生随机脉冲数字信号作为调制信息。

通过设置HIL模块,在其中添加FPGA工程。硬件平台选用Altera DE1board,置有CycloneII EP2C20F484C7芯片。仿真链路创建好后,进行仿真。图5为引入HIL模块的软硬件协同仿真结果,与单独使用Simulink进行仿真的结果相同。可以看出由于调制信号的存在,当输入比特1的时候输出高频载波信号,反之输出低频载波信号,且两种频率切换时,相位连续。软件仿真与软硬件协同仿真结果相吻合,实验结果表明,该基于DDS技术的调制系统频率和相位灵活可调,具有较高的频率分辨率,性能良好。理论上,只要构成正弦信号的查找表样本足够大,输出信号的位宽足够长,输出波形的分辨率可以无穷小。但出于节省资源的角度考虑,通常不会将样本点数选得过大。

4 DMB-TH系统的交织解交织器设计

由于大多数编码是基于信道差错满足统计独立的特性而设计的,但由于实际信道往往是突发错误与随机错误并存的组合信道,所以需要利用交织技术将信道错误的相关度减小。在交织深度足够大的时候,就可以把突发错误离散为随机错误,为正确译码创造更好的条件。交织又可以分为分组交织和卷积交织。DMB-TH标准中使用的是卷积交织。

4.1 卷积交织、解交织器原理

时域符号交织编码是在多个信号帧的基本数据块之间进行的,其原理如图6所示。数据信号(即星座映射输出的符号)基本数据块间的交织采用基于星座符号的卷积交织编码,变量B表示交织宽度(支路数目),变量M表示交织深度(延迟缓存器尺寸)。

进行符号交织的基本数据块的第一个符号与支路0同步。交织、解交织对的总时延为M×(B-1)×B个符号[5]。

4.2 DMB-TH标准下交织解交织器的设计与实现

本文以国标中的一种交织模式为例进行设计,即B=52,M=240个符号[6]。顶层模块如图7所示。Conv_interlever是交织器模块,Con_Deinterlever是解交织器模块。交织器子模块的核心是基于Memory Delay的延迟模块,用来实现数据的定量延时。在FPGA内部实现中是通过调用LPM_RAM模块来实现的。

4.3 仿真结果及分析

图8是基于HIL模块的软硬件联合仿真波形图,上面是输入的待交织信号,中间是经过交织后的信号,下面是解交织后的数据信号。因国标中的交织与解交织器交织深度较大,故解交织器的输出信号会有一个明显的延迟。

构造仿真模块与搭建仿真环境完成后,运行Signal Compiler生成HDL工程,由于本设计使用的片上存储单元众多,所以需要注意一下资源的使用情况。硬件实现后发现本交织、解交织器共使用了5×106 byte的存储单元,消耗十分巨大,有待进一步改进。

5 结论

本文通过对基于DDS的多功能调制器以及DMB-TH标准下的交织、解交织器进行了设计实现。本方法可以快速构建DSP系统,并在外部硬件测试平台不够完备的情况下,引入HIL模块进行软硬件联合仿真。相对于传统开发方式,具有更大的优势。

摘要:传统DSP系统开发过程中从理论分析到软件仿真再到硬件实现,周期长效率低。而采用基于DSP Builder的快速DSP系统开发方法,可以快速完成模型创建,软件仿真,硬件实现,特别是通过引入回路硬件(HIL)模块,可以将硬件平台链接入由Simulink构建的仿真测试回路,进行软硬件协同仿真。文中通过设计基于直接频率合成器技术的多功能调制器(可用于中国地面数字电视广播传输标准DMB-TH),以及中国地面数字电视广播传输标准下的交织/解交织器来对这种开发方式进行研究,在提高开发效率的同时,得到了令人满意的结果。

关键词:DSP Builder,回路硬件,直接数字合成器,交织/解交织器

参考文献

[1]Altera.DSP Builder User Guide[EB/OL].[2009-04-20].http://www.altera.com/literature/ug/ug_dsp_builder.pdf.

[2]Altera.DSP Builder Reference Manual[EB/OL].[2009-04-20].http://www.altera.com/literature/manual/mnl_dsp_builder.pdf.

[3]马品红.基于SOPC的任意波形发生器的研究与开发[D].辽宁,大连:大连理工大学,2006.

[4]石玮.基于FPGA和双端口RAM的DDS任意波形发生器的实现[J].湖北师范学院学报:自然科学版,2008,28(1):41-45.

[5]徐孟侠.对中国地面数字电视广播传输标准的注解和评论[J].电视技术,2007,31(4):4-9.

上一篇:宽带压控放大器下一篇:水泥土复合桩