申冬琴,周国平,陈佳栋
(南京林业大学 信息科学技术学院,江苏 南京 210037)
随着城市建设的快速发展,建筑物上的塔钟越来越多。目前实现塔钟自动校时[1]的方式主要有3 种:(1)利用收音机接收的报时信号进行校时;(2)利用电视机接收的电视信号进行校时;(3)利用短波接收机接收陕西天文台的短波授时信号进行校时。然而这3 种校时方式所采用的校时信号极易受到外界干扰,可能导致长时间分离不出有效的校时信号。解决这一问题的最好办法就是采用全球定位系统。近年来,随着电子技术的发展,GPS 接收机的造价愈来愈低,而且接收的卫星信号准确可靠不易受外界环境干扰,而且其安装不受地域的限制,一般装有塔钟的地方均可安装,完全满足了塔钟控制系统的使用要求。本文介绍了基于GPS15xL-W的塔钟控制系统。
GPS(Global Positioning System 全球定位系统)[2]是美国于1994 年全面建成,集卫星导航、定位和定时于一体的多功能系统。GPS 系统[3]主要由三部分组成:空间部分、地面控制系统部分、用户设备部分。空间部分由21 颗工作卫星和3 颗在轨备用卫星组成,均匀分布在6个轨道面上,使得在全球任何地方、任何时间都可观测到4 颗以上的卫星,并能在卫星中预存导航信息。GPS 卫星不间断地发送自身的星历参数和时间信息,用户接收到这些信息后,经过计算可求出接收机的三维位置、三维方向、运动速度以及时间信息[4]。本系统中获知时间信息即可。
若设接收机的位置为(X,Y,Z),已知卫星的位置为(Xn,Yn,Zn),其中n=1,2,3,4,则解以下4个方程便可计算出接收机的位置(X,Y,Z)和标准时间T。
式中,C—光速;ΔT—用户时钟与GPS 主时钟标准时间的时差;Tn—卫星n 发射信号的发射时间;τn—卫星n 上的原子钟与GPS 主时钟标准时间的时差。
用户利用GPS 接收机就能全天候、实时、连续不断地接收到其发出的信号,通过对接收的信号进行解码和处理,从而获取精确的时间信息,包括1PPS,即秒脉冲信息,其脉冲前沿与国际标准时间(格林威治时间,UTC)[5]的同步误差不超过1 μs,以及经RS232 串口输出的与秒脉冲前沿相对应的UTC 时间。
本系统主要由以下几部分组成:单片机控制系统(89C54RD+)、步进电机驱动电路、GPS 接收电路、电源电路、调节控制键盘电路、显示电路、报时电路,如图1所示。
系统中的塔钟由步进电机带动走时[6],STC89C54RD+以GPS 时间信息为基准[7],输出步进电机的控制信号。GPS接收机选取美国GARMIN的产品GPS15xL-W 模块,该GPS接受模块体积小,功耗低,授时精度可达±50 ns(典型值),可以输出两种时间信号,一种是间隔为1 s的同步脉冲信号1PPS,其脉冲前沿与UTC的同步误差不超过1 μs,另一种为包含在串口输出信息的与1PPS 秒脉冲相对应的UTC 绝对时间。主控器采用宏晶公司的STC89C54RD+增强型51 单片机[8],通过MAX232 电平转换芯片与GPS15xL-W 连接,获得接收机接收的时间信息,作为塔钟的时基信号源,送入单片机的RXD 端,单片机的P1.0-P1.3 设计为输出端,提供步进电机的步进脉冲信号、方向控制信号以及脱机使能信号。
由于步进电机需220 V 交流电带动,停电时步进电机不能工作,塔钟不再走时,因此,系统中引入高性能、低功耗、带RAM的实时时钟。电路当检测到即将停电时(由电源监视及检测电路实现),CPU 首先将当前时间写入DS1302 提供的RAM 中,然后CPU 内部所有功能部件都停止工作,仅DS1302 芯片由电池供电继续走时。上电后,CPU 从DS1302中读取时间数据,计算出塔钟停走的时间,输出步进电机控制信号,从而控制步进电机带动塔钟指针走动,实现系统的自动追时功能。
同时,根据要求,MCU 可对塔钟上的相关设备:霓虹灯、语音芯片(ISD4004)、扩音器等进行控制。另外,通过按键,可设置塔钟的走时基准点。塔钟的时间数据可通过LCD 显示。
图1 系统结构框图
2M2260是一款等角度恒力矩细分型步进电机驱动器。该驱动器内部采用类似伺服控制原理的电路,此电路可以使电机低速运行稳定,几乎没有震动和噪音,由于驱动器工作电压高,使电机在高速时力矩大大高于其它二相、五相混合式及传统式步进电机。步进脉冲停止超过100 m/s,驱动电流自动减半。定位精度最高可达12800 步/转。图2为单片机与2M2260的连接图。单片机I/O 口与步进电机驱动器之间通过MC1413 连接,可增大单片机输出的驱动电流。
图3为2M2260的信号波形及时序。驱动器上电后两秒给步进电机发送脉冲。驱动器对步进脉冲要求是低电平为0 ~0.5 V,高电平为4 ~5 V,脉冲宽度大于2.5 μs。ENA-接电源地时,驱动器正常工作,否则,驱动器停止工作,电机处于自由状态。电机正常工作时,若DIR-输入为低电平,电机沿顺时针方向转,反之,电机沿逆时针方向转动。
图2 单片机与步进电机的硬件连接图
图3 信号波形及时序
报时系统硬件原理见图4。报时系统由一块ISD4004 语音芯片、扬声器及外围电路构成。ISD4004 有两个信号输入端,一个是录音信号的同相输入端ANA IN+,另一个是录音信号的反相输入端ANA IN-。ISD4004 被启动后,发出报时信号,首先是音乐,接着是打点声。此信号送入LM386,经过放大后,推动扬声器发声。
图4 报时系统硬件原理
系统软件设计采用模块式,设计包括:初始化模块,串口中断接收模块,数据处理模块,显示模块,键盘处理模块,走时模块。图5为主程序流程图。系统初始化模块包括串口初始化、液晶显示初始化。串行中断接收GPS_OEM 板的“$GPRMC”语句。每当正确接收到“$GPRMC”语句就更新一次显示,同时送出塔钟走时的控制信号。
图5 系统主程序设计流程图
单片机上电复位,通过串行接口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 时间信息每秒钟校正一次塔钟走时[9],从而保证塔钟走时的高精度。
因采用了GPS 作为塔钟走时的标准时钟源,解决了塔钟走时不准确的问题,控制系统硬件设计简单,抗干扰性强,系统运行稳定可靠,具有很好的实用性。
[1]全为民.塔钟自动校时系统的研制[J].烟台大学学报(自然科学与工程版),1999,12(1):75-78.
[2]钱天爵,瞿学林.GPS 全球定位系统及其应用[M].北京:海潮出版社,1993.
[3]Michael S Braasch.The Model of the GPS Signal Navigation[M].1990-1991,37(4).
[4]徐绍铨,张华海,杨志强,等.GPS 测量原理及应用[M].武汉:武汉测绘科技大学出版社,1998.
[5]Hofman-Wellenhof B,Lichtenegger H.Global Positioning System Theory and Practice[M].Springer-Verlag Wien New York,1992.
[6]张承学,龚庆武,胡志坚.基于GPS 同步采样装置的研制及其应用[J].电力系统自动化,2000,24(10):49-52.
[7]何立民.MCS-51 系列单片机应用系统设计:系统配置与接口技术[M].北京:北京航空航天大学出社,1990.
[8]全为民.塔钟的单片机自动控制系统设计[J].烟台大学学报(自然科学与工程版),2001(1):75-78.
[9]强蔚英.塔钟的单片机控制系统[J].钟表.1996(2):10-11.