基于UM220芯片研发的北斗_GPS双模授时系统

2019-09-10 15:29黄明亮林滨柯如峰
科学导报·学术 2019年25期
关键词:北斗单片机

黄明亮 林滨 柯如峰

摘  要:通过研究NTP协议,利用和芯星通的UM220-III N双系统高性能GNSS模块提供的北斗/GPS时间信息,通过单片机和W5500网络模块等硬件构造UDP服务器。使用常见的单片机作为处理器,利用STC12C5A60s2的串行接口接收UM220模块输出的NMEA0183语句数据,通过单片机、网络模块和RT1602C型通用液晶显示模块相结合,搭建一套北斗_GPS双模授时系统,完成对空管系统的授时应用。

关键词:UM220;单片机;北斗;GPS;NTP;串口报文

1 引言

信息技术的发展和普及应用,对时间精度提出了更高的要求。在诸多授时方法中,卫星授时以其高精度和全球覆盖度已经成为授时的主要手段。目前空管所使用的空管自动化系统、内话系统、记录仪系统、传输系统等均接入了GPS时钟作为授时时钟源。随着我国北斗导航系统的逐渐成熟,北斗导航系统也能够提供标准的时钟源。利用北斗导航系统时钟给空管设备授时,可消除单一GPS时钟授时存在单点故障隐患,使民航安全生产得到保障。基于此现状,研究基于北斗和GPS系统的授时系统在空管设备中的应用。

2 授时方式简介

(1)串口报文对时

串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。串口报文对时也称软对时,是利用一组时间数据(年、月、日、时、分、秒)按一定的格式、速率和顺序等,通过串行通信接口发送给被授时装置,被授时装置利用这组数据预置其内部时钟。常用的串行通信接口为RS-232和RS-422/RS-485.串口报文对时的优点是数据全面、不需要人工预置。

(2)NTP网络授时

NTP(Network Time Protocol)是网络时间协议,它是用来同步网络中各个计算机的时间的协议。网络时钟传输的是以1900年1月1日0时0分0秒算起时间戳的用户数据协议(UDP)报文,周64位表示,前32位为秒,后32位为秒等分数。网络中报文往返时间是可以估算的,因而采用补偿算法可以达到精确对时的目的。

NTP的基本工作原理如下图所示。

T1:客户端请求发送时间

T2:服务端收到请求的时间

T3:服务端答复时间

T4:客户端收到答复的时间

通过这四个时间戳,我们可以计算出NTP报文的往返时间Delay=(T4-T1)-(T3-T2),客户端相对服务端的时间差offset=((T2-T1)+(T3-T4))/2。网络方式对时的优点是基于现有网络,物理实现方便,新引进的空管设备大部分均支持NTP授时,本次课题也是基于此种授时方式进行研发。

3 基于UM220研发的北斗_GPS双模授时系统设计

该系统是基于和芯星通的UM220-III N双系统高性能GNSS模块、51单片机和网络模块W5500开发,使用常见的51单片机作为处理器,利用STC12C5A60s2的串行接口接收UM220模块输出的NMEA0183语句数据,通过单片机、网络模块和RT1602C型通用液晶显示模块相结合,完成网络授时和时间显示功能,该系统设计思路如下:

3.1硬件设计

卫星时间接收模块:采用UM220-III N芯片模块,该模块能够同时支持BD2 B1,GPS L1两个频点,接收北斗和GPS卫星信号,并通过软件配置选择模块上串口输出数据,可选择只接收北斗卫星信号或者只接收GPS卫星信号或者两者同时接收,本次研发是选择同时接收GPS和BD卫星信号。该模块串口1为主串口,输入输出信号类型为LVTTL电平,默认波特率为9600bps,最高可以设为115200bps,可自行配置。模块上还集成了MAX232芯片,提供EIA/TIA-232-E标准电平,以便与PC机等通过RS232串口进行通信。模块输出的时间信息,通过串口发送给51单片机进行接收处理。

服务器模块:W5500+STC51单片机模块中W5500是一款TCP/IP嵌入式以太网控制器,提供了更加简易的互联网连接方案,W5500集成了TCP/IP协议栈,10/100M以太网数据链路层及物理层,内嵌32K字节片上缓存以供以太网包处理,能同时使用8个硬件socket独立通讯。STC51单片机简单易学,应用广泛,价格便宜,此次研发选用的是51单片机中的STC12C5A60s2芯片,该芯片是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

时间接收模块输出的时间信息输出至服务器模块的P30和P31引脚,经过51单片机串口中断完成时间接收,通过STC12C5A60s2+W5500搭建硬件平台,通过指令编程构造的SNTP服务器,完成网络授时功能。

3.2软件设计

本系统软件由5个模块组成。分别是系统初始化模块,串口中断处理模块,UDP服务器模块,SNTP数据包收发处理模块,数据显示模块。

系统初始化模块:在用户对设备加电时,对单片机的硬件端口、液晶显示模块、W5500模块做初始化操作;

串口中断处理模块:在UM220接收到时间信息后,触发STC12C5A60s2串口中断,利用编程指令完成时间信息接收和处理;

UDP服务器模块:由于NTP协议工作于UDP模式,利用编程指令构造UDP协议,定义端口运行于UDP模式,定义网络参数变量,定义好UDP模式下数据的接收和处理功能。

SNTP数据包收发处理模块:接收并处理接收到的SNTP数据包,解析数据包时间信息,构造SNTP协议并发送NTP报文给被授时用户。

数据显示模块:负责将接收到的时间信息,显示到1602显示屏指定位置。

4 结束语

基于UM220研發的北斗_GPS双模授时系统,不仅能够同时接收北斗和GPS两种卫星时间提供精确的时间信息,而且具有硬件电路简单,编程方便,性能稳定的特点,并且较好的同时实现了NTP授时和串口报文授时两种授时功能,满足了大部分空管设备对授时系统的需求,具有一定的推广使用价值。

猜你喜欢
北斗单片机
“北斗定位仪”和“北斗系统”是一回事吗
北斗导航卫星助我去旅行
一步之遥
“北斗港”再发两星
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器