近年来, 随着城市公交事业的迅速发展, 国内公交车报站的方式已经有了很大改善, 由传统的售票员喊话报站逐渐变为驾驶员使用报站器手动报站。
虽然手动报站器使用比较方便, 但是因为驾驶员需要在保证安全驾驶的前提下进行报站, 所以经常出现报站不及时, 甚至错报、漏报的现象, 而且让驾驶员在驾驶过程中进行报站也存在安全隐患。采用自动报站的方式可以大大减轻驾驶员的工作量, 促进公交系统的现代化进程。要实现自动报站, 需要实时测出公交车的位置, 以确定公交车是否已经到达站点。利用GPS 可以确定公交车的地理位置, 只需把当前位置同公交站点的位置数据( 经、纬度) 相比较, 就可以知道公交车是否到达站点, 使得报站系统具有一定的智能性。这种基于GPS 的智能报站系统能够杜绝驾驶员驾驶过程中因兼顾报站器而带来的隐患。特别适合因汽车行业高速发展而导致交通问题日益严峻的我国国情, 还可以在重点线路上加入对城市景点风貌的相关介绍。该系统在GPS 导航领域和商业领域都有着非常大的潜力, 具有广阔的发展前景。
1 系统方案
基于GPS 的公交车智能报站系统是移动通讯技术和GPS 技术的结合, 整个系统由S3C24l0 ARM9( 进阶精简指令集机器) 开发板、SIM
语音播报模块负责语音播放, 提供进出站以及提示信息等语音的播放。单片机模块控制按键扫描以及LCD 显示。
1. 1 硬件设计
系统硬件部分主要由S
图1 系统硬件结构
GSM/ GPS 模块采用SIMCOM 公司的GPS/ GSM 模块, 该模块是一款四频GSM/ GPRS( 通用分组无线服务技术) 无线模块, 同时支持SiRF Star III AGPS 技术。
GSM/ GPRS 与AGPS 技术的整合使得该模块可以满足GPS跟踪、导航、车辆船舶等设备和资产的监控管理以及其他GPS 的应用。键盘扫描和屏幕显示由单片机做数据处理。键盘显示板主要实现键盘扫描、液晶屏幕的显示并与ARM处理器模块进行通讯。硬件系统整体框图如图2所示。
图2 系统组成
1. 2 软件总体设计
系统的主要功能由ARM 控制, 采用C 语言进行编程, 采用多线程处理相关功能模块。执行相关过程如下: 系统初始化完成后, 依据GPS 定位信息和系统存储的线路信息计算位置、报站和读取相关信息, 并由ARM 控制车内的显示模块进行显示、语音播放以及向数据中心进行数据传送。
2 设计实现
2. 1 系统初始化
在系统运行之前, 必须用软件程序对各部分进行初始化。初始化包括以下几个部分:
ARM 以及系统初始化;显示按键模块初始化;外部器件、接口初始化: 主要是GPS、GPRS和语音芯片等设备的初始化;软件系统的初始化: 设置全局变量、指针和数组、数据结构以及公交信息初始化。
系统软件部分主要是在主程序中检测GPS 信息, 确定公交车当前的地理位置, 然后决定是否播放语音信息。同时还需要实现按键所要求的功能, 如切换到手动播报等。本系统的软件部分开发工作是基于Linux 开发环境实现的。根据系统要完成的功能和各个模块的运行情况, 主程序部分采用了多线程以及消息队列的方式, 可以及时接收GPS 数据。
因为只使用GPRMC 帧的数据, 串行通讯的数据量不大, 通讯及数据处理过程比较快, 系统能够及时播放报站及其他语音信息。公交车途经的各站点的经纬度数据需要预先测量好, 并存放到系统的数据区, 作为对比参考使用。GPRS 的信息通过串行口传递,采用查询法, 按键也使用查询方式进行接收, 以确定按下的是哪个功能键。软件采用C 语言编写, 调试成功后烧录到Flash 中, 实现脱机运行。