摘要:基于国际航海标准NMEA-0183为数据协议,以保证电力系统精准授时为目的,通过ARM微控制器STM32f103rbt6和高精度GPS接收模块NEO-5Q为核心控制数据采集和传输,实现了GPS同步授时的设计方案。系统采用GPS接收模块接收卫星发送的标准数据串,通过微控制器对GPIRMC最小定位信息中的时间数据进行筛选和处理,最后经上位机授时软件对本地计算机进行成功校时,保证了系统的可行性。
关键词:NMEA-0183;Codex-M3;STM32f103;CPS
时间同步在工业应用中是十分重要的基础工作,特别是对时间要求较高的电力系统。近年来,电力系统大多采用不同厂家的计算机监控系统、谐波分析系统、故障录波装置、微机保护、电能质量计费系统等,时间数据大多是设备提供自己独立的时钟,而时钟因产品质量差异,在对时精度上都会有一定的偏差,从而使整个系统不能在统一的时间基础上进行数据的分析和比较,给事故后采取正确的故障分析判断带来很大的困难。
由于电力系统传统的时间同步方法只能保证全系统时钟误差在毫秒级,很难达到目前要求的精度。GPS同步授时系统具有授时精度高、范围广、可靠性高全天候且又不受各种干扰影响的特点,因此,采用GPS同步授时系统比采用传统的时钟设备有着明显的优势,并且可广泛应用于对时统精度较高的行业中。
1 GPS同步授时系统原理
如图1所示,整个系统以Cortex-M3为内核的ARM微处理器STM32f103rbt6为核心,并采用瑞士U-Blox公司NEO-5Q GPS数据接收模块接收卫星数据,微处理器从卫星数据中提取标准UTC时间码同时将其转换成标准北京时间码传输给本地计算机,最后由上位机授时软件对本地计算机进行校时,完成授时过程。
1.1 ARM微处理器STM32f103rbt6
STM32f103rbt6是意法半导体公司一款基于Conex-M3内核的32位微控制器,它主要应用于智能仪表、变频器、工控网络、高端家电和操作界面等领域。STM32f103系列微控制器开发简单,有丰富的语句代码库,与ARM7TDMI相比运行速度最多可快35%且代码最多可省45%。综合考虑选用了此款微控制器为本系统的核心。
该微控制器特点如下:
1)Cortex-M3内核、哈佛总线结构(可达90 DMIPS);
2)20 K字节的SRAM,128 K字节的Flash;主频72 MHz,可在系统编程;
3)带唤醒功能的低功耗模式、内部RC振荡器、内置复位电路;
4)在待机模式下,典型的耗电值仅为2μA,非常适合电池供电的应用;
5)3个16位通用的定时器,1个系统时间定时器:24位自减型。
1.2 NEO-5Q GPS接收模块
本系统选用较低功耗的NEO-5Q GPS超小型卫星接收模块,此芯片为多功能独立型GPS模组,以ROM为基础构架,成本低,体积小,最多可搜寻32个卫星频道,能够从接收到的信息中提取并输出2种时间信号:一是脉冲信号1PPS,其脉冲前沿与国际标准时间的同步误差不超过1μs;二是经串口输出的时间信息,它在1PPS脉冲之间给出,用来说明一个1PPS脉冲对应的UTC时间(年、月、日、时、分、秒)。NEO-5Q有UART和USB2.0两种接口,数据全速传输可达12 Mbit/s,具有高精度时间信号、在恶劣环境下持续工作的优点,可以达到系统要求。
2 GPS同步授时系统硬件设计
GPS同步授时系统的硬件以STM32f103微控制器及其外围部件为基础,通过串口收发数据并控制GPS接收模块,最终达到系统要求。
2.1 电源电路
电源电路是整个系统工作的基础,电源的工作特性直接影响系统的稳定性。在电源的设计过程中着重考虑以下因素:1)输入的电压、电流;2)电源保护;3)输出的电压、电流和功率;4)电磁兼容和电磁干扰;5)体积限制等。由于STM32f103系列微处理器的高速、低消耗、低功耗等特性导致其噪声容限低,对电源瞬态响应性、可靠性、时钟稳定性等都提出了更高的要求。
授时系统的供电电源为计算机PCI插槽5 V供电,5 V电源通过AMS1117-3.3稳压芯片将电压转换成3.3 V,给微控制器、GPS模块、串口通讯电路、复位电路和其他外围芯片供电。3 V备份电池可以保存模块当前星历。在模块断电两小时内重启模块称为热启动,此时模块内已保存有星历参数,所以无需下载星历,可以快速得到UTC时间参数,首次获得时间可以达到1 s以内。电源电路如图2所示。
2.2 NEO-5Q GPS接收电路
微控制器STM32f103rbt6的串行口RXD、TXD分别和NEO-5Q的TXD1、RXD1连接,并采用TTL电平串口通讯。微控制器的RXD负责接收从TXD1发来的GPS信息。而TXD在上电复位时的任务是向GPS接收模块发送初始化命令,使其按预定的格式和频率输出时钟信息。在初始化成功后TXD将不再向外发送任何命令,而是改变传输对象,转而通过MAX3232给上位机发送时间信息。由此可见,在不同的时间段单片机的TXD引脚要与不同的单元通讯,承担着不同的任务。既要在上电复位时给GPS接收模块发初始化命令,又要在初始化完毕后向上位机发送时间信息。当GPS模块被系统成功初始化后,将输出GPS秒脉冲信号,在秒脉冲上升沿之后,串行口会输出时间信息和相关的GPS状态信息。因此,为了便于将国际标准时间转化为北京时间,须使1PPS信号分为2路:一路作为微控制器的外部中断源,提示微控制器准备接收GPS接收模块输出的各种信息,以实现时间信息的同步处理,并监测信号正常与否,另一路则直接作为同步信号。GPS信号接收电路如图3所示。
3 GPS同步授时系统软件设计
3.1 GPS信号提取
GPS上电后,每隔一定的时间就会返回一定格式的数据,数据每行都以‘$’开头,接着是信息类型,后面是数据,以逗号分隔开。信息的类型有:
GPGSV:可见卫星信息
GPGLL:地理定位信息
GPRMC:最小定位信息
GPVTG:地面速度信息
GPGGA:GPS定位信息
GPGSA:当前卫星信息
因为GPRMC最小定位信息包含系统所需要的时间信息,所以微控制器只需提取最小定位信息中的时间数据。
一行完整的最小定位信息数据如下:
$GPRMC,020603.000,A,3744.9012,N,11232.5569,E,0.00,96.40,140211,,,A*50
当GPS接收模块收到数据传给微控制器时,数据处理终端首先提取第一个逗号后的数据020603,它是UTC时间hhmmss(时分秒)格式,因为不是标准北京时间,所以要对其UTC日期ddmmyy(日月年)格式。最后,将处理完毕后的数据存到控制器的数据存储器中,并通过串口发送给上位机软件。
3.2上位机GPS授时软件
GPS授时软件是通过VC++6.0编写的上位机程序,当软件运行时首先采集本地计算机时间:如2011-02-14 10:05:58,当GPS模块接收到正常数据并选择正确的串行端口时,UTC时间信息经控制器处理成标准北京时间后输出到校时系统中:如2011-02-14 10:06:03,如图4所示。系统需要校时动作时,按下校时按钮,然后弹出GPS校时信息,表明GPS同步校时成功。
4 结论
本文给出了针对授时系统的新方案,并对整体结构进行了深入分析,根据所需要实现的功能构建了整体软硬件开发平台。提出了一种基于ARM的GPS同步授时系统,通过GPS采集终端和微控制器数据处理终端,并结合上位机校时软件成功实现了一种更加精确的同步授时方案。