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