系统中的塔钟由步进电机带动走时,STC89C54RD+以GPS时间信息为基准,输出步进电机的控制信号。GPS接收机选取美国GARMIN的产品GPS15xL-W模块,该GPS接受模块体积小,功耗低,授时精度可达±50 ns(典型值),可以输出两种时间信号,一种是间隔为1 s的同步脉冲信号1PPS,其脉冲前沿与UTC的同步误差不超过1μs,另一种为包含在串口输出信息的与1PPS秒脉冲相对应的UTC绝对时间。主控器采用宏晶公司的STC89C54RD+增强型51单片机,通过MAX232电平转换芯片与GPS15xL-W连接,获得接收机接收的时间信息,作为塔钟的时基信号源,送入单片机的RXD端,单片机的P1.0—P1.3设计为输出端,提供步进电机的步进脉冲信号、方向控制信号以及脱机使能信号。[page]
由于步进电机需220 V交流电带动,停电时步进电机不能工作,塔钟不再走时,因此,系统中引入高性能、低功耗、带RAM的实时时钟。电路当检测到即将停电时(由电源监视及检测电路实现),CPU首先将当前时间写入DS1302提供的RAM中,然后CPU内部所有功能部件都停止工作,仅DS1302芯片由电池供电继续走时。上电后,CPU从DS1302中读取时间数据,计算出塔钟停走的时间,输出步进电机控制信号,从而控制步进电机带动塔钟指针走动,实现系统的自动追时功能。
同时,根据要求,MCU可对塔钟上的相关设备:霓虹灯、语音芯片(ISD4004)、扩音器等进行控制。另外,通过按键,可设置塔钟的走时基准点。塔钟的时间数据可通过LCD显示。
2.2 步进电机驱动电路
2M2260是一款等角度恒力矩细分型步进电机驱动器。该驱动器内部采用类似伺服控制原理的电路,此电路可以使电机低速运行稳定,几乎没有震动和噪音,由于驱动器工作电压高,使电机在高速时力矩大大高于其它二相、五相混合式及传统式步进电机。步进脉冲停止超过100 m/s,驱动电流自动减半。定位精度最高可达12800步/转。图2为单片机与2M2260的连接图。单片机I/O口与步进电机驱动器之间通过MC1413连接,可增大单片机输出的驱动电流。
图3为2M2260的信号波形及时序。驱动器上电后两秒给步进电机发送脉冲。驱动器对步进脉冲要求是低电平为0~0.5 V,高电平为4~5 V,脉冲宽度大于2.5 μs。ENA-接电源地时,驱动器正常工作,否则,驱动器停止工作,电机处于自由状态。电机正常工作时,若DIR-输入为低电平,电机沿顺时针方向转,反之,电机沿逆时针方向转动。
[page]
2.3 报时系统
3 软件设计
系统软件设计采用模块式,设计包括:初始化模块,串口中断接收模块,数据处理模块,显示模块,键盘处理模块,走时模块。图5为主程序流程图。系统初始化模块包括串口初始化、液晶显示初始化。串行中断接收GPS_OEM板的“$ GPRMC”语句。每当正确接收到“$ GPR MC”语句就更新一次显示,同时送出塔钟走时的控制信号。
单片机上电复位,通过串行接口RXD与GPS15XL-W接收机通讯,获取卫星数据;另一方面步进电机的指针快速走时,若查询到按键1按下,则此时的位置为塔钟的走时基准点。若查询到按键2按下,则指针快速走到当前时刻,继而正常走时。单片机通过P1口与塔钟控制系统通讯实现塔钟校时。单片机接收GPS接收机发来的数据信息,从中筛选出所需要的时间信息。传送时间信息的指令是$GPRMC,是命令头,其ASCII码是24,47,50,52,4D,43,2C。紧随命令头的是UTC时间,hhmmss(时分秒)格式。
此外,单片机接收到的时间数据为UTC时间(格林威治时间),UTC时间与世界各地的时间有时差,例如,UTC时间比北京时间晚8 h,因此,将接收到的UTC时间加上8 h,即为北京时间。在对小时加8的时候,要注意对日期的影响,因为日期涉及到闰年等问题。
步进电机每获得一个脉冲指针转过1.8°,但是塔钟转盘一圈360°,秒针走过一小格,即6°,但是连续给步进电机三个脉冲,指针只能走5.4°,因此,为了减小误差,给步进电机发送脉冲的时序为3—4—3,即单片机按三个脉冲、四个脉冲和三个脉冲给步进电机发送脉冲,塔钟指针走过5.4°、7.2°和5.4°,照此循环发送,所以每三秒钟就可以消除指针转动的误差。
因此,在软件设计中,首先判断当前的时刻的秒值与三相除所得余数,余数为0和2,则发送3个脉冲,若余数为1,则发送4个脉冲,以此类推。秒针每转过一圈为一分,即分针走过一小格;分针每转过一圈为一小时,即带动时针走一大格。塔钟按上述情况走时。GPS时间信息每秒钟校正一次塔钟走时,从而保证塔钟走时的高精度。
4 结论
因采用了GPS作为塔钟走时的标准时钟源,解决了塔钟走时不准确的问题,控制系统硬件设计简单,抗干扰性强,系统运行稳定可靠,具有很好的实用性。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』