高低压恒流斩波步进电机驱动器设计

高低压恒流斩波步进电机驱动器设计
目录
第1章 绪论... 1
1.1 引言... 1
1.2 课题研究背景及意义... 2
1.2.1 课题背景... 2
1.2.2 课题目的及意义... 3
1.3 研究现状... 3
【高低压恒流斩波步进电机驱动器设计】1.3 研究内容... 6
2 系统整体设计... 7
2.1 系统总体设计... 7
2.2 器件选型... 8
2.2.1 单片机... 8
2.2.2 大功率开关管... 12
2.2.3 显示模块... 12
2.2.4 光栅位移传感器... 13
3 系统硬件设计... 14
3.1 单片机外围电路... 14
3.1.1 时钟电路... 14
3.1.2 复位电路... 14
3.2 键盘电路... 15
3.3 驱动电路... 16
3.4 显示电路... 17
3.5 光栅尺信号处理电路... 17
4 系统软件设计... 19
4.1 编程语言选择... 19
4.2 程序开发环境... 19
4.3 系统主程序设计... 20
4.3.1 单片机主程序... 20
4.3.2 按键及中断程序设计... 20
4.3.3 显示程序... 21
4.3.4 PID控制算法... 23
5 系统测试... 25
5.1 系统调试... 25
5.2 硬件调试... 25
6 总结... 27
参考文献... 28
致谢... 30


