微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于CPLD的步进电机驱动模块设计及实现

一种基于CPLD的步进电机驱动模块设计及实现

时间:05-26 来源:互联网 点击:

结构体部分

在软件设计中,重点是先正确写出双相八拍通电方式下的状态转换表。

表1中‘1’表示通电,‘0’表示断电,S0~S7分别表示按A—AB—B—BC—C—CD—D—AD通电方式下的8个状态。在此种状态顺序下电机正转,反之电机反转。表中的S0~S7都是以二进制数来表示,如果转换为十六进制数则分别为1,3,2,6,4,C,8,9。

程序的结构体部分由3部分组成:说明部分,主控时序进程,主控组合进程。在说明部分中定义相关的信号及常数;在主控时序进程中负责把计算好的次态的信息送入初态,并负责最后的输出;在主控组合进程中负责相关的计算,比如判断启动和停止,正转和反转,以及在正反转状态下如何取下一个状态。下面这段程序就是结构体里主控组合进程中,如何判断电机正反转和下一步电机将如何动作的程序段。

3.3系统仿真结果

整个控制程序的软件波形仿真如下:

从图2中可以看到,在模拟步进电机启动、停止、正反转时电机的状态。比如在复位后当START=‘1’时,如果这时DIR=‘1’表示电机是正转,则电机的通电状态是A—AB—B—BC—C—CD—D—AD,对应的CPLD的输出状态就为S0~S7。当DIR=‘0’时表示电机是反转,就图2的截图来说在 CLK的上升沿时,输出是状态S2,因为它的前一个状态从图上我们可以看出是S1。

4结束语

在数控系统中我们希望达到准确、高效、经济的控制,在运动机构的控制这一环节,通过CPLD可以起到很好的效果,首先可以简化硬件电路,提高电路的可靠性,其次可以通过对器件进行编程来改变器件的结构,达到我们预期的功能,并且通过ISP在系统可编程的方法把程序加载到器件上。

通过CPLD可控制步进电机的启动、停止、以及正反转,本文通过软件仿真,验证了方案的正确性。本文所列举的电机是四相的,如果是三相或是五相电机,都可按本文的方法实现,如果对电机采用的单相通电的方法,也可按本文的方法实现,同样只须稍微修改参数即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top