基于 GPS 的公交车自动报站系统许连华,李学庆(山东大学计算机科学与技术学院,济南 250061摘要:介绍了由 GPS 接收器、工控机和音频输出设备组成的公交车自动报站系统的功能、组成原理和关键技术, 阐述了系统主要的硬件和软件设计方法。
关键词:GPS ;工控机;自动报站GPS Based Bus-stop Auto-announce SystemXU Lianhua, LI Xueqing(Department of Computer Science & Technology, Shandong University, Jinan 250061【 Abstract 】 The thesis analyses the function, the principles of composing and the key technology of GPS based buses’auto-announce system, alsothe hardware design and the software design are presented.【 Key words】 Global positioning system (GPS; Industrial Computer; Bus-stop announcer计算机工程 Computer Engineering第 31卷第 23期Vol.31 № 23 2005年 12月December 2005・工程应用技术与实现・文章编号:1000— 3428(200523— 0191— 02文献标识码:A中图分类号:TP2231 概述GPS 系统是由美国国防部开发的高精度卫星导航系统。
用户通过用户设备接收 GPS 卫星信号, 经信号处理而获得用户位置、速度等信息,最终实现利用 GPS 进行导航和定位的目的。
2000年以前, 民用 GPS 接收器的价格、实时定位精度都不能满足汽车导航定位的要求。
2000年 5月 1日,美国政府发布政府文告,正式结束实行了 10年之久的人为降低 GPS 精度的 SA (Selective Availability政策 , 利用 C/A码进行单点定位的精度由 100m 提高到 10~20m,这促进了微型民用 GPS 接收机的迅猛发展。
现在民用微型 GPS 接收器的价格和实时接收精度已经完全满足车辆导航定位的需要,为公交车自动报站系统的设计提供了条件。
GPS 语音自动报站系统,采用先进的卫星定位技彻底改变了传统公交车语音报站器必须由司机操控才能工作的落后方式,进站、出站自动播报站名及服务用语,准确、及时、完全不需要人工介入, 是公交车语音报站器的一项技术革命, 它将为公交车的管理人员和乘客带来福音,实现了公交车报站器的完全智能化。
目前,国内 GPS 语音自动报站系统处于试验阶段,仅有广州、青岛等几个城市有几条试验线路采用 GPS 语音自动报站技术。
2 系统体系结构和实现的关键技术基于 GPS 的公交车自动报站系统利用 GPS ,通过 GPS 接收单元接收卫星发送的信号确认车辆的动态位置 (经度、纬度、时间、状态等信息 , 与公交线路信息库中存储的车站的位置进行比较,根据预先设定的距离和规则向乘客通报车站和线路的语音信息;并且能把车辆运行的详细情况记录下来, 对公共汽车的运营状况进行全程监控并记录。
系统的组成模块见图 1。
按照功能可以划分为 3部分, 一是主控模块, 由一台工业计算机, 运行自动报站管理系统, 负责整个系统的控制和管理;二是 GPS 信息接收模块,用微型 GPS 接收机接收 GPS 信号获得车辆的位置、速度等即时信息;三是信息输出模块,包括运营信息存储模块用来存储运营信息、音频功放模块用来输出声音信息以及可选的信息显示模块,在必要的情况下进行信息的视频输出。
图 1 系统组成2.1 GPS信息的接收与处理GPS 选用微型 12通道 GPS 接收器, 可以同时接收 12颗卫星信号(只要能观测到 4颗卫星,就能得到观测点的三维坐标。
美国取消 SA 政策以后,一般微型 GPS 接收机的即时定位精度在 10~20m 之间,完全满足自动报站系统的需要。
目前市场上的大部分 GPS 接收模块都是通过RS232串口或者 USB 端口进行数据传输的。
这些数据包括经度、纬度、海拔高度、时间、卫星使用情况等基本信息。
依据这些基本数据,进行数据处理来取得当前车辆的坐标。
2.1.1 GPS通信的 NMEA0183协议目前 GPS 厂商遵循 NMEA0183协议提供串行通信接口, 串行通信参数为波特律 =4 800,数据位 =8位,停止位 =1位,无奇偶校验。
GPS 与电脑通信时, 一般通过串口每秒钟发送 1组数据。
实际导航应用读取GPS的空间定位数据时, 可以根据需要每隔几秒钟更新一次经纬度和时间数据。
NMEA 0183协议的信息定义比较复杂,编程时不需要了解 NMEA 0183通信协议的全部信息,仅需要从中挑选出需要的那部分定位数据。
其作者简介:许连华(1972— ,男,硕士生,主研方向:人机交互与虚拟现实;李学庆,教授、博导收稿日期:2004-12-06 E-mail :xulh100@余的信息可以忽略掉。
如果此时和卫星的通信正常的话,可以接收到的数据格式样如下:$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E数据说明如下:$GPRMC:代表 GPS 推荐的最短数据;204700: UTC_TIME 24h 制的标准时间,按照 h/min/s的格式; A :A 或者 V , A 表示数据 "OK" , V 表示一个警告;3403.868: LAT 纬度值,精确到小数点前 4位,后 3位; N : LAT_DIR N 表示北纬, S 表示南纬;11709.432: LON 经度值,精确到小数点前 5位,后 3位; W : LON_DIR W 表示西经, E 表示东经;如果当前没有和卫星取得联系,那么字符串的格式为 $GPRMC,UTC_TIME,V,...下面是一个接收不到卫星信号的例子:$GPRMC,204149,V,,,,,,,170698,*3A2.1.2串行读写 GPS 数据的实现Microsoft 公司在 Windows 中提供了串口通信控件 CMSComm ,用它可以很简单地利用串口进行通信, USB 端口通信和串口通信在程序实现上完全一样。
在使用它之前, 应将控件加在应用程序里面。
然后再用 ClassWizard 生成相应的对象,就可以使用它了。
控件 CMSComm 有很多自己的属性, 可以通过它的属性窗口来设置,也可以用程序设置。
SetCommPort :指定使用的串口 , 串口为 1和 2, USB 端口一般为 3和 4。
GetCommPort :得到当前使用的串口号。
SetSettings :指定串口的参数。
这里设置为”4800,N,8,1” ,以符合 GPS 接收器的要求。
GetSettings :取得串口参数。
SetPortOpen :打开或关闭串口,当一个程序打开串口时,另外的程序将无法使用该串口。
GetPortOpen :取得串口状态。
GetInBufferCount :输入缓冲区中接收到的字符个数。
SetInPutLen :一次读取输入缓冲区的字符数。
设置为 0时,程序将读取缓冲区的全部字符。
GetInPut :读取输入缓冲区。
GetOutBufferCount :输出缓冲区中待发送的字符数。
SetOutPut :写入输出缓冲区。
使用上述函数和属性就可以使用串口和 GPS 接收器通信了。
打开串口成功后,读取 GPS 传来的数据,分析取得的字符串,如果有 $GPRMC字段,就截取数据中的经纬度坐标和2所示。
图 2 串口读取 GPS 数据过程 UML 活动图2.2 公交线路数据组织与处理为了简单起见,采用了 Access 的 MDB 数据库存储道路交通数据,如果在大中城市,公交线路较多,并且需要存储城市的其它信息,如旅游景点、购物商场等就应该采用 SQL Server 等数据库来存储交通信息数据。
2.2.1 公交信息数据库设计公交信息数据库由 4个表构成:(1公交线路表 , 存储整个城市所有公交线路的信息,在运营的时候,可以选择任意一条线路运营; (2线路-车站表 ,存储每条公交线路对应的车站及其序号; (3车站信息表 , 存储每个车站对应的车站名称、坐标、语音信息以及其它与车站有关的信息; (4车站-线路表, 存储经过该站点的其它公交线路,以方便乘客换乘其它线路的车辆,详细的表结构和表之间的关系见图 3所示。
确定了运行线路之后,可以很容易根据表之间的关系找出该线路上的车站和每个站点上关联的公交线路。
2.2.2 上下行标志的确定在公交车运行过程中,需要确定该线路运行的方向,因为不同的方向需要预报不同的目的地。
由于可以通过 GPS 实时获得车辆当前的坐标,因此可以根据当前位置和下一刻的位置自动确定当前公交车运行方向。
如图 4所示,假设在某一时刻已经确定当前公交车位于站点 n 和站点 n+1之间,在下一时刻,如果公交车处于位置 A ,那么公交车处于上行方向,如果下一时刻处于位置 B , 那么公交车处于下行方向。
2.3 主控模块系统的主控模块采用通用的工业控制计算机,是整个系统的核心。
现在各种类型的工控机都比较成熟,这些机型一般都配备 ROC (RAM on CHIP 来替代硬盘, 运行 Windows98操作系统,可以在恶劣的环境中使用,完全满足系统控制的需要。
主控程序采用 VC6编写,通过 ODBC 连接数 MDB 据库。
2.4 信息输出模块信息输出模块包括运营信息记录模块、语音输出模块以及信息显示模块。
其中运营信息记录模块可记录下各站到站时间、各站发车时间、各站间最高车速等信息 , 可以上交到运营管理中心进行存储查询 , 也可以作为管理车辆和考核驾驶员的依据, 它是系统在运行过程中,把行车信息存储到一个固定格式的文本 (下转第 218页在某种情况下,为了预测特定市场特定农产品价格的走势,需要回顾该种农产品在该市场的价格变化规律。
本系统提供了此项功能,只要在客户端的数据查询语句中设置相应的时间段和选择欲查询的市场名即可实现。
如图 4显示了农业部公布的北京八里桥农贸市场从 2003年 12月 11日到 2004年 2月 6日西红柿价格变化规律。
为寻找大量数据所隐含的规律,需对其进行深层次的分析。
本系统客户端除提供上述可视化部件外,还提供能发现深层次规律的系列空间数据挖掘工具,如空间关联规则挖掘工具 [6]、空间分类规则挖掘工具和空间总体特征规则挖掘工具等。