公交車到站自動預(yù)報系統(tǒng)設(shè)計
摘要:設(shè)計了一套公交車到站自動預(yù)報系統(tǒng),給出了該系統(tǒng)的總體設(shè)計方案,并對其組成及工作原理進行了闡述,著重介紹了系統(tǒng)硬件、軟件架構(gòu)及通信協(xié)議。最后,通過現(xiàn)場安裝、調(diào)試、使用證明了該系統(tǒng)具有良好的工作性能和可靠性。
關(guān)鍵詞:公交車;到站預(yù)報;軟件架構(gòu);通信協(xié)議
引言
為了實現(xiàn)公交系統(tǒng)的智能信息化建設(shè)目標(biāo),本文設(shè)計了一套公交車到站自動預(yù)報系統(tǒng),主要目的在于方便乘客在等待公交車時能直觀地看到所要乘坐的公交車的行駛位置,讓乘客能夠更加合理地安排自己的乘車計劃。此前,眾多學(xué)者已經(jīng)對公交車到站自動預(yù)報系統(tǒng)進行了廣泛研究,并提出了多種方案,如參考文獻(xiàn)提出利用 GPS定位信息實現(xiàn)站點檢測,利用GSM網(wǎng)絡(luò)實現(xiàn)站臺數(shù)據(jù)分發(fā);參考文獻(xiàn)提出利用GPS定位信息實現(xiàn)站點檢測,利用ZigBee實現(xiàn)站臺數(shù)據(jù)分發(fā);參考文獻(xiàn)提出利用RFID卡實現(xiàn)車輛檢測,利用GSM網(wǎng)絡(luò)實現(xiàn)站臺數(shù)據(jù)分發(fā);參考文獻(xiàn)提出利用GPS定位信息實現(xiàn)站點檢測,利用交通通信專網(wǎng)(iDEN)實現(xiàn)站臺數(shù)據(jù)分發(fā);參考文獻(xiàn)提出利用近距離無線數(shù)傳模塊實現(xiàn)車輛檢測,利用遠(yuǎn)距離無線數(shù)傳模塊實現(xiàn)站臺數(shù)據(jù)分發(fā)。
雖然上述方案均是可行的,但是,它們具有一定的局限性。參考文獻(xiàn)采用GPS實現(xiàn)站點檢測的局限性在于:價格昂貴;在城市環(huán)境中GPS信號易受建筑物、樹木、隧道遮擋,從而導(dǎo)致某些區(qū)域無法定位;需要在車內(nèi)走線,在車頂安裝調(diào)試,安裝困難;當(dāng)站點或運行線路發(fā)生變化時,須重新采集站點坐標(biāo),過程繁瑣,通用性差。參考文獻(xiàn)采用GSM網(wǎng)絡(luò)實現(xiàn)站臺數(shù)據(jù)分發(fā)的局限性在于:該系統(tǒng)是一套集中式處理系統(tǒng),當(dāng)處理中心發(fā)生故障時,一條或多條線路均將無法正常工作,影響面大,站點正常工作時間急劇下降。參考文獻(xiàn)采用近距離無線數(shù)傳模塊實現(xiàn)車輛檢測的局限性在于:與ZigBee模塊相比,無線數(shù)傳模塊的成本更高、功耗更大、體積更大、時延更長、可靠性更低、安全性更差。
基于上述原理,本文給出了公交車到站自動預(yù)報系統(tǒng)總體設(shè)計方案,并對系統(tǒng)的組成及工作原理進行了闡述,特別著重闡述了系統(tǒng)軟件流程及通信協(xié)議設(shè)計。最后,通過現(xiàn)場安裝、調(diào)試、使用證明了該系統(tǒng)具有良好的工作性能和可靠性。
1 系統(tǒng)總體設(shè)計
本文設(shè)計的公交車到站自動預(yù)報系統(tǒng)由車載模塊、站臺模塊和中繼模塊三部分組成(如圖1所示)。其中,車載模塊安裝在公交車上,負(fù)責(zé)把公交車位置信息發(fā)送給站臺模塊;站臺模塊安裝在站牌處,負(fù)責(zé)接收、處理、顯示公交車位置信息,同時把該信息發(fā)送給下一站臺,實現(xiàn)信息的接力傳遞;中繼模塊安裝在兩站臺間合適位置,負(fù)責(zé)通信中繼,用于保障站臺間隔超出通信距離時的正常通信。
由圖1可知,公交車到站自動預(yù)報系統(tǒng)具體包括電源模塊、控制模塊、ZigBee模塊、控制面板、狀態(tài)指示燈、無線數(shù)傳模塊、LED面板。其中,電源模塊的作用是把車載電瓶12 V直流電(車載模塊)或220 V交流電(站臺模塊/中繼模塊)變換成5 V直流電,以便給控制模塊(車載模塊)和無線數(shù)傳模塊(站臺模塊/中繼模塊)供電;控制模塊的作用是收發(fā)串口數(shù)據(jù),控制LED燈亮滅,接收控制面板按鍵指令;ZigBee模塊的作用是實現(xiàn)公交車與站臺間無線通信;控制面板的作用是控制車載模塊上電、重啟和斷電以及設(shè)置公交車運行方向,以便馬路對面站臺模塊接收到車載模塊信息時能夠正確區(qū)分公交車運行方向;狀態(tài)指示燈的作用是顯示駕駛員當(dāng)前操作指令,以便駕駛員能夠直觀判斷出其操作的正確性;無線數(shù)傳模塊的作用是實現(xiàn)站臺模塊/中繼模塊問的無線通信;LED面板的作用是直觀顯示公交車當(dāng)前位置信息,以便乘客合理安排出行計劃。
2 系統(tǒng)硬件設(shè)計及選型
2.1 控制模塊設(shè)計
由于控制模塊需要控制LED燈亮滅,因此,它的I/O口個數(shù)必須大于站點個數(shù)。以長沙為例,目前,長沙公交車停站數(shù)最多的車次是501路,共經(jīng)停81站,因此,控制模塊需至少包含88個I/O口。其中,81個I/O口用于連接LED面板,5個I/O口用于配置成兩路串口(232串口占用2個I/O 口,485串口占用3個I/O口)。另外,考慮到將來站點數(shù)以及控制模塊功能的進一步豐富,控制模塊的I/O口還應(yīng)有所保留,不能完全占用。
綜上所述,控制模塊無論采用DSP還是采用單片機構(gòu)建,芯片自身所提供的I/O口均無法滿足應(yīng)用需求,因此,需采用譯碼器擴展I/O口數(shù)量。最終,所設(shè)計的控制模塊結(jié)構(gòu)如圖2所示。
2.2 ZigBee模塊選型
為了實現(xiàn)公交車檢測的高可靠性和有效性,ZigBee模塊的通信距離應(yīng)小于站臺間最短距離的1/2。以長沙為例,目前,長沙公交車站臺間最短距離約180 m,所以限定ZigBee模塊的通信距離為不大于90 m。另外,一般公交車站臺會有多輛公交車???,若站臺模塊接收所有公交車模塊信息,則必將影響站臺模塊的信息處理速度,同時還會增大誤碼率。因此,站臺模塊與車載模塊間應(yīng)建立身份驗證機制,以保證數(shù)據(jù)的正確、高效處理。
基于上述需求,本文選用XBee S2模塊(如圖3所示)實現(xiàn)車載模塊與站臺模塊間的通信。XBee S2模塊是按ZigBee協(xié)議設(shè)計的,可實現(xiàn)具有低成本、低功耗等特殊需求的無線傳感器組網(wǎng),在室內(nèi)/城市環(huán)境中其通信距離為40m,可通過設(shè)置 PAN(Personal Area Network)ID控制網(wǎng)絡(luò)規(guī)模,通過設(shè)置64位地址實現(xiàn)數(shù)據(jù)傳輸。
2.3 無線數(shù)傳模塊選型
為了保證站臺間信息傳輸?shù)母呖煽啃院陀行?,無線數(shù)傳模塊的通信距離最好大于大多數(shù)相鄰站臺間的距離。以長沙為例,目前,兩相鄰公交車站臺間距離幾乎都在500 m以內(nèi)(不過,也有極個別相鄰站臺間距離達(dá)到了4000 m)。因此,為了保證相鄰站臺模塊間能夠正常通信,無線數(shù)傳模塊的通信距離不應(yīng)小于1000 m。另外,考慮到天線高度、波特率、城市環(huán)境的復(fù)雜性對通信距離的影響,要求無線數(shù)傳模塊的通信距離不小于3 000 m。
基于上述需求,本文選用SV6202超遠(yuǎn)距離無線數(shù)傳模塊(如圖4所示)實現(xiàn)站臺模塊間的無線通信以及通信中繼。SV6202模塊最大通信距離可達(dá)到5 000 m,可通過配置網(wǎng)絡(luò)ID實現(xiàn)指定模塊間的相互通信,不同網(wǎng)絡(luò)ID配置的模塊間不能相互通信。
2.4 控制面板設(shè)計
控制面板是保證用戶方便、快捷操控和設(shè)置控制模塊所必需的一部分。車載模塊控制面板的主要功能應(yīng)包括:①模塊上電和斷電;②當(dāng)控制模塊出現(xiàn)故障時,重新啟動控制模塊,使其進入正常工作狀態(tài);③設(shè)置公交車運行方向,以便對面站臺模塊接收到公交車模塊信息時能夠正確區(qū)分公交車運行方向。
本文最終所設(shè)計的車載模塊控制面板結(jié)構(gòu)如圖5所示(為了防止候車乘客誤操作站臺模塊,站臺模塊不設(shè)計控制面板)。
3 通信協(xié)議設(shè)計
公交車在運行過程中可能會出現(xiàn)如下兩種情況:①某一時刻有多條線路公交車同時進站;②同一站點上行站臺和下行站臺均接收到了車載模塊信息。顯然,站臺模塊必須能正確應(yīng)對這兩種情況,它應(yīng)能夠從車載模塊發(fā)送的數(shù)據(jù)幀中解析出公交車線路信息和運動方向信息。
本文設(shè)計的車載模塊與站臺模塊間的通信協(xié)議如下所示:
當(dāng)從車載模塊發(fā)送的數(shù)據(jù)幀中分析出了公交車線路信息和運動方向信息后,站臺模塊應(yīng)通過無線數(shù)傳模塊把該信息傳遞給其他站臺模塊。然而,無線數(shù)傳模塊在傳遞信息時可能會出現(xiàn)如下兩種情況:①后繼站臺和未到站臺均接收到了該站臺信息;②上行站臺和下行站臺均接收到了該站臺信息。顯然,站臺模塊必須能正確應(yīng)對這兩種情況,能夠從站臺模塊發(fā)送的數(shù)據(jù)幀中解析出公交車線路信息、運動方向信息和當(dāng)前所在站臺編號。
面向上述目標(biāo),本文設(shè)計的站臺模塊/中繼模塊間通信協(xié)議如下所示:
4 系統(tǒng)軟件設(shè)計
4.1 車載模塊軟件設(shè)計
本文把車載模塊設(shè)計成事件發(fā)起節(jié)點,即車載模塊主動與站臺模塊通信。為了實現(xiàn)這一目標(biāo),車載模塊需要定時向站臺模塊發(fā)送信息。因此,車載模塊軟件采用定時器中斷發(fā)送信息。另一方面,車載模塊還要接收控制面板的按鍵操作,而該操作是不定時的,為了方便程序開發(fā),在軟件的主程序循環(huán)中完成按鍵接收。車載模塊軟件流程如圖6所示。
4.2 站臺模塊/中繼模塊軟件設(shè)計
本文把站臺模塊/中繼模塊設(shè)計成事件接收及中繼節(jié)點,即站臺模塊/中繼模塊被動接收車載模塊信息和其他站臺模塊信息,同時主動把信息發(fā)送給其他站臺模塊。為了實現(xiàn)這一目標(biāo),站臺模塊/中繼模塊需要在串口有數(shù)據(jù)時立刻讀取數(shù)據(jù),而在沒有數(shù)據(jù)時不應(yīng)訪問串日,因此,站臺模塊/中繼模塊軟件采用串口接收中斷接收信息。由于站臺模塊/中繼模塊沒有控制面板,不需要處理其他外部事件,因此,其軟件的主程序循環(huán)是空循環(huán)。站臺模塊/中繼模塊軟件流程如圖7、圖8所示。
結(jié)語
目前,本文所設(shè)計系統(tǒng)在實驗室和實際公交線路上進行了大量測試。實際測試表明,該系統(tǒng)運行穩(wěn)定、工作可靠、使用方便,特別是安裝、更換無需布線,可以做到即插即用。希望該項研究能夠有效推動社會和諧發(fā)展,緩解日益擁堵的城市交通,讓市民更愿意乘坐公共交通工具出行,減少汽車尾氣排放,共同凈化美好的家園。