APP下载

基于GPS与GPRS的城市公交监控系统

2012-08-07程元斌

关键词:城市公交语句短信

程元斌

(江汉大学 数学与计算机科学学院,湖北 武汉 430056)

基于GPS与GPRS的城市公交监控系统

程元斌

(江汉大学 数学与计算机科学学院,湖北 武汉 430056)

建立完善的城市公交监控系统是提高城市公交系统管理水平、运行效率和服务质量的迫切要求。城市公交监控系统需随时获取行进中车辆的位置信息与运行状况,以直观易懂的方式告知管理调度人员及相关乘客,并将可能的调度指令传达给司乘人员。城市公交监控系统属于一种典型的CPS或带有控制功能的物联网系统。提出一种以GPS与GPRS为基础、经济实用的城市公交监控系统方案,并分析了实施过程中应注意的若干问题。

GPS;GPRS;城市公交;监控系统;物联网;CPS

随着交通拥堵现象的愈演愈烈,越来越多的人意识到,提高城市公交在人们出行方式选择中的比重,是治理城市交通拥堵现象的根本措施之一。为此,需要大幅度提高城市公交的管理水平、运行效率和服务质量。建立完善的城市公交监控系统则是提高城市公交系统管理水平、运行效率和服务质量的迫切要求。在过去乃至今后相当长的时间内,公共汽车是城市公交的主力,也是建立完善的城市公交监控系统的难点。

对此,笔者提出一种针对公共汽车交通、基于GPS与GPRS的城市公交监控系统方案。

1 系统基本方案

1.1 系统基本结构

显而易见,一个相对完善的城市公交监控系统应当具备如下功能:首先,可随时获取行进中车辆的位置信息与运行状况。在此基础上,以直观易懂的方式告知管理调度人员,同时让正在前方站点等车的乘客知晓,这是基本功能。其次,应能将可能的调度指令传达给司乘人员。显然,这是一种典型的CPS或带有控制功能的物联网系统。

可以用图1所示系统实现上述功能。其中,每辆公交车有一个车辆子系统,每个公交车站有一个车站子系统。各子系统主要功能分述如下:

图1 系统结构

监控中心负责以下任务:① 基本数据管理与发送。包括线路基本数据与车站基本数据。线路基本数据包括物理位置—逻辑位置转换表、站间距离与其运行时间表等;车站基本数据主要是每个车站所经过的线路数据,其中包括本站的始发、终发预计时间等。② 运行数据接收、处理。③有限制的语音通信服务。

车辆子系统主要负责以下任务:① 周期性地获取本车位置数据及运行状态信息。②将上述数据作适当处理后分别发送到监控中心和前方车站的车站子系统。③司乘人员与监控中心间有限制的语音通信。

车站子系统主要负责以下任务:①接收车辆位置或状态信息。②接收线路数据等系统数据,向监控中心发送状态报告。③显示各路车到达时间或状态信息。

1.2 两个基本问题及其解决方案

要实现上述功能,首先要解决两个基本问题:车辆位置的获取与信息的传输。

显然,使用GPS是自动获取车辆位置的理想选择。不过,车辆子系统应将GPS坐标信息转换为调度与乘客所希望形式的信息,例如前方到站的距离或时间。

其次,由于一条公交线路往往长达数十公里,显然不适于用无线局域网传输。所以,只能选GPRS或G3网络,而在满足功能与性能的前提下,从经济实用方面考虑,目前GPRS显然是最佳选择。

使用GPRS进行数据传输有两种可供选择的方式:GPRS数传或GPRS短信。依据以下分析,笔者建议采用GPRS短信进行数据传输。

1)公交车发送的数据包括发往监控中心及发往前方公交车站的位置信息和运行状态信息,尽管发往监控中心的数据与发往前方公交车站的数据有所不同,但都相当短小,适于用一条短信传输。

