無線傳輸在實時水位監測系統中的應用
(5) 能夠自動檢測聯網狀況,若出現異常能重新撥號確保實時在線。同時具有自動校時功能,確保與中心服務器的時鐘同步,進而實現整個水位監測系統的時鐘同步。
(6) 能夠將終端的工作狀態(包括電源狀況)及時傳送至中心服務器,以便管理和維護。
根據以上功能將終端系統劃分為電源模塊、中央處理模塊、存儲模塊、用戶接口模塊、輸入模塊及數據傳輸模塊等,如圖2所示。
3 中心站系統設計
水位監測終端管理子系統的設計主要在于應用層協議,以實現整個系統穩定和高效地運行。應用層協議首先需要實現中心站與監測終端的數據通信,監測通信鏈路狀況,在中心站實現對數據采集終端的管理。
3.1.1 數據通信功能
數據采集終端向中心站傳送數據可以通過基于IP的TCP或UDP兩種傳輸層協議,TCP對上層提供可靠的端到端服務,但是這種可靠性是以系統資源和網絡開銷為代價的,而采用UDP傳輸則會節省大量的系統資源。GPRS/CDMA都是以流量計費的,因此采用占系統資源更小的UDP更適合實時傳輸。然而采用UDP傳輸也會產生新的問題,如由GPRS/CDMA網關動態分配造成的監測終端通信端口不固定問題,同時由于UDP沒有提供可靠的通信傳輸,也需要在終端管理中確保數據的可靠傳輸。
3.1.2 動態終端管理功能
由于UDP傳輸在傳輸之前并沒有與目的主機建立連接,而是由GPRS/CDMA網關做動態地址映射(DNAT),映射到公網的IP地址及端口號經過一段時間都有可能更改,所以中心站需要獲取當前終端的公網地址及端口號才能與終端正常通信,這就需要終端定時發送數據包,即通常所說的心跳包來維持與中心站的通信鏈路。為了不使心跳包的流量無謂浪費,應該在上層協議中將心跳包設計成有用的數據包(例如終端配置信息等),由終端發起連接并定時主動發送心跳包告知中心站自己的存在,中心站發送心跳包響應告知終端中心站的存在。同時,中心站根據終端發送的心跳包的源地址和端口號不斷更新站點狀態表(如表1)中相應終端的IP地址和端口號,并通過該地址和端口與終端進行通信。若中心站超時未收到終端的心跳包便認為其斷線;終端超時未收到中心站的心跳響應便認為通信鏈路異常,啟動PING電信服務器任務(例如DNS服務器)進行鏈路測試,若收到回應則認為自身網絡連接正常等待中心站恢復,若無回應則認為自身網絡連接異常采取重新撥號進行連接。中心站通過維護站點狀態表來實現對各個終端的管理。
3.1.3 數據的可靠傳輸
應用層協議還要保證數據的可靠傳輸。由于終端系統資源有限,在設計中應盡可能地降低終端系統的復雜度。為了確保數據的可靠傳輸,超時重傳應在中心站實現,即中心站發送的任何命令都需要終端響應,若中心站超時未收到終端響應便認為命令發送失敗需要重發,重新發送的命令幀應與原命令幀保持一致,但在各個功能模塊的協議設計中應充分考慮到重發機制可能引發的后果;其次為了防止數據出錯需要在中心站和終端雙方都實現對幀校驗功能,因此需要在幀結構中包含校驗位。
3.1.4 幀結構
中心站發送的命令幀(如圖3)包括:命令類型、目的終端號、命令號、命令長度、命令內容及CRC校驗,終端根據收到命令幀的CmdType判斷是何種指令,例如0x00表示心跳包響應、0x11實時數據查詢命令、0x12歷史數據查詢命令、0x18時鐘校對命令等。
評論