電子站牌終端的硬件組成與公交車車載終端相比, 主要是把公交車上的GPS定位模塊替換成了GPRS -DTU 數據傳輸單元。GF -2008AWGPRS-DTU是北京嘉復欣科技有限公司研制生產的GPRS無線數據通信產品, 該產品內置西門子MC39i GPRS模塊, 具有準確性高、環境適應性好、易于安裝和維護等特點, 能夠為用戶提供高速、可靠、永遠在線的數據傳輸服務和虛擬專用數據通信網絡服務, 可廣泛用于遠程抄表、環保數據采集、交通信息發布等方面。以下是GF-2008AW GPRS-DTU的主要特點:
◇ 可實現串口透明的無線數據傳輸, 而且穩定可靠;
◇ 高度集成GPRS和TCP/IP 技術, 可將互連網和無線網絡有機的結合起來;
◇ 支持多種TCP/IP 協議, 如TCP、UDP、DNS、PPP、RAS 等;
◇ 按流量計費, 沒有流量不計費;
◇ 在標準RS232接口產品中體積最小, 適合嵌入式集成;
◇ 支持點對點、點對多點、中心對多點的對等數據傳輸;
◇ 基于串口通訊的AT+i指令接口, 可節省開發時間和開發成本;
◇ 支持ALWAYS ONLINE (永遠在線) 模式,斷線可自動重撥;
◇ 采用5~24 V / 1 A供電, 并具有節能模式。
3 ZigBee通信程序設計
3.1 ZigBee組網方案
由于站牌處通常會有多輛公交車同時到達,一個站牌對應多輛公交車。鑒于網絡節點較少、網絡結構比較簡單, 本系統采用星形模型組網。
即把分布在公交線路上的電子站牌配置為ZigBee協調器, 而將到達的公交車配置為ZigBee終端設備。圖5所示是公交車與站牌的組網方式。當站牌上ZigBee網絡協調器選擇一個信道和PAN ID并啟動時, 便建立了一個ZigBee個人局網(PAN)。
而一旦協調器啟動PAN, 便允許路由器和終端設備結點加入PAN.作為ZigBee終端設備的車載終端加入PAN時, 系統將收到一個16位的網絡地址, 同時發送和接收來自作為ZigBee協調器的電子站牌終端的數據。PAN協調器的網絡地址總是0.由于站牌上ZigBee模塊的網絡物理地址是唯一的, 故可通過物理地址向站牌發送信息。
?
圖5 公交車與站牌組網方式
3.2 ZigBee模塊的API操作
XBee Pro具有空模式、接收模式、發送模式、睡眠模式和命令模式等5種操作模式。對于每一種操作模式, 還有透明方式和應用程序接口(API) 方式兩種操作方式。當工作在透明方式時,模塊可替代串口線的作用, 并以字節為單位操作各種信息; 而當工作在API 方式時, 所有進出模塊的數據均被包含在定義模塊的操作和事件的幀結構中。本文采用API操作方式。
API操作要求模塊之間通過一種結構化的接口進行通信(數據通過一種定義好序列的幀來交互通信)。API對通過串口數據幀進行命令發送、命令響應, 以及模塊狀態信息的傳送與接收作了規定。
(1) ZigBee發送請求
公交車到達站牌后, 應根據站牌的MAC地址將日期、時間、車號、公交線路、車內人數、行駛方向等信息發送到電子站牌。公交車ZigBee模塊發送模式的API幀結構定義如圖6所示。其中的Bytes6-13為站牌的MAC地址。
?
圖6 公交車TX請求API幀結構圖
(2) ZigBee發送狀態。
為實現可靠傳輸, 當公交車傳送信息給電子站牌的請求完成后, 必須得到電子站牌的確認信息, 因此還必須得到電子站牌回饋給公交車的發送狀態信息。這個信息將指出數據包是否被成功發送, 或者發送失敗。如果發送失敗必須重新發送公交車的信息, 直至發送成功。
電子站牌根據公交車的MAC地址, 不斷的向PAN內發送信息, 并通過回讀發送狀態來確定是否有公交車加入網絡, 如果有, 則根據網絡地址識別公交車, 并將公交車的定位信息發送到監控中心, 從而實現對GPS定位方式的補充。
?
圖7 公交車ZigBee模塊的TX狀態幀結構
其中的Bytes 9為傳送狀態信息, Bytes6、7為接收模塊的16位網絡地址。
(3) ZigBee接收包。
電子站牌收到公交車發來的狀態信息數據包后便進行解析, 并通過站牌的GPRS模塊發送到監控中心。電子站牌ZigBee模塊接收模式的API幀結構定義如圖8所示。圖中的Bytes5-12為公交車的MAC地址。
?
圖8 電子站牌RX的API幀結構圖
3.3 GPRS網絡通信設計
電子站牌收到公交車發來的信息后, 將通過GPRS-DTU發送到監控中心, 然后由監控中心將所有公交車發來的信息通過Internet發送給站牌。
GPRS DTU有透傳模式、AT+i命令模式、自動IP注冊模式、遠程維護和流控五種模式。在系統的電子站牌終端中, DTU將使用透傳模式與服務器進行信息的交互。通過透傳模式可將電子站牌異步串口通信轉換成基于TCP/UDP協議的網絡通信。其主要目的是通過串行通信的簡單設備實現在IP網絡上的通信, 而數據格式不發生任何改變。這一點非常重要, 由于數據格式在經過DTU前后均不發生任何變化, 由此, 電子站牌原有的設備及軟件不用作任何升級, 就可直接應用。
DTU的透傳模式可使電子站牌客戶端在發起通信請求時, 使DTU必須與服務器建立網絡連接。也就是說, 電子站牌下位機與服務器進行數據傳輸時, 首先是電子站牌下位機要與DTU設備的串口相連, 在DTU進入透傳模式后自動被調用, 并與服務器建立網絡連接, 當網絡連接建立后, DTU將自動完成串口到網絡通信的轉換, 以便所有數據可透明地在服務器軟件與電子站牌下位機之間雙向傳輸。
服務器與電子站牌終端通信可通過套接字socket 來實現。首先在服務器上建立一個監聽Socket對象, 并綁定在一個固定端口上, 然后,每當電子站牌客戶端發送一個SOCKET連接請求,服務器端就會新開啟一個線程, 并在其中創建一個socket與電子站牌客戶端的socket通訊, 直到電子站牌客戶端程序關閉, 該線程結束, 然后服務器主線程的socket在應用程序退出時關閉。通過多線程的Socket程序設計, 可以實現一個服務器與多個電子站牌客戶端的通信。
評論
查看更多