2)包括上下乘客的时间,目前公交车在两站间的运行时长基本上在2 min左右。所以,可将监控周期设定为15 s。这样的周期完全可以满足监控中心及乘客的信息需求。另一方面,以相距站数计,高峰期前后两辆车的间隔通常只有1~2站,空闲期的间隔一般在5~6站,这意味着每辆车每周期最多只需发送7条短信,因为本车信息只需通知到本车与前车之间的那些车站。根据笔者的测试,因所处位置、环境的不同,成功发送一条短信所需的时间会有很大差别,不过,通过一定的辅助手段,保证在2 s内成功发送一条短信是基本上可以做到的。所以,15 s的监控周期是可以满足车辆子系统发送短信的时间需求的。事实上,监控周期是很容易动态调整的,将本车信息发往前方车站也是可以有所取舍的。

根据以上分析可见,采用短信通信方式完全可以满足公交车发送信息的需求。而监控中心需要向运行中的公交车发送的信息很少,公交车站则不需要向公交车发送信息。而司乘人员与监控中心间的必要的语音通信可以限制在故障、等红灯、站内等停驶阶段进行。所以,短信通信完全可以满足公交车子系统的数据传输需求。

3)短信通信的最重要特性就是无连接、无冲突。发送方可随时向接收方发送短信,但该短信并不是直接发到接收方,而是经短信中心转发。短信中心将收到的短信暂存到其缓存中,在接收方能够接收时才进行转发。所以,短信一般也不会丢失,除非缓存超过一定期限。所以,基本上可以认定短信通信是一种无连接 (对发收双方而言)、无冲突、无丢失的可靠通信。唯一要注意的是,接收方所接收到的短信的时间顺序有可能与发送的时间顺序不一致,所以,监控系统中的短信均应含有时间信息,或者短信处理程序应处理短信本身所含的系统时间信息。

2 子系统

考虑到各子系统所处的环境特点以及可能的功能扩展,3个子系统采用不同的系统平台。监控中心以通用计算机PC机为系统平台;车辆子系统以单片机为系统平台;车站子系统则以ARM机为系统平台。

由于篇幅所限,笔者仅介绍车辆子系统。

2.1 车辆子系统的硬件结构

车辆子系统的硬件结构如图2所示。

图2 车辆子系统的硬件结构

图2中,GPS模块采用FASTRAX UC430,GPRS模块采用具有音频接口的 HUAWEI GTM900-C。单片机采用Atmaga128单片机。该单片机具有128 kB系统内可编程存储器,4 kB EEPROM,4 kB SRAM,53个通用I/O口 (其中16个可用作外接存储器地址线兼数据线(8根)),2个同异步串行通信接口(US-ART)等。

图2中所示的按钮(未全部画出)分别用于司乘人员请求与监控中心进行语音通信、请求发送车辆故障、乘客过多、道路拥堵、去行始发、回行始发、请求线路表等短信(至监控中心),以及系统复位、退出系统等。

2.2 车辆子系统的软件结构

车辆子系统的软件结构如图3所示。

图3中,系统上电或复位后从启动程序开始运行。启动程序首先调用初始化程序进行系统初始化,若成功则调用运行主模块。

初始化模块执行所有硬件接口及全局数据区的初始化。

图3 车辆子系统的软件结构

这里需要特别指出的是线路表的初始化。线路表副本存储于flash存储器中,设备出厂时为空。由于首次运行时不知道监控中心的短信号码,所以,系统首次初始化时必须等待监控中心发送线路表 (一种变通办法是事先将监控中心的短信号码存入SIM卡中,然后初始化时可主动请求监控中心发送线路表)。若线路表已存在于flash中,初始化程序只简单将其调入数据区。若线路表需要更新,可由司乘人员启动更新过程(见图4)。

本软件设计的大部分思想体现在运行主模块流程图中。运行主模块流程图如图4所示。下文略作说明。

首先,主模块分为起始循环与运行循环两大部分,考虑到线路表更新的需求,在进入运行循环前,司乘人员可按“线路表请求”按钮请求监控中心发送线路表。监控中心也可由监控人员操作某车的线路表发送程序,由车辆子系统来信处理,如图3所示。

其次,所有按钮事件将引起相应中断,这些中断服务程序只是简单地设置相应标志,而由图4中“按钮事件处理”程序处理。这些处理是有条件的,例如,语音服务只能在车辆停驶时进行。所以,如果车辆开始有效移动 (即GPS数据表明车辆已前行),就要关闭正在进行的语音服务。

