基于FPGA的四相步进电机细分驱动电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA 的四相步进电机细分驱动电路设计
黄伟平
(浙江树人大学,浙江省杭州市)
摘要:在采用步进电机驱动的机构中,为了提高定位精度,提出了一种基于FPGA 的四相步进电机细分驱动电路的设计方案。采用正弦/ 余弦细分方案,通过嵌入cos/ sin 表格于FPGA 中,合理控制步进电机四相绕组的电流,实现正弦细分驱动控制技术,减小了步距角、提高了步进分辨率。给出了FPGA 软件设计,并在Quartus II中完成了仿真。仿真结果表明,PWM计数器模块,地址计数器模块,PWM波形ROM存储器模块,数字比较器模块,都可以由FPGA 准确无误地产生,本系统最终现实对四相步进电机八细分驱动电路的设计。
关键词:FPGA ;四相步进电机;细分;驱动电路
引言
步进电机是把脉冲信号转换成角位移或直线位移的执行元件,是一种输出与输入数字脉冲相对应的增量驱动元件。具有定位精度高、惯性小、无积累误差、启动性能好、易于控制、价格低廉及与计算机接口方便等优点,被广泛应用于数控系统中[1,2]。计算机技术的发展,促进了数字控制技术的发展。步进电机细分驱动技术可以减小步进电机的步距角,提高电机运行的平稳性,增加控制的灵活性等。利用FPGA中的嵌入式EAB可以构成存放电机各相电流所需的控制波形表,再利用数字比较器同步产生多路FPGA电流波形,对多相步进电机进行控制。若改变控制波形表的数据、增加计数器和比较器的位数,提高计数精度,就可以提高PWM波形的细分精度,进而对步进电机的步进转角进行任意级细分,实现转角的精确控制。
1.步进电机细分驱动原理
步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。设矢量Ta、Tb、Tc、Td为步进电机A、B、C、D四相励磁绕组分别通电时产生的磁场矢量;Tab、Tbc、Tcd、Tda为步进电机中AB、BC、CD、DA两相同时通电产生的合成磁场矢量。当给步进电机的A、
B、C、D四相轮流通电时,步进电机的内部磁场从TA→TB→TC→
TD,即磁场产生了旋转。步进电机的步距角θB计数公式[3]可表示
为:θB=θM/N r ;式中N r:为步进电机的转子齿数;θM:
为步进电机运行时两相邻稳定磁场之间的夹角。
而图1为四相步进电机八细分电流波形图,从图中可知各相电流是以1/4的步距上升或下降的,在两相Ta,Tb中间又插入了七个稳定的中间状态,原来一步所转过的角度θM 将由八步完成,实现了步距角的八细分。
2. 基于FPGA的硬件实现
随着大规模集成电路FPGA/CPLD的发展,为步进电机的细分驱动带来了便利。采用EDA技术进行控制设计,可根据细分要求的步距角计算出各项绕组中通过的电流,存储在FPGA的嵌入式ROM中。细分控制时,地址计数器自动产生地址送到LPM-ROM,根据不同的地址,LPM-ROM给出相应的数据到数字比较器,与线性锯齿波比较后输出PWM波形,控制功放电路给各相绕组通以相应的电流,实现步进电机的细分驱动[4]。
3.步距细分的系统构成
从图1四相步进电机八细分电流波形中可以看出,一般情况下总有二相绕组同时通电。一相电流逐渐增大,另一相逐渐减小。对应于一个步距角,电流可以变化N个台阶,也就是电机位置可以细分为N个小角度,这就是电机的一个步距角被N细分的工作原理。或者说,步距角的细分就是电机绕组电流的细分,从而可驱动步进电机平滑运行。
图3步进电机细分驱动电路结构图
该系统是由 PWM 计数器、波形ROM 地址计数器、PWM 波形ROM 存储器、比较器、功放电路等组成,如(图3步进电机细分驱动电路结构)所示。
其中,PWM 计数器在脉宽时钟作用下递增计数,产生阶梯形上升的周期性的锯齿波,同时加载到各数字比较器的一端;PWM 波形ROM 输出的数据A[3..0]、B[3..0]、C[3..0]、D[3..0]分别加载到各数字比较器的另一端。当PWM 计数器的计数值小于波形ROM 输出数值时,比较器输出低电平;当PWM 计数器的计数值大于波形ROM 输出数值时,比较器输出高电平。由此可输出周期性的PWM 波形。根据图1 步进电机8 细分电流波形的要求,将各个时刻细分电流波形所对应的数值存放于波形ROM 中,波形ROM的地址由地址计数器产生。通过对地址计数器进行控制,可以改变步进电机的旋转方向、转动速度、工作/停止状态。FPGA 产生的PWM 信号控制各功率管驱动电路的导通和关断,其中PWM 信号随ROM 数据而变化,改变输出信号的占空比,达到限流及细分控制,最终使电机绕组呈现阶梯形变化,从而实现步距细分的目的。输出细分电流信号采用FPGA 中LPM_ROM 查表法,它是通过在不同地址单元内写入不同的PWM 数据,用地址选择来实现不同通电方式下的可变步距细分。
电路原理图设计
根据图3设计该系统的原理图,通过FPGA技术设计顶层电路。如图、图、图,其中图、图是图中的模块图,
而图是图波形存储器的波形图。
4.细分电流信号的实现
从LPM_ROM 输出的数据加在比较器的A 端,PWM 计数器的计数值加在比较器的B 端,当计数值小于ROM 数据时,比较器输出低电平;当计数值大于ROM 数据时,比较器则输出高电平。如果改变ROM 中的数据,就可以改变一个计数周期中高低电平的比例。
图 中的PWM 计数器(CNT8)将整个PWM 周期4 等份。
5.系统的实验结果与分析
系统的实验结果
图5 是四相步进电机仿真波形图,给出了步进电机从A →AB →B →BC →⋯工作过程的仿真波形。在图中展示了FPGA 控制步进电机的情况。LPM_ROM 输出的16 位数据p[15..0]为八进制数据,作为步进电机各相电流的参考值,每4 位二进制数值控制一相,分别用于控制步进电机A 、B 、C 、D 四相的工作电流。对于每一相来说,当输出数据为0 时,该相电流为0;输出数据为1 时,脉宽高电平占一个PWM 周期的1/4;当输出数据为2 时,脉图 步进电机PWM 细分控制电路图 图 PWM 波形ROM 存储器