第1章 绪论 1.1 引言 步进电机是将电脉冲信号转换成角位移或直线位移的执行元件[1],其角位移量或线位移量与输入的脉冲数目成比例,速度与脉冲的频率成比例,方向取决于对步进电机各相绕组所加脉冲的顺序。因此,步进电机可以在数字控制系统中作为数字-模拟转换元件,也可以作为驱动电动机带动机械结构或其它负载装置产生一定的位移或速度。由于步进电机的位移量与输入的脉冲数量严格成正比,步距误差不会长期积累,所以无需配备位置传感器或速度传感器,就可以容易地实现比较精确的位置控制和速度控制。因为是直接进行开环控制,所以整个系统简单廉价。步进电机起动、停止、正反转及变速等易于控制,响应性好。另外步进电机无刷,电机本体部件少,可靠性高,寿命长。正是由于步进电机有诸多优点,所以步进电机现已广泛应用于雕刻机、电脑绣花机、喷绘机、包装机、印刷机、纺织机、ATM机、坐标测量仪器、医疗设备、机器人、数控机床、舞台灯光、票据打印机、POS 机等,行业涉及电子、电信、仪表、机械、冶金、纺织、轻工、办公自动化设备、医疗及航空航天、兵器、国防工业等领域。
事实上步进电机还存在有一定的缺点,这些缺点有时会限制其应用场合:
(1)由于步进电机需要加入电脉冲信号才能运行,所以步进电机不能直接接在普通的交流或直流电源上受其驱动,而必须使用步进电机驱动器。
(2)转速升高时步进电机的输出转矩有所下降,因此步进电机带惯性负载的能力比较差。
(3)步进电机存在失步和低频共振现象,运行时电磁噪声也比较大,使得步进电机的升降速方法根据使用状态的不同而复杂化。
实质上,步进电动机的运行性能除了与步进电机自身的性能有关外,在很大程度上还取决于驱动器所采用的驱动技术,因为不同的驱动方式对步进电机的性能影响很大。性能优良的步进电机驱动器能够满足步进电机相数、通电方式和电压电流的要求;满足步进电机启动频率和运行频率的要求;能够有效地抑制或消除步进电机的低频振荡;可靠性高,抗干扰能力强,成本低,安装、维护方便。所以对步进电机驱动技术的研究和对步进电机的研究几乎是同步的。
随着科学技术高、精、尖的发展,产品加工逐渐走向精细化,仪器仪表朝着精密化方向发展。精密数控机床、高效液相色谱仪、生化分析仪、洗板机、偏光镜、光学成像自动聚焦等项目均要求步进电机必须达到相当高的步距分辨率[2-4],以使得执行机构获得足够高的定位精度,这就对普通的步进电机和普通的驱动器提出了挑战。
欲使步进电机具有高的步距分辨率即步进精度,可由两种途径获得:
(1)改进步进电机的内部结构,通过增加相数,进一步减小步距角。但相数增加带来的结果是步进电机内部结构将变得非常复杂,体积也变得庞大,成本也增加。步距角虽有一定程度的减小,但难以达到或根本达不到系统所要求的标准。
(2)深入研究步进电机的结构组成、运行机理,建立相关数学模型,寻求新的驱动技术。这项驱动技术就是后面章节将要阐述的细分驱动技术。采用细分驱动技术,可在不更改步进电机内部结构的前提下,有效地缩小步距角至原来的几十分之一甚至几百分之一,从而进一步提高步进精度,满足系统设计的需要。
相比较而言,当定位精度要求很高时,实际应用中采用细分驱动技术,因为这种方法成本低,简便易行。
1.2 课题研究背景及意义 1.2.1 课题背景
我国数控系统在初期就是以单板机或单片机为数控核心,以步进电机为执行元件,由于其结构简单,价格便宜,只需一万元左右就可以装备一台经济型数控机床,很适合我国中小型企业使用。采用步进电机作为伺服执行元件,不仅可以应用于经济型数控伺服系统,而且也可以辅以先进的检测和反馈元件,组成高精度全闭环数控系列,从而达到很高的加工精度。
除了在数控系统中得到广泛的应用,近年来由于微型计算机方面的快速发展,使步进电机的控制发生了革命性变革。优点明显的步进电机被广泛应用在电子计算机的许多外围设备中,例如打印机,纸带输送机构,卡片阅读机,主动轮驱动机构和存储器存取机构等,步进电机也在军用仪器,通信和雷达设备,摄影系统,光电组合装置,阀门控制,数控机床,电子钟,医疗设备及自动绘图仪,数字控制系统,工具机控制,程序控制系统以及许多航天工业的系统中得到应用。因而,对于步进电机控制的研究也就显得重要了。
1.2.2 课题目的及意义
步进电机具有快速启停、精确定位的特点,在数字控制领域经常使用步进电机作为位置控制的执行机构3 步进电机在快速运行中,要求驱动电路提供给步进电机绕组的驱动电流尽可能地接近其技术指标要求的数值,以产生足够的转矩,由于步进电机是感性负载,当运行速度提高后要提高绕组的工作电流,必须提高电源电压实际应用中,常采用的控制方式是高低压恒流斩波控制。
1.3 研究现状 在步进电机的发展过程中,出现了多种控制方案。
1、基于电子电路控制
步进电机受电脉冲信号控制,电脉冲信号的产生、分配、放大全靠电子元器件的动作来实现。由于脉冲控制信号的驱动能力一般都很弱,因此必须有功率放大驱动电路。步进电机与控制电路、功率放大驱动电路组成一体,构成步进电机驱动系统。此种控制电路设计简单,功能强大,可实现一般步进电机的细分任务。这个系统由三部分组成脉冲信号产生电路、脉冲信号分配电路、功率放大驱动电路。
此种方案即可为开环控制,也可闭环控制。开环时,其平稳性好,成本低,设计简单,但未能实现高精度细分。采用闭环控制,即能实现高精度细分,实现无级调速。闭环控制是不断直接或间接地检测转子的位置和速度,然后通过反馈和适当的处理,自动给出脉冲链,使步进电机每一步响应控制信号的命令,从而只要控制策略正确电机不可能轻易失步。
该方案多通过一些大规模集成电路来控制其脉冲输出频率和脉冲输出数,功能相对较单一,如需改变控制方案,必须需重新设计,因此灵活性不高。
2、基于单片机控制
采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。用软件代替环形分配器,达到了对步进电机的最佳控制。系统中采用单片机接口线直接去控制步进电机各相驱动线路。由于单片机的强大功能,还可设计大量的外围电路,键盘作为一个外部中断源,设置了步进电机正转、反转、档次、停止等功能,采用中断和查询相结合的方法来调用中断服务程序,完成对步进电机的最佳控制,显示器及时显示正转、反转速度等状态。环形分配器其功能由单片机系统实现,采用软件编程的办法实现脉冲的分配因。
本方案有以下优点单片机软件编程可以使复杂的控制过程实现自动控制和精确控制,避免了失步、振荡等对控制精度的影响用软件代替环形分配器,通过对单片机的设定,用同一种电路实现了多相步进电机的控制和驱动,大大提高了接口电路的灵活性和通用性困单片机的强大功能使显示电路、键盘电路、复位电路等外围电路有机的组合,大大提高系统的交互性。
基于以上优点,本次设计采用基于单片机的控制方案。
3、基于PLC的控制
PLC也叫可编程控制器,是一种工业上用的计算机。作为新一代的工业控制器,由于具有通用性好、实用性强、硬件配套齐全、编程简单易学和可靠性高等优点而广泛应用于各行业的自动控制系统中。步进电机控制系统有PLC、环形分配器和功率驱动电路组成。控制系统采用来产生控制脉冲。通过PLC编程输出一定数量的方波脉冲,控制步进电机的转角进而控制伺服机构的进给量,同时通过编程控制脉冲频率来控制步进电机的转动速度,进而控制伺服机构的进给速度。环形脉冲分配器将PLC输出的控制脉冲按步进电机的通电顺序分配到相应的绕组。PLC控制的步进电机可以采用软件环形分配器,也可采用硬件环形分配器。采用软件环形分配器占用资源较多,特别是步进电机绕组相数大于时,对于大型生产线应该予以考虑。采用硬件环形分配器,虽然硬件结构稍微复杂些,但可以节省资源,目前市场有多种专用芯片可以选用。步进电机功率驱动电路将PLC输出的控制脉冲放大,达到比较大的驱动能力,来驱动步进电机。
采用软件来产生控制步进电机的环型脉冲信号,并用PLC中的定时器来产生速度脉冲信号,这样就可以省掉专用的步进电机驱动器,降低硬件成本。但由于PLC的扫描周期一般为但由于PLC的扫描周期一般为几毫秒到几十毫秒,相应的频率只能达到几百赫兹,因此,受到PLC工作方式的限制及其扫描周期的影响,步进电机不能在高频下工作,无法实现高速控制。并且在速度较高时,由于受到扫描周期的影响,相应的控制精度就降低了。
步进电动机上个世纪就出现了,它的组成、工作原理和今天的反应式步进电动机没有什么本质区别,也是依靠气隙间的磁导变化来产生电磁转矩。上世纪80年代以后,由于廉价的微型计算机以多功能的姿态出现,步进电动机的控制方式变得更加灵活多样。步进电机驱动技术指的是用步进电机驱动器的驱动级来实现对步进电机各相绕组的通电和断电,同时也是对绕组承受的电压和电流进行控制的技术。到目前为止,步进电机驱动技术通常分为单电压驱动、单电压串电阻驱动、高低压驱动、斩波恒流驱动、升频升压驱动和细分驱动等。
单电压驱动是通过改变电路的时间常数以提高电机的高频特性。该驱动方式早在六十年代初期国外就已大量使用,它的优点是结构简单、成本低缺点是串接电阻器的做法将产生大量的能量损耗,尤其是在高频工作时更加严重,因而它只适用于小功率或对性能指标要求不高的步进电机驱动。单电压串电阻驱动是在单电压驱动技术的基础上为电枢绕组回路串入电阻,用以改善电路的时间常数以提高电机的高频特性。它提高了步进电机的高频响应、减少了电动机的共振,也带来了损耗大、效率低的缺点。这种驱动方式目前主要用于小功率或启动、运行频率要求不高的场合。
高低压驱动是指不论电动机的工作频率是多少,在导通相的前沿用高电压供电来提高电流的上升沿斜率,而在前沿过后采用低电压来维持绕组的电流,即采用加大绕组电流的注入量以提高出力,而不是通过改善电路的时间常数来使矩频性能得以提高。但是使用这种驱动方式的电机,其绕组的电流波形在高压工作结束和低压工作开始的衔接处呈凹形,致使电机的输出力矩有所下降。这种驱动方式目前在实际应用中还比较常见。
为了弥补高低压电路中电流波形的下凹,提高输出转矩,七十年代中期研制出斩波电路,该电路由于采用斩波技术,使绕组电流在额定值上下成锯齿形波动,流过绕组的有效电流相应增加,故电机的输出转矩增大,而且不需外接电阻,整个系统的功耗下降,效率较高,因而恒流斩波电路得到了广泛应用,本文正是应用恒流斩波技术实现了驱动控制。为改善恒流驱动方式的低频特性,设计一个低速时低电压驱动,高速时高电压驱动的电路,使其成为一个由脉冲频率控制的可变输出电压的开关稳压驱动电源。在低速运行时,电子控制器调节功率开关管的导通角,使线路输出的平均电压较低,电动机不会像在恒流斩波驱动下那样在低速容易出现过冲或共振现象,从而避免产生明显的振荡。当运行速度逐渐变快时,平均电压渐渐提高以提供给绕组足够的电流。调频调压线路性能优于恒电压和恒电流线路,但实际运行中需要针对不同参数的电机,相应调整其输出电压与输入频率的特性。细分驱动是指在每次脉冲切换时,不是将绕组的全部电流通入或切除,而是只改变相应绕组中电流的一部分,电动机的合成磁势也只旋转步距角的一部分。细分驱动时,绕组电流不是一个方波而是阶梯波,额定电流是台阶式的投入或切除。比如电流分成个台阶,转子则需要次才转过一个步距角,即细分细
分驱动最主要的优点是步距角变小,分辨率提高,且提高了电机的定位精度、启动性能和高频输出转矩其次,减弱或消除了步进电机的低频振动,降低了步进电机在共振区工作的几率。可以说细分驱动技术是步进电动机驱动与控制技术的一个飞跃。
1.3 研究内容 本文的研究内容是高低压恒流斩波步进电机驱动器设计,首先学习掌握功率步进电机恒流斩波驱动电路,然后设计相应实际驱动电路;最后使用C语言编写步进电机控制程序,精确地控制步进电机移动定位。

