付良鋒, 錢佳樂, 謝林柏*, 彭 力
(1.江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇無錫214122;2.無錫華捷電子信息技術(shù)有限公司,江蘇無錫214000)
目前,很多省會城市及經(jīng)濟發(fā)達(dá)的一二線城市,其公共交通通常采用全程一票制的計費方式,這與政府的補貼力度、公交公司的所有制形式及運營模式有關(guān)。然而,隨著區(qū)域經(jīng)濟的發(fā)展和城市規(guī)模的不斷擴大,城鄉(xiāng)之間、城際之間的交流越來越密切,客流往返更加頻繁,人們迫切需要更大區(qū)域出行的便捷性。為了解決這一問題,開通更多的一票制線路是一種最簡單的做法,但會增加人們換乘的難度;如果延長現(xiàn)有公交線路的長度而保持一票制收費,勢必會增加公交公司的運營成本。因此,傳統(tǒng)的一票制模式已經(jīng)不能完全適應(yīng)公交的發(fā)展??紤]到技術(shù)的發(fā)展和實際情況,在可預(yù)見的未來,大部分的城市公交車將是一票制和分段收費并存的模式,一般市內(nèi)線路的公交車采用一票制,城際、城鄉(xiāng)公交和村鎮(zhèn)公交車采用分段收費方式。另一方面,隨著城際公交、地鐵、城際鐵路、輕軌等分段收費的交通工具的發(fā)展,也為交通分段收費模式的應(yīng)用帶來了廣闊的需求和發(fā)展空間[1]。
從計費方式實現(xiàn)來看,一票制方式由于票價固定,乘客只要刷一次卡即可完成乘車?yán)U費。而在分段計費方式下,票價是根據(jù)乘客上下車站臺間距來確定的,因此分段式計費方式需要對乘客上下車站臺進(jìn)行自動識別并扣費。有多種方式可以實現(xiàn)這一功能,本文提出一種帶GPS模塊的Pos機來實現(xiàn)公交車分段收費功能。首先根據(jù)公交公司需求確定分段計價的實施方案,然后選擇實現(xiàn)這一方案的Pos機基本硬件構(gòu)成,接著重點研究分段計價系統(tǒng)的軟件設(shè)計,最后對設(shè)計好的Pos機在江蘇海安進(jìn)行了跟車測試。
在編寫Pos機軟件和配置硬件之前需要對公交公司的公交營運情況進(jìn)行調(diào)研,根據(jù)調(diào)研信息確定分段計價實施方案。
1.1.1 線路分布 主要調(diào)研該城市有多少條公交線路,其中有哪些線路為市內(nèi)線(一票制),哪些是城鄉(xiāng)線(分段計價),哪些是村鎮(zhèn)公交(多為分段計價),是否有環(huán)行線。不同的線路軟硬件配置可能不一樣,一票制的車只需安裝一臺Pos機,可以不帶GPS模塊,程序相對簡單;分段計價線路,其Pos機需帶GPS模塊,程序比一票制復(fù)雜,如果有環(huán)形線,則程序更加復(fù)雜。此外,代班的機動車程序要兼容一票制、分段計價和環(huán)形線[2]。
1.1.2 車況 主要咨詢該城市的分段計費線路是否有單門車。對于雙門車,需要前后門各裝一臺Pos機,乘客在前門上車刷卡,后門下車刷卡,當(dāng)然特殊情況(如前門Pos機故障)也支持前門上前門下,后門上后門下,后門上前門下。對于單門車,只裝一臺Pos機,單門上單門下。因而要求單個Pos機能實現(xiàn)分段計價的所有功能。
1.2.1 分段計價票價信息收集及計費方案的確定
每條分段計價線路都對應(yīng)一階梯票價表,該表記錄了從任意站點(大站)上車到任意站點(大站)下車的票價,其中大站為票價分割點[3]。以江蘇海安公交005線路為例,其階梯票價表和大站、小站分布見圖1和圖2。
上下行的切換:車開到A站時,Pos機需自動切換為上行狀態(tài),到E站時需自動切換為下行狀態(tài)。
小站票價的設(shè)定:由于階梯票價表中只有從大站到大站的票價,因此還需要咨詢乘客從小站上下車,公交公司是怎么設(shè)定票價的。通常公交公司(如張家港、海安)規(guī)定從小站上車視為從與之相鄰的上一個大站上車,在小站下車視為在與之相鄰的下一個大站下車。
1.2.2 站臺GPS經(jīng)緯度坐標(biāo)采集 Pos機檢測站臺是通過比較當(dāng)前GPS坐標(biāo)與Pos機里面事先保存好的所有站臺的坐標(biāo)之間的距離來確定車當(dāng)前到了哪個站,是進(jìn)站還是出站。所以還需要采集所有大站的GPS坐標(biāo)。
1.2.3 卡操作方案
1)該城市公交用戶卡的卡類型:是用CPU卡還是MI卡,是市民卡還是普通卡,是否要支持手機刷卡消費[4]。
2)用戶卡種類和費率:除了普通用戶卡,是否要用到月票卡、老人卡、學(xué)生卡等,各類卡的費率(折扣)是多少。
3)對逃票的定義和逃票票價的設(shè)定:對于分段計價,一般認(rèn)為乘客上車刷了卡,下車不刷卡算逃票;上車時車的上下行標(biāo)識與下車時的上下行標(biāo)識不一致(即到了終點站還不下車)也算逃票。逃票要扣逃票票價,一般將該線路的最高票價作為逃票票價。
4)上錯車處理:有些乘客刷卡上車后,發(fā)現(xiàn)上錯車了,又立即刷卡下車(車還沒開),這種情況應(yīng)該不扣錢,處理的方法是設(shè)定一個上下車刷卡時間間隔(比如20 s),在此間隔內(nèi)上下車刷卡扣0元。
如圖3 所示[5]。
圖3 分段計價Pos機基本硬件架構(gòu)Fig.3 Architectures of segment denominated Pos machine
這是Pos機的基本功能模塊,Pos機中有一個射頻接口電路與RFID芯片相連,在Pos機上電時,該射頻接口電路發(fā)射固定頻率的電磁波,當(dāng)有卡片進(jìn)入該磁波感應(yīng)范圍內(nèi)并且卡片內(nèi)的諧振電路的振蕩頻率與該頻率相同時,IC卡被激活,這時RFID芯片可以對卡片進(jìn)行數(shù)據(jù)的讀寫??紤]到刷卡速度的要求,本系統(tǒng)選擇感應(yīng)速度較快的復(fù)旦微電子FM1715芯片(識別一張卡時間約為3 ms(包括復(fù)位應(yīng)答和防沖突))作為RFID模塊。由于涉及到扣款與用戶個人信息等,在讀寫數(shù)據(jù)時需安全密鑰和內(nèi)部外部認(rèn)證過程。這些讀寫操作指令和安全認(rèn)證過程都需要psam卡參與操作,所以Pos機中還需要添加一個psam卡模塊并開辟一個psam卡槽[6-7]。
每臺Pos機都對應(yīng)一輛公交車,而每輛公交車都有一些參數(shù)信息,這些信息包括車輛所在的線路號、分公司編號、車牌號、計價模式(是一票制收費還是分段收費)、基本票價、分段收費的階梯票價表、站臺名字、站臺序號、站臺經(jīng)緯度坐標(biāo)、語音信息、逃票規(guī)定等。這些參數(shù)信息在每次刷卡的時候都會被反復(fù)而快速地讀出與寫入,所以要求Pos機存儲模塊可讀寫的次數(shù)必須足夠大,并且讀取速度必須很快。若每臺Pos機每天被刷卡100次,每次刷卡讀 /寫存儲器10次,則3年內(nèi)這個存儲器將被訪問超過100萬次,而一般的EEPROM的最大訪問次數(shù)也就100萬次。所以為了滿足這個要求,選擇鐵電存儲器(訪問次數(shù)可達(dá)100億次,訪問速度約為70 ns/B,EEPROM讀寫速度一般大于1 ms/B)作為參數(shù)信息和一些狀態(tài)信息的存儲介質(zhì)。
Pos機每刷一次卡都會產(chǎn)生一筆交易記錄,交易記錄包含本次交易的交易金額、交易時間、車輛信息等非常重要的數(shù)據(jù)。公交公司要獲取這些信息,以便生成報表和結(jié)算收益,并可允許乘客進(jìn)行查詢。有多種方式可以實現(xiàn)交易記錄上傳,本系統(tǒng)采用信號相對穩(wěn)定的CDMA在線方式上傳交易記錄,可以實現(xiàn)記錄的實時上傳,無需人工采集,CDMA模塊采用華為MC323模塊[8]。
要使Pos機能夠自動識別站臺,可以有多種方式,本系統(tǒng)采用在Pos機中添加GPS模塊并外接GPS天線的方式。該Pos機在添加了GPS模塊后,也可以很容易實現(xiàn)自動報站器的功能。
要實現(xiàn)上述所有的模塊和功能,系統(tǒng)主芯片必須支持3個以上的串口,分別用于GPS模塊、CDMA模塊、紅外模塊、連接PC??紤]到外接模塊眾多、軟件的復(fù)雜度及刷卡的速度等要求,選擇支持4路串口,主頻72 MB,512 kB片內(nèi)flash,32 kB靜態(tài)RAM的LPC2368作為主芯片。
Pos機嵌入式軟件分為驅(qū)動程序跟應(yīng)用程序。限于篇幅,這里只介紹應(yīng)用程序中最關(guān)鍵的:分段計價處理流程。
分段計價票價計算原理:用戶上車刷卡→保存Pos機當(dāng)前站臺序號到用戶卡內(nèi)→用戶下車刷卡→取卡內(nèi)上車站臺序號和Pos機當(dāng)前站臺序號,得到用戶上下車站臺序號→根據(jù)上下車站臺序號搜索階梯票價表中對應(yīng)的票價→取得的票價乘以費率得到該用戶的乘車票價。
要向用戶卡內(nèi)保存和讀取信息需要在卡內(nèi)定義一個用于公交車分段收費的文件,該文件的大小、讀寫權(quán)限、文件標(biāo)識、文件類型由用戶卡發(fā)行方設(shè)定。Pos機程序員根據(jù)發(fā)卡方規(guī)定的安全認(rèn)證方法即可對該文件進(jìn)行讀寫操作,該文件需要保存用戶上下車標(biāo)識、車的上下行標(biāo)識、上車Pos機編號、上車站臺序號等信息。Pos機根據(jù)卡內(nèi)的這些信息來判斷該乘客的上下車狀態(tài)、上下行狀態(tài)、上車站臺序號等信息來計算票價,確定本次刷卡是否為逃票,應(yīng)該走上車流程還是下車流程等,用戶在分段計費的公交車上下車刷卡時要把這些信息寫入用戶卡內(nèi)的公交分段收費文件中。見表1。
表1 海安公交分段計價文件定義Tab.1 Bus segment denominated document definition of Haian
Pos機程序在正常運行前需要向鐵電存儲器里面保存一些參數(shù)信息,主要包括線路號、計價模式、基本票價、各種卡的費率、逃票票價、分公司編號、該線路所有大站的經(jīng)緯坐標(biāo)、各大站的站臺序號、線路階梯票價等。這些參數(shù)在Pos機首次開機時,由服務(wù)器通過CDMA自動下發(fā)到Pos機。Pos機根據(jù)這些信息確定該車是一票制還是分段計價,確定上下車站臺、計算票價等[8]。
參數(shù)下發(fā)過程:Pos機首次開機→Pos機按照給定的報文格式發(fā)送參數(shù),請求報文到服務(wù)器→服務(wù)器驗證并解析報文獲取線路號→服務(wù)器按給定格式發(fā)送該線路參數(shù)信息報文到Pos機。
公交車在行駛過程中,Pos機需要實時定位該車所處的當(dāng)前站臺序號、進(jìn)出站標(biāo)識和上下行標(biāo)識,以確定乘客的上下車站臺和上下行狀態(tài)。下面是GPS站臺檢測函數(shù)的處理過程:
Step 0:初始為出站。
Step 1:判斷是進(jìn)站還是出站,如果是進(jìn)站執(zhí)行Step 2,否則執(zhí)行 Step 4。
Step 2:計算Pos機內(nèi)保存的當(dāng)前站臺對應(yīng)的經(jīng)緯度坐標(biāo)與GPS實時經(jīng)緯度坐標(biāo)的偏移量。
Step 3:如果偏移量大于等于150 m,則將進(jìn)出站標(biāo)識置為出站并返回Step 1;小于150 m直接返回Step 1。
Step 4:遍歷該線路所有大站,計算其經(jīng)緯度坐標(biāo)與GPS實時經(jīng)緯度坐標(biāo)的偏移量。
Step 5:如果找到某個大站i對應(yīng)的偏移量小于150 m,則將i作為當(dāng)前站臺,保存到鐵電存儲器,將進(jìn)出站標(biāo)識置為進(jìn)站并返回Step 1;如果沒找到直接返回Step 1。
分段收費Pos機應(yīng)用程序設(shè)計的關(guān)鍵在于分段收費流程的設(shè)計[9],該流程因為涉及到站臺票價的計算、逃票的處理等過程,因而比一票制流程復(fù)雜得多。圖4是海安公交的分段收費處理流程[10],可以兼容一票制,流程中沒有包括異常的處理比如乘客上錯車、讀/寫公交分段收費文件失敗、執(zhí)行扣款指令后數(shù)據(jù)返回不正常等異常情況,在編寫程序時這些必須考慮到。由于海安公交分段收費線路沒有環(huán)行線,所以該流程不包含對環(huán)行線的處理[11]。
本系統(tǒng)設(shè)計實現(xiàn)后在江蘇省海安縣公交公司進(jìn)行測試。目前,海安共有35條公交線路,其中20余條為分段收費線路,貫穿城鄉(xiāng)和村鎮(zhèn),其余為城區(qū)一票制線路。分段收費線路中有一些是單門車,沒有分段收費環(huán)形線路??紤]到海安的公交實際情況,測試時的主要內(nèi)容為:前門上后門下的分段扣費測試、單門上下車的分段扣費測試、逃票測試、對一票制兼容性的測試、記錄的實時上傳與結(jié)算報表的生成測試等。
本系統(tǒng)集成后,在海安4條長線公交005、101、105、106路進(jìn)行了測試和試運營。以005路公交為例,測試過程如下:選用編號為1—5的5張用戶卡,測試時保證卡內(nèi)有足夠的余額,折扣為9折。測試前在起點海安站用U盤向Pos機中下載編寫好的最新程序,然后刷005路的線路卡,將線路號等參數(shù)輸入Pos機,重啟后聽到報語音“采集完成”,說明該車的參數(shù)信息已通過CDMA成功下發(fā)到Pos機,在等待屏幕顯示GPS信號正常后,即可開始跟車測試,測試時充分考慮各個小站和票價分割點(大站)、各種逃票情況和上錯車情況。005路部分刷卡扣款結(jié)果見表2。
圖4 海安公交分段計費處理流程Fig.4 Process flow of Haian’s bus sectional charge
表2 海安公交005路部分測試結(jié)果Fig.2 Part of test result of bus 005 in Haian
針對其他長線公交線路的測試結(jié)果如下:
1)大部分票價扣款正確,有少量扣款出錯情況,在更正站臺坐標(biāo)和階梯票價后,扣款全部正確;
2)各種逃票現(xiàn)象和上錯車現(xiàn)象得到了有效的處理;
3)一票制和分段計價可以靈活切換;
4)生成的記錄能夠?qū)崟r上傳并在結(jié)算系統(tǒng)生成報表。
測試結(jié)果證明了方案及程序的可行性。該Pos機目前在海安全面裝車,進(jìn)入了試運營階段。
作者設(shè)計的公交分段收費系統(tǒng)的特點在于:
1)采用GPS實現(xiàn)站臺的自動檢測;
2)支持一票制與分段計價的靈活切換;
3)支持單門上下車,即單個Pos機可以實現(xiàn)分段收費的所有功能;
4)交易記錄自動上傳,無需人工采集;
5)對各種逃票、上錯車現(xiàn)象能夠進(jìn)行有效處理。
此外,該系統(tǒng)的實現(xiàn)對公交部門降低運營成本、吸引乘客將起到很好的作用,方案的成功實施也對城際公交分段收費、城際便捷班車分段收費、地鐵分段收費有一定的參考意義。該車載Pos機程序經(jīng)過少量修改還可以實現(xiàn)自動報站器的功能,成為車載 Pos、自動報站一體機[12]。
[1]李鴻艷.公交IC卡分段收費的實現(xiàn)[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]高紅梅,賴元文.中小城市公交線網(wǎng)規(guī)劃方法的探究[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]嚴(yán)愛瓊,崔敏.重慶主城區(qū)公交站點布局問題與優(yōu)化策略[J].規(guī)劃設(shè)計,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]建設(shè)部IC卡服務(wù)中心.建設(shè)事業(yè)IC卡應(yīng)用技術(shù)實施導(dǎo)則[Z].北京:建設(shè)部,2007.
[5]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M]:北京:北京航空航天大學(xué)出版社,2007:335-350.
[6]建設(shè)部IC卡服務(wù)中心.建設(shè)部PSAM卡操作手冊[Z].北京:建設(shè)部,2007.
[7]蔡錦達(dá),吳偉鵬.非接觸式IC卡內(nèi)部結(jié)構(gòu)與工作原理[J].企業(yè)技術(shù)開發(fā),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機軟件設(shè)計[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語言程序設(shè)計[M].第3版.北京:清華大學(xué)出版社,2005:36-95.
[10]武根友,李江,李曉輝.基于物聯(lián)網(wǎng)的智能公交系統(tǒng)研究[J].河北省科學(xué)院學(xué)報,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機收費系統(tǒng)的故障排除[J].農(nóng)村電氣化,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]劉強,賈鴻莉.基于單片機的公交自動報站器的設(shè)計[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)