引言
随着近年来科技的发展以及人们对通信及导航技术的要求进一步提高,以全球定位系统(GPS) 定位技术为主的定位导航及监控技术得到了高速的发展。GPS导航定位技术在众多的行业中都得到了广泛的应用,如交通、航海、安全等众多的领域。然而,大多数已经投入使用的GPS导航监控设备里,很少有通过无线网络把重要的数据传输给监控者功能的设备。其余附带了数据传输功能的设备大多数也仅仅是通过发送短消息的方式进行重要数据的传输和接收,但是由于短消息本身具有延时不确定,速度慢以及容易丢失等缺点,使得整个系统的稳定性下降。
本系统通过基于全新的GPRS无线网络来发送重要数据,采用大屏幕的TFT彩色液晶屏作为地图显示设备,使定位的可视化效果及数据传输功能的稳定性都得到了极大的加强。
1 系统组成及特点
在本导航设备中,涉及的核心技术是通用分组无线业务GPRS和全球定位系统GPS,下面简单介绍这两个系统的核心模块。
GPS(Global Positioning System,全球定位系统),是美国的国防导航卫星系统,是一个全球性、全天候、全天时、高精度的导航定位和时间传递系统。24颗卫星位于6个倾角为55°的轨道平面内,高度为20 182 km,周期近12小时。卫星用两个 L波段频率发射单向测距信号,区别不同卫星采用码分多址。它是一个军民两用系统,提供两个等级的服务。GPS系统是为全球范围内的飞机、舰船、坦克、地面车辆、步兵、导弹以及航天飞机等提供全天候、连续、实时、高精度的三维位置、三维速度和精确时间,因此,具有极高的军用价值和民用前景。
GPRS(General Packet Radio Service,通用无线分组业务),是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接。通俗地讲,GPRS是一项高速数据处理的技术,方法是以“分组”的形式传送资料到用户手上。虽然GPRS是现有GSM网络向第三代移动通信演变的过渡技术,但是它在许多方面都具有显著的优势。GPRS是欧洲电信协会GSM系统中有关分组数据的标准。它采用信道捆绑(目前GPRS 的设计可以在一个载频或8 个信道中实现捆绑) 和增强数据速率的方法实现高速接入,理论上可提供高达115 kbps的空中接口传输速率,使若干移动用户能够同时共享一个无线信道,一个移动用户也可以使用多个无线信道。实际发送或接收数据包的用户仅占很少一部分网络资源,并且网络容量只有在实际传输时才被占用。GPRS与现有的GSM语音系统最根本的区别是: GSM是一种电路交换系统,而GPRS是一种分组交换系统。因此,GPRS特别适用于间断的、突发的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输。这一特点正适合大多数移动互联和设备对传输数据的要求。
GPS-GPRS定位系统车载终端的组成如图1所示。
导航仪的大致工作流程为:首先,终端导航设备通过自带的GPS接收模块获得自身的具体地理位置信息以及附属信息(如行驶速度和时间等)。然后,通过对内置的海量存储设备中的地图,把其对应当前位置的地图部分在TFT彩色液晶屏上显示出来,并且同时显示自身的状态(如速度、时间、收到了控制中心的何种消息等),设置自带的GPRS模块拨号上网,实现与Internet的连接。接下来,就可将刚才通过GPS接收模块所获得的具体信息传输给指定的网络服务器。
网络服务器通过特定的上位机软件或相应的传输协议,对所监控的终端设备进行当前所在的位置、速度等相关信息的实时监控,并可通过网络对受控终端进行控制,实现移动终端与监控中心的双向数据传输,完成对受控终端运行状态、安全状态、技术状态的监控。
2 导航系统原理
整个导航系统的原理框图如图2所示。其中核心控制器使用基于ARM7内核的AT91SAM7S64;GPS接收模块采用瑞士UBlox公司的TIMLH,信号接收能力强;GPRS模块采用Motorola公司的G20无线模块,特点是内嵌了TCP/IP协议,使用简单,性能稳定,显示部分采用的是Sharp公司生产的8寸TFT彩色液晶屏,通过显示当前位置的彩色地图,达到良好的可视化效果。片外存储设备使用的是Samsung公司生产的大容量Flash存储体,优点是价格便宜,与控制器的接口简单(高速SPI总线)。
本导航终端主要的功能如下:
① 终端用户进行当前所在地理位置的查询;
② 当获得了当前的地理位置信息后,在TFT液晶屏上显示出对应的地图区域;
③ 导航终端可对指定了网络服务器发送自身的相关信息,如地理位置、自身状态等;
④ 导航终端通过接收网络服务器发送的控制命令进行相应的控制;
⑤ 终端用户可以通过GPRS模块拨打电话。
系统的工作原理如下:
导航终端的核心控制部分是基于ARM7内核的AT91SAM7S64微控制器,其核心是对GPS接收模块的定位数据读取;对GPRS模块的控制,包括连接Internet、向网络监控服务器发送数据和读取服务器发送过来的数据;最后是针对Flash存储体的控制,通过对当前获得的地理位置信息,读取存储在Flash存储体中所存储的地图的对应部分,然后在TFT彩色液晶屏上显示出来。
其中,控制器对GPRS模块的控制是通过串行口UART0实现的,通过发送对应的AT命令实现对G20模块的控制,如连接Internet、向服务器发送信息和接收数据、拨打电话等。关键命令如下:
at+mipcall=1,cmnet//建立一个无线GPRS链接
+MIPCALL: 10.103.201.135
//返回本地IP地址(注:当GPRS模块拨号上网后,会获得一个服务器提供的唯一IP,这里以10.103.201.135为例)
at+mipopen=1,2000,"10.103.67.30",3000,1
//打开一个SOCKET,本地端口为2000,目标IP地址为
//“10.103.67.30”
OK
+MIPOPEN: 1,1 //返回目标端口为3000,协议类型为UDP
at+mipsend=1,"41424344" //向服务器发送“ABCD”4个字母,这里以发送“ABCD”字//符为例,来代替所要发送的数据
+MIPSEND: 1,1367
OK//发送成功
at+mippush=1//准备接收数据
+MIPPUSH: 0
OK//接收数据成功
+MIPRUDP: 211.139.189.180,47280,1,5,5152535455 //接收到服务器发送来的数据“QRSTU”字符
对GPS模块的数据接收是通过串行口UART1实现的,通过设定GPS模块指定的波特率从模块的串行口获得定位数据。GPS通用的命令格式是NMEA?0183,而最需要的关键信息是其中的一组定位信息。如果此时GPS接收机和卫星的通信正常,则可以接收到的定位信息的那组数据格式如下:
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
数据说明如下:
$GPRMC代表GPS推荐的最短数据;
204700 UTC_TIME代表24小时制的标准时间,按照小时/分钟/秒的格式;
A A或者 V A表示数据“OK”,V表示一个警告;3403.868 LAT纬度值,精确到小数点前4位,后3位N LAT_DIR N表示北纬,S表示南纬;
11709.432 LON经度值,精确到小数点前5位,后3位W LON_DIR W表示西经,E表示东经。
如果当前没有和卫星取得联系,那么字符串的格式为:
$GPRMC,UTC_TIME,V,...
下面是一个例子:
$GPRMC,204149,V,,,,,,,170698,,*3A
由于这里仅仅需要接收的信息为定位信息,即GPS推荐的最短数据,所以在接收GPS模块的数据时,只需要判断每行数据开头的关键字是否为“$GPRMC”,如是,则接收下来。
最后是针对Flash存储体和TFT彩色液晶屏的控制。这里,CPU使用普通的SPI高速串行总线来驱动Flash存储体。可以从当地的勘测部门获得普通精度的数字彩色经纬地图,并将其存储到Flash存储体中,而用普通的I/O引脚来驱动TFT彩色液晶屏,将从GPS模块里获得的定位信息进行分析,然后通过处理,再在LCD上面显示Flash存储体中所存储的地图的对应部分。
3 系统软件设计
在整个GPS导航系统中,全套软件系统由用户软件、导航仪底层驱动软件和服务器端控制软件组成。这里,以导航仪底层驱动软件来说明整个系统的软件是如何设计和运作的。
整个导航仪底层驱动软件划分成若干个模块,由主模块和多个子模块组成。这里,使用了实时嵌入式系统μC/OS-II,其优点是功能强大,对系统资源的占用要求小,实时响应,而且可以很轻松地实现多个任务的调度。这里,将所有的子程序设置成不同的任务,如下:
① OSTaskCreate(SystemInit, (void *)0, (OS_STK *)&SystemInit[OSTaskStkSiz], 4);
//整个系统的初始化,作为第一个任务,包括对CPU、GPRS、GPS以及LCD的初始化工作
② OSTaskCreate(GPS_Get_Data, (void *)0, (OS_STK *)&GPS[OSTaskStkSiz], 5);
//将从GPS模块读取定位信息作为第二个任务
③ OSTaskCreate(GPRS_Send_Data, (void *)0, (OS_STK *)&GPRS_S[OSTaskStkSiz], 6);
//设置通过GPRS模块向指定的网络服务器发送数据作为一个任务
④ OSTaskCreate(GPRS_Get_Data, (void *)0, (OS_STK *)&GPRS_R[OSTaskStkSiz], 7);
//设置通过GPRS模块从指定的网络服务器接收数据作为另外一个任务
⑤ OSTaskCreate(LCD_Draw, (void *)0, (OS_STK *)&LCD[OSTaskStkSiz], 8);
//驱动TFT LCD让其显示对应当前地理位置区域的地图部分,作为整个显示部分的任务
⑥ OSTaskCreate(Flash_Drive, (void *)0, (OS_STK *)&LCD[OSTaskStkSiz], 9);
//驱动Flash存储体来读取对应地理位置信息的地图部分,从而为LCD显示部分作好准备
完成整个系统软件的模块化设计后,通过调用OSStart()函数让整个系统运行起来。从以上的软件组成说明,可以了解整个系统软件的工作流程如下:
① CPU通过GPS模块获得当前的地理位置信息。
② CPU利用刚才所获得的GPS定位信息,可以从Flash存储体中获得对应当前区域的地图部分,然后通过驱动TFT彩色液晶屏将其显示出来。
③ 如需要,CPU通过GPRS模块拨号连接上Internet后,将其所获得的定位信息发送到指定的网络服务器上,或接收从服务器上发过来的数据。
④ 接收到服务器的控制命令后,返回响应并采取相应措施,如停止GPS数据的接收,改变导航终端通过GPRS网络向服务器发送数据的周期等。
在实际的测试中,使用了当地普通精度的数字彩色经纬地图,并将其装载到了导航系统的Flash存储体中。通过在实际露天的测试对比,本导航系统可以良好地通过读取当前的GPS定位信息,在TFT彩色液晶屏上显示出对应当前区域的地图部分,并在安装了特定网络监控软件的服务器上很好地接收到导航终端发送过来的定位信息以及相关数据。
结语
在本套导航系统中,其核心设计与以往传统的GPSGSM定位系统有着很大的区别。首先,利用GPRS无线网络来传输数据与以往通过GSM网络发送短信的方式相比,无论是运营成本,还是可靠性都得到了极大的改善,尤其是其运营成本,相比起传统的GPS-GSM定位系统下降了2个数量级。其次,本导航系统中良好的可视化效果为用户提供了相当优秀的导航界面,相比起来,市面上传统的GPS定位系统仅仅显示了当前的GPS定位的数据,当前的周边地理状况则无法良好地提供给用户;而本套导航系统,控制核心采用的高性能的基于ARM7内核的微控制器,因而无论是性能还是可升级性方面,都比起使用传统的8位单片机作为控制核心有着相当大的优势。目前,随着人们对GPS导航技术的要求一步步的提升,以及GPRS网络在国内的高速普及,我们相信以这两者相结合的新一代导航技术将会获得极大的成功。