基于 GPS 的船舶数据模拟系统的研究
朱文凯
(大连海事大学,信息学院,辽宁 大连,116026)
摘要:本文主要研究了 GPS 数据模拟器,该模拟器的功能就是要模拟 GPS 的数据,实时显示船
舶的动态位置与航向,航速,并把这些数据通过串口发送给接收设备。GPS 数据模拟器系统分
为实时显示模块和数据传输模块。本文研究的重点是数据传输模块,目的是要实现输出数据
能够通过多个串口传输出去。本系统两个模块的连接最终实现了 GPS 和罗经数据模拟器的功
能。
关键词:GPS, NMEA-0183,RS232,串口。
1 引言
当今社会,GPS【1】【3】在导航,通信,定位等方面起着越来越重要的作用。真实的GPS接
收机无法满足船舶模拟器的要求。对于船舶模拟器来说,GPS导航定位模块需要实时反应当前
模拟船舶的船位信息。然而,真正的GPS接收机是不随模拟船舶运动的,它所显示的信息只能
是模拟器所在地的位置信息。这些信息在模拟器中将被视为不真实的。因此,它失去了同船
舶模拟器的交互,无法满足船舶模拟器对GPS导航定位模块的要求。本文主要研究了GPS数据
模拟器的功能,作用,工作原理,实际意义,以及GPS的数据格式,最后设计出方案并实现了
方案。
2 GPS 的数据格式
NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式。NMEA-0183接口的
输出数据使用二根信号线,符合RS-232功能接口标准,GPS的数据传输采用异步串行数据格式。
其发送到计算机的数据主要由帧头、帧内数据和帧尾组成,根据数据帧的不同,帧头也不相
同,主要有"$GPALM", "$GPGGA",以及“$GPRMC',等。这些帧头标识了后续帧内数据的组成
结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。数据结构为1位起始位,8位数据
1
位和1位停止位,传送的数据为ASCII码。每个语句所有字符都是ASCII码,每个语句最大长度
为80个字符,‘$’符号前5个字符必须是‘A∼Z’,其中前2个字符为输出设备识别符,后3
个字符为该语句的信息类型,每组输出信息以“,”为分隔符。
下面介绍最常用的GN-77N输出语句,‘$GPGGA’的格式。GPS固定数据输出语句
($GPGGA)是一帧GPS定位的主要数据,也是使用最广的数据。为了便于理解,下面举例说明
$GPGGA语句各部分的含义。例1是用GN-77N和开发的软硬件接口,接收到的$GPGGA语句的内
容。
例1: $GPGGA, 060708, , N, , E, 1, 07, , ,M,,
M, ,*65
其标准格式为:$GPGGA, (1), (2), (3), (4), (5), (6), (7), (8), (9), M,
(10), M,(11),(12)*hh(CR)(LF),
其中:“$”为语句起始标志;“GP”为交谈标识符;“GGA”为语句标识符;“,”为数
据区分割符;(CR) (LF)为语句结束符。
各部分所对应的含义为:
(1)定位UTC时间:06时07分08秒
(2)纬度(格式:即dd度,分);
(3)N/S(北纬或南纬):北纬38度分;
(4)经度(格式:即ddd度,分);
(5)E/W(东经或西经):东经121度分;
(6)质量因子(0=没有定位,1=实时GPS, 2=差分GPS): 1=实时GPS;
(7)可使用的卫星数(0-8):可使用的卫星数=07;
(8)水平精度因子(~);水平精度因子=;
(9)天线高程(海平面,~,单位:m);天线高程=);
(10)大地椭球面相对海平面的高度(~,单位:m):;
(11)差分GPS数据年龄,实时GPS时无:无;
(12)差分基准站号(0000~1023),实时GPS时无:无; *总和校验域;hh总和校验数:65
2
(CR)(LF)回车,换行。
3 系统的工作特性
RS-232C【4】是由美国电子工业协会(EIA)正式公布的在异步串行通信中应用最为广泛的标
准总线。它包括了按位串行传输的电气和机械方面的规定。适合短距离或带调制解调器的通
信场合。它适合于数据传输速率在0-20000b/s范围内的通信。这个标准的串行通信接口的有
关问题,如信号线功能、电器特性都作了明确规定。由于通信设备商都生产与RS-232制式兼
容的通信设备,因此,它作为一种标准,目前己在微机和单片机系统中广泛采用。
目前的许多航海仪器,如AIS,ARPA,RADAR等的通信接口都是标准的RS-232串行通信接口。
因此,为了与航海仪器连接调试,本系统的数据输出接口也要求是标准的RS-232串行通信接
口。
波特率是进行串行通信的关键参数,通信双方波特率的一致性直接影响到数据传输的正
确性。当误差较大时,无法进行正确通信。在RS232的串口通信标准中,波特率以1200 2400,
4800,9600最常见。IBM-PC机的串行通信控制器采用的是8250,其波特率是通过
专用时种由16位除法器产生,可以精确的定出各种波特率。
4 系统方案的设计与实现
GPS数据模拟器主要由模拟显示和信息传输两个模块组成。其中模拟显示是指船位信息显
示。模拟显示模块采用PC机进行图形编程,用PC机显示器显示。信息传输是指所模拟的GPS
数据的输出,并需要加以扩展。信息传输模块由单片机系统实现。
GPS数据模拟器的操作界面采用Windows图形显示模拟技术,操作方式、主要功能和操作响
应同实装GPS一样,能够完成在实装GPS所能进行的经度,纬度,航向,航速的显示。
由于MCS-51单片机输入、输出电平为TTL电平,而PC机配置的是RS-232C标准串行接口,二
者的电气规范不一致,因此要完成PC机与单片机的数据通讯,必须进行电平转换。该电平转
换电路的实现可由MAXIM公司的MAX232集成芯片来完成。
本系统采用MAX232作为单片机电平和RS-232电平的转换芯片。MAX232芯片是MAXIM
公司生产的一种EIA-232C的通信接口包含两路接收器和驱动器的IC芯片,适用于各种单片
3
机,MAX232内部有一个电源电压变换器,可以把输入的5V电源电压变换成RS-232C输出电
平所需的土10V电压,所以使用此芯片只需要单一的+5V电源即可。实际应用中,TlIN,和T2IN
可直接接TTL/CMOS电平的MCS-51单片机的串行发送端TxD;RlOUT和R2OUT可直接接
TTL/CMOS电平的MCS-51单片机的串行接收端RxD; T1OUT , T2OUT直接接PC机的RS-232
串口的接收端RxD, RlIN, R2IN,可直接接PC机的RS-232串口的发送端TxD.要注意其发送、接收
的引脚要对应。如使TlIN接单片机的发送端TXD,则PC机的RS-232的接收端RxD一定要对应
接TlOUT引脚。同时,R1OUT接单片机的RxD引脚、PC机的RS-232的发送端TxD对应接R1IN
引脚。
TXD RXD
图 1 系统组成框图
MAX232 设
备
设
备
MAX232
CD
4051
单片机
TXD
P1
MAX232
PC 机
RS232
串口
本系统的输出有多路串口的功能,因为系统的输出数据要送给多个终端设备,如AIS,ARPA
等。CD4051是CMOS集成电路双列16脚,独立8通道多路数字转换开关。
表 1 CD4051 真值表
INH C B A 接通通道
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 … … … 不接通
系统每隔一定时间自动输出位置和观测数据帧一次。输出的数据是以数据流的形式输出,
采集的起始时刻未必是一帧数据的开始时刻,所以在数据采集时,必须先判断字头块,在接
4
收到字头后,才开始采集数据,所以判断和提取特征字“$GPGGA',存储在单片内部存储器中,
根据仪器功能再做后续处理。
为了提高CPU利用率,采用中断方式而不是查询方式接收数据。当触发串口中断时,串口
中断程序对传送过来的数据按字节处理,读出所需要的数据,如时间、经纬度、速度等。本
系统进入中断后,即开始判别,只有在判定识别符为“$GPGGA”后,方可接收其后的定位数
据;如有任何不符,则放弃接收,重新开始接收过程,接收完一个包的数据后即返回。
8051单片机的全双工串行I/0口【2】,通过异步通讯方式(UART),与串行传送信息的外设
相连接,或用于通过标准异步通讯协议进行全双工通讯的MCS-51多机系统。MCS51单片机
内部有一个功能很强的全双工串行口,该串行口有四种工作方式,以供不同场合使用。波特
率可由软件设置,由片内的定时器/计数器产生。接收、发送均可工作在查询方式或中断方式,
使用灵活方便。
由于在设计中只会用到串行口的工作方式1,所以在研究串行口波特率设置时,只研究方
式1的波特率设置。若选择波特率 B=4800baud.,MCS-51单片机的定时时间常数计算公式
为:(令:mod=0)
N=256-
B
fosc
∗×1232 =256- 48001232
6
∗×
× =248
其中 为系统晶振时钟频率,N为时间常数,初始化定时器T1,令TH1=0xF8H。 oscf
本设计中的单片机与PC机进行串口通信所采用的波特率为4800, 1位停止位、无奇偶校
验,单片机仿真器选用的晶振为。在使用串行口之前,要对其编程进行初始化,
具体步骤如下:
(1)确定定时器1的工作方式,设置TMOD寄存器为0x20,为常数自动装入的8位定时器/
计数器
(2)计算定时器1的初值,
(3)启动定时器1,设置TR1为1
(4)确定串行口的控制,令串行口工作在中断方式,打开CPU源中断。
系统程序如图2所示:
5
主程序 中断程序入口
N
清发送中断 是接收中断?串口初始化
置初值 Y
中断返回 清接收中断
开中断
接收数据
等中断
N
由通道 2 发送 是$GPGGA?
Y
中断返回 由通道 1 发送
中断返回
图2 程序流程图
5 结论_
本系统由信息显示模块和信息传输模块两个模块构成,实现了对接收数据的识别与扩展
传输,其数据传送效果和直接接入PC的COM口一样。最终实现了所要求的功能,达到了设计的
目的。
参考文献
[1] 刘大杰,全球定位系统(GPS)的原理与数据处理,同济大学出版社,1996年
[2] 蔡美琴,MCS-51系列单片机系统及其应用,高等教育出版社,2003年
[3l 张淑芳,无线电导航原理与设备,大连海事大学信息工程学院,2000年
[4] 陈显祯,单片微机开发调试与实验技术,四川大学出版社,1992年
6
The research about simulate system of ship data
based on GPS
Wenkai Zhu
Department of Information Engineering,
Dalian Maritime University, Liaoning Dalian, PRC, 116026
ABSTRACT
The main research of this text is the data simulator of GPS, the function of this simulator is to simulate
data of the GPS, show dynamic position, speed and course of the vessel, and send these datas to the
equipment through the serial port of RS232 in real time.
The data simulator of GPS system are divided into the module of showing in real time and the module of
data transmission. The emphasis of this text is the module of data transmission, which purpose is to
output data through several serial ports of RS232.
The connections of two pieces of module of this system have realized the function of the data simulator
of GPS.
Keywords: GPS, NMEA-0183, RS232 , serial port
7