2 系统整体设计 2.1 系统总体设计 步进电机控制系统是一个有机的完整的整体,由运动控制系统和操作控制系统组成。由操作系统完成把操作者的操作转化为运动控制系统能接受的电信号,运动控制系统随之作出反应,完成规定动作。
运动控制是一门有关如何对物体位置和速度进行控制的技术。典型的运动控制系统应由三部份构成控制部分、驱动部分、执行部分。
在步进电机控制系统中运动执行部件为步进电机。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机的运行要有一电子装置进行驱动,这种装置就是步进电机驱动器,它是把控制系统发出的脉冲信号,加以放大以驱动步进电机。步进电机的转速与脉冲信号的频率成正比,控制步进脉冲信号的频率,可以对电机精确调速控制步进脉冲的个数,可以对电机精确定位。因此典型的步进电机驱动控制系统主要由三部分组成步进控制器、驱动器把控制器输出的脉冲加以放大,来驱动步进电机、步进电机。不同的控制方案,步进控制器、驱动器也有不同的类型。
步进电机是数控式电机,其最大特点是通过输入脉冲信号来进行控制,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。它具有输入脉冲与电机轴转角成比例的特征,将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。用软件代替环形分配器,达到了对步进电机的最佳控制。系统中采用并行控制,用单片机接口线直接去控制步进电机各相驱动电路。通过软件的控制,单片机按顺序给绕组施加有序的脉冲电流,就可以控制电机的转动,从而实现数字一角度的转换。转动的角度大小与施加的脉冲数成正比,转动的速度与脉冲频率成正比,而转动方向则与脉冲的顺序有关。以三相步进电机为例,三相六拍方式:→A→AB→B→BC→C→CA→正转;→A→AC→C→CB→B→BA→反转。
如图2.1是系统总体设计图。
图2. 3 FAGOR 敞开式钢带光栅尺


3 系统硬件设计 3.1 单片机外围电路 3.1.1 时钟电路
时钟信号在单片机之中有着举足轻重的地位,只有通过时钟电路发生自激振荡,才能产生输出波形。一个性能良好的时钟电路才能提高单片机的工作效率,通常情况下可以通过控制时钟频率的大小来提升单片机的处理效率。单片机AT89C52的引脚XTAL1,XTAL2可以与单片机内部的反相放大器组成一个回路,一端输入,一端输出,主要用于外接晶体振荡器和电容,形成一个完整的振荡电路,振荡电路可以产生所需要的波形。时钟信号的产生原理基本就是基于上述方法。
无论是内部振荡还是外部振荡产生时钟信号,其产生的原理离不开晶体振荡器,内部振荡只需要在单片机反相放大器的输入端和输出端口外接晶振电路就可以实现电路的自激振荡,利用单片机内部的反向放大器和外部接入的晶体振荡器两个模块就可以产生时钟信号。一般所用的晶体振荡器分为6,12,24三个不同频率的型号。
本设计所需要的是12MHz的晶体振荡器,接通XTAL1 和XTAL2,所需电容用来稳定振荡器的频率,保证时钟电路的正常运行,电容大小均为30pf。如图3.4所示:

