3 车载GPS定位系统的软件设计
车载GPS系统的应用程序在功能上可以分为7个功能模块,即初始化模块,控制模块,GPS数据获取模块,上行数据转换模块,用户界面模块,通信模块和下行数据处理模块。
初始化模块主要实现对串口的初始化及把所有的标志位置零;控制模块主要是根据上位机的命令来执行相应的操作,比如采集GPS数据,发送当前行车状态等;用户界面模块主要功能就是把GPS数据,状态数据等在触摸屏上显示出来,同时还要可以响应触摸屏上的中断,以便实现通过触摸屏操作车载终端的功能。
GPS数据获取模块的主要功能就是通过与串口相连接的GPS模块获取当前的GPS信息;在本程序中用的是GPRMC定位语句,将忽略其它信息。提取GPRMC语句的思路是设置一个数据缓冲区,把接收到的GPS数据都放入这个缓冲区,当缓冲区满了的时候就在缓冲区中查找是否接受到GPRMC定位语句,如果没有接收到则重新接收GPS数据。如果找到了GPRMC定位语句则还要判断该语句在缓冲区中的位置离缓冲区的最大字节数是否大于62个字节。(因为本程序中需要的GPRMC定位语句所包含的字节数为62)
上行数据转换模块的主要功能是把接收到的GPS数据或是相关的状态信息转换成约定好的数据格式以便同监控中心的通信。该模块会判断需要转换的数据是GPS数据信息还是相关状态信息或是两者都有,然后选择相应的转换程序。由上面的介绍可以知道接受到的GPS数据都是顺序存放在数据缓冲区当中的,需要什么数据就到缓冲区中相应的位置提取就可以了。数据都是以字符形式存放的,所以实际要用的时候必须先转换成整形数据。下行数据转换模块的功能与上行数据转化模块的功能相反,它将监控中心发送的命令进行识别后发送给车载终端,并送用户界面模块显示。
通信模块的主要任务是完成车载终端与监控中心的通信,它既可以通过GPRS网络实现与监控中心的无线通信,也可以通过网口与笔记本电脑连接进行通信。如果车载终端与上位机的距离隔的很远可以直接通过GPRS网络与监控中心进行连接,而且通过GR47模块连接GPRS网络与监控中心连接也非常方便,只用往GPRS模块发送几条AT命令就可以了,但是监控中心必须有能上因特网的固定IP。启动车载终端的同时GR47模块也会被启动,这是模块会自动连接上GPRS网络进入命令模式。拨号成功以后就连接上了GPRS网络了,然后对于GR47模块连接的串口进行读写操作就可以实现与监控中心的无线通信了。通过网口进行通信则比较简单,直接采用Linux下的socket编程就可以实现。
根据以上各个模块的功能的定义,软件部分主流程图如图5所示:
图5 主程序流程图
4 总结
本文的创新点是采用GPRS通信网络进行无线通信代替了传统的GSM短信息通信模式,不仅节约了整个系统的运行成本,而且提高了数据的传输速度和可靠性;同时选用了工业级的带有内存管理功能的ARM9芯片AT91RM9200作为处理器,并围绕它进行电路设计,使得该终端有很高的可靠性,并且能够适应比较恶劣的环境,因为选用了带内存管理功能的ARM9芯片,所以可以移植Linux操作系统,该操作系统自带的资源十分丰富,使得应用程序的功能更加强大,同时也增加了软件的扩展性;最后本车载定位终端融合了GPS全球定位技术,GPRS无线通信技术,ARM嵌入式技术以及嵌入式Linux系统的移植与编程,属于一个交叉学科的工程项目。自该系统投入市场半年以来,创造了50余万元的经济效益。