基于F2806 处理器单轴运动控制平台设计
2014-12-23李军科吴建军
李军科, 戴 明, 吴建军
(1.江苏省无线传感系统应用工程技术开发中心,江苏 无锡214153,2. 无锡商业职业技术学院 电子系,江苏 无锡214153)
0 引 言
在工业自动化控制中,经常会有关于单轴运动控制的问题.目前解决此类问题的方案一般有用工控机、单片机或专用的单轴控制器做控制单元。工控机与专用单轴控制器成本较高。
单片机速度较慢,无法实现复杂算法控制[1-2]。数字信号控制器DSC 则集成传统数字信号处理器DSP和控制器的优点,目前已成为运动控制领域的核心控制单元,其突出特点就是系统软件化,在硬件不做任何改动情况下,通过改变软件就可以实现各种不同的控制功能[3]。
基于省大学生机械创新大赛实践,在相关专业教师与学生创新团队的共同参与下,共同完成了DSC 平台(TMS320F2806)的单轴运动控制教学平台设计。上位机、驱动器、控制器、运动单元模块化设计使得单轴控制器平台在课程教学与工业应用之间得到很好的平衡。有助于创新性人才培养和校企合作项目的开发。
1 系统总体设计
驱动系统主控制芯片选择TMS320F2806 处理器,这是一颗基于TMS320C2xx 内核的定点DSP,是集成度较高、性能较强的运动控制系列器件。F2806 相比F2812 提供了增强型外设模块ePWM、eCAP 和SCI[3]。内核与I/O 电压为1.8 V 与3.3 V,分别由+5 V 经ASM117-1.8、AMS1117-3.3 提供。系统外部输入+24 V 直流电源由LM2574 组成的BUCK 开关电路变换为+5 V 电压提供TB6560 及相关隔离芯片。外部20 MHz 无源时钟频率经内部锁相环倍频后可达100 MHz。片内32 kB 的Flash 提供用户存储指令与数据。EPWM1/2/3 定义为TB6560 步进电机驱动芯片的脉冲、方向与使能信号。ECAP 则用来对限位传感器信号捕获。SCI 口采用RS232 串行通讯协议与上位机MSCOMM 控件接口。光藕隔离与逻辑变换电路主要完成F2806、TB6560 及其他器件之间电平转换[5-6]。
图1 基于F2806 与TB6560 芯片的单轴运动控制教学平台
TB6560 是东芝公司推出的低功耗、高集成两相混合式步进电机驱动芯片,内部集成双全桥MOSFET 驱动;最高耐压40 V,单相输出最大电流3.5 A(峰值)。基于恒流斩波驱动原理,采用正弦波作为细分驱动的电流波形,具有整步、1/2、1/8、1/16 细分方式,能改善步进电机驱动低频噪声偏大,高速丢步的缺点。
运动单元采用主流高科技传动器件—滚珠丝杆和直线导轨。滚珠丝杠包括螺杆、螺帽、循环系统及钢珠,其功能是将旋转运动转换为线性运动,具有高精度、高速度、可逆性等特点;直线导轨是一种滚动导引,由钢珠在滑块与滑轨之间作无限滚动循环,负载平台能沿着滑轨轻易地以高精度做线性运动,与传统的滑动导轨相比较,因滚动导轨的摩擦系数可降至原来的1/50,由于起动的摩擦力大大减少,相对的无效运动较少,故能轻易地做到μm 级进给和定位。
2 TB6560 驱动电路设计
考虑性价比与教学要求,本系统设计了基于东芝公司TB6560 芯片的步进电机驱动电路,如图2 所示。F2806 主控制器EPWM 模块送出的脉冲、方向与使能信号由74HC245 作3.3 ~5 V 的电平转换。光耦隔离电路设计采用TLP2531 和PC817 芯片。TLP2531 是一款用于两通道的高速光耦合器,由光敏二极管、高增益线性运放及肖特基钳位的集电极开路的三极管组成,具有温度补偿、电流和电压补偿、高的输入输出隔离等功能,用来隔离CLK 和CW 信号。TLP521 是普通光耦隔离器,用来隔离ENABLE 信号。针对步进电机工作时的振动大、噪声大等缺点,可采用电流的细分、衰减模式的设置来改善。细分的原理本质是通过控制步进电机励磁绕组中电流使步进电机的内部合成磁场为均匀的圆形磁场,从而实现对步进电机步距角的细分。通过绕组中电流的细分改善了步进电机低频运行时振动大的缺点。不同衰减模式设置则减少了步进电机运行时产生的高频噪声,改善了系统性能[7]。
图2 TB6560 两相四线步进电机驱动电路
TB6560 提供了整步、半步、1/8、1/16 微细分设置。NFA/B 管脚外接无感电阻对输出电流控制,I =1/NFR,阻值大小分别为1. 2 Ω、330 mΩ、500 mΩ。M0、Protect 管脚用做工作状态与保护指示;Reset 为复位管脚,低电平有效;OSC 管脚所接电容大小决定斩波频率大小。推荐100 ~1 000 pF 对应斩波频率40 ~400 kHz。DCY1/DCY2 外接拨码开关设置电流衰减模式为0,25%,50%,100%。
为了减小电机发热,在电机正常工作时设置输出电流最大,不工作时电流减半或更小。设置步进驱动系统“自动半流”功能。选择单稳态可重复触发芯片74HC123 检测CLK 信号。TQ2 接74HC123 反向输出。当电机正常工作时TQ2 是低电平,电流维持在NFA/B 管脚设定值100%。无脉冲输入时,TQ2 是高电平。TQ1 与TQ2 不同状态决定当前工作电流大小。外接电压为不超过40 V,推荐+24 V。输入端加保险丝与压敏电阻保护与滤波。电流大小、衰减模式以及自动半流设置可通过试验板拨码开关实现,见表1、2。
表1 拨码开关设置
表2 电流开关设置
3 串行通讯与E2PROM 掉电存储电路
系统设计MAX3232 串行通讯电路作为控制器与上位PC 机的数据传输,见图3。MAX3232 收发器采用专有的低压差发送器输出级。利用双电荷泵在3 ~5 V 电源供电时能够实现真正的RS232 性能。器件外部仅需要4 个0.1UF 小尺寸电荷泵电容,可以确保在120 kb/s 数据传输速率下维持RS232 输出电平。MAX3232 引脚、封装和功能与工业标准的MAX232 兼容。F2806 提供了SCI-A/B 两路串行通讯接口可以实现DSP 与PC 机数据交换。图3 中232TX、232RX 分别连接SCITXD、SCIRXD。T1、R1 与试验板载DB9 母头的发送、接收管脚相连[8]。
图3 MAX3232 串行通讯电路
另外,考虑运动控制单元在工作过程中掉电或意外发生时电机当前运动位置记录问题,系统设计了AT24C256 掉电存储保护电路。AT24C256 是I2C 总线接口的E2PROM,其存储容量为256 kB,按字节方式组成了32 kByte 的内部存储空间。通过SCL、SDA 与F2806 处理器的I2C 接口。
4 加减速算法
在单轴的运动控制中,需要作频繁的点位运动,若不作任何轨迹规划处理,在很多场合是不理想的,达不到工艺加工的要求,其应用将受到很大的限制。常见的步进电机速度曲线有梯形曲线以及S 形曲线[9]。
梯形曲线给定3 个运动参数:位置给定step 、最大速度speed 以及加速度accel/dccel。如图4 所示,梯形曲线分为3 个阶段:第1 阶段。匀加速段,速度按照设定的加速度值accel 从零加速到最大速度speed;第二阶段。匀速段,加速度值为零,速度保持已达到的最大速度运行;第三阶段。匀减速段,按设定的加速度减速到零,同时到达目标位置。
图4 梯形加减速曲线
S 形曲线给定4 个运动参数:位置给定P _ref、最大速度maxv、最大加速度maxa 以及加加速度Jerk。如图5 所示,规则的S 形曲线分为7 个阶段:前3 个阶段为加速段,后3 个阶段为减速段,加速段和减速段相互对称,第4 个阶段为匀速段。在第1 阶段。加加速段,加速度从零开始,以设定的最大加速度maxa 为目标,以加加速度Jerk 为增量递增,直到达到最大加速度为止。在第2 阶段。匀加速段,加加速度为零,以最大加速度加速到第3 段。在第3 阶段。减加速段,按负的加加速度使加速度减为零值,同时使速度达到最大值maxv,至此完成加速段过程。在第4 阶段匀速运行,加速度和加加速度都为零以最大值maxv 运行。第5、6、7 阶段依次为加减速段、匀减速段和减减速段,降速过程与之前的加速过程完全对称。
本系统采用在线梯形加减速算法[10-11]。设梯形曲线中脉冲时间间隔分别为c0tp,c1tp,c2tp,…。这里cn是按处理器片内定时器确定的计数值,tp是计数器的周期,单位是s。下式给出了加速、减速阶段脉冲间隔计算。其中:α 为步距角;加速度w-是常数;初始
图5 S 型加减速曲线
若设置电机启动后2 s 加速到240 r/min,计数器计数频率为100 MHz,固定电机为16 细分,则w-=4πrad/s2,a=2π/3200 rad,c0=1 767 766。
5 系统软件实现
5.1 VB6.0 平台上位机界面
上位PC 机的子程序用Visual Basic 语言编写,功能是通过Mscomm 控件发送运动控制指令和接收位置信息数据,如图6 所示。Mscomm 控件是Microsoft 公司提供串行通信编程的ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简单方法。Mscomm控件提供了事件驱动处理通信的机制,类似一般程序的中断方法,当串口发生事件或错误时,Mscomm 控件触发onComm 事件,应用程序在捕获事件后通过检查Mscomm 控件的CommEvent 属性获得所发生的事件与方法[12]。现给出Mscomm 控件发送与接收的部分代码如下:
图6 PC 机平台运动控制界面
数据发送只需要向MSComm1.Output 写入字符串即可。这里采用12 Byte 1 帧传输电机转速、细分设置、方向、运动位移以及关键字参数,分别填写对应的文本框TEXT 属性完成。
5.2 加减速与系统控制流程
下位机运动控制代码在CCS2.0 编译器完成。图7 是采用梯形加减速算法流程图。当加减速度accel/decel、速度speed、步距角a、运动步数steps 给定,可计算出电机加速到设定转速speed 的步数max_lim 和由加减速度、step 约束的accel_lim,流程图中符号①处要求对max_lim 与accel_lim 判断。若max_lim >accel_lim,说明没有加速到设定速度电机便进入了减速状态,不存在匀速段(status =2);反之,整个升降速控制为完整梯型速度曲线。计算减速阶段电机步数dec_val 和decel_start。图8 给出了在Matlab7.0 环境下梯形加减速算法在不同加速度下速度曲线。由式(1)计算加速与减速时2 个相邻脉冲时间间隔Cn 更新ePWM1 模块EPwm1Regs.TBPRD 寄存器的值,实现不同频率脉冲对步进电机控制。方向信号可以通过对AQCSFRC.bit.CSFB 位操作使得ePWM1B 管脚信号强制高或低控制电机正反转[13]。
图9 是单轴运动控制系统的主流程图。上电后系统倍频、使能外设时钟。再对ePWM1、SCIA、eCAP1 完成中断初始设置。其中ePWM1 中断服务程序主要运行加减速代码负责产生指令脉冲信号。eCAP1 捕获中断则检测近电机侧槽型光电开关信号上升沿以确定运动控制的零位置。由于直线导轨滑块到达零位时,开关信号由低电平向高电平跳变存在30 ~40 个抖动以致零位不准。解决问题的办法是在第一个上升沿触发捕获中断后,在中断服务程序内部设置eCAP1 为通用I/O,0.001 s 后再确认是否为高电平,以此为依据确定每次运动的零点。单轴运动控制提供回零、相对位移、绝对位移、立即停止操作。上位机每条有效指令信息用12 Byte 数据编码。SCIA 采用FIFO 中断接收或发送上位机速度、细分、位移及方向等运动信息[14-15]。可给出FIFO 中断与接收的部分寄存器代码:
图7 梯形加减速曲线Matlab 仿真
图8 梯形加减速流程
图9 单轴运动控制主程序
F2806 的SCI 接收器与发送器各具有一个16 级深度的FIFO,这样可减少空头服务。采用NRZ 数据格式,数据位8 位。16 位波特率寄存器BRR =0x0144=324,计算实际传输速率为LSPCLK/(8* (BRR +1))=9 615 bit/s。与上位机9 600 bit/s 发送速率匹配。当接收FIFO 中满12 Byte 长帧信息时,产生中断接收。使能FIFO 中断发送,运动单元位置信息可写入SciaRegs.SCITXBUF 寄存器可供上位机接收查询。
6 驱动器性能测试
用所设计的驱动系统对42BYG250A 步进电机进行实验,观察电流波形与噪声。电机参数:步距角1.8,工作电压9 ~30 V,绕组电阻1. 3 Ω,绕组电感2. 1 mH,保持力矩0.23 N·m。S-350-24 型开关电源提供驱动器测试工作电压24 V,采用Tektronix TDS1012B双通道示波器作波形测试。
为了清楚观察电机绕组电流正弦细分控制的波形,在A/B 相绕组输出端串接0.5 Ω 无感电阻用示波器观察,如图10 所示。电流波形光滑,电机转动平稳,噪声小,正弦特征明显。
图10 绕组串接无感电阻测试两相电流
在单轴运动控制教学平台实物中。滚珠丝杆与直线导轨之间采用定制刚性件连接。电控单元与机械运动部分在740 ×600 mm 木板固定并做水平度校正。采用上位PC 机控制测试定位性能,效果良好。
7 结 语
本文基于TMS320F2806 与TB6560 芯片设计完成了单轴运动控制教学平台软硬件设计。重点解决了上位机控制软件设计、RS232 通信底层SCI FIFO 中断接收与发送、加减速在线实现及点位控制。目前,该单轴运动控制平台已经在大学生创新教学和校企合作项目开发中得到应用。
[1] 刘宝廷,程树康 步进电动机及其驱动系统[M]. 哈尔滨:哈尔滨工业大学出版社,1997:35-42.
[2] 张新荣,徐宝国. 基于正弦细分驱动技术的步进电机控制系统设计[J].电测与仪表,2010(8):69-72.ZHANG Xin-rong,XV Bao-guo Design of Step Motor Control System Base on Sine-Subdivided Drive[J]. Electrical Measurement &Instrumentation,2010(8):69-72.
[3] 王晓明,王 玲.电动机的DSP 控制—TI 公司DSP 应用[M]. 北京.北京航空航天大学出版社,2004:214-217.
[4] 韩安太,刘峙非.DSP 控制器原理及其在运动控制系统中的应用[M]. 北京:清华大学出版社,2003:176-181.
[5] 苏奎峰,吕 强,邓志东. TMS320F2812 原理与开发[M].北京:电子工业出版社,2005:223-230.
[6] 祝华远,马乃苍.某新型数控机床步进电机控制速度曲线的实现[J]. 机床与液压,2003(3):351-354.ZHU Hua-yuan, MA Nai-cang. The Implementation Velocity Controlling Curve for A New-style Numerical Control Machine[J].Machine Toll & Hydraulics,2003(3):351-354.
[7] 高 亮. 8051 单片机对步进电机的控制及步进电机升降速曲线的设计[J]. 测控技术.2002,21(11):64-68.GAO Liang,Controlling of Step Motor with 8051 microcontroller and Speed-UP and Speed-Down Curve Design [J]. Measurement and Control Technology,.2002,21(11):64-68.
[8] 范逸之,陈立元. Visual Baisic 与RS-232 串行通信控制[M]. 北京:清华大学出版社,2002.
[9] 钱 堃,房 芳. 面向运动控制的DSP 技术及课程设计教学[J]. 电气电子教学学报,2013,35(2):27-30.QIAN Kun,FANG Fang. Research on the Practice teaching of DSP technology for Motion Control[J]. Journal of EEE,2013,35(2):27-30.
[10] 杨志敏. 基于单片机加减控制算法的研究[D]. 哈尔滨:哈尔滨工业大学,2007:42-48.
[11] 罗 鑫,张 峰.基于ARM Cortex-M3 的步进电机线性速度控制实现[J].电气自动化,2009(5):42-44.LUO Xing,ZHANG Feng. The Realization of Linear Speed Control of Stepper Motor Based on ARM Cortex-M3 [J]. Electrical Automation,2009(5):42-44.
[12] 王 璐,许雪峰. VB 串行通信在监测系统中的应用[J].实验科学与技术.2010,9(5):14-15.WANG Lu ,XU Xue-Feng. Application of Serial Communication in the Monitor System Based on VB[J]. Experi-ment Science or Technology,2010,9(5):14-15.
[13] 谢国钢,王念兴,李小海.全数字化步进电动机细分驱动器设计[J]. 微特电机,2012(8):67-70.XIE Guo-gang,WANG Nian-xing,LI Xiao-hai. Design of Fully Digitized Subdivided Driver for Stepping Motor[J]. Small & Special Electrical Machines,2012(8):67-70.
[14] 任润柏,周荔丹,姚 钢. TMS320F28x 源码解读[M]. 北京:电子工业出版社,2010:230-295.
[15] SPRU051A:TMS320F28X DSP Serial Communication Interface(SCI)Reference guide,TEXAS 2003-6.