图3. 2 复位电路图
3.2 键盘电路 键盘接口模块的功能主要是在键盘上及时发现哪个键被按下,并将按下的键的状态消息快速的反馈给计算机,CPU会立刻读取所按下的键的编码,进行相应的编号,从而根据编号的不同实现不同的功能。
键盘是由若干按键组成的开关矩阵,使最简单的单片机输入设备,通过键盘输入数据或命令,实现人机对话,键盘电路驱动电路,如图3.3所示。
图3. 4 A相驱动电路
在正常工作中,K为高电平,当PA为低电平时表明A相绕组需要加电, 这时,由于A相绕组中的电流为0,VIA的电压也为0,由电压比较器LM393组成的施密特触发器输出高电平,同时由于PA为低电平,故三输入与非门U401A和U401C的输出为低电平,进而使锁相开关管BG405和高压开关管BG404导通,近100V的直流电压加到A相绕组上,当A相绕组中的电流超过6A,U403B输出变为低电平,从而使高压开关管BG404截止,这时A相绕组仅由锁相电源提供电流,绕组中的电流开始下降,当A相电流下降使VIA的电压小于U403B正输入端的电压,高压开关管BG404重新导通,100V高压重新将A 相绕组的电流提高,如此反复形成了恒流斩波的工作方式。在这里,电阻R421的存在使U403B的状态转换产生一定的回差,避免了U403B的连续高速翻转,改变R421的大小,可以改变斩波的频率。
在锁相状态时,由于锁相驱动信号L为低电平,K信号也为低电平,故而高压开关管截止。 若这时PA为低电平,则锁相开关管BG405导通,A相绕组由AC4.5V半波整流后的锁相电源提供电流,此时绕组电流约为其工作电流的一半。 这样可以降低步进电机的功耗,进而减少电路和电机的发热量。 一旦出现绕组短路或高压开关管击穿的情况,VIA的电压会迅速达到2.1V,这时过流检测电路会立即使VP为低电平,马上使锁相开关管截止,避免电路故障的进一步扩大,保护驱动电路和步进电。
3.4 显示电路 如图3.5是显示电路,1602显示器的八位数据端接单片机的P0口,使能端RS接P2.7,使能端RW接地,使能端E接P2.6。

图3. 6 光栅尺差分信号处理电路图
两个 DB15 接口分别连接 X,Y 两个光栅尺读数头的数据接头,A、B 两路正交差分方波信号将通过该接口将信号传输给 DS26C32 芯片接收处理,然后将 A,B 两路正交信号传送给 HCTL-2032 芯片解码,进行辨向与计数处理,然后将数据传输给单片机。电路中的电阻起到稳压的作用,电容可以消除高频噪声,提升抗干扰能力。

4 系统软件设计 4.1 编程语言选择 由于整个程序的复杂性和计算量大,它使用更多的浮点数来计算,所以程序是用C语言编辑的。
在51系列的大部分微控制器中,使用C等高级语言,比使用汇编语言更有以下优点。
(1)无需知晓处理器的指令集,无需理解存储器结构。
(2)寄存器的配置和寻址模式由编译器管理,编程无需考虑内存地址和数据类型等详细内容。
(3)通过指定操作的变量选择的组合来提高程序的可读性。
(4)你可以使用关键词和操作函数,它们与人们的想法更相似。
(5)与使用汇编语言相比,程序的开发和调试时间大大收缩。
(6)C库文件提供了很多标准例程。
(7)模块化编程技术可以通过C语言来实现,从而将编程好的程序添加到新程序中。
(8)移植性C语言是非常好的,非常受欢迎。C编译器几乎适合所有目标系统。它对于功能性、结构、易读性、移植性和维护的容易性具有明显的优点,并且易于学习和使用。
4.2 程序开发环境 本设计中的单片机开发环境是Keil U Vision 4,Keil U Vision 4开发软件是当前51系列MCU系统的主要程序开发软件。Keil U Vision 4是STC公司推出最新一代关于51系列单片机处理器的编译、连接和调试集成环境。可以降低开发周期,从而减少很多成本。Keil U Vision 4不仅提供了完整的Windows开发环境界面,并且支持C/C++语言开发,而且其C语言编辑效率很高,能够使开发者非常容易地使用C语言进行程序编程。
4.3 系统主程序设计 4.3.1 单片机主程序
该部分主要任务是对单片机端口的设置、函数的定义并对一些管脚进行定义。
与实际输出值 的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制,所以称之为PID控制器。 1、PID调节器的微分方程
(4-1)
其中
---比例系数
---积分时间常数
---微分时间常数
本设计 PID 控制步进电机的流程图如图4.4所示:
图2. 3 FAGOR 敞开式钢带光栅尺


3 系统硬件设计 3.1 单片机外围电路 3.1.1 时钟电路
时钟信号在单片机之中有着举足轻重的地位,只有通过时钟电路发生自激振荡,才能产生输出波形。一个性能良好的时钟电路才能提高单片机的工作效率,通常情况下可以通过控制时钟频率的大小来提升单片机的处理效率。单片机AT89C52的引脚XTAL1,XTAL2可以与单片机内部的反相放大器组成一个回路,一端输入,一端输出,主要用于外接晶体振荡器和电容,形成一个完整的振荡电路,振荡电路可以产生所需要的波形。时钟信号的产生原理基本就是基于上述方法。
无论是内部振荡还是外部振荡产生时钟信号,其产生的原理离不开晶体振荡器,内部振荡只需要在单片机反相放大器的输入端和输出端口外接晶振电路就可以实现电路的自激振荡,利用单片机内部的反向放大器和外部接入的晶体振荡器两个模块就可以产生时钟信号。一般所用的晶体振荡器分为6,12,24三个不同频率的型号。
本设计所需要的是12MHz的晶体振荡器,接通XTAL1 和XTAL2,所需电容用来稳定振荡器的频率,保证时钟电路的正常运行,电容大小均为30pf。如图3.4所示:

