彭名華,劉建生,鐘新梅,劉沁炆
(西南石油大學,四川成都 610500)
在城市中,特別是一些大城市中,就打車而言,常會看到3 個場景:1)乘客需要打車盡快趕到某地,但很長時間都看不到計程車;2)乘客居住地離主干道較遠,出門走很長一段路也找不到計程車;3)同一時刻,一些計程車司機可能找不到生意。這3 個場景充分暴露了計程車傳統服務模式存在的弊端:1)乘客乘車的效率低下,如果運氣差點,甚至有可能一天都乘不到車;2)計程車的運行效率低下,只有看到了乘客才能進行服務,造成巨大的資源浪費;3)計程車的服務范圍有限,在城市中可以行車的偏僻地方,因計程車很少前往,所以傳統的計程車服務就無能為力了。
針對這些弊端,電召、打車地圖、打車軟件應運而生。但是,現有的打車方式依然存在一些問題,如電召成功率不高、打車地圖無人看、打車軟件存在安全隱患、難以監管而被叫停。該文設計并實現了一種基于ZigBee 與WiFi 技術相結合的計程車招呼系統。系統綜合運用嵌入式計算機技術、無線通信技術、ZigBee 技術組建無線taxi 站臺招呼網絡,利用WiFi 技術組建高速無線局域網絡,利用ZigBee-WiFi節點實現信息路由,并利用ARM-Linux 實現車載終端開發。
ZigBee 技術是一種工作于免授權的2.4 GHz 頻段的無線通訊技術,具有傳輸距離短、成本低、功耗低、速率低的特點,傳輸速率為10~250 kbit/s,傳輸距離可達75 m[1],可以外加功率放大器,增加傳輸距離。與ZigBee 技術相比,WiFi(Wireless Fidelity) 是一種傳輸距離遠、功耗高的無線網絡技術,傳輸速率可達54 Mbp/s,采用802.11 標準,目前,在無線局域網中得到了較為廣泛的應用,便于接入Internet[2-5]。
鑒于ZigBee 和WiFi 各自的優點,將ZigBee 技術與WiFi 技術相結合,設計出一套計程車招呼系統,其硬件系統由taxi 站臺、車載終端、高速無線主節點和子節點以及信息中心組成,如圖1 所示。該系統利用ZigBee 和WiFi 來實現整個系統的數據傳輸,形成一個高效的網絡,隨時監控各個taxi 站臺乘客的乘車需求以及每一輛計程車的搭載情況,并通過信息中心(PC 機)的邏輯分析,為每一位有乘車請求的乘客選擇最近、最方便的計程車。服務器用數據庫技術、JAVA、C 語言實現,整個系統的信息處理、存儲及各種服務的調度都由服務器完成。

圖1 系統組成框圖
該系統的每個模塊都有自己的獨立功能,它們之間相互協調工作才能有效保證該系統方案的實現。
信息中心由數據庫、信息處理中心和信息調度中心組成。數據庫用于存儲計程車、taxi 站臺的各種信息,并且數據庫中的定時事件和存儲過程還會幫助系統處理過時的計程車招呼信息;信息處理中心是整個系統的核心部分,負責監控整個系統計程車的運行狀態(位置、載人申請等)和站臺乘客的乘車請求,并根據這些信息進行一系列的邏輯運算,通過調度中心將最近的計程車調度給有乘車請求的站臺乘客;信息調度中心負責整個系統信息調度的功能,它會將站臺、計程車的信息搜集起來發送給信息處理中心,并將信息處理中心運算好的調度操作從不同的端口發送出去。
高速無線網絡主節點是系統通信節點的核心,為所屬區域所有數據的匯聚處,負責和站臺系統的高速網絡子節點通信,也負責和車載設備的無線通信。主節點將匯聚的數據傳送給調度中心,調度中心的數據也通過此節點向外發送數據。
高速無線網絡子節點由ZigBee 協調器和WiFi組成。負責將ZigBee 協調器搜集到的所有Zigbee 終端節點發送來的信息通過WiFi 傳遞給高速無線網絡主節點,并將高速無線網絡主節點發送來的信息發送給對應的ZigBee 終端節點[6-7],同時兼有數據緩沖功能,以解決ZigBee 網絡和高速無線網絡速度不匹配的問題。
taxi 站臺由ZigBee 通信模塊和站臺人機交互模塊組成。每個終端ZigBee 節點負責將乘車站臺采集到的信息通過自己所在無線ZigBee 網絡發送到高速無線網絡子節點上,并且監聽整個網絡。如果發現有發送給自己負責的站臺的信息,則接收后傳輸給站臺,由站臺顯示器顯示計程車的信息供乘客選擇。
站臺人機交互模塊則通過“ZigBee 網絡<-->高速無線網絡”來建立與信息調度中心的通信。站臺負責與乘客之間的信息交流,它將采集乘客“請求乘車”、“同意等待”、“拒絕等待”的信息,并展示“計程車編號”、“計程車到此處距離”、“有車前來”、“無車響應”以及當前站臺狀態等信息給乘客。
每個車載設備上都有一個無線網卡用來和高速無線網絡主節點進行通信。車載設備主要負責計程車司機和信息中心的信息交流,采集計程車司機“前往對應站臺”、“設置當前狀態”、“接收其他計程車任務”等信息,同時展示“當前申請乘車乘客信息列表”、“乘客位置信息”、“乘客是否同意等待”等信息。
高速無線網絡子節點的主要功能是實現路由,連接ZigBee 和WiFi 兩個相對獨立的網絡[8]。當子節點沒有連接到主節點時,子節點會將taxi 站臺的傳輸數據存儲到本地存儲器中,當子節點與主節點間建立連接時,會將這些數據發送出去。如果子節點與主節點一直連接,數據會直接轉發給服務器,不需要存儲。當服務器需要發送信息給站臺節點時,子節點會將數據轉發給指定的站臺節點。高速無線網絡子節點結構框圖如圖2 所示,以S3C2410 為核心,通過USB 與WiFi 模塊相連接,通過RS232 與ZigBee網絡的協調器相連[9],并完成ZigBee 和WiFi 兩種協議間的數據格式轉換,實現打車信息的轉發。

