基于87C196KC单片机的步进电机高灵敏度控制系统
摘 要结合87C196KC单片机的特点,提出了用87C196KC单片机对数控机床用步进电机进行高灵敏度控制的方法。给出了系统的硬件设计和软件设计,并进一步分析了系统的安全性和可靠性。
关键词:87C196KC, 单片机, 步进电机, 控制系统, 灵敏度
1 引言
在现代控制系统中,数控机床的高灵敏度控制是一个重要的分支。而单片机体积小、重量轻,具有很强的灵活性,因此得到越来越广泛的应用,尤其在数控机床方面。目前,我国的许多应用领域仍以MCS-51系列8位单片机为主,但是在一些较为复杂,对实时性、灵敏性要求较高的场合,它就显得力不从心,不得不让位于16位单片机。87C196KC芯片为Intel公司的高性能16位单片机,是其CHMOS中的第二代产品。它不但集成了监视跟踪定时器WDT、高速输入输出通道HSIO、外部设备事件服务器,还具有高精度的10位A/D、D/A和PWM波发生器功能。87C196KC单片机拥有3路PWM发生器,它们分别由P2.5口、P1.3口和P1.4口输出,其内部拥有存储容量为16KB的EPROM和512B的RAM,是步进电机控制系统的理想机种。本文主要结合87C196KC 单片机的PWM发生器,给出三相步进电机控制系统的硬件和软件设计。
2 PWM波发生器工作原理
下面以PWM/P2.5引脚为例,给出PWM波发生器的硬件电路和工作原理。PWM波发生器结构框图如图1所示。
由图1可知,PWM波主要由脉宽调制控制寄存器PWM-PWM波发生器的时钟可以由系统时钟提供,也可以由外围电路通过IOC2.2引脚提供。在选择由系统时钟提供的方式时,还可选择直接提供和经二分频提供的方式。单片机上电后,8位循环计数器即开始工作。每接收一个脉冲计数值增1,当其内容由0FFH再增1时,计数器溢出,引脚PWM端变为高电平输出。在PWM_CONTROL中置入要转换的数字量,其值与8位循环数器的值相比较,当二者相等时,R-S触发器使得引脚PWM端变为低电平输出。由此可见,引脚PWM端输出高电平的时间由8位循环计数器的值决定,引脚PWM端输出低电平的时间由PWM——CONTROL决定。通过二者的结合便可输出宽度可变的脉冲波。
http://www.icembed.com/UploadFiles/20081313336734.jpg
3 系统总体设计
该87C196KC单片机构成的数控机床采用三相步进电机高灵敏度控制系统,能够精确地调节步进电机的行走速度,可以在三维空间中改变电机的行进方向,还可以按操作者设定的行走步数行进。通过键盘和数显模块的结合可以实时地进行速度显示和行程控制。
3.1 系统硬件设计
由87C196KC单片机构成的三相步进电机控制系统原理图如图2所示。该控制系统通过单片机输出3路PWM波,然后通过反相器、光电耦合器和驱动器控制步进电机的启停和正反转,而步进电机的电流、电压和转速则通过反馈回路进入单片机,并通过数显电路加以显示。电路中的光电耦合器是出于系统安全性的考虑,起隔离作用,以此把单片机输出的弱电信号和电机驱动电路的强电区分开来。驱动器采用具有较高输出电流的达林顿驱动步进电机。键盘和数显模块中,采用4×5键盘设置数字键、方位键、数显选择键和确定键等,采用Intel 8279芯片对键盘和4位共阴极LED显示器进行管理和控制。
http://www.icembed.com/UploadFiles/20081313337580.jpg
3.2 系统软件设计
系统软件设计包括主程序设计和中断程序设计。通过外部键盘的输入控制和经由反馈回路的A/D转换均采用中断方式。考虑到程序模块的可移植性和程序的执行效率,系统程序采用C语言和汇编语言混合编程的模式,主程序才用C96程序,中断程序采用汇编语言编写。由于篇幅的限制,在此仅给出系统软件主程序的流程图,如图3所示。
http://www.icembed.com/UploadFiles/20081313338621.jpg
在系统主程序中,考虑到系统的安全性,前后设置WDT清零操作。在设定PWM波输出的前提下,置PWM波控制寄存器,用以和相应的软件定时器值相比较,来决定PWM波的占空比。在进行方位控制和速度调节时,只需改变定时器的值,然后调节3路PWM波输出顺序和占空比即可。
4 抗干扰措施
在单片机应用系统中,系统的抗干扰性能直接影响系统工作的可靠性。一旦系统受到干扰,程序指针发生错误,将会造成程序执行的混乱或进入死循环,系统无法正常运行,严重时可能损坏系统硬件。
本系统在硬件和软件方面分别采取了抗干扰措施。硬件上,系统进行了良好的接地,采用了隔离技术和硬件滤波技术,在此,用光电隔离器隔离强弱电信号,用滤波器排除反馈回路的干扰信号。在软件方面,设置软件陷阱,在非程序区设置拦截措施,当程序指针PC失控进入非程序区时,使程序进入陷阱,用LJMP #2080H指令填满非程序区,以使程序返回初始状态,同时,运用“看门狗”技术,启用16位监视跟踪定时器WDT。WDT是一个16位计数器,其计数脉冲由单片机的系统时钟CLOCK(T)提供。每经历一个T,WDT的内容增1。WDT一旦被启动,便开始计数,只要不对其清零,其内容将持续增加,直到经过64K个T周期产生溢出,系统复位,WDT停止工作。软件陷阱和WDT的双重运用将有效保证系统的可靠性。
5 结束语
该系统具有高精度、实时性和可控性等特点,再加上硬件方式和软件方式的多重抗干扰措施,大大地提高了系统的可靠性。
参考文献
1 李群芳,黄建. 单片微型计算机与接口技术. 北京:电子工业出版社,2001
2 刘复华. 8xC196KX单片机及其应用系统设计.北京: 清华大学出版社, 2002
3 马忠梅等编著. 单片机的C语言应用程序设计. 北京:北京航空航天大学出版社,1999
4 李晓波,董新伟. 提供80C196KC片内A/D性能方法初探. 微处理机,2001(1)
5 汪建,赵俊峰. 基于80C196单片机的电网参数数字测量系统. 微处理机,2002(2)
楼主是大神,可以给一个STC的1T单片机设计下吗?
、 感谢楼主提供这么好的东东
页:
[1]