图3. 2 复位电路图
3.2 键盘电路 键盘接口模块的功能主要是在键盘上及时发现哪个键被按下,并将按下的键的状态消息快速的反馈给计算机,CPU会立刻读取所按下的键的编码,进行相应的编号,从而根据编号的不同实现不同的功能。
键盘是由若干按键组成的开关矩阵,使最简单的单片机输入设备,通过键盘输入数据或命令,实现人机对话,键盘电路驱动电路,如图3.3所示。
图3. 4 A相驱动电路
在正常工作中,K为高电平,当PA为低电平时表明A相绕组需要加电, 这时,由于A相绕组中的电流为0,VIA的电压也为0,由电压比较器LM393组成的施密特触发器输出高电平,同时由于PA为低电平,故三输入与非门U401A和U401C的输出为低电平,进而使锁相开关管BG405和高压开关管BG404导通,近100V的直流电压加到A相绕组上,当A相绕组中的电流超过6A,U403B输出变为低电平,从而使高压开关管BG404截止,这时A相绕组仅由锁相电源提供电流,绕组中的电流开始下降,当A相电流下降使VIA的电压小于U403B正输入端的电压,高压开关管BG404重新导通,100V高压重新将A 相绕组的电流提高,如此反复形成了恒流斩波的工作方式。在这里,电阻R421的存在使U403B的状态转换产生一定的回差,避免了U403B的连续高速翻转,改变R421的大小,可以改变斩波的频率。
在锁相状态时,由于锁相驱动信号L为低电平,K信号也为低电平,故而高压开关管截止。 若这时PA为低电平,则锁相开关管BG405导通,A相绕组由AC4.5V半波整流后的锁相电源提供电流,此时绕组电流约为其工作电流的一半。 这样可以降低步进电机的功耗,进而减少电路和电机的发热量。 一旦出现绕组短路或高压开关管击穿的情况,VIA的电压会迅速达到2.1V,这时过流检测电路会立即使VP为低电平,马上使锁相开关管截止,避免电路故障的进一步扩大,保护驱动电路和步进电。
3.4 显示电路 如图3.5是显示电路,1602显示器的八位数据端接单片机的P0口,使能端RS接P2.7,使能端RW接地,使能端E接P2.6。

图3. 6 光栅尺差分信号处理电路图
两个 DB15 接口分别连接 X,Y 两个光栅尺读数头的数据接头,A、B 两路正交差分方波信号将通过该接口将信号传输给 DS26C32 芯片接收处理,然后将 A,B 两路正交信号传送给 HCTL-2032 芯片解码,进行辨向与计数处理,然后将数据传输给单片机。电路中的电阻起到稳压的作用,电容可以消除高频噪声,提升抗干扰能力。

4 系统软件设计 4.1 编程语言选择 由于整个程序的复杂性和计算量大,它使用更多的浮点数来计算,所以程序是用C语言编辑的。
在51系列的大部分微控制器中,使用C等高级语言,比使用汇编语言更有以下优点。
(1)无需知晓处理器的指令集,无需理解存储器结构。
(2)寄存器的配置和寻址模式由编译器管理,编程无需考虑内存地址和数据类型等详细内容。
(3)通过指定操作的变量选择的组合来提高程序的可读性。
(4)你可以使用关键词和操作函数,它们与人们的想法更相似。
(5)与使用汇编语言相比,程序的开发和调试时间大大收缩。
(6)C库文件提供了很多标准例程。
(7)模块化编程技术可以通过C语言来实现,从而将编程好的程序添加到新程序中。
(8)移植性C语言是非常好的,非常受欢迎。C编译器几乎适合所有目标系统。它对于功能性、结构、易读性、移植性和维护的容易性具有明显的优点,并且易于学习和使用。
4.2 程序开发环境 本设计中的单片机开发环境是Keil U Vision 4,Keil U Vision 4开发软件是当前51系列MCU系统的主要程序开发软件。Keil U Vision 4是STC公司推出最新一代关于51系列单片机处理器的编译、连接和调试集成环境。可以降低开发周期,从而减少很多成本。Keil U Vision 4不仅提供了完整的Windows开发环境界面,并且支持C/C++语言开发,而且其C语言编辑效率很高,能够使开发者非常容易地使用C语言进行程序编程。
4.3 系统主程序设计 4.3.1 单片机主程序
该部分主要任务是对单片机端口的设置、函数的定义并对一些管脚进行定义。
与实际输出值 的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制,所以称之为PID控制器。 1、PID调节器的微分方程
(4-1)
其中
---比例系数
---积分时间常数
---微分时间常数
本设计 PID 控制步进电机的流程图如图4.4所示:
图2. 3 FAGOR 敞开式钢带光栅尺


3 系统硬件设计 3.1 单片机外围电路 3.1.1 时钟电路
时钟信号在单片机之中有着举足轻重的地位,只有通过时钟电路发生自激振荡,才能产生输出波形。一个性能良好的时钟电路才能提高单片机的工作效率,通常情况下可以通过控制时钟频率的大小来提升单片机的处理效率。单片机AT89C52的引脚XTAL1,XTAL2可以与单片机内部的反相放大器组成一个回路,一端输入,一端输出,主要用于外接晶体振荡器和电容,形成一个完整的振荡电路,振荡电路可以产生所需要的波形。时钟信号的产生原理基本就是基于上述方法。
无论是内部振荡还是外部振荡产生时钟信号,其产生的原理离不开晶体振荡器,内部振荡只需要在单片机反相放大器的输入端和输出端口外接晶振电路就可以实现电路的自激振荡,利用单片机内部的反向放大器和外部接入的晶体振荡器两个模块就可以产生时钟信号。一般所用的晶体振荡器分为6,12,24三个不同频率的型号。
本设计所需要的是12MHz的晶体振荡器,接通XTAL1 和XTAL2,所需电容用来稳定振荡器的频率,保证时钟电路的正常运行,电容大小均为30pf。如图3.4所示:

