基于GPS和3G的智能公交终端设计
3.2GPS解析程序
GPS接收机HOLUX的GR-87模块输出数据格式符合NMEA.183标准。NMEA.0183协议是由美国国家海洋电子协会制定的一种串行通信的数据协议,所有输入输出信息均为一行ASCII字符。它的一条消息称为语句(Sentence),每条语句都以“$”开始,以回车换行符(CR>LF>)结束,中间是用逗号分隔的若干个域。
由于此GPS模块设置信息掉电丢失,在每次系统启动时均要对该GPS模块进行初始化。将模块设置成每秒钟输出一次GPS信息。系统启动后,模块接收GPS信息,然后解析出GPS信息,根据解析出来的经纬度信息与数据区中存储的站点信息比较,计算出实际距离。如果距离到达阀值时,启动GPS报站中断。该GPS模块接收模块遵循NMEA.0183协议,可以输出多种格式的数据帧,均以“MYM”开头。输出数据采用的是ASCII码字符,内容包含了纬度、经度、速度、日期、航向及卫星状况等信息。该系统所使用的仅限于$GPRMC定位数据帧格式。系统启动后,通过串口对GPS模块进行设置,由于系统对实时性要求不高,将GPS设置为每秒钟输出一次RMC数据。提取GPRMC语句的思路是设置一个数据缓冲区,把接收到的GPS数据都放入这个缓冲区,当缓冲区满了的时侯就在缓冲区中查找是否接受到GPRMC定位语句,如果没有接收到则重新接GPS数据。如果找到GPRMC定位语句则还要判断该语句在缓冲区中的位置离缓冲区的最大字节数是否大于62个字节(因为本程序中需要的GPRMC定位语句所包含的字节数为62),然后通过多程序提取相关经纬度、时间和速度等信息并通过数据处理线程进行相关处理。运行过程如图3所示。本文引用地址://m.amcfsurvey.com/article/196792.htm
3.3 3G模块解析程序
MC8630模块驱动可以通过驱动源码交叉编译生成。MC8630模块的加载和拨号连接的过MC8630模块驱动可以通过驱动源码交叉编译生成。MC8630模块的加载和拨号连接的过程如下:
1)在编译前首先要确认编译驱动和编译内核的编译环境相同,也就是需要相同版本号的交叉编译工具(本系统Linux版本号为2.6);
2)修改驱动源码Makefde文件,包括添加内核源码目录和编译工具;
3)Make编译之后,生成ztemt.ko;
4)insmod ztemt.ko,生成4个设备节点/dev/ttyUSB0-ttyUSB3;
5)mknod/dev/ttyUSB0 c 188 0,创建设备节点;
6)编写Linux下拨号脚本、chat配置文件和账号密码配置文件;
7)添加内核选项,编译支持PPP协议的内核;
8)pppd call evdo拨号连接,ifconfig查询网络是否连接;
9)ppp-off中断连接。
4 结束语
本系统设计的智能公交终端采用先进的3G/GPS技术,通过对公交车辆运行时的信息的采集、传输和处理,实现了对公交运营车辆的实时监控和调度,迅速调整公交车辆的运行状况,提高车辆工作的效率,使公交资源实现最佳利用和分配,达到公交的智能化。
评论