基于单片机的新型步进电机运动控制器

发布者:chinalisa最新更新时间:2010-07-27 来源: 微计算机信息关键字:运动控制  步进电机  单片机  电路设计 手机看文章 扫描二维码
随时随地手机看文章

1 引言

  数控技术是一种采用计算机对机械加工过程中各种控制信息进行数字化运算处理,并通过高性能的驱动单元对机械执行构件进行自动化控制的高新技术。现代机械加工业逐步向柔性化、集成化、智能化方向发展,因此新一代数控技术就必需强调具有开放式、智能化、网络化的特征[1]。本文采用新型微处理器、高性能集成电路,研究开发智能步进电机控制卡。

2 系统总体结构设计

  通过对步进电机控制器关键技术进行分析、研究和比较,并综合国内外运动控制器产品智能化、集成化、开放化的发展趋势,我们提出的步进电机运动控制器总体结构如图1所示。

 


图1 系统总体结构

3 系统硬件电路设计

  3.1 脉冲分频电路设计

  本系统的主要控制对象为步进电机。步进电机是一种将电脉冲转化为角位移的执行机构,因此产生符合系统要求的步进电机驱动脉冲为整个系统设计中的关键。本系统的脉冲分频电路由图2所示。整个电路采用3片8254来产生X,Y,Z三个轴的驱动脉冲信号,鉴于Y,Z轴的电路与X轴相同,因此图中只表示了X轴脉冲数输出的电路原理。

  Inte18254是可编程定时/计数器,片内包含3个独立通道,每个通道均为功能相同的16位计数器,每个计数器的工作方式和计数长度分别由软件编程选择。8254是8253的改进型,操作方式及引脚与8253完全相同。8253计数频率为2.6MHz,8254的计数频率则更高,可达到6MHz。本系统选择8254作为脉冲分频电路的主控芯片。

 


图2 脉冲分频电路图

  3.2 RS-232通信接口电路设计

  在单片机系统的通信中,RS-232和RS-485标准总线应用最为成熟。为了使运动控制器的适用范围更加广泛,配合PC的现有接口,我们选用RS- 232标准总线来实现控制器和PC的通信,其接口电路如图3所示。在图3中,选用MAX232作为系统的通信接口芯片。MAX232是MAXIM公司生产的低功耗、单电源双RS-232发送/接收发器,适用于各种EIA-232E和V.28/V.24的通信接口。MAX232芯片可以把输入的+5V电源变换成RS-232输出电平所需的±10V电压,所以采用此芯片接口的串行通信系统只要单一的+5V电源就可以。

 


图3 通信接口电路

  MAX232外围需要4个电解电容C1,C2,C3,C4是内部电源转换所需电容,其取值均为0.1μF/25V。C44为0.1μF的去耦电容。MAX232的引脚T1IN,T2IN,R1OUT,R2OUT为接TTL/CMOS电平的引脚。

  引脚T1OUT,T2OUT,R1IN,R2IN为接RS-232C电平的引脚。因此TTL/CMOS电平的T1IN,T2IN引脚应接MCS-51 的串行发送引脚TXD;R1OUT,R2OUT应接MCS-51的串行接收引脚RxD。与之对应的RS-232C电平的T1OUT,T2OUT应接PC机的接收端RD;R1IN,R2IN应接PC机的发送端。

  3.3 D/A转换与V/I转换电路设计

  本运动控制器需要对电主轴的转速进行控制,对电主轴的控制通过其驱动器来实现。电主轴驱动器根据输入的电压或电流的大小来确定主轴的转速,因此系统需要输出0~5V的电压或0~20mA的电流,必须将系统处理过的数字量经D/A转换变成模拟量输出。本控制器的D/A转换主要由DAC0832芯片实现。 DAC0832是8位微处理器兼容型数/模转换器芯片,是DAC0830系列的一种。DAC0832与微机接口方便,可以充分利用微处理器的控制能力实现对D/A转换的控制,因此在实际中得到了广泛的应用。

  不同的电主轴驱动器对输入的信号有不同的要求,有的需要0~5V的电压信号,有的需要0~20mV的电流信号,因此我们同样设计了V/I转换电路,使系统具备了电流信号的输出,增强了系统的适应性。

  3.4 开关信号输入电路设计

  在步进电机运动过程中,常采用机械式开关和光电开关构成开关信号输入回路,通过开关的闭合或断开,以电平的形式反映步进电机的工况。这包括X,Y,Z轴限位;加工过程中对刀,X,Y,Z轴电机的回零操作等等[2-3]。

  由于开关的机械式设计,触点闭合或断开时伴有机械抖动,会使输出信号波形出现振荡。若将该信号输入到微控制器的计数器中,会造成错误的计数而导致系统控制混乱。开关量的输入干扰是系统设计中客观存在的问题。因此在获得开关信号后,我们必须对开关信号进行处理,使其成为单片机可以识别的数字信号后才能做出相应的反应。系统共提供了12路的开关信号接口,限位开关信号处理如图4所示。

 


