DIY编程器网

标题: C504单片机在步进电机控制方面的应用 [打印本页]

作者: liyf    时间: 2012-1-27 19:46
标题: C504单片机在步进电机控制方面的应用

  
         
    摘要:C504是德国SIEMENS公司生产的单片微控制器,文中介绍了C504单片机在步进电机控制方面的应用,给出了利用C504的资源优势,经过一定的扩展来对步进电机进行控制的控制系统结构及方法,另外,该控制系统还具有人机对话功能和较高的性能价格比。
    关键词:C504 步进电机 CCU 步距角
步进电机是一种脉冲电机,它是一种能将脉冲信号转换为角位移的数模转换器,可广泛用于无需反馈控制而要求有精确位置的场合,为了改善步进电机的工作特性以及减少硬件电路的连接,近几年来多采用单片机对其控制,但由于各类单片机的功能、容量和价格不同,因而其性能和成本也各不相同。鉴于C504单片机在电机控制方面的独特结构和大容量、低价格的特点,本文将介绍以C504控制芯片为核心的步进电机控制系统,并在满足性能要求的前提下,实现了人机对话,从而使整个系统具有较高的性能价格比。
1 步进电机 控制系统结构及功能
1.1 系统结构
步进电机控制系统的结构框图如图1所示,

它主要由单片机控制系统、光电耦合电路、驱动电路及检测、保护电路组成。系统中的步进电机采用三相步进电机,它有A、B、C三个励磁线圈,可工作于三相单三拍、双三拍及六拍方式下。为了减小步距角,可对三相励磁线圈采用单双相轮流通电的方式,通电次序为A-AB-B-BC-C-CA,以构成三相六拍分配方式,步进电机的步距角为:60/Z(度),其转速由单片机所输出的脉冲来控制,当控制脉冲的频率发生变化时,转速也发生变化。
为了能有足够的功率驱动步进电机和具有较高的效率,作为控制信号与执行元件之间桥梁的驱动电路,采用以大功率场效应管作为功放管的恒流斩波驱动电路形式,可以使电机在工作时具有较大的为矩和较好的矩频特性。该系统可把C504单片机CCU单元输出的三相彼此间隔为T/3的脉冲信号进行放大以驱动电机,从而实现三相六拍的通电次序并能够运行。由C504单片机组成的控制系统主要完成对整个系统的控制检测和保护,它在输出一定频率的脉冲信号的同时,还能随时接受过电流检测电路的信号及时封锁控制脉冲信号,从而实现对步进电机的保护。
1.2 键盘/显示电路
为了满足工作需要,该控制系统设计有键盘/显示电路,它利用C504外接的可编程I/O接口芯片8279来构成44键盘和四位的LED显示器,以实现人机对话和对频率及步数的显示,从而完成对清零、复位、启动、停止、上升、下降、频率、步数、单步、时间、正转、反转、三拍/六拍等功能的设置。设计时,通过选取8279的四根SL0~3控制键盘的列线电四根SR0~3作为行线,8279的输出B0~3和A0~3作为数据口,键盘采用逐列扫描查询方式工作,显示器采用软件译码动态扫描显示方式。这种设计操作方便、可靠。
1.3 保护电路及抗干扰措施
为了对场效应管和步进电机进行保护,系统除了C504的内部硬保护电路以外,还设置了过压、过流保护电器,从而提高了系统的抗干扰能力;它们的工作原理为:取相应的电压和电流信号送到由运算放大器接成的比较器与给定值进行比较,

