1、I步进电机转速实时控制摘要:步 进 电 机 是 一 种 感 应 电 机 , 它 的 工 作 原 理 是 利 用 电 子 电 路 , 将 直 流 电 变 成 分 时 供 电 的 ,多 相 时 序 控 制 电 流 , 用 这 种 电 流 为 步 进 电 机 供 电 , 步 进 电 机 才 能 正 常 工 作 , 驱 动 器 就 是 为 步 进电 机 分 时 供 电 的 , 多 相 时 序 控 制 器 。本设计采用电压为 DC12V 的四相八拍步进电机 35BYJ46 型电机,用 ULN2003 作为步进电动机驱动电路主芯片,以 8255A 作为 8086 并行输出接口,8086 对步进电机的控制信
2、号则通过 8255A 送到ULN2003.关于转向与转速,通过查表的方式实现,以逐次递增方向查表,依次输出表中数据,则步进电机正转;以逐次递减方向查表,则步进电机反转,即通过一个表实现步进电机的正转与反转。转速则通过调用延时子程序,当调用延时较长的子程序时,则步进电机转速慢,当调用延时较短的子程序时,步进电机转速加快。关键词:步进电机;ULN2003;8259A;转向;转速.II目 录第 1 章 绪论 11.1 研究背景 11.2 选题的目的和意义 2 1.3 本课程设计的主要内容.2第 2 章 步进电机转速实时控制.32.1 设计方案.32.2 硬件系统基本原理.32.2.1 步进电机 35
3、BYJ4631)励磁线圈及其励磁顺序 32)四相步进电机工作原理示意图 43)步进电机与 8255A 接口关系 54)步进电动机的速度控制 .52.2.2 8255A 可编程并行接口芯片 .61)8255 简介.62)8255 的编码与工作方式选择 .72.3 软件框图82.4 软件清单.10第 3 章 结束语.13参考文献15附录.16成都学院(成都大学)课程设计报告1第 1 章 绪论1.1 研究背景步 进 电 机 是 一 种 进 行 精 确 步 进 运 动 的 机 电 执 行 元 件 , 它 广 泛 用 于 工 业 机 械 的 数 字 控 制 。 步进电机易于实现与计算机或其他数字元件接口
4、,适用于数字控制系统. 步进电机只需采用最简单的开环控制就可取得非常高的控制精度,且这种系统不需要反馈信号,系统硬件实施比较简单。为 了 使 系 统 的 可 靠 性 、 通 用 性 、 可 维 护 性 以 及 性 价 比 最 优 , 根 据 控 制 系 统 功 能 要 求 及 步 进 电机 环 境 , 确 定 了 设 计 系 统 硬 件 和软件的功能划分,从而实现了基于 8255 芯片的四相步进电机的控制系统。根据步进电机的励磁顺序列写控制步进电机顺序转动的输出的数据表,接着初始化 8255A的工作方式根据要求调入函数输入数据完成正转、反转、开始、停止等功能。步进电机是电机家族的“婴儿”,20
5、 世纪 60 年代早期才开始流行。步进电机最早是在1920年代由英国人所开发。1950年代后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机的最初构想是作为昂贵的位置控制应用中伺服电机的低成本替代产品,而新兴的计算机工业迅速将其采用到外设应用当中。步进电机的主要优势在于能提供开环位置控制,而成
6、本只是需要反馈的伺服系统的几分之一。在过去,步进电机有时被误称为“数字”电机,因为它们常用正交方波驱动。自六十年代初期以来,步进电机的应用得到很大的提高,人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪、磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。步进电机是机电数字控制系统中常用执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用。Intel 8086/8088 系列的
7、可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5) ,具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。成都学院(成都大学)课程设计报告2与一般的电机控制过程类似,在对本设计方案实施运转之前,首先需要研究系统的特性,过归纳和抽象建立系统的数字模型。由步进电机定子和转子示意图(见工作原理)可见调节脉冲信号的频率便可以改变步进机的转速,改变各相输入脉冲先后顺序,
8、可以改变电机的旋转方向。 对于转速控制:调节脉冲信号的频率便可以达到目的。1.2 选题的目的和意义步 进 电 机 转 速 实 时 控 制 实 现 了 电 机 运 转 的 程 序 ( 微 机 控 制 ) 化 , 步进电动机主要应用在数控机床制造领域,由于步进电动机不需要 A/D 转换,能够直接将数字脉冲信号转化成为角位移,所以一直被认为是最理想的数控机床执行元件。除了在数控机床上的应用,步进电机也可以用在其他的机械上,比如作为自动送料机中的马达,作为通用的软盘驱动器的马达,也可以应用在打印机和绘图仪中, 微机控制系统的快速计算,灵活多样的逻辑判断和高效的信息加工能力使自动控制进入了更高一级的领域
9、,提高了生产过程的自动化程度,减少了人工干预,并不断地完善和满足工农业生产和国防科技日益增长的需要。微机控制系统由于具有成本低,体积小,功耗少,可靠性高和使用灵活等特点,因而广泛地应用于工农业生产,交通运输,国防建设和空间技术等各个领域。其控制对象已从单一的工厂流程扩展到企业生产过程的管理与控制。微机和单片机的推广使用实现信息自动化与过程控制相结合的分级分布式计算机控制,计算机技术的水平发展到一个崭新的阶段。正 是 由 于 数 字 通 信 系 统 由 于 具 有 许 多 优 点 而 成 为 当 今 通 信 的 发 展 方 向 , 实 现 模 拟 系 统 数 字 化极 大 地 促 进 了 通 信
10、 领 域 的 发 展 , 使 人 类 的 生 产 生 活 进 入 了 数 字 化 时 代 。本 设 计 为 掌 握 利 用 计 算 机 来 加 深 对 所 学 知 识 的 理 解 和 掌 握 , 通 过 步 进 电 机 转 速 实 时 控 制 平 台 ,运 用 所 学 的 理 论 和 方 法 进 行 实 践 、 解 决 问 题 。 同 时 培 养 我 们 理 论 联 系 实 际 的 设 计 思 想 , 训 练 综 合运 用 所 学 的 理 论 知 识 分 析 和 解 决 实 际 应 用 问 题 的 能 力 , 从 而 使 基 础 理 论 知 识 得 到 巩 固 、 加 深 和 系统 化 。 熟
11、 悉 和 掌 握 运 用 设 计 资 料 的 能 力 。1.3 本课程设计的主要内容(1) 对步进电机转速实时控制的主要环节,包括硬件系统基本原理、软件框图及设计思想进行了详细的阐述。(2) 掌 握 步 进 电 机 与 8255的 接 口 电 路 原 理 。(3) 能 编 制 出 步 进 电 机 正 、 反 转 运 行 程 序 ( 以 3种 不 同 速 度 ) 。(4) 独 立 编 写 好 程 序 , 并 能 在 机 器 上 调 试 通 过 , 并 要 求 将 速 度 值 在 液 晶 显 示 器 上 显 示 。成都学院(成都大学)课程设计报告3第 2 章 步进电机转速实时控制2.1 设计方案本
12、设计采用电压为 DC12V 的四相八拍步进电机 35BYJ46 型电机,步进电动机驱动电路主芯片是ULN2003,以 8255A 作为 8086 并行输出接口,8086 对步进电机的控制信号则通过 8255A 送到ULN2003。其中步进电机的励 磁 线 圈 及 其 励 磁 顺 序 已 经 确 定 。关于转向与转速,通过查表的方式实现,以逐次递增方向查表,依次输出表中数据,则步进电机正转;以逐次递减方向查表,则步进电机反转,即通过一个表实现步进电机的正转与反转。其中表中内容为程序的 TABLEDB 中 的 内 容 。 转速则通过调用延时子程序,当调用延时较长的子程序时,则步进电机转速慢,当调用
13、延时较短的子程序时,步进电机转速加快。2.2 硬件系统基本原理2.2.1 步进电机 35BYJ461)励磁线圈及其励磁顺序,其 励 磁 线 圈 如 图 2-1所 示 , 励 磁 顺 序 如 表 2-1-1所 示 :1354 21 2 3 4 5 6 7 85 4 3 2 1 表 2-1-1 励磁顺序图 2-1 励磁线圈成都学院(成都大学)课程设计报告42)四相步进电机工作原理示意图见图 2-2,转子由一个永久磁铁构成,定子分别由 4 组绕组构成。图 2-3 为电路连接图 1 2 3 4CCCC+ 1 2 V 1 2 3S 1 S 2 S 3当 S1 连通电源后,定子磁场将产生一个靠近转子为 N
14、 极,远离转子为 S 极才磁场,这样的定子磁场和转子的固有磁场发生作用,转子就会转动,正确地 S1、S4 的送电次序,就能控制转子旋转的方向。例如:若送电的顺序为 S1 闭合 断开 S2 闭合 断开 S3 闭合 断开 S4 闭合 断开,周而复始的循环,在定子和转子共同作用下,电机就瞬时针旋转: 4 1 2 3若送电的顺序为S4闭合断开 S3闭合 断开 S2闭合 断开 S1闭合 图 2-2 电机定子和转子示意图图 2-3 电气连接示意图图 2-4 电 机 顺 时 针 旋 转 示 意 图成都学院(成都大学)课程设计报告5断开,周而复始的循环,则电机就逆时针旋转,原理同理。8255A向步进电机发出控
15、制脉冲如图2-5: 1 234D 0 位D 1 位D 2 位D 3 位3)步进电机与 8255A 接口关系如图 2-6:PB0PB1PB2PB38255 AABCDABCD驱动电路1234535BYJ46型步进电机+12V图 2-6 实 验 线 图4) 步进电动机的速度控制 步进电机速度的控制是通过控制单片机发出的步进脉冲的频率来实现。 对于软件脉冲分配方式采用调整两个控制字之间的时间间隔来实现调速;对于硬件脉冲分配方式则采用定时中断方式来调整脉冲频率从而实现调速。根据以上所述,控制步进电机速度的方法有两种。(1)软件延时法:通过调用标准的延时子程序,改变两控制字之间延时时间来实现。采用软件延
16、时方法实现速度调节的优点是程序简单,思路清晰, 不占用硬件资源,缺点是 CPU 的等待时间过长,占用大量机时,因此没有实用价值。这次试验采用的便是软件延时。(2)定时器中断法。以 805l 单片机为例,在中断服务子程序中进行脉冲输出操作,调整定时器的定时常数就可实现脉冲频率的调整,从而实现调速。 这种方法占用 CPU 时间较少,容易实现,是一种比较实用的调速方法。图 2-5 8255A 向步进电机发出的控制脉冲成都学院(成都大学)课程设计报告62.2.2 8255A 可编程并行接口芯片1) 8255 简介Intel 8086/8088 系列的可编程外设接口电路(Programmable Per
17、ipheral Interface)简称 PPI,型号为 8255(改进型为 8255A 及 8255A-5) ,具有 24 条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V 电源的 40 脚双列直插式大规模集成电路。8255A 的通用性强,使用灵活,通过它 CPU 可直接与外设相连接。 8255A 在使用前要写入一个方式控制字,选择 A、B、C 三个端口各自的工作方式,共有三种; 方式 0 :基本的输入输出方式,即无须联络就可以直接进行的 I/O 方式。其中 A、B 、C 口的高四位或低四位可分别设置成输入或输出。 方式 1 :选通 I/O,此时接口和外围设备需联
18、络信号进行协调,只有 A 口和 B 口可以工作在方式 1,此时 C 口的某些线被规定为 A 口或 B 口与外围设备的联络信号,余下的线只有基本的 I/O 功能,即只工作在方式 0. 方式 2: 双向 I/O 方式,只有 A 口可以工作在这种方式,该 I/O 线即可输入又可输出,此时C 口有 5 条线被规定为 A 口和外围设备的双向联络线,C 口剩下的三条线可作为 B 口方式 1 的联络线,也可以和 B 口一起方式 0 的 I/O 线。8255A 是 一 个 并 行 输 入 、 输 出 器 件 , 具 有 24 个 可 编 程 设 置 的 I/O 口 , 包 括 3 组 8 位 的 I/O为 P
19、A 口 、 PB 口 、 PC 口 , 又 可 分 为 2 组 12 位 的 I/O 口 : A 组 包 括 A 口 及 C 口 高 4 位 , B 组 包括 B 口 及 C 组 的 低 4 位 。成都学院(成都大学)课程设计报告72) 8255 的编码与工作方式选择1) 8255A 的工作方式控制字1B 段控制C 口低四位010101输出输入输出输入B 口方式选择方式 0方式 1A 段控制C 口高四位A 口方式选择000 0001111输出输入输出输入方式 0方式 1方式 2D 7 D 6 D 5 D 4 D 3 D 2D 1 D 02) 8255A 的端口地址编码它的 A 口、B 口、C
20、口和控制口的编码如表 2-2A7 A6 A5 A4 A3 A2 A1 A0 地址A 口 0 1 1 1 0 0 0 0 60HB 口 0 1 1 1 0 0 1 0 61HC 口 0 1 1 1 0 1 0 0 62H控制口 0 1 1 1 0 1 1 0 63H图 2-7 8255A 工作方式控制字表 2-2成都学院(成都大学)课程设计报告82.3 软件框图(见下页)及设计思想根 据 步 进 电 机 的 励磁顺序列写控制步进电机顺序转动的输出的数据表 初始化 8255A 的工作方式 设定需要步进电机转过的步数 顺序依次逐个延时(调用延时函数 1:延时较长,实现慢转)输出表中数据 设定需要步进
21、电机快速转过的步数 顺序依次逐个延时(调用延时函数 2:延时较短,实现快转)输出表中数据 设定需要反向转过的步数 逆序依次逐个延时(调用延时函数 1,慢速)输出表中数据设定需要步进电机快速反向转过的步数 逆序依次逐个延时(调用延时函数 2,快速)输出表中数据。以此循环,则可实现让步进电机先低速正转到高速正转,再从高速正转到低速反转,再高速反转,周而复始。成都学院(成都大学)课程设计报告9YNNYYYNNCX=0? DX 为负? CX=0? DX 为负?查表 TABLE取 BX 首址CX=08HCALL DALLY 调用延时BX=BX+1DX=04H查表 TABLE8255 初始化取 BX 首址
22、CX=08HCALL DALLY 调用延时BX=BX+1DX=04H结束开 始成都学院(成都大学)课程设计报告102.4 软件清单DATA SEGMENTTABLE DB 01H,03H,02H,06H,04H,0CH,08H,09HDATA ENDSSTACK SEGMENT STACKDW 256 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMAIN: MOV AL,80HOUT 63H,ALMOV DX,0FFHA1: MOV BX,OFFSET TABLEMOV CX,08HA
23、2: MOV AL,BXOUT 61H,ALCALL DALAY0INC BXDEC DXJZ D1LOOP A2JMP A1D1: DEC CX;CX=0MOV DX,0FFHA3: MOV AL,BXOUT 61H,ALCALL DALAY1成都学院(成都大学)课程设计报告11INC BXDEC DXJZ D2LOOP A3JMP M3D2: DEC BX;MOV DX,0FFHA4: MOV AL,BXOUT 61H,ALCALL DALAY0DEC BXDEC DXJZ D3LOOP A4JMP M1D3: DEC CXMOV DX,0FFHA5: MOV AL,BXOUT 61H,A
24、LCALL DALAY1DEC BXDEC DXJZ D4LOOP A5JMP M2D4: JMP MAINM1: MOV BX,OFFSET TABLEMOV AX,0007HADD BX,AXMOV CX,08H成都学院(成都大学)课程设计报告12JMP A4M2: MOV BX,OFFSET TABLEMOV AX,07HADD BX,AXMOV CX,0008HJMP A5M3: MOV BX,OFFSET TABLEMOV CX,0008HJMP A3DALAY0: PUSH CXMOV CX,5000HA9: PUSH AXPOP AXLOOP A9POP CXRETDALAY1:
25、 PUSH CXMOV CX,0F000HA10: PUSH AXPOP AXLOOP A10POP CXRETCODE ENDSEND START成都学院(成都大学)课程设计报告13第 3 章 结束语这是我第一次进行的课程设计,在此过程中我学到了很多课本上学不到的知识。通过这次课程设计,我了解了步进电动机的工作原理及接口电路原理,学会了用编程实现步进 电动机正反转及加速的方法。通过汇编实现让 8086 控制步进电动机正转、反转、变速,巩固了对步 进电动机的编程控制的理论基础,并从中获得了初步的应用经验。在编程的过程中,我巩固了用汇 编语言处理数据的能力,特别是对数表数据的灵活运用能力。在调试
26、及试运行的过程中也遇到不少问题,最后都通过查阅课本及网络一一解决了。 这次我们的程序编写出来后在实验室先调试一下汇编程序是否会成功使电动机转动,以及转动 的正确方向等,在调试及运行的过程中我的程序也遇到不少问题,比如说调试的时候我人为的输入 错误,这是我不仔细的原因,经过仔细检查才发现是程序输入错误了,后面又出现编写的程序不能够实现电动机的反转,只能够实现正转,然后我又重新检查程序的正确性,实在是不懂了就问徐老师,在老师的帮助下我修改了程序,最后终于调试成功,并能实现正确的正反转。在课程答辩过程中,我学到了很多知识,这些知识有效的解决了我对课程实际中许多困惑,使我对这门学科有了更深入的了解,也
27、知道了学以致用的重要意义。在此次课程设计报告的书写中,我也学会了书写正规的课程设计报告的格式,书写正确的课程 设计报告需要注意哪些重要的地方,正确的课程设计报告包括绪论,主体,心得体会,参考文献等,这为以后的毕业论文打下了基础。 。 在通过一系列故障的分析与排除,在这个过程中,让我既提升了对实际步进电动机编程应用的 能力,又巩固了 8086 的接口扩展技术编程技术,正确书写课程设计报告等。这次使我的知识层面不 仅仅停留在书面的基础上,同时更进一步提高实践动手能力。觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。 经过这次设计,我懂
28、得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名电气工程及其自动化专业的学生,计算机控制技术的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课程懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有 很有效的办法通过自身去理解,在同学的帮助和讲解下,渐渐对这门课程逐渐产生了些许的兴趣,自 己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。成都学院(成都大学)课程设计报告14同时通过这门课程的学习我们对生活中的好多简单的电子产品的工作原
29、理有了进一步的了解,微型计算机技术是学习微电子技术不可或缺的课程。 在此次课程设计中,通过对所学知识的综合运用来实现步进电机的控制原理,主要用到了汇编语言的寻址方式和指令系统,通汇编语言来编写程序源代码来实现步进电机的加速。用到的硬件主要是可编程的并行通信接口 8255,通过 8255 的控制字及工作方式里实现输入输出,熟悉并掌握了所学知识,将所学的知识系统化并且学会了这些知识在实践中的应用。 通过此次设计我感触颇深,我们只有将所学的理论知识具体的应用在实践中,才可以更好的理解并掌握。成都学院(成都大学)课程设计报告15参考文献1 版本正文.步进电机应用技术.科学出版社,2010.2 杨帮华,
30、马世伟,王建.微机原理与接口技术.北京:清华大学出版社,2008.3 王 自 强 步 进 电 机 应 用 技 术 .科 学 出 版 社 ,2001.4 肖洪兵.微机原理及接口技术.北京:北京大学出版社,2010.5 微机技术与应用实验指导书.成都大学,2011.成都学院(成都大学)课程设计报告16附录步进电机四相八拍相序表如下表 2-3 步进电机四相八拍相序相 序步 序PB3 PB2 PB1 PB0 通电相对应 PB 口的输出值(状态字)1 0 0 0 1 A 01H2 0 0 1 1 AB 03H3 0 0 1 0 B 02H4 0 1 1 0 BC 06H5 0 1 0 0 C 04H6 1 1 0 0 CD 0CH7 1 0 0 0 D 08H8 1 0 0 1 DA 09H