0 引言
随着汽车等各种车辆交通工具的普及,车辆导航设备的需求也变得日益旺盛。作为车载设备不仅要有可靠的性能,而且需要具有便携、低功耗和低价格等特点。而采用基于ARM微处理器的嵌入式系统与GPS模块相配合的GPS导航终端机的设计方案,可以很好的满足这一系统需求。为此,本文介绍了一种利用ARM9开发板和GPS模块实现GPS导航功能的终端机的软硬件结构和设计方法。
1 GPS导航系统结构
本文所介绍的GPS全球定位导航系统按功能可分为嵌入式主控模块、GPS模块、显示模块、扩展模块及供电模块等五大部分。
嵌入式主控模块基于S3C2440处理器,主要负责对GPS导航模块数据的响应、处理和控制。在硬件上,主控模块就是一个嵌入式开发板,包括触摸LCD接口电路、SD卡接口电路、FLASH、SDRAM等。而在软件上,主控模块上应当运行嵌入式Linux系统。而嵌入式Linux操作系统的主要作用是管理程序模块进程并调度进程等。
GPS模块主要用于接收导航卫星数据,并以特定的格式发送给主控模块。显示模块可选用3.5寸TFT带触摸屏LCD,主要用于与用户进行交互。扩展模块主要指的是SD卡。供电模块主要为系统正常工作提供电源。图1所示是该系统的结构图。
2 GPS数据的提取
GR-87型GPS模块的输出语句遵循NMEA-0183标准。该标准的语句都是以“$”开始,以结束。 “$”之后是5字符地址,头两个字符为发送者识别码(GPS为“GP”),后3位为语句名称。定位信息中的数据由“,”来划分。GPS模块一般每秒可以输出一次NMEA-0183格式语句。在导航系统中,一般只需要用到时间、日期、经纬度、速度。而由于RMC语句完整包含了系统所需的上述信息,因此。只需要对RMC语句进行提取即可。图2所示是对GPS数据进行提取的具体流程。
3 导航地图的实现
在获得了经纬度等定位信息之后,还需要将它们直观的显示在电子地图或其它显示媒体上,这样才能真正起到导航的作用。要想将其准确的显示在电子地图上,就需要用一定的算法进行转化,即地图匹配算法。
一般来说,地图匹配的基本思路是通过车辆的GPS轨迹与地图上矢量化的路段对象进行匹配,从而寻找当前所行进的道路,并将当前的GPS定位点投影到道路上。
地图匹配的关键是确定匹配点,设计时可以用投影法来寻找匹配点。投影法的基本思路是依据点到直线的距离来确定最小的值为投影的匹配点,并用最邻近法进行处理,然后通过设置阈值来滤掉错误匹配点,得到初步结果,从而完成点到线的匹配。
具体的实现方法是先预处理道路层,再将道路转换为折线段,找到当前道路,然后把当前定位点投影到道路上,再找到离定位点最近的公路图层中的一条线段,之后再计算得到点到线上距离最短的点,最后查找各层中在误差范围之内的道路。
其算法的基本流程代码如下:
导航地图的实现可以采用嵌入式图形界面工具Qtembedded来实现。该图形界面为人机交互界面,用户可以通过屏幕来了解导航信息,也可以直接操作触摸屏来操作系统,如地图的缩放、查看定位信息等。