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