近年来,随着城市公交事业的迅速发展,国内公交车报站的方式已经有了很大改善,由传统的售票员喊话报站逐渐变为驾驶员使用报站器手动报站。
虽然手动报站器使用比较方便,但是因为驾驶员需要在保证安全驾驶的前提下进行报站,所以经常出现报站不及时,甚至错报、漏报的现象,而且让驾驶员在驾驶过程中进行报站也存在安全隐患。采用自动报站的方式可以大大减轻驾驶员的工作量,促进公交系统的现代化进程。要实现自动报站,需要实时测出公交车的位置,以确定公交车是否已经到达站点。利用GPS可以确定公交车的地理位置,只需把当前位置同公交站点的位置数据(经、纬度)相比较,就可以知道公交车是否到达站点,使得报站系统具有一定的智能性。这种基于GPS的智能报站系统能够杜绝驾驶员驾驶过程中因兼顾报站器而带来的隐患。特别适合因汽车行业高速发展而导致交通问题日益严峻的我国国情,还可以在重点线路上加入对城市景点风貌的相关介绍。该系统在GPS导航领域和商业领域都有着非常大的潜力,具有广阔的发展前景。
1 系统方案
基于GPS的公交车智能报站系统是移动通讯技术和GPS技术的结合,整个系统由S3C24l0ARM9(进阶精简指令集机器)开发板、SIM548CGPS/GPRS模块、语音播报模块、AT89S52单片机以及OCMJ5X10B的LED(发光二极管)背光宽温黄绿屏等器件组成。GSM/GPS模块由GPS分模块与GSM(全球移动通讯系统)分模块组成。GPS模块负责GPS数据接收。公交车在行进过程中,GPS模块的实测信息同已存储的位置信息进行比较即可进行自动报站,无需人为干预,还可实现在固定位置播放某些特定信息,如乘车提示、广告信息等。GSM模块用于公交车与调度室之间的数据通讯,实现公交车的联合调度,实现调度中心对公交车的调度功能。
语音播报模块负责语音播放,提供进出站以及提示信息等语音的播放。单片机模块控制按键扫描以及LCD显示。
1.1 硬件设计
系统硬件部分主要由S3C2410ARM9开发板、GPS/GSM模块、功放模块、显示模块、语音播放模块及相应的外围电路组成。GPRS模块和GPS模块均通过RS232(串口)与ARM处理器相连,而LCD(液晶显示器)模块则由单片机控制通过串口与ARM通讯,语音播放模块通过IIS(InterICSound)、SPI(串行外设接口)与ARM通讯。硬件连接方式如图1所示。
图1 系统硬件结构
GSM/GPS模块采用SIMCOM公司的GPS/GSM模块,该模块是一款四频GSM/GPRS(通用分组无线服务技术)无线模块,同时支持SiRFStarIIIAGPS技术。
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中,实现脱机运行。