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