1、南京工程学院 康尼学院 本科毕业设计(论文)题目: 单轴运动控制器设计 专 业: 自动化(数控技术) 班 级: K数控092 学 号: 240091211 学生姓名: 于少龙 指导教师: 孙 来 业 高级工程师 起迄日期: 2013.22013.6 设计地点: 微机原理与应用实验中心Graduation Design (Thesis) The Design of the Uniaxial Motion Controller By yushaolong Supervised bySenior Engineer SUN Laiye School of Connie collegeNanjing I
2、nstitute of TechnologyJune, 2013 摘 要随着现代科技的发展,单轴运动控制已广泛应用于日常生活之中,在各行各业都有着极其重要的应用。本文描述了基于AT89S52 的单轴运动控制器设计与实现过程。通过单片机连接步进电机驱动器 ,控制步进电机的进行,并通过数码管显示器显示出来。工作时,通过键盘输入给定速度,加速度或位移值,从而控制步进电机按指定的速度,加速度和位移值进给。单轴运动控制系统的设计包括硬件设计和软件设计两大部分,根据具体情况,硬件设计包括以下模块:主控电路,键盘输入模块,脉冲发生模块,数码管显示模块,复位电路,isp下载电路,电源电路等。软件设计则主要包括
3、主控程序设计,键盘显示程序设计,控制参数的输入与计算,电机控制程序设计等。键词: 单片机;步进电机;单轴运动III南京工程学院自动化学院本科毕业设计(论文)ABSTRACTWith the development of modern technology, single-axis motion control has been widely used in daily life, in all walks of life have a very important application.This paper describes the AT89S52 based on the single-
4、axis motion controller design and implementation process. Through the microcontroller connected stepper motor driver, stepper motor control for, and through the digital display appears. Work, through the keyboard input given speed, acceleration or displacement, so as to control a stepper motor to th
5、e specified speed, acceleration or displacement feed.Single-axis motion control system design includes hardware design and software design two parts, depending on the circumstances, the hardware design includes the following modules: the main control circuit, keyboard input module, pulse generator m
6、odule, LED display module, reset circuit, isp download circuit , power supply circuit. Software design mainly comprises a main control program design, the keyboard display program designed to control the parameters of the input and calculation, motor control program design.Key words:microcomputer;St
7、epping motor;Uniaxial motion目 录 第一章 绪论.11.1 引言11.1.1 设计背景及意义11.1.2 设计任务与要求21.1.3 发展现状及前景21.2 本文结构3第二章 系统方案提出与设计42.1 系统功能概述42.2 总体方案设计4第三章 系统硬件电路设计.53.1 单片机系统模块.53.1.1 AT89S52特点及特性53.1.2管脚及功能说明.63.1.3单片机最小系统83.2 键盘输入模块.9 3.2.1键盘设计方案及论述.9 3.2.2独立键盘测.10 3.2.3键盘连接原理图.113.3 数码管显示模块.12 3.3.1 74HC595芯片介绍.1
8、23.3.2数码管显示连接电路.153.4串行通信模块.163.4.1串行通信原理.163.4.2 MAX232芯片介绍.173.4.3 RS-232接口介绍.183.4.4串行接口原理图.193.5在线下载模块.203.6 电机控制模块.21 3.6.1 ULN2803特点及特性.21 3.6.2 电机驱动模块电路图.223.7 电源电路模块.223.7.1 LM7805 特点.223.7.2 电源电路原理图.23第四章 系统软件设计.244.1系统软件设计概述.244.2 Keil开发软件介绍.244.3系统主控程序流程图.254.4键盘控制流程图.264.5步进电机控制流程图.27第五章
9、 步进电机与驱动器的控制 .305.1 步进电机选型.305.2步进电机的控制方法.305.3 驱动器选型.32第六章 结论 .366.1 论文总结.366.2 感想.366.3 致谢.38参考文献 .39附录A硬件设计原理图与PCB图.40附录B 软件程序清单 .4658第一章 绪 论1.1 引言单轴运动控制器,成本低,性能好,参数设计灵活,方便,能在不同位移、速度、加速度下实现步进电机精确、快速、有效的定位控制,有一定市场应用价值。目前单轴运动控制器在自动流水生产线、小型钻孔设备等生产设备上得到了较好的应用。可实现自动化操作,本设计具有很大的实用价值。1.1.1 设计背景与意义自20世纪8
10、0年代初期,通用运动控制器已经开始在国外多个行业应用,尤其是在微电子行业的应用更加广泛。当时运动控制器在我国的应用规模和应用范围很小,国内也没有厂商开发通用的运动控制器产品。目前,国内的运动控制器生产厂商提供的产品大一致可以分为3类:第一类是以单片机或微处理器作为核心的运动控制器,这类运动控制器运行速度较慢,精度不高,成本相对较低。在一些只需要低速运动控制和对轨迹要求不高的轮廓控制场合应用。第二类是以专用芯片(AsIc)作为核心处理器的运动控制器,这种控制器结构比较简单,但是大多数只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供高速连续插补,也没有前赡功能(Look alead),
11、特别是对于大量的小线段连续加工的场合,如模具雕铣加工,就不能使用这类控制器。第三类是基于Pc总线的以DsP和FPGA作为核心处理器的开放式运动控制器。这类开放式运动控制器以DsP芯片作为运动控制器的核心处理器,以PC机作为信息处理平台,运动控制器以插卡形式嵌入PC机,即“Pc+运动控制器”的模式。这样将Pc机的信息处理能力和开放式的特点与运动控制器的运动轨迹控制能力有机地结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确、通用性好的特点。这类运动控制器充分利用了DsP的高速数据处理功能和FPGA的超强逻辑处理能力,便于设计出功能完善、性能优越的运动控制系统。步进电机是开环伺服系统的执
12、行元件,它将脉冲信号转换成直线或角位移,具有较好的控制性能,其启动、停车、反转及其它任何运行方式的改变都可在少数脉冲内完成,且可获得较高的控制精度,因此在经济型数控机床及自动化设备中得到了广泛的应用。目前,步进电机的控制方法是多种多样的,有传统方式的,也有采用PLC控制的,而单片机是介于工控计算机和可编程控制器之间的一种新型控制器,它控制功能强,灵活性和适应性好,成本低廉,正逐渐成为步进电机的主要控制装置,使电机的控制方式由模拟控制逐渐让位于以单片机为核心的数字控制。本文具体讨论了由单片机实现的步进电机的单轴运动控制问题,并结合实例给出实现的方法。1.1.2 设计任务与要求 本设计是基于AT8
13、9S52 的单轴运动控制.通过单片机连接步进电机驱动器 来控制步进电机并通过数码管显示器显示出来。工作时,通过选择开关,选定工作方式,键盘输入给定速度,加速度或位置值,从而控制外设进行电机控制调节。设计内容包括单片机测控系统电路原理设计,电路板设计,单片机测控软件设计、软硬件调试等。单轴运动控制系统的设计包括硬件设计和软件设计两大部分,根据具体情况,硬件设计包括以下模块:主控电路,键盘输入模块,脉冲发生模块,数码管显示模块,复位电路,isp下载电路,电源电路等。软件设计则主要分为以下几个部分:包括主控程序设计,键盘显示程序设计,控制参数的输入与计算,电机控制程序设计等。1.1.3 发展现状及前
14、景 由于运动控制器的应用范围越来越广泛,为了适应新的情况、特定环境和对象,不断会有新的运动规划、多轴插补和控制滤波算法出现。从我国的经济发展的情况来看,通用运动控制器的应用市场仅仅是刚刚启动。与美国和欧洲发达国家相比,我国在运动控制器技术开发上政府的投入很少,在该领域没有形成统一的产品标准。高等院校的教育还没有跟上,没有培养出一大批能够开发和应用运动控制器的人才,使得运动控制器的应用工作受阻,售后技术支持难度加大。从欧美品牌的功能最完善、最强大;日本和国产的大多数伺服驱动器是执行一个放大器的功能,即称作“Servo Amplifier”,作运动控制时需要接收上位运动控制器发送的脉冲列或者模拟量
15、信号。而欧美伺服驱动器的位置控制接口一般可以由网络通讯给定,具有强大的独立运动控制的能力,并且具有完备的逻辑控制功能,所以它们往往能够脱离上位运动控制器而独立驱动,这也是造成欧美伺服驱动器价格比日系、国产昂贵的一个原因.国内的一些伺服驱动器也提供单轴运动控制的功能,例如广州数控的 DA98B驱动器,它可以让用户自行编辑单轴运动程序,并按照程序做单轴循环运行及输入、输出信号的处理。伺服驱动器通过解释程序段中用户编辑的运动指令,将其转换为相应的位置指令、速度指令和相应的IO 点处理10。但实际上伺服驱动器只实现了类似PLC 顺序控制的逻辑功能,并不带有轨迹规划的性质,因而其应用范围也受到很大的限制
16、,与国外的产品存在一定的差距。1231.2 本文的结构本文以单轴运动控制器的设计项目作为应用背景,对步进电机控制及单片机控制显示、输入输出等方面进行了研究。全文共分为六章,各章的主要内容如下:第一章扼要地介绍了单轴运动控制器的概念、特点与相关研究背景;第二章研究了整个单轴运动控制功能及其设计方案;第三章对系统的各个功能模块的硬件设计进行了研究,分为主控电路模块,键盘输入模块,脉冲发生模块,数码管显示模块,复位电路模块,isp下载电路模块,电源电路模块等。给出了各模块的工作原理、元件选取及硬件连接原理图。第四章则是根据系统各模块进行软件设计,给出主程序,键盘控制程序,步进电机控制程序等,并绘制系
17、统软件流程图,编写程序。此外还介绍了Keil开发软件的相关内容。第五章对步进电机与驱动器的控制进行了分析。第六章总结了全文的研究工作,给出存在的问题和进一步研究的方向。 第二章 系统方案提出与设计2.1 系统功能概述本设计以AT89S52为核心,用一片AT89S52单片机控制系统工作。虽然步进电机已经配备了驱动器,但如果直接将单片机端口和驱动器控制接口相连接,端口电压将被拉到0 V,因此仅靠单片机端口仍旧不能驱动驱动器,必须在单片机系统中增设驱动装置。本文采用的是专用驱动器,驱动作为高度工业产品,具有可靠性高、驱动能力强、适用性好的特点,而且使用方便。控制系统主要由单片机、键盘、显示、驱动等4
18、个模块组成,其中PC 上位机用于编写及烧录程序。控制器通过相应的IO 接口,将控制指令发送至驱动电路,可以控制步进电机的运行,完成系统的单轴控制。2.2 总体方案设计控制系统可实现以下功能:1、控制步进电机的启动和停止、运行方向、运行速度;2、显示步进电机的运行状态、方向、转速;3、通过软件实现细分控制4、2个硬件限位点(正反向限位);5、 简单的键盘操作及上位机编程两种方式;6、坐标参数支持相对坐标和绝对坐标综上要求,系统硬件电路框图如图所示。电源单片机步进电机驱动器步进电机按键输入电路数码管显示电路 图2.1 单轴运动控制器结构图第三章 系统硬件电路设计3.1 单片机系统模块3.1.1 A
19、T89S52特点及特性AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在线可编程Flash 存储器,使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在线可编程,亦适于常规编程器。在一个芯片上,拥有灵巧的8 位CPU 和在线可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8K字节的Flash,256字节的RAM,32 位I/O 口,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时
20、钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件,可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作;掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。4AT89S52的主要特性是:l 与MCS-51单片机产品兼容l 8K字节在系统可编程Flash存储器l 1000次擦写周期l 全静态操作:0Hz33Hzl 三级加密程序存储器l 32个可编程I/O口线l 三个16位定时器/计数器l 八个中断源l 全双工UART串行通道l 低功耗空闲和掉电模式l 掉电后中断可唤醒l 看门狗定时器l 双数
21、据指针l 掉电标识符3.1.2 管脚功能说明AT89S52引脚如图3.1所示图3.1 AT89S52引脚结构图VCC :电源GND : 接地P0口: P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用,在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节,在程序校验时,输出指令字节。程序校验时,P0口需要外部上拉电阻。表3.1 P1口第二功能P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4个T
22、TL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3.1所示。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电
23、流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3 口是一个有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52
24、特殊功能(第二功能)使用,如表3.2所示。在flash编程和校验时,P3口也接收一些控制信号。表3.2 P3口第二功能 RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用
25、。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的
26、外部程序存储器读取指令,EA必须接GND.为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12V的VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。3.1.3 单片机最小系统单片机最小系统,或者称为单片机最小应用系统,是指用最少的元件组成的,使单片机可以工作的系统。对于51单片机来说,最小系统能够运行的必要条件是:电源,晶振和复位电路。在单片机系统里,晶振全称叫做晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机
27、晶振所提供的时钟频率之上的。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。晶振运用一种能把电能和机械能相互转化的晶体,使其在共振的状态下工作,以提供稳定,精确的单频振荡。5晶振与单片机的XTAL1和XTAL2引脚构成的振荡电路中会产生谐波,会降低电路的时钟振荡器的稳定性,为了电路的稳定性起见,在晶振的两引脚处接入两个10pf-50pf的瓷片电容接地来削减谐波对电路的稳定性的影响。本系统采用AT89S52单片机,晶振为11.0592MHz,接入两片30pf的电容。XTAL1与XTAL2端分别于单片机的XTAL1、XTAL2相接。晶振电路如图3.2所示。 图3.2 晶振
28、电路系统采用按键手动复位方式,相对来讲,这种复位方式更加方便,更加人性化,不必要切断电源即可对系统进行复位。复位电路如图3.3所示 图3.3 复位电路复位时高电平有效,而电容具有两端的电压不能突变的特性,所以刚开机的时候因为VCC上有5V电压,因为电容两端电压不能突变的特性,RST引脚的电压也被拉到5V,但是因为RST脚又通过电阻R下拉,电阻两端有电压差,电容缓慢通过电阻对地放电,电压慢慢降低最后变成低电平,完成复位。当需要手动复位时,则只需按下复位键,RET引脚就会置为高电平,进行复位。3.2 键盘输入模块3.2.1 键盘设计方案论述键盘非为编码键盘和非编码键盘。键盘上闭合键的识别用专门的编
29、码器实现,并产生键值的位编码键盘;而靠软件编程来识别的键盘成为非编码键盘,在单片机的系统中,非编码键盘用的较多,非编码键盘又分为独立键盘和矩阵键盘。独立键盘,是每个按键的电路是独立的,每一个I/O口上只接一个按键,按键的另一端接电源或接地。按键较多时,独立键盘占用I/O口较多,则可采用矩阵键盘,以4*4的为例,将16个按键排成4行4列,每一行将每个按键的一端连接在一起构成行线,每一列将每个按键的另一端连接在一起构成列线,这样便一共有4行4列共8根线,将这8根线连接到单片机的I/O口上,通过程序扫描键盘就可检测到16个键。矩阵键盘的扫描原理是:先确定是否有键按下,再判断所按下键的行列位置。具体的
30、分,有逐点扫描法、逐行扫描法、全局扫描法等。考虑到本设计有串行通信和键盘输入两种工作方式,需要键盘输入温度设定值,可配数码管合显示,采用数值增减的方式,所需的键盘数不多,所以采用独立键盘。3.2.2 独立键盘检测 独立键盘实际上就是一组按键,键的按下与释放是通过机械触点的闭合与断开实现的,弹性按键按下时闭合,松手后自动断开。独立键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下,如把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断地检测该I/O口是否变为低电平,当按键闭合时,既相当于该I/O口通过按键与地相连,变成低电平,程序
31、一旦检测到I/O口变为低电平,则说明按键被按下,然后执行相应指令。但在键盘按下时,存在键盘抖动的问题,是当键盘在未按到按下的临界区产生的电平不稳定现象,如图3.4所示。 图3.4 按键电压变化 抖动时间的长短和按键的机械特性有关,一般为510ms,手动按下键再立即释放,这个动作中,稳定的时间不会超过20ms,单片机在检测键盘是否按下时都要加上去抖动操作,有专门的去抖动电路和芯片,但一般可以用软件延时的方法达到去抖动的效果。按键检测流程图如图3.5所示。图3.5 按键检测流程图3.2.3 键盘连接原理图P00 P07分别接K0K7。P20 P27分别接K8 K16。k0键是调节电机方向,上电DI
32、R默认为0,表示反向(D2灯灭),为K0按下第一次DIR=1表示正向(D2灯亮),再次按下K0,DIR=0;K1按下时会有一个50HZ,占空比为50%的脉冲方波信号从PULS端口(D1亮)输出,可以测试电机用;K8是反向限位,即在电机在DIR=0时运动,一旦K8按下,电机立刻停止;K9是正向限位,即在电机在DIR=1时运动,一旦K9按下,电机立刻停止;K12是启动按钮,即按下该按键,电机就按照设定的速度,加速度,脉冲运转,默认设置是V=1000HZ ,A=5000HZ/S*S,PULS=1000个。键盘连接原理图如图3.6所示 图3.6 键盘连接原理图3.3 数码管显示模块3.3.1 74HC
33、595芯片介绍74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断状态,三态。特点:8位串行输入 8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率 输出能力 并行输出,总线驱动 串行输出;标准: 中等规模集成电路应用 串行到并行的数据转换 Remote control holding register. 描述 595是告诉的硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和
34、存储器是分别的时钟。数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。CPD决定动态的能耗, PDCPDVCCf1+(CLVCC2f0) F1输入频率,CL输出电容 f0输出频率(MHz) Vcc=电源电压 引脚说明符号引脚描述内部结构结合引脚说明就能很快理解 595的工作情况74HC595引脚图,引脚图如图3.7 图3.7 74H