荐基于单片机的步进电机控制系统设计与制作毕业设计[精选整理]内容摘要:
多级细分驱动系统,通过不同的细分档位设定,实现不同步数的细分,同时保证了不同的转动速度。 步进电机控制中已蕴含了细分的机理。 如三相步进电机按 A→B→C…… 的顺序轮流通 电, 步进电机为 整 步工作。 而按 A→AC→C→CB→B→BA→A……的顺序通电,则步进电机为半步工作。 以 A→B 为例,若将各相电流看作是向量,则从整步到半步的变换,就是在 IA 与 IB 之间插入过渡向量 IAB,因为电流向量的合成方向决定了步进电机合成磁势的方向,而合成磁势的转动角度本身就是步进电机的步进角度。 显然, I AB 的插入改变了合成磁势的转动大小,使得步进电机的步进角度由 θb变为 θb,从而也就实现了 2 步细分。 由此可见,步进电机的细分原理就是通过等角度有规律的插入电流合成向量,从而减小合成磁势转动角度, 达到步进电机细分控制的目的。 三相步进电机的 A 相与 B 相之间插入合成向量 AB,则实现了 2 步细分。 要再实现 4 步细分,只需在 A 与 AB 之间插入 3 个向量 I I I3,使得合成磁势的转动角度 θ1=θ2=θ3=θ4,就实现了 4 步细分。 但 4 步细分与 2 步细分是不同的,由于 I I I3 3 个向量的插入是对电流向量 IB 的分解,故控制脉冲已变成了阶梯波。 细分程度越高,阶梯波越复杂。 在三相步进电机整步工作时,实现 2 步细分合成磁势转动过程为IA→IAB→IB ;实现 4 步细分转动过程为 IA→I2→IAB…… ;而实现 8 步细分则转动 过程为 IA→I1→I2→I3→IAB……。 可见,选择不同的细分步数,就要插入不同的电流合成向量。 系统由主机、键盘输入系统、步进显示系统、步进控制系统组成。 主机采用 STC89C52 单片机,其为低功耗的 8 位单片机,片内有一个 8K 字节的 Flash可编程、可擦除、只读存储器,故可简化系统构成,且可满足本系统数据存储空间的要求。 主机接收串行口送来的步进控制数据,并对其进行处理,以实施步进控制。 键盘输入系统是用来输入控制所需的细分档位。 系统设计时,考虑到随着细分的精确化,如 128 步细分时,步距角达到足够小,能满足各种 步进要求,故以 2 的整数次幂作为细分基准。 步进显示系统由液晶显示器显示当前第二章 控制模块设计及硬件选择 8 细分档位和细分后的步进角等参数。 为了减少电路的复杂性,该显示器显示的最小单位规定为 1。 步进控制系统由 D/A 转换部分和驱动系统组成。 D/A 转换部分包括3片 DAC0830 集成芯片和数据锁存系统。 DAC0830 转换分辨率是 8位,该芯片具有与微处理器兼容、价格低廉、接口简单、转换控制容易等优点。 D/A 转换部分的功能是将二进制代码表示的阶梯波数值转换为相应的电流值输出,经驱动系统放大,控制步进电机转动。 驱动系统采用三级管实现电流放大。 细 分的实现过程,就是插入电流合成向量和转换电流合成向量的过程。 电流合成向量转化的前提是合成向量的插入。 在系统中,由主机根据设定的细分档位,计算出相关参数,经查表生成相对应的阶梯波,即插入了电流合成向量。 在正转或反转的控制信号下,阶梯波脉冲由输出端口经锁存系统送入 D/A 转换器件 DAC0830 进行电流合成向量的转化,输出对应的电流值,经驱动放大控制步进电机,从而实现了细分驱动。 要在细分的基础上实现多级细分,就必须针对不同的细分档位生成不同的阶梯波。 为此,该系统采用了循环增量查表法。 首先建立阶梯波数值存储 表格,有两种方法,一种是针对每种细分方式建立相应的表格,其特点是细分种类多样,但表格所占空间较大;另外一种,也就是该系统采用的,以最大细分档位对应的步数仅建立一个表格,大大减少了所需的存储空间,并减少了程序运行中的不稳定因素。 在具体控制中,该系统通过设定循环增量基数,使不同的细分档位对应不同的细分步数,实现了多级细分驱动。 循环增量基数是指针对不同的细分档位,实现等间隔寻址时相应跳跃的步数。 循环增量基数是在细分档位设定后,由相应的计算公式得到。 由于该系统最大细分步数为 128 步,即表格最大长度为 128 个字节,若细分步数为 m 步,则循环增量基数为 LB=(128/m)1。 不同的档位对应不同的循环增量基数,同一表格就产生了多级细分所需的阶梯波。 另外,在整步控制的基础上,若细分为 m 步,对每 m 步运行中的各项电流值进行分析比较,可发现存在以下规律,即各相电流值的变化趋势,随着相位变化循环地出现,如表 24。 四川理工学院毕业设计(论文) 9 表 24 细分控制中各相电流值变化规律 各相 A→B B→C C→A A相 高 → 递减 电流值 =0 增加 → 高 B 相 增 → 加高 高 → 递减 电流值 =0 C 相 电流值 =0 增加 → 高 高 → 递减 在表 24 中,每一种保持或变化都是持续 m/2 步,且可看出其良好的循环性。 依据以上规律,在具体控制中,该系统单独对由 A→B 控制时各相相应的电流值变化,实现子程序控制,而对整体控制则采用圆周移位的方式实现,即随着合成磁势在 A→B 、 B→C 、 C→A 的转动,对同一输出地址,相应每 m 步的控制数据循环出现。 采用这种方式,简化了实际控制程序,提高了控制效率。 单片机控制电路 图 21 控制流程图 步进电机的控制系统是使用单片机 ,其控制流程见图 21。 在单片机里使用的芯片是 STC 公司生产的 51 系列的 STC89C52。 STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。 STC89C52 使用经典的 MCS51 内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。 在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52 具有以下标准功能: 8k字节 Flash, 512 字节 RAM, 32 位 I/O 单片机 L297 L298 步进电机 第二章 控制模块设计及硬件选择 10 口线, 看门狗定时器 ,内置 4KB EEPROM, MAX810 复位电路, 3 个 16 位 定时器 /计数器, 4 个外部中断,一个 7 向量 4 级中断结构(兼容传统 51 的 5 向量2 级中断结构 ),全双工 串行口。 另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。 空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 最高运作频率 35MHz, 6T/12T 可选。 STC89C52 参数 :增强型 8051 单片机, 6 时钟 /机器周期 和 12 时钟 /机器周期可以任意 选择,指令代码完全兼容传统 8051。 工作电压: ~ ( 5V 单片机) /~ ( 3V 单片机)。 工作频率 范围: 0~ 40MHz,相当于普通 8051 的 0~ 80MHz,实际工作 频率可达 48MHz。 用户应用程序空间为 8K 字节片上集成 512 字节。 通用 I/O 口( 32 个),复位后为: P0/P1/P2/P3 是 准双向口 /弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不 用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 ISP(在系统可编程) /IAP(在应用可编程),无需专用 编程器 ,无需专用 仿真器 ,可通过串口( RxD/,TxD/)直接下载用户程 序,数秒即可完成一片具有 EEPROM 功能共 3 个 16 位 定时器 /计数器。 即定时器 T0、 T T2 外部中断 4 路,下降沿中断或低电平触发电路, Power Down 模式可由外部中断低电平触发 中断方式 唤醒通用异步 串行口 ( UART),还可用定时器 软件 实现多个 UART。 工作温度范围: 40~ +85℃ (工业级) /0~ 75℃ (商业级)。 图 22 stc89c52 引脚图 四川理工学院毕业设计(论文) 11 STC89C52RC 引脚功能说 明 主电源引脚 VCC 和 GND VCC——( 40 脚)接 +5V 电压; GND——( 20 脚)接地。 外接晶体引脚 XTAL1 和 XTAL2 XTAL1( 19 脚)接外部晶体的一个引脚。 在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。 当采用外部振荡器时,对 HMOS单片机,此引脚应接地;对 SHMOS 单片机,此引脚作为驱动端。 XTAL2( 18 脚)接外晶体的另一端。 在单片机内部,接至上述振荡器的反相放大器的输出端。 采用外部振荡器时,对 HMOS 单片机,该引 脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。 控制或与其它电源复用引脚 RST/VPD、 ALE/PROG、 PSEN 和 EA/VPP ① RST/VPD( 9 脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。 推荐在此引脚与 VSS 引脚之间连接一个约 的下拉电阻,与 VSS 引脚之间连接一个约 10μF的电容,以保证可靠地复位。 VSS 掉电期间,此引脚可接上备用电源,以保证内部 RAM 的数据不丢失。 当 VSS 主电源下掉到低 于规定的电平,而 VPD 在其规定的电压范围( 5177。 )内, VPD 就向内部 RAM 提供备用电源。 ② ALE/PROG( 30 脚):当访问外部存贮器时, ALE(允许地址锁存)的输出用于锁存地址的低位字节。 即使不访问外部存储器, ALE 端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的 1/6。 因此,它可用作对外输出的时钟,或用于定时目的。 然而要注意的是,每当访问外部数据存储器时,将跳过一个 ALE 脉冲。 ALE 端可以驱动(吸收或输出电流) 8 个 LS 型的 TTL输入电路。 对于 EPROM 单片机(如 8751),在 EPROM 编程期间,此引脚用于输入编程脉冲( PROG)。 ③ PSEN( 29 脚):此脚的输出是外部程序存储器的读选通信号。 在从外部程序存储器取指令(或常数)期间,每个机器周期两次 PSEN 有效。 但在此期间,每当访问外部数据存储器时,这两次有效的 PSEN 信号将不出现。 PSEN 同样可以驱动(吸收或输出) 8 个 LS 型的 TTL 输入。 ④ EA/VPP(引脚):当 EA 端保持高电平时,访问内部程序存储器,但在第二章 控制模块设计及硬件选择 12 PS(程序计数器)值超过 0FFFH(对 851/8751/80S51)或 1FFFH(对 8052)时,将自动转向执行外部程序存储器内的程序。 当 EA 保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。 对于常用的 8031 来说,无内部程序存储器,所以 EA 脚须常接地,这样才能只选择外部程序存储器。 对于 EPROM 型的单片机(如 8751),在 EPROM 编程期间,此引脚也用于施加 21V 的编程电源( VPP)。 4. 控制或与其它电源复用引脚 RST/Vpd, ALE/PROG, PSEN 和 EA/Vpp。 RST/Vpd 当振荡器运行时。 在此引脚上出现两个机器同期的高电平(由低到高跳变),将使单片 机复位。 在 VSS 掉电期间,此引脚可接上备用电源,由 Vpd 向内部 RAM 提供备用电源,以保持内部 RAM 中的数据。 ALE/PROG 正常操作时为 ALE 功能(允许地址钱存),提供把地址的低字节锁存到外部锁存器。 ALE 引脚以不变的频率(振荡周期的 1/6)周期性地发出正脉冲信号。 因此,它可用作对外输出的时钟,或用于定时目的。 但要注意,每当访问外部数据存储器时,将跳过一个 ALE 脉冲。 ALE 端可以驱动(吸收或输出电流)八个 LSTTL 电路。 对于 EPROM 型单片机,在 EPROM 编程期间,此引脚接 收编程脉冲( PROG功能)。 PSEN 外部程序存储器读选通信号输出端。 在从外部程序存储器取指令(或数据)期间; PSEN 在每个机器周期内两次有效。 PSEN 同样可以驱动八个 LSTTL输入。 EA/ Vpp EA 为内部程序存储器和外部程序存储器选择端。 当 EA 为高电平时,访问内部程序存储器( PS 值小于 4K)。 当 EA 为低电平时,则访问外部程序存储器。 对于 EPROM型单片机,在 EPROM编程期间,此引脚上加 21VEPROM编程电源( Vpp)。 输入 /输出( I/O)引脚 P0、 P P P3(共 32 根) ① P0 口( 39 脚至 32 脚):是双向 8 位三态 I/O 口,在外接存储器时,与地址总线的低 8 位及数据总线复用。荐基于单片机的步进电机控制系统设计与制作毕业设计[精选整理]
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。