Board logo

标题: 基于GPS的嵌入式公交自动报站系统的研究 [打印本页]

作者: 520503    时间: 2015-5-13 09:12     标题: 基于GPS的嵌入式公交自动报站系统的研究

目前,国内各大城市的无人售票公交车大都采用半自动报站系统,即通过人工干预语音信箱进行语音报站,和传统的人工报站相比,其声音洪亮清晰。但是人工干预语音信箱存在人为因素,如天气不好、道路打滑、驾驶员心情不好等原因引发漏报站、错报站的现象。特别是旅游城市,外地及国外游客很多,漏报站、错报站会导致乘客下错站,从而带来不必要的麻烦,也会相应影响城市形象。目前公交车上的数字电视业务单一,仅播放广告,无相应站点附近的景点、酒店等信息,乘客无法与系统交互,获得感兴趣的信息。2008年北京奥运会来临之际,相关城市的公交智能化的重要性尤为突出。
  1 嵌入式公交自动报站系统的原理及特点
  1.1 基于GPS公交自动报站系统的原理概述
  本文提出的新型公交车自动报站系统的基本原理如图1所示。通过GPS接收机接收GPS工作卫星的导航信息,从而解算出车辆目前的经、纬度等信息;根据GPS定位数据计算出公交车的实时坐标,将其与站点坐标相比较,当公交车驶入站点一定距离范围内时,不用人工干预,系统自动报站。将位置信息与数据库中电子矢量地图进行匹配,根据公交车位置的不同,LCD显示屏上显示不同的公益信息、广告信息和景点信息等。在离站、到站和拐弯点阈值范围内语音提示的同时,在显示屏上显示同类信息,给乘客一种全方位的提示与服务。


  1.2 GPS的定位原理
  本装置的定位系统使用GPS接收机进行自主定位,GPS接收模块接收GPS卫星发送的定位数据,将GPS信号的数据流提取出来,经过简单的字符串操作就可以分别找出GPS信号中的经度、纬度以及相应的格林威治时间(该时间加上8小时即为我国标准时)等定位信息。在实际开发中,GPS接收机根据从三颗以上卫星发来的数据计算出自身所处的位置,完成定位。
  GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交汇的方法,确定待测点的位置。如图2所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间△t,再加上接收机所接收到的卫星星历等其他数据可以确定以下四个方程式:


  由以上四个方程即可解算出待测点的坐标x、y、z及钟差;GPS模块再由此得到经纬度、时间等信息;最后将这些信息通过串口以GPS信息的形式发送出去。

GPS模块采用美国Garmin公司的GPS 15模块。GPS 15系列是Garmin公司新推出的产品,具备12个平行接收频道,最多能同时解算12颗卫星讯息,以供快速定位与导航。使用者不需初始化设定,可自动搜寻卫星信号,进行定位功能,并输出NMEA 0183标准资讯。所有GPS 15系列产品皆具有低耗电设计。使用读写式记忆体设计,内部使用记忆体电池,断电后储存资料不流失。3.3V~40V的大范围输入电压承载设计及输出界面选择,针对不同领域提供全方位更灵活的运用,即便是在公交车上电压不稳定的环境下也不会受到影响。表1为GPS模块接口定义,与ARM处理器相应管脚连接即可。



  系统外扩一个USB口,使用廉价的1GB或2GB的U盘作为海量存储器来存放站点信息及广告等
多媒体文件。
  2.2 系统软件设计
  目前主流的嵌入式实时操作系统有:Windows CE系列(含Pocket PC)、VxWorks和嵌入式Linux。相对于Windows CE、VxWorks,Linux用作嵌入式操作系统具有如下优势:用户可以依照需要自行对Linux系统进行裁剪,这对于在功能、可靠性、体积、成本和功耗方面有严格要求的专用终端系统来说是一个非常重要的特点;可以用于多种硬件平台;Linux为开源软件,使用灵活,开发成本低。
  本方案采用的Linux版本为韩国MIZI公司为S3C2410X处理器开发的开源版本板级BSP包Linux 2.4.18-rmk7-pxa1。该版本也是三星公司的S3C2410X demo板上的Linux演示版本,已根据S3C2410X处理器的配置作了片级开发,但由于是开源版本,外围驱动做的并不完整,需要加入一些驱动程序(LCD驱动、USB驱动)。同时,由于使用的硬件芯片和三星的demo板并不相同,需要在配置Linux时进行一些调整,并修改部分源代码。最主要的工作是对存储单元的配置以及文件系统的建立,并在Linux内核的基础上开发应用程序(MPlayer播放器、Qt图形应用程序、GPS定位应用程序),如图4。


  2.2.1 GUI设计
  QT/Embedded是一个专门为小型设备提供图形用户界面的应用框架和窗口系统。它提供了丰富的窗口小部件(Widgets),并支持窗口部件的定制,因此可以为用户提供漂亮的图形界面。Qt是KDE等项目使用的GUI支持库,有许多基于Qt的X Window程序可以方便地移植到Qt/Embedded上。Qt/Embedded以原始Qt为基础,并做了许多出色的调整以适用于嵌入式环境。在Qt中加入触摸屏驱动的接口函数,便可支持触摸功能。
  移植Qt时,在装有Linux的PC机上安装交叉编译环境,编译器版本为arm-linux-gcc-3.4.1,在/root/.bash_profile中修改编译器搜索路径;编译库文件(libjpeg-iwmmxxt.tar.bz2);编译工具包(tslib.tar.gz、tmake-1.13.tar.gz);编译Qtopia桌面环境(qtopia-free-source-2.1.1.tar.bz2);最后将交叉编译后得到的Qtopia桌面环境、Qtopia.sh文件及相应的库文件下载到自动报站系统。
  在公交车未到站时,如果有乘客通过触摸屏查询信息,则触发人机交互中断,调用Qt图形应用程序。该程序可以通过触摸屏显示当前时间、本公交运行路线图、首末班车发车时间及本线路沿途各站点所经过的其他公交车。
  2.2.2 多媒体播放器
  用于播放景点介绍、广告等信息的播放器选用MPlayer播放器,它基于0.2.0版本的Libmpeg2函数库编写,因此支持多种流行的图像压缩格式,例如:MPG、DAT、BIN、VOB、ASF、WMF、AVI等。MPlayer播放器本身编译自带了多种类型的编码器,不需要再安装xvid、ffdshow、ac3、filter、ogg、vobsub等解码器。本系统移植采用较新版本的MPlayer-1.0pre7try2.tar.bz2。
  2.2.3 GPS定位应用程序
  GPS模块工作流程如图5所示。任务启动后,模块接收GPS信息,然后解析出GPS信息,根据解析出来的经纬度信息与数据库中存储的站点信息比较,计算出实际距离。如果距离到达阀值时,启动GPS报站中断。
  2.2.4 系统软件总流程


  系统的软件流程如图6所示。上电后,首先完成系统初始化,然后创建GPS 信号检测任务,并进入此任务执行GPS信号检测及解析,同时监测是否有GPS报站中断产生。若有中断产生,则启动MPlayer播放器播报站名、景点介绍等信息;若没有,则检测是否有触摸屏中断产生。若有中断,则进入人机交互界面;否则启动MPlayer播放器播报广告、公益信息等,同时检测、解析GPS信号。


  本嵌入式公交自动报站系统采用GPS定位技术,具有体积小、播报准确的特点。系统可存储多条线路,方便公交车临时更换运营线路;并利用触摸屏作为人机交互界面,方便乘客查询相关信息;可提供广告等增值业务。系统基本解决了当前各大城市公交系统报站出错的问题。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0