图3. 2 复位电路图
3.2 键盘电路 键盘接口模块的功能主要是在键盘上及时发现哪个键被按下,并将按下的键的状态消息快速的反馈给计算机,CPU会立刻读取所按下的键的编码,进行相应的编号,从而根据编号的不同实现不同的功能。
键盘是由若干按键组成的开关矩阵,使最简单的单片机输入设备,通过键盘输入数据或命令,实现人机对话,键盘电路驱动电路,如图3.3所示。
图3. 4 A相驱动电路
在正常工作中,K为高电平,当PA为低电平时表明A相绕组需要加电, 这时,由于A相绕组中的电流为0,VIA的电压也为0,由电压比较器LM393组成的施密特触发器输出高电平,同时由于PA为低电平,故三输入与非门U401A和U401C的输出为低电平,进而使锁相开关管BG405和高压开关管BG404导通,近100V的直流电压加到A相绕组上,当A相绕组中的电流超过6A,U403B输出变为低电平,从而使高压开关管BG404截止,这时A相绕组仅由锁相电源提供电流,绕组中的电流开始下降,当A相电流下降使VIA的电压小于U403B正输入端的电压,高压开关管BG404重新导通,100V高压重新将A 相绕组的电流提高,如此反复形成了恒流斩波的工作方式。在这里,电阻R421的存在使U403B的状态转换产生一定的回差,避免了U403B的连续高速翻转,改变R421的大小,可以改变斩波的频率。
在锁相状态时,由于锁相驱动信号L为低电平,K信号也为低电平,故而高压开关管截止。 若这时PA为低电平,则锁相开关管BG405导通,A相绕组由AC4.5V半波整流后的锁相电源提供电流,此时绕组电流约为其工作电流的一半。 这样可以降低步进电机的功耗,进而减少电路和电机的发热量。 一旦出现绕组短路或高压开关管击穿的情况,VIA的电压会迅速达到2.1V,这时过流检测电路会立即使VP为低电平,马上使锁相开关管截止,避免电路故障的进一步扩大,保护驱动电路和步进电。
3.4 显示电路 如图3.5是显示电路,1602显示器的八位数据端接单片机的P0口,使能端RS接P2.7,使能端RW接地,使能端E接P2.6。

图3. 6 光栅尺差分信号处理电路图
两个 DB15 接口分别连接 X,Y 两个光栅尺读数头的数据接头,A、B 两路正交差分方波信号将通过该接口将信号传输给 DS26C32 芯片接收处理,然后将 A,B 两路正交信号传送给 HCTL-2032 芯片解码,进行辨向与计数处理,然后将数据传输给单片机。电路中的电阻起到稳压的作用,电容可以消除高频噪声,提升抗干扰能力。

4 系统软件设计 4.1 编程语言选择 由于整个程序的复杂性和计算量大,它使用更多的浮点数来计算,所以程序是用C语言编辑的。
在51系列的大部分微控制器中,使用C等高级语言,比使用汇编语言更有以下优点。
(1)无需知晓处理器的指令集,无需理解存储器结构。
(2)寄存器的配置和寻址模式由编译器管理,编程无需考虑内存地址和数据类型等详细内容。
(3)通过指定操作的变量选择的组合来提高程序的可读性。
(4)你可以使用关键词和操作函数,它们与人们的想法更相似。
(5)与使用汇编语言相比,程序的开发和调试时间大大收缩。
(6)C库文件提供了很多标准例程。
(7)模块化编程技术可以通过C语言来实现,从而将编程好的程序添加到新程序中。
(8)移植性C语言是非常好的,非常受欢迎。C编译器几乎适合所有目标系统。它对于功能性、结构、易读性、移植性和维护的容易性具有明显的优点,并且易于学习和使用。
4.2 程序开发环境 本设计中的单片机开发环境是Keil U Vision 4,Keil U Vision 4开发软件是当前51系列MCU系统的主要程序开发软件。Keil U Vision 4是STC公司推出最新一代关于51系列单片机处理器的编译、连接和调试集成环境。可以降低开发周期,从而减少很多成本。Keil U Vision 4不仅提供了完整的Windows开发环境界面,并且支持C/C++语言开发,而且其C语言编辑效率很高,能够使开发者非常容易地使用C语言进行程序编程。
4.3 系统主程序设计 4.3.1 单片机主程序
该部分主要任务是对单片机端口的设置、函数的定义并对一些管脚进行定义。
与实际输出值 的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制,所以称之为PID控制器。 1、PID调节器的微分方程
(4-1)
其中
---比例系数
---积分时间常数
---微分时间常数
本设计 PID 控制步进电机的流程图如图4.4所示:
图2. 3 FAGOR 敞开式钢带光栅尺


3 系统硬件设计 3.1 单片机外围电路 3.1.1 时钟电路
时钟信号在单片机之中有着举足轻重的地位,只有通过时钟电路发生自激振荡,才能产生输出波形。一个性能良好的时钟电路才能提高单片机的工作效率,通常情况下可以通过控制时钟频率的大小来提升单片机的处理效率。单片机AT89C52的引脚XTAL1,XTAL2可以与单片机内部的反相放大器组成一个回路,一端输入,一端输出,主要用于外接晶体振荡器和电容,形成一个完整的振荡电路,振荡电路可以产生所需要的波形。时钟信号的产生原理基本就是基于上述方法。
无论是内部振荡还是外部振荡产生时钟信号,其产生的原理离不开晶体振荡器,内部振荡只需要在单片机反相放大器的输入端和输出端口外接晶振电路就可以实现电路的自激振荡,利用单片机内部的反向放大器和外部接入的晶体振荡器两个模块就可以产生时钟信号。一般所用的晶体振荡器分为6,12,24三个不同频率的型号。
本设计所需要的是12MHz的晶体振荡器,接通XTAL1 和XTAL2,所需电容用来稳定振荡器的频率,保证时钟电路的正常运行,电容大小均为30pf。如图3.4所示:

