基于单片机与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为步进电动机细分驱动 |