基于USB便携式北斗/GPS导航授时系统设计

2016-11-03 00:43姜华王军姜志杜博军
关键词:解码串口北斗

姜华,王军,姜志,杜博军

(1.苏州科技大学电子与信息工程学院,江苏 苏州 215009;2.中国白城兵器实验中心,吉林 白城 137001)

基于USB便携式北斗/GPS导航授时系统设计

姜华1,王军1,姜志2,杜博军2

(1.苏州科技大学电子与信息工程学院,江苏苏州215009;2.中国白城兵器实验中心,吉林白城137001)

针对便携式计算机系统时间定位信息不准问题,提出一种基于USB便携式北斗/GPS双模授时定位的系统设计。介绍了USB便携式导航授时系统硬件设计和利用Visual Studio 2010软件在Windows 10系统下的进行软件设计,即串行通讯的初始化编译和使用C++对卫星导航数据的解码,同时利用MFC的应用程序开发功能设计解码后对数据进行显示的窗口。实验证明:在Windows 10系统平台下USB传输卫星信息稳定,数据显示界面简洁,且时间精度达到20 ns,定位信息精度为3m。

便携;授时/定位;Visual Studio 2010;窗口设计

便携式计算机提供的时间和位置信息是由网络产生的,这种方式提供的数据精确度很低,并不能满足工业领域要求。针对这种数据精度过低的问题,提出利用外部主控芯片对北斗/GPS接收到的卫星导航数据进行解码,通过PCI总线接口给计算机提供可靠数据[1]。这种方法不足之处在于:对于现有的便携式计算机已无PCI插槽,且过于依赖网络存在。针对上述不足,现提出一种基于Windows 10操作系统下,使用USB协议传输北斗/GPS的卫星导航数据的系统设计,无需内部插槽,利用计算机进行数据解码以及设计应用软件实时显示解码后的数据。

1 USB定位授时系统方案

系统包括四个模块:北斗/GPS卫星导航数据接收模块、通讯协议转换模块、计算机串口通讯模块和数据解码以及窗口设计模块。北斗/GPS双模授时的芯片连接天线接收卫星导航信息,通过USB接口转换模块传输到计算机的COM口,计算机CPU发送指令提取$GPRMC的码流,利用VS 2010软件编写C++程序对$GPRMC码流的时间定位信息进行提取,并设计窗口执行软件来接收显示数据,如图1所示。

图1 系统框架

2 系统硬件设计

北斗/GPS授时定位采用和芯星通有限公司的UM220芯片,是双系统导航授时模块,可同时支持北斗和

GPS的两个频点,并且功耗仅有350mW,提供了3个TTL电平的串口通讯引脚(UART),多种波特率可供选择,UM220的封装是属于紧凑型的,体积小、功耗低和成本低的优越性让其成为便携式定位/授时的首选[2]。

USB接口是计算机通信的常用接口,而芯片的集成板上的接口属于RS232类型,所以卫星导航数据传输到计算机之前要经过接口转换器PL2303,通过一个RS232的全双工异步串行通信装置与USB直接连接,其通信方式完全兼容USB2.0规范,可在多种不同的操作系统下安装运行它的驱动,系统硬件设计如图2所示。

图2 硬件连接图

3 数据传输解码设计

3.1通讯串口初始化设计

计算机接收卫星导航数据之前需要对USB和计算机之间的串行通讯做初始化处理,串口读取数据的方法有很多,串口的参数信息都被创建在文件下再打开。VS 2010在Windows 10系统下对串口的设置都可以调用指定函数[3]。运用类函数库中个函数指定初始端口为COM1,输入数据模式为二进制的形式,输入缓存空间分配为1 024字节,输出缓存空间为512字节,对执行串口通讯的端口制定参数设置:波特率为9 600 bps、无校验位、8个数据位、1个停止位[3],初始化流程如图3所示。

图3 初始化函数类型

3.2时间位置信息解码设计

3.2.1数据帧格式

数据主要是通过天线接收到的卫星数据,这种数据具有固定的帧结构,而且在不经处理前这种数据都是通过字节流的方式传输到计算机内,所以必须对北斗/GPS的数据帧结构有所了解,才能对时间、位置等信息进行提取。软件系统主要提取的数据是GPRMC码流,是导航卫星的精简数据,一个数据帧共有17个字段[4]。数据帧都是以$加上数据格式名称的大写字母作为开头,逗号做为不同字段之间的分隔符[5],这也是解码过程中区分数据的依据,具体数据类型分布如表1。

表1 数据帧格式

3.2.2数据信息解码方法

接收完数据后将数据进行缓存,需要接收以$GPRMC为帧头的数据,检测出$GPRMC的帧头后直接对数据的导航参数作提取,逗号会将每种参数隔开,所以通过所记逗号的个数来做依据[6],逗号个数的变化就是数据类型的改变,当计数到1时,且此刻串口接收数组中对应的数值不是ASCLL码0x24,可确定时间数值被放在数组里面,定义一个CString类型的变量[7],用这个变量来存储时间的数值,时间数值提取出来后需要对数值进行分离,按小时、分钟、秒的顺序依次对数组进行提取,如图4所示,并将所得到的时间做变换,北斗/ GPS芯片内部传达的时间信息是格林尼治时区的时间,所以需要将格林尼治时间变为北京时间,解码后所得到的时间上再加上8个小时便可以得到准确的北京时间[8]。