图3. 2 复位电路图
3.2 键盘电路 键盘接口模块的功能主要是在键盘上及时发现哪个键被按下,并将按下的键的状态消息快速的反馈给计算机,CPU会立刻读取所按下的键的编码,进行相应的编号,从而根据编号的不同实现不同的功能。
键盘是由若干按键组成的开关矩阵,使最简单的单片机输入设备,通过键盘输入数据或命令,实现人机对话,键盘电路驱动电路,如图3.3所示。
图3. 4 A相驱动电路
在正常工作中,K为高电平,当PA为低电平时表明A相绕组需要加电, 这时,由于A相绕组中的电流为0,VIA的电压也为0,由电压比较器LM393组成的施密特触发器输出高电平,同时由于PA为低电平,故三输入与非门U401A和U401C的输出为低电平,进而使锁相开关管BG405和高压开关管BG404导通,近100V的直流电压加到A相绕组上,当A相绕组中的电流超过6A,U403B输出变为低电平,从而使高压开关管BG404截止,这时A相绕组仅由锁相电源提供电流,绕组中的电流开始下降,当A相电流下降使VIA的电压小于U403B正输入端的电压,高压开关管BG404重新导通,100V高压重新将A 相绕组的电流提高,如此反复形成了恒流斩波的工作方式。在这里,电阻R421的存在使U403B的状态转换产生一定的回差,避免了U403B的连续高速翻转,改变R421的大小,可以改变斩波的频率。
在锁相状态时,由于锁相驱动信号L为低电平,K信号也为低电平,故而高压开关管截止。 若这时PA为低电平,则锁相开关管BG405导通,A相绕组由AC4.5V半波整流后的锁相电源提供电流,此时绕组电流约为其工作电流的一半。 这样可以降低步进电机的功耗,进而减少电路和电机的发热量。 一旦出现绕组短路或高压开关管击穿的情况,VIA的电压会迅速达到2.1V,这时过流检测电路会立即使VP为低电平,马上使锁相开关管截止,避免电路故障的进一步扩大,保护驱动电路和步进电。
3.4 显示电路 如图3.5是显示电路,1602显示器的八位数据端接单片机的P0口,使能端RS接P2.7,使能端RW接地,使能端E接P2.6。

图3. 6 光栅尺差分信号处理电路图
两个 DB15 接口分别连接 X,Y 两个光栅尺读数头的数据接头,A、B 两路正交差分方波信号将通过该接口将信号传输给 DS26C32 芯片接收处理,然后将 A,B 两路正交信号传送给 HCTL-2032 芯片解码,进行辨向与计数处理,然后将数据传输给单片机。电路中的电阻起到稳压的作用,电容可以消除高频噪声,提升抗干扰能力。

4 系统软件设计 4.1 编程语言选择 由于整个程序的复杂性和计算量大,它使用更多的浮点数来计算,所以程序是用C语言编辑的。
在51系列的大部分微控制器中,使用C等高级语言,比使用汇编语言更有以下优点。
(1)无需知晓处理器的指令集,无需理解存储器结构。
(2)寄存器的配置和寻址模式由编译器管理,编程无需考虑内存地址和数据类型等详细内容。
(3)通过指定操作的变量选择的组合来提高程序的可读性。
(4)你可以使用关键词和操作函数,它们与人们的想法更相似。
(5)与使用汇编语言相比,程序的开发和调试时间大大收缩。
(6)C库文件提供了很多标准例程。
(7)模块化编程技术可以通过C语言来实现,从而将编程好的程序添加到新程序中。
(8)移植性C语言是非常好的,非常受欢迎。C编译器几乎适合所有目标系统。它对于功能性、结构、易读性、移植性和维护的容易性具有明显的优点,并且易于学习和使用。
4.2 程序开发环境 本设计中的单片机开发环境是Keil U Vision 4,Keil U Vision 4开发软件是当前51系列MCU系统的主要程序开发软件。Keil U Vision 4是STC公司推出最新一代关于51系列单片机处理器的编译、连接和调试集成环境。可以降低开发周期,从而减少很多成本。Keil U Vision 4不仅提供了完整的Windows开发环境界面,并且支持C/C++语言开发,而且其C语言编辑效率很高,能够使开发者非常容易地使用C语言进行程序编程。
4.3 系统主程序设计 4.3.1 单片机主程序
该部分主要任务是对单片机端口的设置、函数的定义并对一些管脚进行定义。
与实际输出值 的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制,所以称之为PID控制器。 1、PID调节器的微分方程
(4-1)
其中
---比例系数
---积分时间常数
---微分时间常数
本设计 PID 控制步进电机的流程图如图4.4所示:
高低压恒流斩波步进电机驱动器设计
文章图片
正在上传… 重新上传 取消
图4. 4 PID 控制步进电机的流程图
PID 控制子程序如下:
void PID ()
{
enow = Target - now;
ebef = Target - bef;
ebbef= Target - bbef;
deviation = Kp*(enow - ebef) + Ki*enow + Kd*(enow - 2*ebef + ebbef);
return deviation;
bbef = bef;
bef= now;
}
其中,Target 为计算的运动目标坐标值;now 为当前采样坐标值;befe 为前一次采样坐标值;bbef 为前两次采样坐标值;enow 为当前采样偏差值;ebef 为前一次采样偏差值;ebbef 为前两次采样偏差值;deviation 为增量调节值。

5 系统测试 整体系统上电调试前,可以看出,焊接系统仍存在一些问题,如明显断裂、正负电极反向连接、连接、虚拟焊接等。然后使用万用表检查较为严重的电源连接问题,例如电源的正极和负极之间是否短路,最后确保硬件系统的焊接没有任何问题。
5.1 系统调试 软件调试步骤如下:
(1)在Keil4软件中先创建一个工程:单击菜单栏中的“工程”,输入新建工程名,并保存;然后器件选择“Atmel”目录下的“AT89C52”。
(2)新建用户源文件:在新建的空白文本中编写程序源代码,编码完成保存文件并文件拓展名,新文件创建完成。
(3)程序编译调试:点击编译按钮,系统将运行文件,在输出窗口中可以看到提示信息。如果提示信息中有error信息,则须按提示找出错误并改正,直到提示没有错误为止,如图5.1所示。
高低压恒流斩波步进电机驱动器设计
文章图片
正在上传… 重新上传 取消
图5.1 提示信息无错误
(4)若程序编译无错误后,则通过PL2303串口烧写模块烧写程序,开始验证系统功能是否满足要求,若功能有问题,需要继续调试程序,反复进行,直到所有功能都满足为止。
5.2 硬件调试 最后步骤主要分为两个链接的动态调试和静态调试,主要目的是使用多仪表、DC电源或示波器对整个焊板进行调试。
1.静态调试和静态调试主要分为以下4种。
(1)通过目视进行了观察。焊接部分是否已装满,连接的设备是否已连接,设备的引脚是否已焊接,以及主要是否发生短路。
(2)使用多仪表调试。首先确认电源短路之后,再测量销子是否正确连接以及线路是否有错误。
(3)请确认开机时间。第一步和第二步完成也没有问题,请打开电源观察各装置的正常动作后,逐个测试功能。
(4)适合综合测试MCU开发板上开发的系统的测试方法,但不适合测试。
2、动态调试:
动态调试主要用于静态调试,每个设备是否正常工作,是否符合系统开发功能,防止设备内部损坏,影响系统性能。