第三,当车辆到达终点(或回到起点)时,除非司乘人员关闭系统,将退出运行循环,回到起始循环。为简化起见,图4中未画出。

3 GPS与GPRS应用技术要点

如图3所示,GPS与GPRS子系统分别由对应的服务模块、串口通信模块、以及用户设备模块组成。限于篇幅,笔者介绍几个要点。

图4 运行主模块流程图

3.1 读取GPS数据

虽然GPS的原理及核心计算相当复杂[2-3],但运用GPS接收机读取GPS数据则相对简单。

GPS接收机一旦通电工作并初始化后,便会周期性地输出各种GPS数据。所谓“读取GPS数据”就是读取这些数据,并从中提取出应用所需的部分。通常,GPS接收机的输出遵循NMEA0183协议[4]。该协议规定了各种导航系统的数据传输标准。该协议规定,GPS接收机以ASCII码形式向串口输出GPS数据或者从串口接收工作指令数据。NMEA0183将每一帧数据称为一个 “语句”,并规定了3大类语句:

1)Talker Sentences;

2)Query Sentences;

3)Proprietary Sentences。

其中,Talker Sentences用于GPS接收机输出数据;Query Sentences用于向GPS接收机发送查询指令数据;Proprietary Sentences则是制造商添加的非标准语句。

语句的基本格式如下:

$ttsss,d1,d2,....<CR><LF>

即每个语句均以符号“$”开头,其后紧跟标志语句类型的5个英文字母,然后是以逗号分隔的若干数据字段,最后以回车换行符结束。其中,tt为发送者标识,sss为语句标识。NMEA0183协议给出语句多达数十种,不过通常只用其中少数几种。

本系统只需提取最常用的位置信息帧,其语句格式为:

$GPGGA,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10d,d11,d12,*d13<CR><LF>

其中,GP即代表GPS设备,GGA表示本语句给出的是GPS的基本数据,d1是UTC时间,d2是经度,d3是经度方向,d4是纬度,d5是纬度方向,d6至d12为进一步的信息,d13是校验数据,校验对象是$与*之间的所有数据[4]。

相应地,可在初始化时向GPS接收机发送查询语句:

$CCGPQ,GGA<CR><LF>

其中,CC代表计算机设备,GP代表GPS设备,Q是固定的。整个语句表达的就是:CC要求GPS发送GGA语句。

NMEA0183还规定,除非有新的查询指令,GPS将每隔1 s发送一次所要求的数据。所以,查询语句在初始化时成功发送一次就可以了。

3.2 收发GPRS短信

由于车辆子系统以单片机为核心,显然只能通过串口及AT命令与GPRS模块通信,以控制GPRS模块的工作模式及收发短信等。这也正是GPRS服务模块要实现的内容。从功能上划分,主要有以下方面:

1)GPRS设备初始化。

GPRS设备初始化,主要就是设置短信中心号码以及设置短信格式等。设置短信中心号码的命令格式如下:

AT+CSCA=”短信中心号码”<CR><LF>

例如,当短信中心号码为+8613800270500(中国移动武汉局)时,则从串口发往GPRS模块的命令字串为

AT+CSCA=”+8613800270500”<CR><LF>

设置短信格式的命令格式如下:

AT+CMGF=0

这里,参数0表示选择PDU短信格式。这是我国通用的短信格式。此外还有文本格式 (AT+ CMGF=1)与块格式(AT+CMGF=2)。

PDU短信发送前需要按照协议格式进行封装,接收后则需要进行解析。看起来比较烦琐,但其包含的信息相当丰富。除了用户号码和短信内容外,还包括一些也十分有用的信息。例如有效期(发送时)或时间戳(接收时)。由于网络的原因,短信到了短信中心(发送成功)后,可能会延误相当长的时间,然后才成功发到接收机上。这很类似于IP包在因特网上的传输。对于监控信息,延迟到达的短信不仅过期无用,而且可能会造成接收方的混乱。有了有效期和时间戳,就可以让短信中心丢弃过期的短信,让接收方按时间处理短信。再比如,短信PDU中含有编码信息字段,使得用户可以根据不同的需要采用不同的编码。