图4 限位开关信号处理电路原理图

  在开关信号输入CPU之前,首先用电容对其进行滤波,抑制信号中的高频分量。TPL光耦隔离实现了光电开关、限位开关信号和控制器之间的电平转换,并实现了两个不同回路间的隔离,保证了控制器电路不受来自开关信号电路的干扰。

  3.5 硬件抗干扰技术

  为了克服可能发生的各种干扰,保证系统能够可靠的运行,现有的抗干扰技术在硬件方面采取如下措施[4]:

  ①抑制电源干扰。传导干扰通常由交流电源端引入系统内部。为了抑制这种干扰,系统通常在交流进线端串接入低通LC滤波器。这种方法在实际中己经取得明显效果,但为了抑制电源浪涌电压的冲击,系统还必须在电源线之间及电源线对地之间分别装压敏电阻。

  ②抑制传输线干扰。对于系统中传输距离较长的线路通常选用屏蔽电缆来实现系统各部分的连接,以达到抗干扰的目的。在一些应用环境比较恶劣的系统中,为了进一步抑制干扰,可采用光电隔离方式将系统控制部分与I/O口部分分开,并采用双电源供电。

  ③尽量减小干扰造成的影响。通常的做法有:1)增加硬件看门狗电路。2)增加电压监测电路。3)选择抗干扰能力较强的单片机系列。4)尽可能使用单片机的内部程序存储器和内部数据存储器而不使用外部总线连接这些器件。5)协调好电路中不同类型IC的电平匹配。6)数据总线和控制总线间形成板与板连接时,应加总线驱动器。

4 系统软件设计

  系统的主程序由消息循环和初始化程序构成,其流程如图5所示。在系统的主程序中,初始化程序的功能是在系统复位后完成单片机各个特殊功能寄存器的设置、各数据区的初始化、外部硬件设备的设置等操作;系统的消息循环则用来实现消息合法性的判断及消息处理功能模块的调用。

 


图5 系统主程序流程图

  为了能够对消息的合法性进行判断,我们为消息组中的每个消息定义了对应的合法性判断标识位。如果某消息所对应的合法性判断标识位为“1”,则表示该消息是合法的消息,系统应该调用相应的消息处理功能模块对消息进行处理;为“0”则表示该消息是非法的消息,系统应该忽略该消息。为了实现“看门狗”功能,我们还在消息循环中加入了喂狗输出操作。值得注意的是,在系统的串行通信处理模块中,根据接收到的数据进行判断是自动加工,或是手动加工,还是参数设置,分别对消息序列中的标志位进行置位,以保证主程序能够正确实现各处理模块的调用。

5 本文创新点

  本系统采用MCS51系列单片机对数据进行处理及对运动状态进行控制,由8254可编程定时/计数器实现脉冲的分频输出,保证了运动控制的实时性要求。为了使运动控制器能够在恶劣的环境下可靠地工作,我们采用X5045集成芯片为主要器件构成低成本、高可靠性的抗干扰电路,实现对步进电机运动控制卡的自动保护。系统投入使用以来,产生直接经济效益50余万元。

关键字:运动控制  步进电机  单片机  电路设计 引用地址:基于单片机的新型步进电机运动控制器

上一篇:IAR Embedded Workbench 引入功耗调试分析工具
下一篇:基于PIC16F873单片机的步进电机控制系统

推荐阅读最新更新时间:2024-03-16 12:29