6 总结 步进电机是一种通过脉冲信号控制角位移的器件,作为一种执行机构被广泛应用于数字控制系统、伺服系统及工业机器人等领域,,步进电机的速度调节是其应用的关键所在。然而,传统电机调速是运用逻辑电路来完成的,调速复杂,昂贵耗时,可应用范围小。故基于单片机的步进电机控制系统,利用软件程序控制步进电机,调速简单,低价高效,应用广泛,同时改变程序而改变控制方案,在一定的工业和生活场合均具有实用性价值。
从这次设计中,一开始选用STC89C52单片机作为这次设计的基础部分,在经过使用C语言进行编程处理,通过学习功率步进电机恒流斩波驱动电路基本原理,掌握步进电机的高低压恒流控制的基本原理。设计了步进电机控制电路,编制步进电机驱动、加减速控制、准确快速移动定位、简单的人机接口和中断处理等应用程序,实现步进电机驱动运行的基本功能。


参 考 文 献 [1] 熊远生, 刘春元, 蔡伟忠. 基于STM32的步进电机控制器设计[J]. 制造业自动化, 2019, 041(005):39-41,105.
[2] 王福杰, 于长勃. 一种基于ARM+CPLD的车载步进电机控制器设计[J]. 微电机, 2020, v.53; No.316(04):108-111.
[3] 陈祖霖, 沈英, 吴靖. 结合STM32和FPGA的步进电机运动控制系统设计[J]. 福州大学学报(自然科学版), 2020, v.48; No.233(01):30-36.
[4] 胡伟华. 一种防护效果好的三相混合步进电机驱动器:, CN211063939U[P]. 2020.
[5] 白国长, 林祥柱. 一种基于雅特力芯片的多路步进电机驱动器:, CN210780617U[P]. 2020.
[6] 刘青正, 段长超, 韩震宇,等. 双电机同步运动控制器的设计与实现[J]. 制造业自动化, 2020, 042(006):103-106.
[7] 王希友. 步进电机控制电路的实现方法[J]. 集成电路应用, 2019, v.36; No.314(11):32-33.
[8] 胡耀华, 朱晓文, 张鹏,等. 一种基于步进电机的自动回位装置:, CN211151789U[P]. 2020.
[9] 黄绍成. 从永磁式步进电机看单片机对步进电机的控制[J]. 山东工业技术, 2019, 000(010):139.
[10] 杨刚, 殷显达. 一种带有驱动控制电路的步进电机:, CN109256909A[P]. 2019.
[11] 龚航. 步进电机驱动装置:, CN110365263A[P]. 2019.
[12] 欧奂辰, 张国亮. 混合步进电机初始位置获取方法,驱动器及步进伺服系统:, CN109167541A[P]. 2019.
[13] 黄进, 朱建德, 张洁. 一种滤波器自动调谐系统,方法,滤波器及无线通信系统:, CN110701454A[P]. 2020.
[14] 任俊闯, 李冲. 高精度ccd同轴识别系统:, CN111174734A[P]. 2020.
[15] 张宝珍,翁惠辉. 基于STK673-011-E芯片的三相混合式步进电机驱动电路设计[J]. 仪器仪表与分析监测, 2020, No.144(04):5-9.
[16] 彭丽芳, 彭建华, 孟鹏祥. 基于PLC的步进电机驱动排种器控制系统设计[J]. 农机化研究, 2020, 042(002):183-188.
[17] 张超, 王淳, 张晓敏,等. 步进电机恒流驱动电路设计[J]. 计算机测量与控制, 2019, 027(005):255-259.
[18] 熊平戬, 吴见平. 基于模拟电路的步进电机驱动系统[J]. 大众科技, 2019, 21(004):59-61.
[19] 匡政政, 王景存, 杜维康,等. 一种步进电机驱动方法及系统:, CN107040176B[P]. 2019.
[20] 王高高, 王伟伟. 基于LV8726的步进电机高精度驱动系统设计[J]. 信息技术, 2019(02):156-160.

致谢 行文至此,意味着我的本科学习生涯已至谢幕时刻,目之所及,皆是回忆,心之所想,皆是过往。回首四年,百感交集,四年间曾有过困顿、有过低落、有过未来的迷茫,但也有过坚定、有过认可与关怀。留下的是青春和沉甸甸的收货。既有万般不舍,但仍心怀感激。
在本论文完成之际,首先我要感谢我的指导老师,在本文的撰写过程中离不开蔡老师的耐心指导与帮助,真挚的感谢对我的指导与关怀。
平生感知己,方寸岂悠悠。感谢我的舍友们四年来对我的帮助与陪伴。愿有前程可奔赴,亦有岁月共回首。其次感谢四年来所有帮助过我的每一位朋友,在临别之际,祝大家前程似锦,未来可期。
父母之爱子,则为之计深远。借此机会,特别感谢我的父母。二十余载求学之路,感谢父母默默付出,祝愿父母身体健康,再次感谢父母的无私付出与鼎力支持。
春已至,花已开。纵然山河有恙,不敌世间盛情。在此最后向此次逆行者们致以最崇高的敬意,幸得有你,山河无恙。在撰写本文期间,深感祖国之强大,为祖国骄傲,祝愿祖国繁荣昌盛国泰民安!
凛冬已过,皓月长明,疫情终时,这人间仍是星河滚烫,水木清华,江山如故。

    推荐阅读