圖2 高速無線網絡子節點結構框圖
3.2.1 taxi站臺硬件設計
為保證所有的站臺節點能夠實現自主加入,必須保證網絡中所有的節點能夠滿足共同的協議,只要符合協議標準的節點都能夠接入系統。系統中的taxi 站臺節點以MCU(Micro Control Unit)為主控芯片,節點將數據通過ZigBee 終端發送到高速無線網絡子節點,同時接收子節點轉發來的反饋信息指令。taxi 站臺原理框圖如圖3 所示,taxi 站臺控制器如圖4 所示。

圖3 taxi站臺原理框圖

圖4 taxi站臺控制器
3.2.2 taxi站臺軟件設計
taxi 站臺招呼功能主要由站臺乘客招呼算法、計程車先到處理算法、站臺申請超時算法、站臺多次申請乘車算法實現。站臺乘客招呼算法完成計程車乘車申請、同意等待、拒絕等待功能;計程車先到處理算法完成在業務計程車未到達taxi 站臺時,其他空車經過此站臺的一種優先上車調度策略;站臺申請超時算法針對高峰時刻計程車繁忙而不能申請到計程車的情況,每次申請有規定的最大響應時間,如果超過這個時間,系統會自動取消這次申請,同時向站臺發送申請失效信息;站臺多次申請乘車算法針對一個站臺有多個人申請乘車的情況,當一個人申請成功,獲取到前來接送的計程車ID 之后,站臺系統馬上恢復到初始狀態,下一位乘客又可以繼續申請計程車。站臺軟件流程如圖5 所示。

圖5 站臺軟件流程
3.3.1 車載終端硬件設計
車載終端平臺采用的S3C6410 芯片是基于ARM11 架構的16/32 位RISC 微處理器。它采用ARMv6 指令集,支持從SD Card、NOR Flash、NAND Flash 和One-NAND Flash 中引導系統,是一個低成本、低功耗、高性能的應用處理器解決方案[10]。外圍組件主要包括觸摸屏顯示模塊、WiFi 模塊、電源模塊等,如圖6 所示。

圖6 車載設備框圖
3.3.2 車載終端系統開發
系統軟件選擇嵌入式Linux 為操作系統,整個系統由引導程序、設備驅動、Linux 內核、文件系統組成[11-13]。在搭建平臺的過程中,由于嵌入式設備上的資源非常有限,要對Linux 進行針對性的裁剪,并進行裁剪后的Linux 系統移植[14-15]。
QT/ Embedded 通常為小型化、低功耗、便攜式的設備開發帶有圖形化界面的應用程序[16],所設計的GUI 實用、簡潔。該車載終端選用移植性強的QT軟件設計圖形車載終端界面,利用QT/Embedded 的用戶圖形界面開發,實現了人機交互[17]。計程車車載軟件界面如圖7 所示。

圖7 車載終端系統界面
在實驗室配置一臺服務器(PC 機模擬)、6 個taxi站臺、一個車載終端、無線高速網絡子節點以及主節點,對系統進行模擬測試。圖8 為車載終端,顯示(申請的站臺、站臺名稱、經度緯度、距離)的是乘客與計程車達成的乘車服務。經過測試,taxi 站臺的“請求乘車”、“同意等待”、“拒絕等待”、“計程車編號”、“計程車到此處距離”、“有車前來”、“無車響應”以及車載終端的“前往對應站臺”、“設置當前狀態”、“接收其他計程車任務”等功能完全能夠實現。

圖8 車載終端測試結果
ZigBee 和WiFi 技術的結合很好地實現了計程車招呼功能。該系統具效率高、實用性強、成本低廉、網絡選擇靈活等特點,打破了傳統打車的弊端,規避了正在被叫停的打車軟件的不足。此外,系統功能還可以進一步擴展,如引進GSM、3G 網絡等技術。