基于单片机与fpga的多重细分步进电动机驱动系统
刘梦亭,罗鹏辉
(吉林大学珠海学院,广东珠海519041)
摘要:介绍了 步进电机细分控制,提出了基于单片机与fpga控制的pwm细分驱动技术,利用单片机来设定电机的转速、转向。由fpga产生阶梯脉冲形成阶梯形电压信号以控制步进电动机每相绕组在各时刻的电压,从而实现步进电动机转角的任意细分控制。利用vhdl语言编程实现了步进电动机256细分控制器的pwm模块、速度控制模块、数字比较模块等功能。
关键词:fpga;vhdl;步进电动机驱动;细分控制
中图分类号:tm383.6 文献标识码:a 文章编号:1004—7018(2009)11—0037—04
0引 言
步进电机作为一种电脉冲角位移的转换元件,它受脉冲信号控制,其位移与输入脉冲个数成严格正比关系。采用fpga控制步进电动机,利用其中的eab可以构成存放电机各相电流所需的控制波形数据表和利用fpga设计的数字比较器可以同步产生多路pwm电流波形,对多相步进电动机进行灵活的控制。改变控制波形表的数据,增加计数器的位数,提高技术精度,从而可以对步进电动机的步进转角进行任意细分,实现步进转角的精确控制。用fpca实现多路pwm控制,无需外接d/a转换器,使外同控制电路大大简化,控制方式简洁,控制精度高、控制效果好。用单片机和dsp的控制都难以达到同样的控制效果。
1系统构成
系统构成如图1所示。利用单片机来设定电机的转速、转向。由fpga产生阶梯脉冲形成阶梯形电压信号以控制步进电动机每相绕组在各时刻的电压,从而实现步进电动机转角的任意细分控制。利用vhdl语言编程实现了步进电动机256细分控制器的pwm模块、速度控制模块、数字比较模块等功能。选用两片l293d驱动芯片驱动两台两相/四相步进电动机。
l.1步进电动机细分驱动硬件部分
根据对电机细分驱动的理论研究,提出了基于单片机与fpga控制的多重细分步进电动机驱动技术。本系统的硬件电路主要以单片机和fpga为核心器件,其硬件电路的组成如图2所示。
单片机采用飞利浦p89v53rb2芯片,通过争片机的po口向fpga发送控制信号,由于po口是一个8位开漏双向i/o口,用作程序校验或通用l/o口时均需连接一个外部上拉电阻。fpga管脚设定为43~36,主要完成转速、转向、电机、细分数的设定,其中s0~s2用来确定细分数,此三个引脚从000到111分别实现256、128、64、32、16、8、4、2细分,具体情况如表1所示。
本控制器选用的fpga器件为xilinx公司的xc2s15芯片,reset信号用来对fpga复位(“l”时有效),clk是存储器地址计数器脉冲输入,上升沿有效。pwmclk是脉宽时钟,一般接12 mhz,****200mhz。dir是步进电动机的转向信号(“1”为正转,“0”为反转)。csl、cs2分别用来控制fpga内部步进电动机控制模块的选定,以达到控制多台步进电动机的作用。此外,xc2s15具有86个用户自定义i/0口,解决了单片机i/o口不足的问题,因此可进行多台步进电动机的控制,并选用两片1.293d驱动芯片驱动两台两相/四相步进电动机。
1.2单片机系统软件结构
单片机系统主 要完成步进电动机调速控制、转向、细分数的设定。单片机完成步进电动机调速控制分两种方式:细分数不变,改变步进脉冲的频率和步进脉冲的频率不变,选择不同的细分数,可以实现8种运行速度。步进频率不变的调速方式的软件流程图如图
3所示。细分数不变的调速方式软件流程图如图4所示。
1.3 fpga设计与仿真
根据步进电动机细分驱动原理,选择采用pwm脉宽调制式细分驱动,根据细分精度的要求,决定所需要的****细分电流波形,设计步距细分的系统构成。图5为步进电动机细分驱动系统结构图。
该系统是由pwm计数器、rom地址计数器、pwm波形rom存储器、比较器、功放电路等组成。其中,pwm计数器在脉宽时钟作用下递增计数,产生阶梯形上升的周期性的锯齿波,同时加载到各数字比较器的一端;pwm波形rom输出的数据a[3 …o]、b[3…o]、c[3…o]、d[3…0]分别加载到各数字比较器的另一端。当pwm计数器的计数值小于波形rom输出数值时,比较器输出高电平。由此可输出周期性的pwm波形。根据步进电动机细分电流波形的要求,将各个时刻细分电流波形所对应的数值存放于波形rom中,波形rom的地址由地址计数器产生。通过对地址计数器进行控制,可以改变步进电动机的旋转方向、转动速度、工作/停止状态。fpca产生的pwm信号控制各功率管驱动电路的导通和关断,其中pwm信号随rom数据而变化,改变输出信号的占空比,达到限流及细分控制,最终使电机绕组呈现阶梯形变化,从而实现了步距细分的目的。
本系统采用xmnx公司的fpca芯片xc2s15。使用quartus ii进行硬件描述语言(vhdl)的编写、引脚的分配以及vhdl程序仿真,实现了控制两台步进电动机的细分、方向、速度控制。该电路的vhdl顶层设计如图6所示。顶层设计由两个模块256、2560组成,分别控制台四相步进电动机,管脚pwmclk为pwm计数
元件lpm—rom0为pwm波形rom存储器,根据步进电动机细分电流波形的要求,将各个时刻细分电流波形所对应的数值存放于波形rom中,rom中的pwm波形数据为初始化数据文件:256xifen.hex。波形数据为32位,共1024个;设置地址与数据表的表达格式均用十六进制表示。截取rom中的波形数据,部分数据如图8中数据所示。
图8中的数据由高到低位,每两位十六进制数分别控制四相步进电动机的_4、b、c、d相,数据摆放顺序为且一_4b—b一日c—c—cd—d一口4,十六进制数据器的计数脉冲,clk为波形rom的地址计数器计数脉冲,脉冲频率为pwmclk脉冲频率的1/128,csl、cs0为步进电动机控制片选信号输入端,csl=1时,模块。256开始运行;cso=o时,模块:2560开始运行。dir0、dirl为方向控制信号端,为“1”时电机正转,为“0”时电机反转。
模块。256、2560为步进电动机细分驱动的pwm控制模块,其内部结构与设计如图7所示。
数据,表示步进电动机的各相电流波形上升128个台阶,反之则下降128个台阶,实现步进电动机的256细分。只需用不同的规律进行地址选择即可实现不同的细分。
图9、图10是使用altera公司的0uartus ii进行编译、仿真后的结果。
2结语
本文介绍了基于fpga控制的pwm细分驱动技术,用单片机控制,以fpga作为脉冲分配步进电动机细分驱动系统,不仅减小了步进电动机的步距角,提高了控制系统的精度,而且由于fpga具有较高的集成度,大大简化了步进电动机控制系统的结构,提高了系统的可靠性和维护性。随着fpca技术的进一步发展,基于fpga的步进电动机驱动器将进一步向着通用化的方向发展,使得以步进电动机作为执行器的自动控制系统取得更大的经济效益。
中国步进电机网淘宝店:http://shop57539716.taobao.com |