付良锋, 钱佳乐, 谢林柏*, 彭 力
(1.江南大学物联网工程学院,江苏无锡214122;2.无锡华捷电子信息技术有限公司,江苏无锡214000)
目前,很多省会城市及经济发达的一二线城市,其公共交通通常采用全程一票制的计费方式,这与政府的补贴力度、公交公司的所有制形式及运营模式有关。然而,随着区域经济的发展和城市规模的不断扩大,城乡之间、城际之间的交流越来越密切,客流往返更加频繁,人们迫切需要更大区域出行的便捷性。为了解决这一问题,开通更多的一票制线路是一种最简单的做法,但会增加人们换乘的难度;如果延长现有公交线路的长度而保持一票制收费,势必会增加公交公司的运营成本。因此,传统的一票制模式已经不能完全适应公交的发展。考虑到技术的发展和实际情况,在可预见的未来,大部分的城市公交车将是一票制和分段收费并存的模式,一般市内线路的公交车采用一票制,城际、城乡公交和村镇公交车采用分段收费方式。另一方面,随着城际公交、地铁、城际铁路、轻轨等分段收费的交通工具的发展,也为交通分段收费模式的应用带来了广阔的需求和发展空间[1]。
从计费方式实现来看,一票制方式由于票价固定,乘客只要刷一次卡即可完成乘车缴费。而在分段计费方式下,票价是根据乘客上下车站台间距来确定的,因此分段式计费方式需要对乘客上下车站台进行自动识别并扣费。有多种方式可以实现这一功能,本文提出一种带GPS模块的Pos机来实现公交车分段收费功能。首先根据公交公司需求确定分段计价的实施方案,然后选择实现这一方案的Pos机基本硬件构成,接着重点研究分段计价系统的软件设计,最后对设计好的Pos机在江苏海安进行了跟车测试。
在编写Pos机软件和配置硬件之前需要对公交公司的公交营运情况进行调研,根据调研信息确定分段计价实施方案。
1.1.1 线路分布 主要调研该城市有多少条公交线路,其中有哪些线路为市内线(一票制),哪些是城乡线(分段计价),哪些是村镇公交(多为分段计价),是否有环行线。不同的线路软硬件配置可能不一样,一票制的车只需安装一台Pos机,可以不带GPS模块,程序相对简单;分段计价线路,其Pos机需带GPS模块,程序比一票制复杂,如果有环形线,则程序更加复杂。此外,代班的机动车程序要兼容一票制、分段计价和环形线[2]。
1.1.2 车况 主要咨询该城市的分段计费线路是否有单门车。对于双门车,需要前后门各装一台Pos机,乘客在前门上车刷卡,后门下车刷卡,当然特殊情况(如前门Pos机故障)也支持前门上前门下,后门上后门下,后门上前门下。对于单门车,只装一台Pos机,单门上单门下。因而要求单个Pos机能实现分段计价的所有功能。
1.2.1 分段计价票价信息收集及计费方案的确定
每条分段计价线路都对应一阶梯票价表,该表记录了从任意站点(大站)上车到任意站点(大站)下车的票价,其中大站为票价分割点[3]。以江苏海安公交005线路为例,其阶梯票价表和大站、小站分布见图1和图2。
上下行的切换:车开到A站时,Pos机需自动切换为上行状态,到E站时需自动切换为下行状态。
小站票价的设定:由于阶梯票价表中只有从大站到大站的票价,因此还需要咨询乘客从小站上下车,公交公司是怎么设定票价的。通常公交公司(如张家港、海安)规定从小站上车视为从与之相邻的上一个大站上车,在小站下车视为在与之相邻的下一个大站下车。
1.2.2 站台GPS经纬度坐标采集 Pos机检测站台是通过比较当前GPS坐标与Pos机里面事先保存好的所有站台的坐标之间的距离来确定车当前到了哪个站,是进站还是出站。所以还需要采集所有大站的GPS坐标。
1.2.3 卡操作方案
1)该城市公交用户卡的卡类型:是用CPU卡还是MI卡,是市民卡还是普通卡,是否要支持手机刷卡消费[4]。
2)用户卡种类和费率:除了普通用户卡,是否要用到月票卡、老人卡、学生卡等,各类卡的费率(折扣)是多少。
3)对逃票的定义和逃票票价的设定:对于分段计价,一般认为乘客上车刷了卡,下车不刷卡算逃票;上车时车的上下行标识与下车时的上下行标识不一致(即到了终点站还不下车)也算逃票。逃票要扣逃票票价,一般将该线路的最高票价作为逃票票价。
4)上错车处理:有些乘客刷卡上车后,发现上错车了,又立即刷卡下车(车还没开),这种情况应该不扣钱,处理的方法是设定一个上下车刷卡时间间隔(比如20 s),在此间隔内上下车刷卡扣0元。
如图3 所示[5]。
图3 分段计价Pos机基本硬件架构Fig.3 Architectures of segment denominated Pos machine
这是Pos机的基本功能模块,Pos机中有一个射频接口电路与RFID芯片相连,在Pos机上电时,该射频接口电路发射固定频率的电磁波,当有卡片进入该磁波感应范围内并且卡片内的谐振电路的振荡频率与该频率相同时,IC卡被激活,这时RFID芯片可以对卡片进行数据的读写。考虑到刷卡速度的要求,本系统选择感应速度较快的复旦微电子FM1715芯片(识别一张卡时间约为3 ms(包括复位应答和防冲突))作为RFID模块。由于涉及到扣款与用户个人信息等,在读写数据时需安全密钥和内部外部认证过程。这些读写操作指令和安全认证过程都需要psam卡参与操作,所以Pos机中还需要添加一个psam卡模块并开辟一个psam卡槽[6-7]。
每台Pos机都对应一辆公交车,而每辆公交车都有一些参数信息,这些信息包括车辆所在的线路号、分公司编号、车牌号、计价模式(是一票制收费还是分段收费)、基本票价、分段收费的阶梯票价表、站台名字、站台序号、站台经纬度坐标、语音信息、逃票规定等。这些参数信息在每次刷卡的时候都会被反复而快速地读出与写入,所以要求Pos机存储模块可读写的次数必须足够大,并且读取速度必须很快。若每台Pos机每天被刷卡100次,每次刷卡读 /写存储器10次,则3年内这个存储器将被访问超过100万次,而一般的EEPROM的最大访问次数也就100万次。所以为了满足这个要求,选择铁电存储器(访问次数可达100亿次,访问速度约为70 ns/B,EEPROM读写速度一般大于1 ms/B)作为参数信息和一些状态信息的存储介质。
Pos机每刷一次卡都会产生一笔交易记录,交易记录包含本次交易的交易金额、交易时间、车辆信息等非常重要的数据。公交公司要获取这些信息,以便生成报表和结算收益,并可允许乘客进行查询。有多种方式可以实现交易记录上传,本系统采用信号相对稳定的CDMA在线方式上传交易记录,可以实现记录的实时上传,无需人工采集,CDMA模块采用华为MC323模块[8]。
要使Pos机能够自动识别站台,可以有多种方式,本系统采用在Pos机中添加GPS模块并外接GPS天线的方式。该Pos机在添加了GPS模块后,也可以很容易实现自动报站器的功能。
要实现上述所有的模块和功能,系统主芯片必须支持3个以上的串口,分别用于GPS模块、CDMA模块、红外模块、连接PC。考虑到外接模块众多、软件的复杂度及刷卡的速度等要求,选择支持4路串口,主频72 MB,512 kB片内flash,32 kB静态RAM的LPC2368作为主芯片。
Pos机嵌入式软件分为驱动程序跟应用程序。限于篇幅,这里只介绍应用程序中最关键的:分段计价处理流程。
分段计价票价计算原理:用户上车刷卡→保存Pos机当前站台序号到用户卡内→用户下车刷卡→取卡内上车站台序号和Pos机当前站台序号,得到用户上下车站台序号→根据上下车站台序号搜索阶梯票价表中对应的票价→取得的票价乘以费率得到该用户的乘车票价。
要向用户卡内保存和读取信息需要在卡内定义一个用于公交车分段收费的文件,该文件的大小、读写权限、文件标识、文件类型由用户卡发行方设定。Pos机程序员根据发卡方规定的安全认证方法即可对该文件进行读写操作,该文件需要保存用户上下车标识、车的上下行标识、上车Pos机编号、上车站台序号等信息。Pos机根据卡内的这些信息来判断该乘客的上下车状态、上下行状态、上车站台序号等信息来计算票价,确定本次刷卡是否为逃票,应该走上车流程还是下车流程等,用户在分段计费的公交车上下车刷卡时要把这些信息写入用户卡内的公交分段收费文件中。见表1。
表1 海安公交分段计价文件定义Tab.1 Bus segment denominated document definition of Haian
Pos机程序在正常运行前需要向铁电存储器里面保存一些参数信息,主要包括线路号、计价模式、基本票价、各种卡的费率、逃票票价、分公司编号、该线路所有大站的经纬坐标、各大站的站台序号、线路阶梯票价等。这些参数在Pos机首次开机时,由服务器通过CDMA自动下发到Pos机。Pos机根据这些信息确定该车是一票制还是分段计价,确定上下车站台、计算票价等[8]。
参数下发过程:Pos机首次开机→Pos机按照给定的报文格式发送参数,请求报文到服务器→服务器验证并解析报文获取线路号→服务器按给定格式发送该线路参数信息报文到Pos机。
公交车在行驶过程中,Pos机需要实时定位该车所处的当前站台序号、进出站标识和上下行标识,以确定乘客的上下车站台和上下行状态。下面是GPS站台检测函数的处理过程:
Step 0:初始为出站。
Step 1:判断是进站还是出站,如果是进站执行Step 2,否则执行 Step 4。
Step 2:计算Pos机内保存的当前站台对应的经纬度坐标与GPS实时经纬度坐标的偏移量。
Step 3:如果偏移量大于等于150 m,则将进出站标识置为出站并返回Step 1;小于150 m直接返回Step 1。
Step 4:遍历该线路所有大站,计算其经纬度坐标与GPS实时经纬度坐标的偏移量。
Step 5:如果找到某个大站i对应的偏移量小于150 m,则将i作为当前站台,保存到铁电存储器,将进出站标识置为进站并返回Step 1;如果没找到直接返回Step 1。
分段收费Pos机应用程序设计的关键在于分段收费流程的设计[9],该流程因为涉及到站台票价的计算、逃票的处理等过程,因而比一票制流程复杂得多。图4是海安公交的分段收费处理流程[10],可以兼容一票制,流程中没有包括异常的处理比如乘客上错车、读/写公交分段收费文件失败、执行扣款指令后数据返回不正常等异常情况,在编写程序时这些必须考虑到。由于海安公交分段收费线路没有环行线,所以该流程不包含对环行线的处理[11]。
本系统设计实现后在江苏省海安县公交公司进行测试。目前,海安共有35条公交线路,其中20余条为分段收费线路,贯穿城乡和村镇,其余为城区一票制线路。分段收费线路中有一些是单门车,没有分段收费环形线路。考虑到海安的公交实际情况,测试时的主要内容为:前门上后门下的分段扣费测试、单门上下车的分段扣费测试、逃票测试、对一票制兼容性的测试、记录的实时上传与结算报表的生成测试等。
本系统集成后,在海安4条长线公交005、101、105、106路进行了测试和试运营。以005路公交为例,测试过程如下:选用编号为1—5的5张用户卡,测试时保证卡内有足够的余额,折扣为9折。测试前在起点海安站用U盘向Pos机中下载编写好的最新程序,然后刷005路的线路卡,将线路号等参数输入Pos机,重启后听到报语音“采集完成”,说明该车的参数信息已通过CDMA成功下发到Pos机,在等待屏幕显示GPS信号正常后,即可开始跟车测试,测试时充分考虑各个小站和票价分割点(大站)、各种逃票情况和上错车情况。005路部分刷卡扣款结果见表2。
图4 海安公交分段计费处理流程Fig.4 Process flow of Haian’s bus sectional charge
表2 海安公交005路部分测试结果Fig.2 Part of test result of bus 005 in Haian
针对其他长线公交线路的测试结果如下:
1)大部分票价扣款正确,有少量扣款出错情况,在更正站台坐标和阶梯票价后,扣款全部正确;
2)各种逃票现象和上错车现象得到了有效的处理;
3)一票制和分段计价可以灵活切换;
4)生成的记录能够实时上传并在结算系统生成报表。
测试结果证明了方案及程序的可行性。该Pos机目前在海安全面装车,进入了试运营阶段。
作者设计的公交分段收费系统的特点在于:
1)采用GPS实现站台的自动检测;
2)支持一票制与分段计价的灵活切换;
3)支持单门上下车,即单个Pos机可以实现分段收费的所有功能;
4)交易记录自动上传,无需人工采集;
5)对各种逃票、上错车现象能够进行有效处理。
此外,该系统的实现对公交部门降低运营成本、吸引乘客将起到很好的作用,方案的成功实施也对城际公交分段收费、城际便捷班车分段收费、地铁分段收费有一定的参考意义。该车载Pos机程序经过少量修改还可以实现自动报站器的功能,成为车载 Pos、自动报站一体机[12]。
[1]李鸿艳.公交IC卡分段收费的实现[J].交通信息与安全,2010,29(2):98-100.
LI Hong-yan.Realization of public transportation IC card partition charge[J].Traffic Information and Safety,2010,29(2):98-100.(in Chinese)
[2]高红梅,赖元文.中小城市公交线网规划方法的探究[J].福建建筑,2011,162(12):41-43.
GAO Hong-mei,LAI Yuan-wen.Research of mediu-M and small cities public transportation network planning method[J].Fujian Architecture & Construction,2011,162(12):41-43.(in Chinese)
[3]严爱琼,崔敏.重庆主城区公交站点布局问题与优化策略[J].规划设计,2011,27(11):53-56.
YAN Ai-qiong,CUI Min.Distributions and optimization strategies for bus stations in the main city of Chongqing[J].Planning and Design,2011,27(11):53-56.(in Chinese)
[4]建设部IC卡服务中心.建设事业IC卡应用技术实施导则[Z].北京:建设部,2007.
[5]周立功.ARM嵌入式系统基础教程[M]:北京:北京航空航天大学出版社,2007:335-350.
[6]建设部IC卡服务中心.建设部PSAM卡操作手册[Z].北京:建设部,2007.
[7]蔡锦达,吴伟鹏.非接触式IC卡内部结构与工作原理[J].企业技术开发,2005,24(10):3-5.
CAI Jing-da,WU Wei-peng.Internal structure and working principle of non-contact IC card[J].Technological Development of Enterprise,2005,24(10):3-5.(in Chinese)
[8]郭明超,饶增仁.射频IC卡Pos机软件设计[J].甘肃科技,2009,25(21):22-24.
GUO Ming-chao,RAO Zeng-ren.Pos software design of RF IC card[J].Gansu Science and Technology,2009,25(21):22-24.(in Chinese)
[9]唐浩强.C语言程序设计[M].第3版.北京:清华大学出版社,2005:36-95.
[10]武根友,李江,李晓辉.基于物联网的智能公交系统研究[J].河北省科学院学报,2011,28(3):74-76.
WU Gen-you,LI Jiang,LI Xiao-hui.Research on intelligent public transit system based on Internet of Things[J].Journal of the Hebei Academy of Sciences,2011,28(3):74-76.(in Chinese)
[11]钱燕敏,扬明芳等.pos机收费系统的故障排除[J].农村电气化,2012,297(2):31-32.
QIAN Yan-min,YANG Ming-fang.Charging system's troubleshooting of pos machine[J].Rural Electrification,2012,297(2):31-32.(in Chinese)
[12]刘强,贾鸿莉.基于单片机的公交自动报站器的设计[J].信息科技,2011,60(9):106.
LIU Qiang,JIA Hong-li.The design of bus automatic station reporter based on microcontroller[J].Information Technology,2011,60(9):106.(in Chinese)