- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CPLD的进电机控制器设计_secret
摘要:本文设计了一种基于CPLD的步进电机控制系统。它以CPLD作为核心器件,极大地减少了外围元件的使用。具有系统扩展性能好、可靠性高、抗干扰能力强、结构简单、成本低廉,不占用CPU时间、易于高速控制等优点。
关键词:步进电机,控制器,CPLD
1、前言 步进电机可在宽广的频率范围内通过改变脉冲频率实现调速、快速起停、正反转控制等,由其组成的开环系统简单、可靠,因此它被广泛的运用于数控机床、自动记录仪、工业机器人、无损检测等系统中,步进电机的性能很大程度上取决于其控制系统[1]。基于CPLD的步进电机控制系统[2]具有I/O端口多,可自由编程定义其功能等特点,大大缩减了电路的体积、提高电路的稳定性。先进的开发工具使整个系统的设计调试周期大大缩短。利用VHDL语言进行软件编程,通过EDA设计软件对程序编译、优化、综合、仿真、适配,可以对步进电机控制实现数字输入。系统外围电路设计相对简单、可靠,且鉴于CPLD和VHDL语言自身的特点,系统具有较好的扩展性,在控制系统中也具有一定的通用性。
2、系统设计方案 如图1所示。首先输入原始时钟信号,经过分频器得到10ms按键判断周期和频率为2048Hz的时钟信号,2048Hz的信号经过外部硬件分频以后输入芯片,作为电机的转速信号。由按键输入四个控制信号,和电机的转速频率信号一起送入电机控制状态机,由状态机根据不同的输入来选择电机输出控制信号。 图1?系统设计框图?
3、系统硬件设计 CPLD采用Altera公司MAX7000系列的EPM7128SLC84-15。驱动电路原理图如图2所示。 图2?驱动电路原理图 CPLD输出控制信号连接至图上的A、B、C、D四个端口。其控制信号经光电隔离后进入ULN2003A。ULN2003A是一片集成了7个达林顿管的芯片。来自光耦合的5V高电平信号经过ULN2003A以后,输出端与地导通。步进电机的正极接上12V的工作电压,负级接在ULN2003A的输出端,当CPLD的I/O口为低电平时,步进电机的负极与地开路,正负极之间没有压差,电机不运转;当CPLD的I/O口为高电平时,步进电机的负极与地导通,正负极之间形成12V压差,电机运转。 步进电机的转速是由四个线圈的通电速度决定的,也就是由输入脉冲的频率决定的,因此,步进电机的转速选择其实就是输入脉冲的频率选择。本设计采用双四位二进制计数器74LS393N进行硬件分频。频率源为CPLD的2048Hz的频率,将74LS393N内部的T触发器串联,就能将2048Hz的频率分频得到0.5Hz~1024Hz、等比倍率为2的频率,这些频率通过硬件选择器选择输入至CPLD的I/O口就能进行电机转速的控制了。
4、软件设计 本设计使用Quartus?II进行系统的软件设计及仿真。Quartus?II是Altera提供的FPGA/CPLD开发集成环境,支持VHDL的硬件描述语言。首先由外部的按键产生RST(复位)、EN(使能)、MODE(模式)、CTRL(转向)四个控制脉冲信号,脉冲信号经过消抖模块进行消抖后送入主控制器。由于EN、MODE、CTRL这三个信号在主控制器内为电平有效,所以在信号送入主控制器之前用T触发器进行电平的锁定。四个控制信号和外部输入的电机转速时钟信号clk_step一同送入主控制器,主控制器经过运算以后得出电机四个相位的通电信号,通电信号经过D触发器消除毛刺以后从芯片I/O口送出。 主控制器模块有5个输入信号和4个输出信号,其内部主要结构为一个双向的Moore形状态机,其主要代码如下: library?ieee; use?ieee.std_logic_1164.all; entity?zhuangtai?is?port(?en,clk,rst,mode,ctrl:?in?std_logic; ——EN为使能信号,RST为复位信号,MODE为电机运转模式信号,CTRL为正反转控制信号,这四个信号为电平有效;?CLK为电机转速频率。 a,b,c,d:?out?std_logic); ——A,B,C,D为步进电机四个相位的通电信号。 end?zhuangtai; architecture?zt1?of?zhuangtai?is type?states?is(statex,state0,state1,state2,state3,state4,state5,state6,state7); ——state0-state7?为步进电机通电的不同状态,statex为不通电状态。??signal?ste:states;??signal?q:std_logic_vector(3?downto?0); ——Q为四个相位的输出信号,A,B,C,D分别对应为Q的3,2,1,0位。步进电机可工作在四拍、八拍通电状态,出于
文档评论(0)