比较结果一方面经与门送到C504的CTRAP端,一方面送到锁存器。若发生故障,则使CRTAP处于低电平,通过控制CCU的初始化寄存器,使控制端逻辑处于封锁状态,以封锁向外输出的脉冲,并使场效应管处于截止状态,从而完成对步进电机的保护。最后,再通过CCU的控制寄存器的状态字使系统进入复位状态,并进行故障判断和故障代码显示以便维修。
为了防止干扰对系统运行造成影响,在C504的内部设置有一个15位可编程看门狗定时单元和RC振荡器看门狗电路,它们可分别对软件运行和晶振源的频率进行监控;若发生程序跑飞或死机,可通过15位可编程看门狗定时单元计数的溢出来使CPU自动进入复位状态和休眠等待状态;若系统工作频率不正常,也可通过RC振荡器看门狗电路控制,也可使CPU自动进入复位状态和休眠等待状态;RC振荡器看门狗电路框图如图2所示,它的工作原理为:当系统工作时,CPU通过控制总线将P3.2端的命令字送到RC振荡器和晶振源,并使它们同时运行,以向外提供各自的时钟脉冲,然后经频率比较器进行比较后输出。若晶振源的频率大于RC振荡器5分频的频率时,则频率比较器的输出为低电平,这时控制逻辑单元被封锁,系统接受到晶振源的时钟脉冲而正常工作;若控制逻辑频率因其它因素小于RC振荡器的5分频时,频率比较器的输出为高电平,控制逻辑单元被开放而使CPU进入复位状态,这样可防止数据丢失和非正常运行,从而提高了系统自身的抗干扰能力。
1.4 三相控制脉冲信号的产生
按照电机的工作需要,若完成三相/六拍的通电方式,则必须为驱动电路提供三路周期为T、脉宽为T/2或2T/3、相位彼此相差T/3的驱动信号,也就是要求单片机控制系统控制要能够产生这样的控制信号。具体过程为:CPU由数据总线和内部地址总线通过暂存锁存器向周期寄存器、控制寄存器、方式选择寄存器、初始化寄存器等写入命令和数据,并把来自晶振两发频的时钟脉冲信号送到受周期寄存器控制的预分频单元,再把它变为一定周期的脉冲送到被赋予定值的捕捉定时器,然后按每个状态周期增1计数。

当与赋值相等时,再按每个状态周期减1计数或刷新重新计数以把时钟脉冲转化为一定周期的三角波,再送到被赋予不同比较值的三个比较器进行比较,将输入波形调制为三路一定周期、相位彼此相差T/3的方波脉冲输出,经接口控制逻辑单元向外输出三路周期为T、脉宽为T/2或2T/3、相位彼此相差T/3的驱动信号。如果改变了周期寄存器的赋值,也就改变了控制信号的周期,从而改变了步进电机的转速。
2 系统软件设计
为保证系统安全可靠地启动与运行,该系统的软件采用启动与运行双循环检测的控制方案,其主程序流程如图3所示。启动前检测循环首先完成对驱动电路电压和电流的检测。运行控制循环主要完成对键盘各键命令的处理,其中包括初始化程序、自诊断程序、键盘扫描程序、清零程序、复位及显示程序、运行程序、停止及显示程序、上升及下降程序、频显程序、步显程序、时间显示程序、单步运行程序、正转及反转选择程序、三相/六拍程序等,并对故障实行单独处理及显示。
3 结论
本文介绍的步进电机控制系统,通过合理利用C504单片机的自身功能及相应的扩展电路,便可用很少的机时来完成对步时电机的控制,该系统结构简单,并具有故障自动保护和抗干扰保护功能,能够完成多种功能信息显示及人机对话等功能,经实际使用证明,该系统运行可靠、性能优良。

         
          [/td]
        [/tr]
      
作者: 江湖郎中    时间: 2012-3-21 07:25
看看看4454211
作者: 卓钢锴    时间: 2012-6-2 07:12
呵呵,谢谢楼主了~~~~~~~~~~~
作者: g8dv    时间: 2012-6-13 14:28
厉害!强~~~~没的说了
作者: 花吻蜘蛛zhu    时间: 2012-8-15 19:17
有空一起交流一下
作者: robter    时间: 2015-10-25 22:38
感谢楼主提供这么好的交流平台




欢迎光临 DIY编程器网 (http://diybcq.com./) Powered by Discuz! X3.2