基于CPLD的步进电机驱动模块设计
位信号
DIR:正转信号
START:启动信号
STOP:停止信号
phase:输出信号
3.2结构体部分
在软件设计中,重点是先正确写出双相八拍通电方式下的状态转换表。

表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可控制步进电机的启动、停止、以及正反转,本文通过软件仿真,验证了方案的正确性。本文所列举的电机是四相的,如果是三相或是五相电机,都可按本文的方法实现,如果对电机采用的单相通电的方法,也可按本文的方法实现,同样只须稍微修改参数即可。
- 基于CPLD的激光驱动电源的设计(08-26)
- 在CPLD基础上的电器定时开关控制系统设计(03-29)
- 基于DSP与CPLD设计智能变电站电网的IED(02-25)
- 基于ADSP-TS101S的多芯片数字信号处理系统的实现方案(02-11)
- 51单片机+CPLD让系统更高效(10-25)
- 基于CPLD的线阵CCD数据采集系统的开发(04-14)