3.3数据显示与窗口设计

在界面软件设计中,采用VS 2010开发平台,将Microsoft Communications Control,version 6.0的控件添加到窗口中,使用类函数可以创建窗口中的图标大小和按键功能,也可用软件中控制窗口里的按钮样式[9],双击按钮来创建按钮本身的响应函数,系统中使用了一个开始通讯的按钮,具体执行流程如图5所示。

解码后的数据以CString类型存放在各个对应的变量中,实验中显示数据是以静态文本的形式,用静态文本的控制变量对应显示,使用m_ctrlhour.Format()和m_ctrlCom.SetwindowText()来显示被解码后的数据[10]。

图4 北斗/GPS数据解码流程图

图5 按钮响应函数

4 实验结果

基于USB便携式导航授时系统的设计,将天线接收到的卫星导航数据经过北斗/USB双模授时芯片的处理,再将数据的传输协议转换成USB协议后,通过串口传输到计算机中,在计算机里面使用专用窗口对数据进行显示,实验传输系统如图6所示。

图6 硬件系统

实验使用的便携式计算机的操作系统为Windows 10系统,启动北斗/GPS定时导航系统,定位时间仅需50 s,通过天线所接收到的时间、位置信息解码后数值显示稳定,时间精确度可达到20 ns,定位精度达到3 m,根据需要可对数据进行不同精度的解码和显示,经实验证明该系统可执行度高、稳定性好、数值可靠,且程序可移植性较高,系统实验结果如图7所示。

图7 实验结果图

5 结语

USB便携式授时定位系统通过北斗/GPS导航定位模块为计算机提供可靠时间定位信息,在VS 2010的编译环境下利用C++语言对北斗/GPS数据进行解码和串口初始化,并在计算机内使用专用窗口对解码数据进行显示的功能,为应用层开发带来便利。USB便携式定位授时系统的便携性、稳定性、精确性等优点,满足了目前授时定位工业领域的需求。

[1]杨会玲,唐彬.基于PCI-E的北斗/GPS双模授时系统设计[J].苏州科技学院学报(工程技术版),2014,27(1):68-70.

[2]张超,顾济华.基于GPS/BDS的移动目标定位追踪系统设计[J].现代电子技术,2015,38(17):121-123.

[3]赵素娟.基于MOXA多串口卡的多串口通信的VC++实现[J].计算机与现代化,2011(8):117-119.

[4]张波涛,闫锦丽,罗维.基于VC++6.0实现的串口通讯[J].通讯世界,2015(13):109.

[5]史小雨,程鹏飞,蔡艳辉,等.差分GPS数据通信格式RTCM3.1及其解码算法的实现[J].测绘通报,2012(6):4-6.

[6]陈磊,李康.基于ARM的GPS接收机解码系统设计[J].科技信息,2013(19):90-91.

[7]刘斌,梁美美,李欣.基于NIOSH的GPS信息接收系统设计与实现[J].现代电子技术,2013(6):105-108.

[8]李必凯.Visual C++编程获取GPS观测数据的探讨[J].信息通信,2013(5):69-69.

[9]傅瑶,韩诚山.多媒体定时器方法中MFC跨线程传递窗口类消息的实现[J].微型电脑应用,2014,30(6):5-6.

[10]卫洪春,彭小利,蒲国林.MFC窗口创建过程的研究[J].现代电子技术,2014,37(11):151-154.

Navigation timing system design based on portable UBSBeidou/GPS

JIANG Hua1,WANG Jun1,JIANG Zhi2,DU Bojun2
(1.School of Electronic and Information Engineering,SUST,Suzhou 215009,China;2.Bai Cheng Ordnance Test Center of China,Baicheng 137001,China)

As to the inaccurate time and position information of the portable computer system,this paper presents a system design based on portable USB and Beidou/GPS dual-mode positioning.The paper introduces the hardware design of USB portable positioning timing system and the software design under the windows system by the use of VS 2010,which is also the initialization of serial communication and the decode of the satellite navigation data by C++,and discusses the presentation of data after decoding by the application development function of MFC.Test results show that the information of USB is stable,the data display interface is simple,the time accuracy is 80 ns,and the accuracy of the positioning information is 5 m under theWindows 10 system platform.

portable;timing/location;VS 2010;window design

TP31

B

1672-0679(2016)03-0077-04

2015-11-02

江苏省普通高校研究生科研创新计划项目(SKCX16_044)

姜华(1993-),男,江苏泰州人,硕士研究生。

通信联系人:王军(1976-),男,副教授,博士,主要从事光电信息处理研究,Email:281109685@qq.com。

(责任编辑:卢文君)

猜你喜欢
解码串口北斗
《解码万吨站》
北斗时钟盘
浅谈AB PLC串口跟RFID传感器的通讯应用
解码eUCP2.0
“北斗”离我们有多远
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
首个北斗全球“厘米级”定位系统开建
中国的北斗 世界的北斗
数字电源内部数据传输的串口通信方法实现