|
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);
//驱动TFTLCD让其显示对应当前地理位置区域的地图部分,作为整个显示部分的任务
⑥OSTaskCreate(Flash_Drive,(void*)0,(OS_STK*)&LCD[OSTaskStkSiz],9);
//驱动Flash存储体来读取对应地理位置信息的地图部分,从而为LCD显示部分作好准备
完成整个系统软件的模块化设计后,通过调用OSStart()函数让整个系统运行起来。从以上的软件组成说明,可以了解整个系统软件的工作流程如下:
①CPU通过GPS模块获得当前的地理位置信息。
②CPU利用刚才所获得的GPS定位信息,可以从Flash存储体中获得对应当前区域的地图部分,然后通过驱动TFT彩色液晶屏将其显示出来。
③如需要,CPU通过GPRS模块拨号连接上Internet后,将其所获得的定位信息发送到指定的网络服务器上,或接收从服务器上发过来的数据。
④接收到服务器的控制命令后,返回响应并采取相应措施,如停止GPS数据的接收,改变导航终端通过GPRS网络向服务器发送数据的周期等。
最终搭建成的导航系统如图3所示。
| 图3
| 在实际的测试中,使用了当地普通精度的数字彩色经纬地图,并将其装载到了导航系统的Flash存储体中。通过在实际露天的测试对比,本导航系统可以良好地通过读取当前的GPS定位信息,在TFT彩色液晶屏上显示出对应当前区域的地图部分,并在安装了特定网络监控软件的服务器上很好地接收到导航终端发送过来的定位信息以及相关数据。
结语
在本套导航系统中,其核心设计与以往传统的GPSGSM定位系统有着很大的区别。首先,利用GPRS无线网络来传输数据与以往通过GSM网络发送短信的方式相比,无论是运营成本,还是可靠性都得到了极大的改善,尤其是其运营成本,相比起传统的GPS-GSM定位系统下降了2个数量级。其次,本导航系统中良好的可视化效果为用户提供了相当优秀的导航界面,相比起来,市面上传统的GPS定位系统仅仅显示了当前的GPS定位的数据,当前的周边地理状况则无法良好地提供给用户;而本套导航系统,控制核心采用的高性能的基于ARM7内核的微控制器,因而无论是性能还是可升级性方面,都比起使用传统的8位单片机作为控制核心有着相当大的优势。目前,随着人们对GPS导航技术的要求一步步的提升,以及GPRS网络在国内的高速普及,我们相信以这两者相结合的新一代导航技术将会获得极大的成功。
参考文献
[1]曹军.基于GPRS实现桥梁检测远程数据传输,森林工程,2006(2).
[2]毕危危.基于GPRS和DGPS的车辆管理系统,北京交通大学学报,2006(2).
[3]Motorola.G20_AT_Commands,2005-04-06.
[4]UBlox.ApplicationforTIMLHGPSmodule,2005-03.
[5]张勤,李家权.GPS测量原理及应用.北京:科学出版社,2005-07.
[6]徐爱钧.IAREWARM嵌入式系统编程与实践.北京:北京航空航天大学出版社,2006.
[7]李平均.基于GPRS网络的单片机的Internet接入.微电子学与计算机,2006(3) |
|