俞 洪
(北京联合大学,中国 北京100011)
在工业自动化领域中,电动机控制是特别重要的一部分,现代电动机控制技术变得特别重要的原因,也就是因为,电动机控制产品在工业控制领域需要的越来越大,而微处理器在电动机控制领域中用途也是越来越广泛。 然而,基于单片机的传统的控制策略不能满足需要的原因,也正是增加的处理数据量对实时性要求的提高。 随着数字信号处理器(DSP)的迅速发展及性价比的不断提高,数字信号处理器应用于电动机控制领域已经成为一种趋势。 本文阐述了一种以TMS320LF2407 为主处理的DSP 芯片作为控制核心的步进电机控制系统的设计。
系统使用DSP 芯片, 并使用软件程序驱动步进电机的这种步进电机控制系统,步进电机的转速、转动的角度以及转动的次数等可以在一定范围内自由设定,是通过软件编程的方法得以实现,方便灵活地控制步进电机的运行状态也可以使用这种方式,这样就可以满足不同用户的要求。步进电机控制系统采用TMS320LF2407 为硬件电路设计的核心,通过通信电路将接收到的数据来控制电机的运行。 硬件电路主要包括步进电机驱动器、键盘显示电路。 整个系统分为五个部分组成:TMS320LF2407 DSP 中央控制器, 反相器74LS06, 光电隔离器4N25,驱动芯片ULN2003A 和步进电动机,系统主要原理框图如图1所示:
图1
CCS,(Code Composer Studio 代码生成室) 是TI 公司DSP 产品的软件开发工具的集成环境,这一开发工具软件将编辑、编译、链接和调试及图形、图像显示等多功能于一体。 软件仿真和硬件仿真是两种不同的开发环境。不同的开发环境,具有不同的功能。软件仿真使用CCS软件,在DSP 芯片上运行模拟程序。
CCS 有几个版本,现在最新到V3.1,一般使用V2.1 或V2.2。 另外,根据TI 的DSP 分为C2000、C5000 和C6000 系列,则CCS 也相应有对应的版本。 本系统使用的是CCS 2(C2000)这一版本。
CCS 完成了系统软件的开发和调试。它提供了一套编程,维护,编译,调试环境可以编译连接生成COFF(通用对象文件)格式的可执行文件的汇编语言和C 语言程序, 并且可以把程序下载到目标DSP 上运行调试。 CCS 开发流程如图2 所示。
图2
系统软件设计之前,必须先按照应用系统的目标与确定信号处理的要求和系统的性能指标,描述一般使用数学运算序列、数据流图、自然语言或正式的符号。
根据高级语言编写的系统仿真的要求。 一般情况下,会对输入信号适当的处理,目的是实现该系统的最终目标,不同的方法导致不同的系统性能。 要得到最佳的系统性能,就必须在这一步确定最佳的处理方法,即数字信号处理的算法(Algorithm),因此这一步也称算法模拟阶段。
因为系统软件是建立在硬件基础上的,所以接下来就要根据硬件来设计最佳的软件系统。软件设计和编程主要根据系统要求和所选的DSP 芯片编写相应的C 语言程序。
系统的软件设计完成后,就需要软件的调试。 软件的调试一般借助于DSP 开发工具,如软件模拟器、DSP 开发系统或仿真器等。 调试DSP 算法时一般采用比较实时结果与模拟结果的方法,如果实时程序和模拟程序的输入相同,则两者的输出应该一致。 应用系统的其他软件可以根据实际情况进行调试。 系统的软件调试完成后,就可以将软件脱离开发系统而直接在应用系统上运行。当然,DSP 系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道实时系统的性能,但实际上模拟环境不可能做到与实时系统环境完全一致,而且将模拟算法移植到实时系统时必须考虑算法是否能够实时运行的问题。 如果算法运算量太大不能在硬件上实时运行,则必须重新修改或简化算法。
2.3.1 主程序流程图
DSP 在系统中处于从属地位,它必须根据PC 机或者是键盘的操作和指令来决定自己下一步动作。主程序主要用来对下位机系统包括键盘控制芯片、液晶进行初始化。初始化程序执行完后开启中断,等待中断的到来,并对键盘扫描,判断是否有键按下。之后根据送来的操作命令进入某个子程序。以后如果工作正常,将循环进行上述操作。主程序流程图如图3 所示:
图3
2.3.2 PWM 波生成程序设计
一个PWM 信号是一串不同宽度的脉冲序列。 这些脉冲被均匀地分布在固定长度的循环周期,因此,在每个周期中有一个脉冲。 PWM(载波)周期是这个固定长度的时间间隔也就是周期,PWM(载波)频率是它的倒数。 另外一个具有所期望值的调制信号决定或调制PWM脉冲宽度。
比较单元和相关电路所有三种PWM 波形的产生,需要对相同的事件管理寄存器进行配置。 TMS320LF2407 总共有12 路PWM 输出,在这里使用EVA 模块,输出四路即PWM1-PWM4。 在PWM1-PWM4引脚上输出占空比不同的方波, 采用EVA 模块中的通用定时器1 产生比较时钟。
2.3.3 键盘扫描程序设计
键盘的扫描码由DSP 的I/O 扩展地址0x8001 给出, 当有键盘输入时,读此端口得到扫描码,当无键被按下时读此端口的结果为0。
DSP 对按键有效输出端进行检测,当有键按下时,发送读键盘数据指令读取键值。 程序对每个键值的功能都预先作了设定,根据读取的键值判断下一步将要执行的功能。
2.3.4 步进电动机DSP 位置控制设计
对步进电机的位置进行控制是最重要用途。步进电机位置控制手段来控制步进电机驱动执行机构运行从一个位置到另一个位置。步进电机的位置控制是步进电机一大优势。位置控制子程序框图如图4 所示:
图4
2.3.5 步进电动机的正反转设计
通过脉冲分配实现步进电动机的正反转:按照给定的通电换相顺序,通过DSP 的PWM 输出口向驱动电路发出控制脉冲。 利用DSP 的PWM1-PWM4 如图所示, 即DSP 芯片的IOPA6 (56)、IOPA7(54)、IOPB0(52)和IOPB1(47)引脚,向四相步进电动机各相传送控制信号。此次设计采用步进电动机的四相四拍工作方式, 通电换相为AB→BC→CD→DA→AB。
图5
2.3.6 步进电动机的加减速设计
步进电动机的最主要用途就是实现位置控制。控制步进电动机带动执行机构从一个位置运行到另一个位置叫做步进电动机的位置控制。 步进电机的优势是步进电机的位置控制。
步进电机的位置控制的做法:步进电机的每一步,步数就减1,如果不丢失,当到达目标位置时,执行机构的步数减为0。 因此,步数为等于0,以确定是否移动到目标位置的信号,步进电机停止运行。
步进电机驱动执行机构进行加速,恒速和减速。如果启动时间,速度上升到设定的步伐, 发生的现象将是由于超过限制的起始频率,步进电机发生失步,从而无法正常启动。到终点突然停了下来,步进电机过冲,原因是惯性的作用。如果要使步进电机不产生失步和过冲现象,就要非常缓慢的加速和减速,但这样会影响执行机构的工作效率。 步进电机的加速和减速有严格的要求,就是要用最快的速度(或最短的时间),确保移动到指定的位置,并且不会失步和过冲的前提下。
最简单的是匀加速和匀减速曲线,减速曲线是一条直线,所以容易编程得以实现。直线加速时,加速度为常数,因此要求扭矩应该是相同的。然而,当步进电机的转速的增加,感应电动势和绕组的电感的作用,绕组的电流将逐渐减小的电磁转矩随转速的增加而减小,因此,实际加速度随着频率的增加而减小。
为了满足加减速的要求,步进电动机运行通常按照加减速曲线进行。本程序设计以10 个定时器计数时钟的速度作为级差。如果想使步进脉冲的周期越长, 速度越慢就要把定时器的周期寄存器的值变大。因此,在加速时,速度每提升一级时,应该将定时器的周期值减10;反之,在减速时,速度每下降一级,应该将定时器的周期值加10。
在计算机上安装编译软件CCS 2 后,在计算机桌面上将出现两个快捷 方 式 图标, 一个 是Setup CCS 2 (C2000), 另 一 个是CCS 2(C2000)。 Setup CCS 2(C2000)是用来对改编译器的运行环境进行配置;CCS 2(C2000)为程序仿真调试集成环境软件。 CCS 集成开发环境不能直接将汇编源代码或C 语言源代码文件Build 生成DSP 可执行代码。 必须使用项目(Project)来管理整个设计和调试过程。 项目保存为*.pjt 文件。
1)双击桌面上的Setup CCS 2(C2000)图标,进入CCS 设置窗口,“Import Configuration”。
2)在出现的窗口中进行设置:
图6
3)设置完成后,自动打开CCS 软件。
4)按照步骤建立工程文件,将已编写好的程序拷到DSP 芯片中,进行下载、编译、运行。 如图7 所示。
图7
反复这个过程直到程序完成预期的功能。
[1]刘和平,等.基于TMS320LF240X 系列DSP 原理及电机控制应用[M].北京航空航天大学出版社,2006,10.
[2]万达淳,代作晓,华建文.基于DSP 的多路四相步进电机控制器的设计与实现[J].科学技术与工程,2008,4(8):1994-1997.
[3]哈尔滨工业大学,成都电机厂,编著.步进电动机[M].北京:科学出版社.1979.
[4]黄诗涌,王晓初,廖永进,徐震,易理告.一种高性能的步进电机运动控制系统设计[J].微计算机信息,2006(6-1).