基于嵌入式设备的个人GIS助理系统
2008-07-31
作者:马 璐, 鲍远律, 满 亢
摘 要:提出一种基于嵌入式设备的个人GIS助理系统的设计方案,并分别对嵌入式便携终端和监控平台" title="监控平台">监控平台的实现过程进行了阐述。该系统经过实际测验,达到了预期的设计效果。
关键词: GIS;Linux;ARM;嵌入式系统
近年来,地理信息系统GIS技术已经广泛地应用于汽车导航、野外测绘、物流运输及军事指挥等众多领域,但用于个人的GIS导航助理系统还不多见。针对这一现状,本文提出一种基于嵌入式设备的个人GIS助理系统的设计方案。利用本系统,可以实现个人的定位、导航、监控、报警等多种功能。
1 系统体系结构及工作原理
个人GIS助理系统由便携式终端和监控平台两个部分组成,其体系结构如图1所示。
系统的工作原理:便携式终端由个人携带,可以为用户实现定位、导航以及遇险报警等功能,当用户开启报警按钮时,用户所在位置的GPS数据信息通过GPRS网络发送到监控平台,并在数字矢量地图中显示出用户的位置,便于用户得到及时救助。
2 便携式终端的设计与实现
2.1 终端的硬件结构
便携式终端直接与用户交互,完成数字地图" title="数字地图">数字地图显示及定位、导航及报警信号的发送任务,硬件结构由如下几个部分组成:ARM处理器、显示模块、GPS模块、GPRS模块、存储模块和报警模块等,如图2所示。
2.1.1 ARM处理器
ARM处理器是整个便携式终端的核心,需要处理大量的数据及运算。为适应系统的整体性能,选用三星公司的S3C2410处理器。S3C2410基于ARM 920T内核,频率为203MHz,具有MMU虚拟内存管理单元,搭配第三方公司生产的接口板,可扩充串口、网卡、USB接口、LCD接口、JTAG接口等,方便系统的调试和运行。
2.1.2 GPS模块
GPS数据接收模块采用ROCKWELL公司的JUPITER接收器,它具有12个并行通道和高灵敏度RF部分,可快速捕捉卫星信号,在开阔空间,冷启动约1分钟,定位精度小于15m,并提供自动存储功能,可以在掉电时将当时信息固化在芯片内部。
2.1.3 GPRS模块
通用分组无线业务GPRS(General Packet Radio Service)是在 GSM基础上发展起来的一种分组交换的高效数据传输方式。相对于低传输速率" title="传输速率">传输速率的GSM(916Kb/s),GPRS具有最高可达17 112Kb/s的传输速率。GPRS具有“永远在线”的优点,按照数据流量计费,计费方式更符合用户需要。此外,GPRS支持TCP/IP协议,用户可以直接访问 Internet站点。它还可以提供一系列交互式业务:点对点面向连接的数据业务、点对点无连接型网络业务、单点对多点业务等[1]。
本设计采用西门子公司的MC39终端,它支持GPRS/GSM两种网络方式,硬件接口采用标准的RS232串口,通过它向GPRS模块发送AT命令,可以对GPRS模块进行初始设置和实现网络连接、数据传送等功能。
2.2 终端的软件设计
便携式终端的软件设计主要分为嵌入式操作系统的移植、Microwindows和PPP拨号程序的移植、嵌入式GIS程序以及报警和通信模块设计。
2.2.1 嵌入式操作系统和Microwindows的移植
众所周知,Linux系统是一款免费、开源的操作系统,具有极强的稳定性和可移植性,用户可以根据自己的需要随意更改源代码,使其适应不同的应用。
Linux移植到嵌入式平台一般分为下面几个步骤:下载源码、建立交叉编译环境,配置编译内核,制作文件系统,下载、调试内核。
Microwindows起源于NanoGUI项目,是由Gregory Haerr组织的一个开放源代码项目,也是嵌入式系统" title="嵌入式系统">嵌入式系统中广为使用的一种图形用户接口(GUI)。它采用了类似GAL层和IAL层的设计思想,使用分层结构设计方法,可移植性非常好。另外,它还提供了多种应用程序接口(API)。考虑到开发成本和移植的相对简单性,本设计采用Microwindows作为便携式终端的GUI。
Microwindows是一个可配置的软件包,可以针对嵌入式系统的不同需求进行配置、裁剪、正确的配置是成功移植Microwindows的关键。配置内容包括基本发行包的设置,各种字体的选择和各种图像处理包的安装等。配置完成后,就可以进行下一步的编译工作了。
如果编译成功,在mwsrc/bin目录下会产生Nano-X的服务器程序nano-X、Nano-X窗口管理器程序nanowm和一些演示程序;在mwsrc/lib目录下会产生libmwin.a、libnano-X.a等Microwindows/Nano-X API函数库,用户可以利用这些函数库来开发自己的应用。
2.2.2 PPP拨号程序的移植及建立GPRS无线通信链路
PPP(Point to Point Protocol)是专门为解决Modem拨号上网的问题而设计的。PPP 在连接过程中所处的主要状态有死亡、建立、认证、网络和终止[2]。当链路" title="链路">链路是死亡时没有物理层连接,成功建立物理连接后链路变成建立,这时LCP 选项商议开始,如果成功则进入认证。如果在LCP 阶段要求了认证, 此时就可以检查PEER的标志,然后进入网络阶段,采用相应的NCP协议配置网络层。在完成数据传输后,链路进入终止阶段,并返回死亡。PPP链路建立简要流程如图3所示。
PPP拨号程序移植成功后,就可以利用脚本程序拨号上网了,下面是它的一个简单示例[3]:
/dev/ttyS0 //指定设备端口号为ttyS0即串口0
115200 //设置设备波特率
connect "/usr/sbin/chat"
//向无线模块发送命令并提供登陆信息
/usr/sbin/pppd //调用pppd拨号程序
AT+CGDCONT=1,"IP","cmnet"
//设置APN:cmnet
ATD*99***1# //拨号*99***1#
2.2.3 嵌入式GIS绘图引擎的设计
地图显示是GIS系统最基本的一个功能,实现的关键是了解GUI提供的接口,从地图文件中取得图层相关数据,然后用图形工具显示出来。在本设计中,利用Microwindows提供的Nano-X API实现。
Nano-X使用Xlib类型的窗口,绘图时使用窗口的标识值,它采用客户/服务器模式,客户端向服务器端发送绘图请求,服务器端调用图形库对应函数实现最终的绘制命令。服务器端为各种类型的绘图元素分配资源,以后所有的绘图操作都在服务器端完成。所以在运行客户应用程序前必须先启动服务器进程Nano-X。Nano-X的服务模式如图4所示。
下面是绘图程序的框架,API的入口点是标准C语言函数Main( ):
Main(…) //程序入口
{
GrOpen(); //与服务器端建立连接
gid=GrNewGC(); //创建图形上下文
wid=GrNewWindowEx(…); //创建窗口
GrSelectEvents(); //选择要处理的事件
GrMapWindow(wid); //显示窗口
GrMainLoop(NxEventHandler); //捕获事件
}
2.2.4 报警及数据通信模块的设计
报警及数据通信程序采用TCP套接字的客户/服务器模式实现,客户和服务器分别对应便携终端和监控中心,其基本流程如下:运行客户端程序,读取GPS数据信息并存储于本地缓存器,通过GPRS无线链路与具有独立公网IP的监控中心建立SOCKET连接,实现数据的无线传输。
3 监控平台设计
作为个人GIS助理系统的重要组成部分,监控平台应能够实时接收便携式终端用户所发送的位置信息,完成接收报警、发送指令等功能。在硬件方面需要有一台具有公网独立IP的X86体系结构的计算机,运行Windows操作系统,在软件结构上主要分为GPS数据接收及解析、GIS功能模块、位置信息显示以及报警系统四大模块,如图5所示。
工作原理如下:GPS数据通过无线链路传送到监控中心后,首先经过数据解析程序解析成人们容易理解的时间、经纬度、速度等信息,同时调用GIS模块,绘制数字地图,并将解析后的位置信息显示在地图上。如果此时用户发生意外并发出报警信号,监控人员就可以及时准确地掌握事故发生位置,快速提供帮助。
监控平台的软件采用Delphi编写,所采用的数字地图由中科大GPS实验室具有独立知识产权的数字地图生产平台制作。图6是监控平台软件的截面图。
本文介绍的个人GIS助理系统在中科大校园的测试中取得了良好的效果,它利用GPRS网络作为网络传输途径,充分发挥通用分组无线业务传输速率高、系统延时小的特点,但该系统也受到了移动通信信号强弱的限制,在实际测试中,如果遇到信号盲区,数据传输就会延误,使得监控平台端的数字地图上信息显示发生滞后。
另外,便携式终端采用了ARM嵌入式系统,它具有强大的运算能力以及良好的可移植性,用户可方便地加入自己的应用以及后续开发工作,为系统功能的进一步完善提供了途径。
参考文献
[1] 历容卫.GPRS技术与嵌入式系统应用[J].江苏技术师范学院学报,2003,9(4).
[2] 罗亮,彭容修.GPRS在嵌入式手持终端上的实现[J].现代电子技术,2004,(4).
[3] TANZILLI S. PPP over GPRS link [EB/OL]. http://www.acmesystems.it/?id=13,2007-02.