摘 要:本文以AT89S52 单片机为核心构成云台控制器,通过8279 键盘、显示接口芯片实现外部控制信息的输入以及步进电机转速的显示,控制摄像机进行上、下、左、右各方向的行进动作。为保证控制的可靠性,步进电机控制信号的发出不是由单片机完成,而是由专用步进电机驱动模块产生。 关键词:单片机; 云台控制器; 步进电机; 转速; 键盘 Abstract: The paper designs YunTan controller on the basis of AT89S52 SCM,the function of input of outercontrolling signal and display of step-motor speed is realized by 8279 keyboard/display chip,in order tocontrol the movement of vidicon toward the direction of up,down,left and right.To ensure the reliability ofcontrolling,the producing of step-motor control signal is achieved by special driving modul for step-motor,not by SCM. Keywords: SCM;YunTan Controller;Step-motor;Speed;Keyboard 0 引言 采用单片机为核心设计的云台控制器在监控场合能实现控制摄像机进行大范围、宽角度的移动,以使摄像机能够达到接近360°全景式摄像,且其在经济性、灵活性、扩展性和可维护性等方面都具有独特的优势。 1 系统总体结构 系统由以下几部分构成:①单片机:设计的核心,在软件的配合下实现对键盘所输入信息的识别,根据输入信息向云台中的步进电机发出指令,使其实现正/ 反转、速度控制、程序控制等功能,并将步进电机的转速通过数码管显示出来;②步进电机及驱动:负责云台系统在竖直和水平两个方向上的转动,是系统的执行部件;③键盘:外部信息的输入器件,是控制人员指挥云台系统工作的重要组成部分; ④显示器件:将步进电机的实时转速显示出来,以便控制人员根据转速来确定对云台的控制策略。 2 系统硬件设计 硬件电路按系统功能划分为步进电机及其驱动模块、单片机及其外围电路、键盘及显示电路共三部分,系统硬件功能框图如图一所示。 2.1 步进电机控制及驱动模块的选择 驱动器接收到脉冲信号之后,驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步步运行的。可通过控制脉冲个数来控制角位移量,达到准确定位的目的;同时可通过控制脉冲频率来控制电机转动的速度和加速度,达到调速的目的。所选步进电机为两台混合式步进电机57BYG250C,具有两相/ 四相运行能力,四拍工作时步距角为1.8°,八拍为0.9°。步进电机驱动模块型号为HB202A,具备4/8 拍转换控制信号、脱机(FREE)控制信号、输入信号光电隔离等功能。设计中增加了一个脱机控制键,在出现故障或调试时将两台电机置于脱机状态,可手工调节步进电机。脱机控制键直接与单片机INT0 相接,设INT0 为最高优先级,以便在故障时能迅速实现脱机控制。由于不经过8279 而直接接在单片机上,则必须设置键盘去抖动电路,以免使单片机产生误操作。 2.2 键盘及显示电路设计 键盘及显示电路采用INTEL8279 来实现。键盘采用N键循回方式,显示为8 位左端送入。8279 外接2*8 键盘和八位显示器,采用编码扫描方式。8279 的IRQ 和单片机的INT1相接,只要有键按下,就会申请中断。当单片机外接12M 晶振时,ALE 为2M,而其与CLK 相连,所以其分频命令字为34H。通过8279 所扩展的按键共16 个,8 个负责两个方向上的步进电机的正反转,8 个是功能键,分别负责步进电机的加减速、程序控制、步进电机的限位开关。 3 系统软件设计 系统的软件主要由初始化程序、键盘程序、速度控制程序、转速检测及显示程序组成。除初始化程序外,其余程序均采用中断工作方式,提高了CPU 的利用率。 3.1 系统初始化程序设计 先对单片机各中断源进行初始化,使用五个中断源:INT0、INT1、T0、T1、T2,INT0、T0、T1 为高优先级,INT1、T2 为低优先级。INT0 申请中断,则程序立即使步进电机进入脱机控制程序,步进电机不再受单片机的控制,且是电平触发,单片机始终执行脱机程序,直至外部触发信号由操作人员手工撤销,系统才恢复正常工作。后设置T0、T1、T2 的工作方式,并写入计数处置,开启这几个中断源的允许位,打开CPU 中断。 3.2 键盘程序的设计 键盘键按下后产生中断申请,单片机响应中断后,开始执行中断程序。从8279 内部将产生的键值读出,并根据键值来执行相应的程序。CPU 接收到该信息后,并不立即动作。为保证步进电机速度控制的稳定性,先保存该键值所对应的命令,在T0/T1 到达所设定的计数值之后,按一定的速度需要输出脉冲时,再将该信息送至步进电机。 3.3 步进电机的速度控制软件设计 改变驱动模块CP 信号的频率来改变步进电机的转速,改变CP 信号的频率可以通过定时/ 计数器来实现。先给定时/ 计数器装载初置,后使其开始运行,到达规定的时间后执行中断程序,此时可将产生CP 信号的程序放在此中断程序中,就达到了改变步进电机转速的目的。S52 内部的T0 和T1 分别对应了两个步进电机的速度控制,其工作过程如图二所示。 3.4 转速检测及显示软件设计 采用定时计数法,在一定的时间内对单片机发送给步进电机的步进脉冲进行计数。设单片机每50ms 检测一次向步进电机所发出脉冲的个数N,N 与转速之间有如下关系: 只要将检测到的脉冲数N 乘以3,就可以得到每分钟的转速。50ms 的定时由S52 内部的第三个定时/ 计数器T2 来实现。 4 结束语 单片机构成的云台控制器不仅具有控制精度高、控制方式灵活、程序编制简单、功耗低、可靠性高等特点,且某些新型单片机更具有在线编程功能,不需把单片机从工作环境中剥离出来即可进行程序更新,方便了软件的维护,并可根据需要,由预先编制的程序自动对两方向上的驱动电机进行协同控制。 参考文献 [1]陈理壁.步进电机及其应用[M].上海:上海科学技术出版社,1989. | ||||||