摘要: 本文介绍由Intel 80C196KC单片机和两片PBL3717A电机驱动芯片构成的二相步进电机的控制系统,包括了基于PBL3717A芯片的电机驱动的硬件电路设计和步进电机的软件控制程序。系统通过80C196KC高速输出口HSO输出控制脉冲,占用的CPU资源极少,实现了步进电机的转动,锁定,变速控制和软件细分控制。
关键字:PBL3717 80C196KC 步进电机
1.引言
步进电动机是一种纯粹的数字控制电动机,它将电脉冲信号转变为角位移,通过改变输出脉冲信号的频率和个数,可以实现调速和位置控制,具有较好的低速运行特性和较宽的调速范围,数控简单,成本低,无累积误差,能够准确的移动和定位[1]。PBL3717A是SGS-THOMSON公司生产的步进电机单相绕组的专用驱动芯片,两块PBL3717A芯片和少量无源电路元件可以组成一组完整的二相步进电机的控制驱动电路。80C196KC是INTEL MCS96 系列中一款高性能的CHMOS型的16位单片机,使用80C196KC和PBL3717可以很好的实现二相混合式步进电动机的运转、转矩细分、变速和锁定控制。
2.硬件设计
2.1电机驱动电路
2.1.1 PBL3717A电机驱动芯片
本系统中采用的PBL3717A步进电机驱动芯片,通过单片机输出控制信号,实现对步进电机不同的步距控制。下面就介绍一下3717A芯片的工作原理。
图1 PBL3717A 结构图 |
如图1为双列直插16管脚的PBL3717A的电机驱动芯片的结构图电路[2],
管脚1和管脚15 是芯片电流的输出端,分别连接电机线圈的两端,内部由四片达林顿晶体管和续流二极管构成一个H型电桥。管脚8为相位选择端,控制电流输出的方向,当为高电平时,电流从OUTPUTA流向OUTPUTB端。内置的施密特触发器能够较好的消除噪声干扰和换向电流的延迟。管脚9和管脚7时电流选择输入端,输入不同的逻辑控制信号,选通片内三个不同的电压比较器,来选择不同大小的输出电流。比较器端的基准电压由外加电压经分压电阻取得,从上至下的四个片内分压电阻分别为6kΩ、223Ω、223Ω、105Ω,分压比为0.084、0.050、0.016,因此在不同逻辑控制输入信号下,输出电流为I00 :I10 :I01=1:0.6:0.2。管脚16外接绕组电流采样电阻Rs。管脚11为参考电压输入端,连接着片内的三个电压比较器,改变参考电压可以实现对步进电机转矩的细分控制。
当相位控制端Phase为高电平时,晶闸管Q2,Q3截止Q1持续导通,而Q4处于高频开关的状态,电流从OUTA流向OUTB端。当Q1、Q4导通时,经过电机线圈的电流通过外接管脚16的采样感应电阻Rs而转化为采样电压信号Urs,经过RC低通滤波电路,形成与电机绕组电流成正比的电压信号Uc,反馈到管脚10,接入到比较器的反相端。当采样到的电压大于相应的片内电压比较器的基准电压时,比较器被选通,输出端发生电平负跳变,触发单稳电路输出为高电平,晶闸管Q4截至,电机绕组电流通过Q1、D2形成续流回路,线圈放电,电流减小,Vrs相应减小,其电流衰减的时间取决于管脚2外接的RT和CT参数(toff=0.69RTCT);当采样电压Vrs小于电压比较器参考电压时,单稳电路输出低电平,Q4导通,电流增加,如此这样重复。由于开关频率极很高,所以在电机绕组中的电流近似于平稳的直流,从而控制电动机绕组平均电流的大小,使绕组电流稳定的输出。当选择的比较器的基准电压相对较高时,Uc达到要求值的时间相对长,故单稳电路处于稳态的时间就长,电动机的平均电流就大。当Phase端为低电平时,工作原理类似,Q1、Q4截止,Q2持续导通,Q3处于高频开关状态,只是电流从OUTB流向OUTA。当Phase引脚电平改变,电流换相时会由于电机绕组电感而产生感应电动势,产生感应电流流过续流二极管,可以确保在电动机绕组上的电流可以迅速降为零并换相。
2.1.2电机驱动电路与步距控制
图2 步进电机驱动电路
如图2所示为两片3717组成的二相步进电机的驱动电路,可实现步进电机的全步,半步和1/4步工作方式,全步距工作方式为单相激励或二相激励四拍方式。半步距工作方式为单相、二相交替激励八拍方式。系统中使用的1/4步距工作方式,在整步和半步之间插入一个1/4步的状态,磁场旋转一周分为16个拍节,步距角较小,电动机运转平滑。同时在系
2.2单片机系统电路
80C196KC是INTEL公司推出的CHMOS型16位单片机,性能较MCS51系列单片机很大的提高。主频可以工作到20MHz,内部为2分频电路,指令执行速度快,低功耗方式。CPU的算术逻辑单元不采用常规累加器结构,改用了寄存器-寄存器的结构,CPU直接面向256字节的寄存器,消除了一般CPU结构存在的累加器的瓶颈效应,提高了操作速度和数据吞吐能力。片上集成了丰富的硬件外设和软件硬件资源。内部集成有8路10位的A/D转换器、三路脉宽调制输出,具有完善的HSIO功能,便于实现复杂的I/O控制,增加了外设服务器PTS,专门处理外设中断服务事务,提高了中断事务的实时处理能力[3]。基于以上的优点,80C196KC单片机和PBL3717可以构成一个完整的步进电机的控制系统。下面就说明一下80C196KC的系统电路。
2.2.1 高速输出口HSO
80C196KC有6个高速输出口,用于按程序设定的时间去触发某一事件,占用的CPU的开销极少,所以速度很高。将80C196KC的HSO0~HSO6分别与两片PBL3717A芯片的I0A、I0B、PHASEA、IB0、IB1、PHASEB相连接,对HSO口输出一定频率的控制字脉冲就能控制步进电机的转动方向和速度。
系统中将定时器T2作为HSO输出事件的时间基准,通过系统CLKOUT信号作为T2 的时钟源,接入T2CLK引脚,利用HSO定时器2 复位的命令和CAM锁定功能,T2复位时间锁定在CAM中,这样就能周期性的产生HSO输出事件,步进电机绕组内磁场旋转一圈的周期就是定时器的T2的复位周期。通过设置HSO事件的触发时间的T2的复位时间调整控制波形的频率,从而实现步进电机的变速控制。显然,利用HSO功能,输出的脉冲波形精确,大大减少了系统的开销。
因为在实际运行中,步进电机会因外界的干扰而产生一定的位移,所以,当电机停转时,要给电机一定的锁定力矩以保持电机固定位置。这时二相步进电机A、B相绕组同时通恒定不变的电流。转子转到两相磁场平衡的位置,即可锁定不动。在长时间进行锁定时,一般绕组输出为低电流,以避免绕组中长时间通电而造成的电机和芯片过热。
2..2.2 中断系统
步进电机的上下限位信号分别接在P1.6和P1.7上,然后共同连接到外部中断引脚P2.2上,当步进电机旋转到限位位置时,触发外部中断源,进行外部中断服务子程序中,在子程序中首先查询P1.6、P1.7口,判断是哪个限位触发的中断信号,然后进行相应服务子程序处理。
80C196KC内部有四个软件定时器可以同时工作,系统中使用软件定时器中断进行细分驱动控制,使用定时器2为时间基准,在中断服务子程序中控制细分参考电压的输出。
2.2.4细分电路
图4 D/A细分驱动电路 |
系统通过D/A转换电路对3717的参考电压输入端进行电压细分,最多可达256细分。
如图4为四路8位数模转化器TLC7226D/A转换电路,单片机通过地址总线MA1,MA2 来选通数模转换通道,通过数据总线AD0~AD8写入所要输出的参考电压,当 写输入选择端为低电平时,所选的DA通道输入锁存是透明的,输入对数据总线的活动做出响应,数据在 的上升沿锁存入所寻址的D/A锁存器,在 高电平时,模拟输出保持在与存在锁存器内的数据相对应数值得电压信号,经过电压跟随器送到3717的参考电压输入端。
系统地址总线MA14、MA15与80C196的WR通过逻辑门选通TLC7226D/A芯片。单片机的地址总线0xC000~0xFFFF被D/A电路占用。
3.软件设计
软件方面主要是设计系统的初始化,步进电机的正反转,变速控制,步距细分控制和电动机的锁定。
在初始化程序中完成对单片机各个寄存器窗口的选择、配置和系统初值的设定等等。
通过对HSO.0~HSO.5输出固定频率的控制脉冲序列,来控制电机的正转与反转,通过改变所存在HSO_CAM中的定时器2的复位事件的时间和相应HSO脉冲输出事件的触发时间来实现电机的变速控制。同时设置80C19KC的软件定时器中断,在中断服务子程序中进行软件细分驱动控制,对3717参考输入电压进行细分控制,产生阶梯状递增和递减参考电压。通过对HSO配置固定电平信号使得电机A、B相绕组通入恒定不变得电流,以实现对步进电机的锁定。
为了实现对步进电机启停运转的精确控制,将推导出的符合步进电机矩频特性的指数型运行曲线量化后,存入E2PROM中。在系统运行过程中,通过调用当前速度所对应的状态延时时间,控制输出脉冲频率,确保步进电机的平滑运转。
系统中的主程序框图、电机转动控制与软件细分程序框图如图5所示。
本系统程序采用C语言编写,下面就列出HSO脉冲输出的功能代码:
IOC2=0X40; 允许锁定CAM功能
ICO0=0; 允许T2CLK作T2的时钟源
HSO_COMMAND=0xCE; 锁定T2复位命令
HSO_TIME=time_reset; 设置T2的复位周期
Delay(8); 至少需延时8个机器周期
HSO_COMMAND =0x71; 对HSO.0定时置位
HSO_TIME= time_up; 设置置位时间
Delay(8);
HSO_COMMAND=0x71; 对HSO.0定时复位
HSO_TIME=timer_down; 设置复位时间,
4.结束语
选用80C196KC和两片或更多片PBL3717A芯片可以构成一个稳定的二相或多相步进电机控制系统,利用80C196KC高速输出口输出脉冲控制波形精确,CPU开销少,通过软件参考电压细分功能,可以很好的实现步进电动机的整步、半步和微步距控制。这种步进电机控制系统,成本低,控制方便,性能稳定,有较高的实用价值。
参考文献:
[1] 王晓明. 电动机的单片机控制[M]. 北京航空航天大学出版社,2002
[2]SGS公司. PBL3717A Stepper Motor Driver
[3]徐爱卿. Intel16位单片机(修订版)[M]. 北京航空航天大学出版社,2002
[4]杨忠宝,林海波,基于80C196MC的步进电机斩波恒流均匀细分电路的实现,微计算机信息,2003,19(7)