基于GPRS的出租车监控调度系统方案
1 引言
在车辆定位系统中,GPS 系统是目前世界上应用得最为广泛的,其功能作用已广为人所接受。它能为用户提供全球、全天候、高精度、连续实时的导航、定位和授时。
随着移动 GPRS 业务的开展,GPRS 在无线传输中已经成为一种成熟可靠的传输方式。
GPRS 网本身支持TCP/IP、X.25 等协议,可以直接与IP 网或X.25 网互通,实现GPRS 终端的上网功能。它
可以保证永远在线,而且是按照流量记费,不传输数据时不计费,同时中国移动公司的众多基站和可靠的频段信号能够保证信息传输及时、无误。
2 系统总体结构和实现功能介绍
本系统基于 GPS/GPRS 进行设计,主要以出租车公司为服务对象,总体结构如图1:
图1 系统总体结构
主要实现的功能为:
出租车终端利用 GPS 模块实时地接收其定位、速度、时间等信息,然后通过GPRS 模块将这些信息上传至监控中心,在遇到紧急情况时,向监控中心发出求救警报。
监控中心将接收到的信息写入数据库,对车辆的位置、速度进行实时的监控,必要时发出警告信息,处理客户预订业务时向出租车发送调度信息。
3 整体系统的设计
本系统的设计主要由三部分组成:出租车终端软硬件设计、监控中心软件设计以及车载终端和监控中心通信程序设计。
3.1 出租车终端的软硬件设计
3.1.1 出租车终端的硬件设计
该终端硬件部分主要由主控芯片、GPRS 模块、GPS 模块组成。
主控芯片选用三星公司生产的 S3C2410 处理器,该处理器采用ARM920T 内核,S3C2410外围电路包含电源模块、64M SDRAM、64M FLASH、RS232 串行口、USB 接口、4×4 键盘接口模块、LCD 模块等。
GPS 模块选用的是Compass Systems 公司生产的GM611 滑鼠型GPS 卫星接收机,它具有超高灵敏度、超低功耗和超小体积的特点,而且带强力磁性,拥有严格的防水设计,可将其直接吸附于车顶使用,2D 定位精度小于10 米。该GPS 模块与主板的串口1 连接,上电后以每秒钟一次的频率将定位信息传送给处理器。
GPRS 模块选用的是WAVECOM 公司生产的WISMO QUIK Q2406A 模块,它是GSM/GPRS 900/1800 双频模块,与标准的AT 指令兼容。它与S3C2410 主板的串口2 连接,实现GPRS 拨号上网。
3.1.2 出租车终端的软件设计
该终端的软件设计主要包含两个部分:GPS 定位信息的接收和GPRS 拨号上网的实现。
由于终端移植了嵌入式Linux(内核版本为2.6.16),它提供丰富的设备支持和成熟的系统管理能力,因而大大地简化了软件的开发过程。
(1)GPS 定位信息接收的实现
该过程主要通过 Linux 串口通信编程来实现,在实现过程中的关键处理部分是:串口属性设置以及对接收到的GPS 信息的解析。
由于 GPS 模块输出的每帧数据都是以换行符结束,所以在设置串口属性的时候可将其模式设为规范(Canonical)模式,即每次读取串口时先将数据保存到缓存,直到读到换行符时所有数据才会被传输,这样就能保证每次读取的是整帧数据,方便之后的帧头判断和信息解析。接下来还要根据GPS 模块的默认参数配置串口传输速率为4800bps,8 位数据位,1 位停止位,无校验位,串口属性就设置完毕了。
GPS 模块的输出帧遵循NMEA0183 标准,具有多种格式,主要由帧头进行标志,包括$GPGGA、$GPGLL、$GPGSA、 $GPGSV、$GPGMC、$GPVTG 六种帧,分别描述不同信息,一般来说$GPRMC 帧就可以提供我们所关心的数据,如经纬度、速度、时间等,所以只需对该帧信息进行提取。$GPRMC 帧的格式如图2:
图2 GPRMC 帧的格式
在每次读取的时候首先需要对帧头进行判断是否是$GPRMC 帧,然后再根据帧中的逗号位置,对该帧数据进行解析,提取所需的定位、速度和时间信息。
(2)GPRS 拨号上网的实现
该部分是整个系统的关键,是实现出租车终端和监控中心进行无线通信的基础,该过程主要依靠PPP(点到点协议)来实现,它可以实现在串行链路上创建和运行IP 协议。
为了能够实现PPP 连接,首先需要配置内核使其支持PPP,然后通过交叉编译生成ARM平台下的pppd 和chat 应用程序。PPP 连接的建立和维持需要由pppd 和内核中的PPP 驱动程序配合完成。chat 程序主要用于和GPRS 模块进行交互,完成拨号和各项配置。执行pppd的时候将首先调用chat 程序进行拨号连接,PPP 链路的建立流程如图3:
图3 PPP 链路建立流程
首先执行 chat 程序对中国移动的接入号码进行拨号,建立与PPP 服务器端的物理连接,然后进行LCP 链路的协商,主要协商一些链路参数(数据帧格式、最大传输单元等),协商成功后将建立与PPP 服务器端的数据链路,接着向PPP 服务器端提供用户和口令进行PAP验证,在未通过验证之前是不能进行任何数
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)