图3.3 接口电路
用8253接口芯片,由微处理机通过8253接口来控制步进电机工作的接口电路,运行过程中不占用CPU。
步进电机具有精度高、控制灵活、定位准确、启停迅速、能直接接收数字信号的特点,因而成为工业过程控制及仪器仪表的重要执行部件。在微机控制系统里,步进电机需要在CPU的控制下,按工作程序的要求,实现一定角度的旋转。其控制方式主要有:
1、CPU直接控制。由CPU在P1端口直接输出三相脉冲源,控制电机的运行,这样,在步进电机工作期间,CPU被独占,不能处理其它工作。降低了它的实时处理功能,这在许多场合是非常不利的,甚至是不允许的;
2、采用双CPU的主从控制系统,由从机控制步进电机的运行,主机实现整个系统的控制,其电路结构和工作程序是很复杂的,适应于复杂的电路系统;
3、用数字电路芯片构成的步进电机控制器,由于数字电路阻容元件的离散性和不稳定性,步进电机的控制精度不高。为了解决这个问题,我们采用可编程计数器8253为核心构成步进电机接口电路,具有精度高,不受阻容元件参数的限制,工作稳定,控制灵活等特点,在步进电机工作期间,不用CPU的直接干预,大大提高了CPU实时处理能力,在实验项目中应用,获得了良好效果。
如图3.3所示,它由三部分构成。第一部分,以8253和或门U1构成实时脉冲产生电路,该电路的触发受CPU的控制,它能产生一定数量和一定频率的脉冲,其频率和数量的大小由8253计数器的计数值设定,所以精度是极高的。第二部分,由移位寄存器和或门U2构成分相电路,它能产生符合步进电机需要的多项脉冲源。第三部分,换相和驱动电路,由模拟开关4066控制步进电机的运行方向,然后经光电耦合,达林顿管驱动使步进电机工作。
1、实时脉冲发生电路
可编程定时计数器8253内部具有4个独立的计数器,它们的功能、结构完全相同。每个计数器都具有时钟输入CLK、门控GATE和输出OUT三个引脚与外部发生联系,它们共有6种工作模式,具有硬同步和软同步功能。它是一个功能强大、使用灵活、性能优良的定时计数接口芯片,它的3个计数器在不同模式、不同形式的组合下,可以实现不同功能的实时脉冲电路,本系统就是其中的一例。
通道T0、T1均工作在分频方式,计数初值分别为l与n。T0输入信号的时钟频率为f,它输出频率为f/l信号一面送或门的输入,同时再经通道一T1分频,形成频率为f/ln的方波,该方波为通道二T2的时钟输入.T2工作在单稳态可重复触发方式,计数值为m,它输出的单稳态负电平送入或门74LS02的另一端,作为整个电路的门控,用来决定输出脉冲的数量和时间。另外,通道T1、T2的门控通过非门和通道T2相连,由CPU的P1.0控制,用来实现三个计数器时钟同步和触发。当CPU从P1.0发出一个负脉冲,即可触发电路工作,在这个脉冲的作用下,非门产生的上升沿使T2被触发,T0、T1被同步。T2输出的暂稳态低电平,通过或门解除对T0输出的封锁,使T0经或门74LS02输出频率为f/l、数量为mn个、工作时间为mln/f的实时脉冲信号。
为了确保上电复位时不被误触发,P1.0应接上拉电阻,T1、T0的门控应接下拉电阻。通道0和通道1接成级联,是为了增大输出脉冲的数量
2、分相和方向控制
由8253构成的实时脉冲需要经过分相才能满足步进电机的时序要求,分相电路种类很多,有计数器和译码器构成的,也有移位寄存器和反馈函数构成的,我们采用了后者实现A,B,C三相时钟源。
在移位寄存器CC4015时钟的作用下,D值在Q0,Q1,Q2及Q3之间移位,R1与C1的作用:上电复位后,通过CR端使输出全部清零,所以步进电机不工作,处于待命状态。此时的D值为1。只有在时钟输入端有脉冲输入时,D才能在Q0,Q1,Q2及Q3之间移动。当Q2等于1时,Q0与Q1同时为0,所以D值又变为1。在下一个时钟的作用下,Q0又为1,周而复始,实现A,B,C三相时钟源(见图2)。如果使用的是四相、五相或优相的步进电机,完全可以采用这种方法,实现N相分相。当然,也可以采用其它分相电路实现。当8253通道2的时间到达后,输出脉冲停止,与此同时通道2输出的高电平经二极管D1使CC4015复位,三相输出全部清零,使电机停止运行.且D值为1,并为下一次启动做好了准备。
图3.4电路信号时序图
如果要实现步进电机双三拍时序,只要在输出的Q0,Q1,Q2分别加反向器即可。为了实现用CPU进行方向控制,选用模拟开关4066构成B,C换向电路,当P1由0变为1时,步进电机反转。
表3.1时序翻转表
单三拍 |
双三拍 |
单三拍换相 |
双三拍换相 |
ABC |
AˉBˉCˉ |
ABC |
AˉBˉCˉ |
001 |
110 |
010 |
101 |
010 |
101 |
001 |
110 |
100 |
011 |
100 |
011 |
001 |
110 |
010 |
101 |
软件部分
与步进电机接口有关的程序主要有8253控制字、计数器初值的输入、电机方向控制和触发启动。
8253的控制字如下:
|
|
|
|
|
|
|
|
其中,SC1,SC0选择计数器通道;RW1,RW0为读写指示位;M2、M1、M0决定工作模式;BCD计数值格式。
当RW1,RW0为01时,计数值为八位;当RW1,RW0为11时,计数值是16位的,在电路采用如图1所示的级联情况下,在8位计数方式时所能产生的最大脉冲个数位104,而在16位计数方式时,最大脉冲个数达108(BCD码),用户可根据步进电机的最大运转角度,进行选择。
下面为8253的控制字和计数初值的子程序,其中adr0--adr3为8253的口地址,R0计数初值存放单元的首址,计数值均为双字节数的BCD码,低位在前,高位在后,l,n及m依次存放。(附录2)
在实际应用中,T0的计数初值l和输入脉冲的频率f决定电机的运行速度,时序脉冲频率越高,速度越快,速度过高步进电机容易失步,影响定位的精度。一般步进电机最大同步速度为100--250步/s。T1和T2的计数值n、m和步进电机的步角距θ决定着步进电机运转的角度α,α=mnθ。[19]
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页