此外,若不使用缺省的短信接收模式,也可在初始化时设置。

2)发送PDU短信。

发送一条PDU短信需要以下几个步骤:

①封装好PDU协议包 (通常表现为一个字符串)。

②发送AT命令:

AT+CMGS=n,

其中,n为PDU协议包的字节数。

③等待GPRS模块应答。当收到“〉”符号时,立刻发送PDU协议包,并接着发送一个文终符号“^Z”。

④等待GPRS模块应答。若成功,则应答为“+CMGS,<mr>[,ackpdu]OK”,否则为“ERROR”。通常,只要检测收到的应答行中是否包括“+CMGS”和“OK”或是否包括“ERROR”就可以了。

3)接收短信及删除短信。

在缺省模式下,GPRS收到的短信会自动存到SIM卡中,等待用户通过AT命令读取。有2种AT命令可以读取SIM卡中的短信,分别是AT+CMGR命令和AT+CMGL命令。根据笔者的经验,后者用起来更方便[5]。下面简要介绍。

首先,发送命令

AT+CMGL=0

其中,参数0表示读取所有未读的短信。

然后,如果有未读短信,模块会返回类似下列信息:

上列信息表明读取到2条短信,索引号分别为1和2(索引号是删除短信必不可少的数据)。每条短信的第2行即为PDU协议包,是需要提取出来进行解析的数据,其他部分一般没有实际用途。

存储于SIM卡中的短信,不会自动删除,无论已经读取与否。所以,短信读取后,需要发送短信删除命令将其删除。短信删除命令的格式为:

AT+CMGD=<index>

若命令执行成功,则GPRS模块返回“OK”,否则,返回“CMS ERROR<err>”。其中,err是错误代号。

短信AT命令的用法,可参见文献[6-7]。

4 结语

笔者所描述的是一个城市公交监控系统的基本方案,在实施时,可根据具体需求和具体条件进行变通。例如,车站子系统可综合考虑城市宣传与广告等,监控系统可考虑作为整个城市交通监控的一部分,而车辆子系统亦可综合考虑城市宣传与广告等功能。

[1]桂小林.微型计算机接口技术[M].北京:高等教育出版社,2010:87-89.

[2]管耀武.ARM嵌入式无线通信系统开发 [M].北京:电子工业出版社,2006:321-350.

[3] 陈赜.ARM嵌入式技术实践教程[M].北京:北京航空航天大学出版社,2005:294-297.

[4] 周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005:322-335.

[5]Baidu Cyclopedic.GPS定位 [EB/OL].[2011-10-03]. http://baike.Baidu.com/view/193655.htm.

[6] NMEA.NMEAdescription 0183[EB/OL].[2010-12-25].http://www.pudn.com/downloads364/doc/detail 1581338.html.

[7]ESTI.GSM 03.38[EB/OL].[2010-03-01].http://www. mobilecity.cz/doc/GSM_03.38_5.3.0.pdf.

CHENG Yuan-bin
(School of Mathematics and Computer Sciences,Jianghan University,Wuhan 430056,Hubei,China)

Building a perfect urban public traffic supervisory control system is the press for an urban public traffic system to advance management level,efficiency of running and quality of service.An urban public traffic supervisory control system should get the position and state of running vehicles,and then,tells the information to managers and passengers by pellucid manner,it also can transmit manager′s instruction to the driver.An urban public traffic supervisory control system is a typical CPS.This paper proposed an economical and applied urban public traffic supervisory control system based on GPS and GPRS,and analyzed some issues in implement.

GPS;GPRS;public traffic;supervisory control system;Internet of things;cyber-physical system(CPS)

TP274

:A

:1673-0143(2012)03-0064-05

(责任编辑:陈 旷)

2012-03-22

程元斌 (1954—),男,副教授,研究方向:计算机网络、信息安全及嵌入式系统。

猜你喜欢

城市公交语句短信
重点:语句衔接
道歉短信
代发短信
城市公交客车弯道行驶油耗优化方法
杨传堂主持专题会议研究部署推进城市公交优先发展工作
R218普利司通城市公交专用轮胎新品
如何搞定语句衔接题
城市公交专用道设计标准探讨
“八一”节日短信之一
作文语句实录