51单片机串行口并/串、串/并转换实验
一、实验内容 利用MCS-51单片机P1.2做控制信号(把并转串单元的LOCK和串转并单元的LOCK连接至P1.2。),实现并转串、串转并,并把串转并的数据送到发光二极管单元显示。 二、仿真图 三、代码 C语言实现: /* 74LS164:串入并出 74LS165:并入串出 */ #include reg52.h #include intrins.h #define uchar8 unsigned char #define uint16 unsigned int sbit CLK=P1^0; sbit SH=P2^7; uchar8 nSendByte ; void delay1s(
[单片机]
51<font color='red'>单片机</font>串行口并/串、串/并转换实验
车规MCU的功能安全库是什么
功能安全库(Safety Library) 车规MCU的功能安全库(Safety Library)是为了满足汽车电子系统的功能安全要求而设计的软件模块集合。它提供了一系列的功能安全功能和算法,用于监测和控制系统的运行,以确保系统在发生故障时能够安全地进入故障状态或安全地恢复正常工作。 车规MCU的功能安全库的核心功能包括: 故障检测和诊断:功能安全库可以监测系统的各个部分是否正常工作,并在发现故障时进行诊断和报警。它可以检测硬件故障、软件错误和通信故障等,并提供相应的故障诊断信息。 故障容错和恢复:功能安全库可以通过冗余设计和错误处理算法来提高系统的容错性。它可以检测和纠正错误,或者在发生故障时切换到备用模式,以确保系统的可靠
[嵌入式]
车规<font color='red'>MCU</font>的功能安全库是什么
ADC0809与MCS-51单片机连接电路的设计和实现
ADC0809与MCS-51的连接电路   ADC0809与MCS-51单片机的连接如图9.10所示。电路连接主要涉及两个问题。一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。   MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。   1. 8路
[单片机]
ADC0809与MCS-51<font color='red'>单片机</font>连接电路的设计和实现
51单片机学习笔记———13.2DS1302实时时钟代码部分(1)
代码: 实验序列:11.1 实验任务: 向DS1302中写入初始校准时间,然后不断从DS1302中读出时间并显示 实现现象:程序运行后动态数码管显示初始时间:23-59-50,并不断更新显示 硬件接线:同动态数码管一节要求。 注意事项:(1) DS1302的SPI接口用到了P3.4、P3.5、P3.6,若程序运行有问题查 硬件问题时可以从这三个引脚复用部分查起 (2) DS1302的初始化时间是随便给的,之所以给23.59.50,是为了在10 秒后即可看到24.59.59到00.00.00的跳变。 (3) DS1302寄存器读写的函数编写时要注意时序和LSB这2个要点。 ***
[单片机]
基于MSP430单片机的CAN总线接口转换卡设计
1 引言 控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。 CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求。
[单片机]
单片机如何输出4-20ma电流信号?
电路原理图 电路分析 如上图所示,是一个压控恒流源(VCCS),VS1来自单片机DAC引脚的模拟电压信号。经过R1,C1组成的低通滤波器进行滤波后送往运放,从伯德图中可以看出该滤波器在-3dB增益处对应的截止频率为1.59K,足以用来滤除高频数字干扰信号。 运放在深度负反馈条件下具有虚短的特性,DAC信号进入运放的同相输入端后,运放会控制输出,通过反馈回路使得反向输入端电压逼近同相输入端电压,最后保持相等。 这个过程中三极管进入线性区,IC电流逐渐变大,流过电阻R3的电流增大,R3两端电压也随之增大,最终运放反向输入端电压等于同相输入端电压,电路进入稳定状态。 电路中电阻R2,R3,三极管T1,和输出引脚(连接电流表)为串
[单片机]
基于单片机的直流伺服驱动器
1 引 言   直流伺服驱动器凭借其优异的驱动性能,在工业、医疗、国防等领域有着广泛应用。典型的直流伺服驱动器的结构如图1-1所示。整个系统是由电流环、速度环和位置环构成的多环控制系统。传统的伺服驱动器使用运放为核心的模拟电路构成,其有结构复杂、参数调整不易和系统性能易受环境影响等缺点。随着微处理器技术、模拟数字接口技术和功率半导体技术的长足发展,现代的直流伺服驱动器普遍采用由微处理器为核心的数字控制系统。以微处理器为核心的伺服驱动器不但可以方便实现以前用模拟电路无法实现的控制算法,并且有着结构简单、参数调整方便、系统性能对环境参数不敏感等优点。同时,数字控制系统还可以充分利用成熟的网络连接技术,实现多机并行运行。   1-1
[单片机]
基于<font color='red'>单片机</font>的直流伺服驱动器
第22节:减法运算的溢出
从业十年,教你单片机入门 第22讲: 在开始本章节之前,先纠正一下前面第17节内容的一个小bug。我原文中写道: 保存变量 += 加数1 + 加数2 +...+ 加数N ; 相当于: 保存变量 = 保存变量 + 加数1 + 加数2 +...+ 加数N ; 当时我没有考虑到优先级,漏了一个括号,修改后,相当于: 保存变量 = 保存变量 +( 加数1 + 加数2 +...+ 加数);这样才算比较准确。同理,我后面所举的例子: f+=18+y+k; //相当于f=f+18+y+k; 在注释中也漏了一个括号,应该是: f+=18+y+k; //相当于f=f+(18+y+k); 上述多一个括号或者少一个括号虽然看似不影响运算
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved