目前,国内各大城市的无人售票公交车大都采用半自动报站系统,即通过人工干预语音信箱进行语音报站,和传统的人工报站相比,其声音洪亮清晰。但是人工干预语音信箱存在人为因素,如天气不好、道路打滑、驾驶员心情不好等原因引发漏报站、错报站的现象。特别是旅游城市,外地及国外游客很多,漏报站、错报站会导致乘客下错站,从而带来不必要的麻烦,也会相应影响城市形象。目前公交车上的数字电视业务单一,仅播放广告,无相应站点附近的景点、酒店等信息,乘客无法与系统交互,获得感兴趣的信息。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信息的形式发送出去。
1.3 GPS信息格式
通常GPS模块支持两种格式:二进制消息格式和NMEA-0183 ASCII消息格式。前者的通信协议为 9600b/s、无校验、8位数据位、1位停止位;后者的通信协议为4800b/s、无校验、8位数据位、1位停止位。由于NMEA-0183 ASCII格式直观、易于识别及应用,因此本设备采用ASCII格式。
系统接收到的GPS数据主要由帧头、帧尾和帧内数据组成。根据数据帧的不同,帧头也不相同,主要有$GPGGA、$GPGSA、$GPGSV以及$GPRMC等。这里选用推荐的$GPRMC。各类数据帧分别包含了不同的信息,在此列举出$GPRMC的各项含义:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,*hh
<1>当前位置的格林威治时间,格式为hhmmss。
<2>状态,A为有效位置,V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。
<3>纬度,格式为ddmm.mmmm。
<4>标明南北半球,N为北半球、S为南半球。
<5>径度,格式为dddmm.mmmm。
<6>标明东西半球,E为东半球、W为西半球。
<7>地面上的速度,范围为000.0节~999.9节(1节=1.852km/h)。
<8>方位角,范围为000.0度~359.9度。
<9>日期,格式为ddmmyy。
<10>地磁变化,从000.0度~180.0度。
<11>地磁变化方向,为E或W。
由于帧内各数据段由逗号分割,因此在处理缓存数据时一般通过搜寻ASCII码“$”来判断是否是帧头。在对帧头的类别进行识别后,再通过对所经历逗号个数的计数判断出当前正在处理的是哪一种定位导航参数,并做出相应处理。
2 嵌入式智能公交系统设计
车载设备安装于公交车上,其工作环境比较恶劣,对设备的结构也有一定的要求,本系统采用工作稳定可靠、抗干扰能力强的嵌入式系统。嵌入式系统固化于存储器中,其可靠性高、成本低、体积小、功耗低。嵌入式系统有着广泛的应用领域,在车辆与交通工程中的应用是其中一个重要的方面。将嵌入式设备作为车载终端应用于智能公交系统,使车载终端设备具有更高的智能性、稳定性和扩展性,从而建立起全方位、实时准确、高效的智能交通系统。
本系统采用先进的卫星定位技术与语音合成技术相结合的方式,改变了传统公交车语音报站器必须有司机操控才能工作的落后方式,进站、出站自动播报站名及服务用语,准确、及时、不需要人工介入,实现了公交车报站器的完全智能化。本装置主要特点为:
(1)采用GPS卫星定位技术,自动、准确地播报站名、服务用语、广告等。
(2)站名及有关事项可以在计算机上形成电子文件,通过串口下载到报站器中,方便快捷。
(3)与显示屏直接连接,同步显示报站信息、广告等。
(4)可存储多条线路,方便公交车临时更换运营线路。
GPS公交自动报站系统包含硬件和软件两部分。硬件以ARM9S3c2410x处理器为核心,配置存储器、I/O设备、通信模块等必要的外设;软件以嵌入式Linux操作系统为核心,向上提供应用编程接口API,向下屏蔽具体硬件特性的板级支持包BSP。嵌入式系统中,软件和硬件紧密配合,协调工作,共同完成系统预定的功能。
2.1 系统硬件设计
嵌入式GPS公交自动报站系统按功能模块可分为:GPS模块、Flash/RAM、JTAG口/串行接口/USB口、音频设备/扬声器、LCD触摸屏及核心处理器S3c2410x。系统硬件框图如图3所示。
核心处理器S3C2410X是一款由Samsung公司设计的低功耗、高度集成的16/32位RISC处理器,它采用272 脚FBGA 封装,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。S3C2410X的显著特性是其CPU核心为一个16/32位的ARM920T RISC处理器。ARM920T实现了MMU、AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和16KB数据Cache,每个都是由8字长的行(line)构成。通过提供一系列完整的系统外围设备,S3C2410X可大大减少整个系统的成本,不需要为系统配置额外器件。工作频率最高达到203MHz,同时具有MMU(内存管理单元),使得处理器轻松运行于Windows CE、Linux等操作系统,可进行较为复杂的信息处理。
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定位技术,具有体积小、播报准确的特点。系统可存储多条线路,方便公交车临时更换运营线路;并利用触摸屏作为人机交互界面,方便乘客查询相关信息;可提供广告等增值业务。系统基本解决了当前各大城市公交系统报站出错的问题。