張 清 何金偉 楊炳華
摘 要:準(zhǔn)確、迅速的數(shù)據(jù)傳輸是人工影響天氣作業(yè)指揮系統(tǒng)的重要保證,要求精簡高效的通信協(xié)議支持。根據(jù)《XR-08型人工影響天氣作業(yè)指揮通信終端》的電路結(jié)構(gòu)和流程分析,結(jié)合GSM/GPRS與Internet網(wǎng)絡(luò)資源特點(diǎn),自定義終端注冊(cè)流程、數(shù)據(jù)幀結(jié)構(gòu)和指令編碼方法,設(shè)計(jì)了一種適應(yīng)GSM/GPRS遠(yuǎn)程數(shù)據(jù)傳輸?shù)膽?yīng)用層通信協(xié)議,并給出協(xié)議編碼規(guī)范、幀結(jié)構(gòu)和實(shí)現(xiàn)框架,創(chuàng)新地將GSM/GPRS和Internet網(wǎng)絡(luò)同時(shí)引入到人工影響天氣作業(yè)指揮服務(wù)中。
關(guān)鍵詞:通信協(xié)議;TCP/IP;GPRS;人工影響天氣
中圖分類號(hào):TP319
人工影響天氣作業(yè)指揮系統(tǒng)是支撐人工影響天氣業(yè)務(wù)的技術(shù)保障系統(tǒng),用科學(xué)指揮是現(xiàn)代人工增雨、防雹作業(yè)的必然要求。在實(shí)施人工影響天氣作業(yè)過程中,準(zhǔn)確、迅速的信息傳輸是提高作業(yè)的科學(xué)性、準(zhǔn)確性和時(shí)效性的基本保證。利用遠(yuǎn)程數(shù)據(jù)傳輸,以遠(yuǎn)程通信管理指揮中心計(jì)算機(jī)和各作業(yè)點(diǎn)通信終端,來實(shí)現(xiàn)指揮中心和各作業(yè)點(diǎn)之間指令和資料的上傳下達(dá),作業(yè)現(xiàn)場(chǎng)安全監(jiān)控。在遠(yuǎn)程數(shù)據(jù)傳輸中,需要精簡高效的通信協(xié)議支持。以下結(jié)合人工影響天氣作業(yè)指揮系統(tǒng)的通信構(gòu)架,系統(tǒng)闡述其遠(yuǎn)程通信協(xié)議設(shè)計(jì)。
1 系統(tǒng)通信要求
1.1 系統(tǒng)通信構(gòu)架
人工影響天氣作業(yè)指揮系統(tǒng)采用基于GSM/GPRS網(wǎng)絡(luò)的數(shù)據(jù)傳輸模式,指揮中心通過Internet,采用TCP/IP協(xié)議連接到GPRS網(wǎng)絡(luò),通過GPRS對(duì)各作業(yè)點(diǎn)進(jìn)行指令和資料的下達(dá),各作業(yè)點(diǎn)通信終端采用嵌入式ARM系統(tǒng)設(shè)計(jì),利用GPRS上傳作業(yè)數(shù)據(jù)、位置信息、現(xiàn)場(chǎng)圖像。
區(qū)域中心服務(wù)器在指揮中心和作業(yè)點(diǎn)之間起橋梁作用,區(qū)域中心服務(wù)器具有固定IP,指揮中心能夠訪問公網(wǎng),其結(jié)構(gòu)如圖1所示。
1.2 協(xié)議結(jié)構(gòu)
移動(dòng)通信網(wǎng)絡(luò)傳輸層協(xié)議包括TDMA900/1 800 MHz數(shù)字公用陸地蜂窩移動(dòng)通信網(wǎng)相關(guān)通信標(biāo)準(zhǔn)和協(xié)議,支持短消息分組數(shù)據(jù)協(xié)議和互聯(lián)網(wǎng)IP協(xié)議。應(yīng)用層協(xié)議標(biāo)識(shí)包括應(yīng)用系統(tǒng)的設(shè)備編號(hào)、業(yè)務(wù)數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容等。SMPP為短消息點(diǎn)對(duì)點(diǎn)協(xié)議,TCP/UDP采用TCP/UDP協(xié)議,PPP協(xié)議為點(diǎn)對(duì)點(diǎn)協(xié)議,XR[CD*2]08 應(yīng)用層協(xié)議定義了在應(yīng)用層數(shù)據(jù)傳輸?shù)囊?guī)程,如圖2所示。
2 通信協(xié)議設(shè)計(jì)與實(shí)現(xiàn)
應(yīng)用層協(xié)議定義和規(guī)范了通信終端與指揮中心、通信終端與服務(wù)器、指揮中心與服務(wù)器的通信協(xié)議,其中包含了終端注冊(cè)、指令、資料和圖像傳輸。協(xié)議的實(shí)現(xiàn)在終端上用C語言編程,基于嵌入式Linux操作系統(tǒng),指揮中心與服務(wù)器程序采用Delphi語言。
2.1 終端注冊(cè)
2.1.1 終端注冊(cè)流程
指揮中心向區(qū)域中心服務(wù)器注冊(cè):由指揮中心指揮臺(tái)(以下簡稱指揮臺(tái))通過Internet將其ID端口號(hào)和所屬的各作業(yè)點(diǎn)的ID號(hào)傳送到區(qū)域中心服務(wù)器,區(qū)域中心服務(wù)器記錄到數(shù)據(jù)庫。
通信終端向區(qū)域中心服務(wù)器注冊(cè):XR[CD*2]08通信終端登陸GPRS網(wǎng)絡(luò)后,向區(qū)域中心服務(wù)器的固定IP地址發(fā)送注冊(cè)信息,區(qū)域中心服務(wù)器通過通信終端注冊(cè)的ID號(hào)在數(shù)據(jù)庫中查找其所屬指揮臺(tái)的ID號(hào);然后通過找到的ID號(hào)在數(shù)據(jù)庫查找指揮臺(tái)的IP地址和端口號(hào),發(fā)送給XR[CD*2]08通信終端,這樣終端就得到了指揮臺(tái)的IP地址和端口號(hào)并記錄下來。
通信終端向指揮臺(tái)注冊(cè):XR[CD*2]08通信終端通過指揮臺(tái)的IP地址和端口號(hào)向指揮臺(tái)發(fā)送注冊(cè)信息,建立連接。
通過以上三個(gè)步驟,系統(tǒng)完成注冊(cè)過程。
2.1.2 終端注冊(cè)數(shù)據(jù)幀結(jié)構(gòu)
終端注冊(cè)過程的信息交換采用數(shù)據(jù)幀進(jìn)行傳輸,其幀結(jié)構(gòu)定義如下。
標(biāo)志頭[HJ0]數(shù)據(jù)源け曛局±嘈酮け曛臼據(jù)[HJ0][HJ][HT5SS]
標(biāo)志頭:用于注冊(cè)過程數(shù)據(jù)幀的鑒別;
內(nèi)容:“WXRY”;
字長:4 B。
數(shù)據(jù)源標(biāo)志:用于區(qū)分通信終端與指揮中心;
內(nèi)容: “1” :通信終端“2”:指揮中心;
字長:1 B。
幀類型:用于區(qū)分該幀信息是主動(dòng)發(fā)送還是響應(yīng)幀,不論指揮中心還是通信終端。
內(nèi)容: “1”:主動(dòng)信息“2”:響應(yīng)信息;
字長:1 B;
數(shù)據(jù):具體數(shù)據(jù)內(nèi)容,字長可變。
2.2 指令傳輸
2.2.1 幀結(jié)構(gòu)
通信終端與指揮中心之間信息交換采用數(shù)據(jù)幀進(jìn)行傳輸,其幀結(jié)構(gòu)定義如下。[HJ1][HJ]
[HT6K]
標(biāo)志頭[HJ0]單/多幀け曛局鞫/回復(fù)け曛維IMID(可選)指令編碼參數(shù)[HJ0][HJ][HT5SS]
標(biāo)志頭:用于指揮中心與通信終端之間的鑒別;
內(nèi)容:“BXR”;
字長:3 B。
單/多幀標(biāo)志:用于區(qū)分該數(shù)據(jù)是單幀數(shù)據(jù)還是多幀數(shù)據(jù);
內(nèi)容: “1” 為單幀,“2”為多幀;
字長:1 B。
主動(dòng)/響應(yīng)標(biāo)志:用于區(qū)分該幀信息是主動(dòng)發(fā)送還是響應(yīng)幀,不論指揮中心還是XR[CD*2]08通信終端;
內(nèi)容: “1”為主動(dòng)信息,“2”為響應(yīng)信息;
字長:1 B。
SIMID:指揮中心根據(jù)它來識(shí)別是哪個(gè)通信終端發(fā)出的信息,若指揮中心向通信終端發(fā)送,則不填此項(xiàng),因?yàn)橹笓]中心根據(jù)與通信終端建立連接后儲(chǔ)存了通信終端的IP地址和端口號(hào),通過其就能找到通信終端。[HJ*2/3][HJ]
內(nèi)容: SIM卡識(shí)別碼;[HJ*2/3][HJ]
字長: 20 B;[HJ*2/3][HJ]
指令編碼:[HJ*2/3][HJ]
內(nèi)容: “A”[CD*2]“Z”,
字長: 1 B。
參數(shù):根據(jù)需要可選。
[BT4+*4]2.2.2 指令編碼方法
指令編碼定義了主動(dòng)發(fā)送幀和響應(yīng)幀的具體幀格式如表1所示。[LM]
2.3 資料和圖像的傳輸
由于資料和圖像數(shù)據(jù)量一般比較大,得分多幀傳送。幀格式同指令傳送,含起始幀、數(shù)據(jù)幀、結(jié)束幀。
2.3.1 起始幀傳送格式和數(shù)據(jù)結(jié)構(gòu)
起始幀傳送格式如表2所示。
單/多幀け曛局鞫/回復(fù)け曛局噶瞠け嗦氬問
發(fā)送方“2”“1”“S”起始幀數(shù)據(jù)結(jié)構(gòu)
接收方“2”“2”“S”無[HJ0][HJ][HT5SS]
起始幀數(shù)據(jù)結(jié)構(gòu):
[JY]//數(shù)據(jù)類型(雷達(dá)回波、現(xiàn)場(chǎng)圖象、地圖、軟件),雷達(dá)回波=1
BYTE infoStruct;256];[JY]//數(shù)據(jù)說明信息
} StartFrame;
//發(fā)送方發(fā)送后等待接收方響應(yīng);接收方收到后根據(jù)StartFrame.Size申請(qǐng)數(shù)據(jù)存放緩沖區(qū),保存開始幀;根據(jù)幀數(shù)建接收表,初始化為‘0;發(fā)送響應(yīng)幀
[BT4]2.3.2 數(shù)據(jù)幀傳送格式和數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)幀傳送格式見表3。
[HT6H][STHZ][JZ]表3 數(shù)據(jù)幀傳送格式[STBZ][HT6K]
[HJ0]單/多幀け曛局鞫/回復(fù)け曛局噶瞠け嗦氬問
發(fā)送方“2”“1”“S”數(shù)據(jù)幀數(shù)據(jù)結(jié)構(gòu)[HJ0][HJ][HT5SS]
數(shù)據(jù)幀數(shù)據(jù)結(jié)構(gòu):
//接收方收到后根據(jù)DataFrame.FrameNo將Data;StartFrame.FrameSize-1]送入緩沖區(qū),
//將接收表相應(yīng)位置置為‘1
//為了保證傳輸速率,接收方不需回復(fù)。
2.3.3 結(jié)束幀傳送格式
發(fā)送方根據(jù)接收方發(fā)送的接收表,確定對(duì)方是否收到所有的數(shù)據(jù),若有丟包情況,則重新傳丟失幀,傳送格式見表4。
[HJ0]單/多幀け曛局鞫/回復(fù)け曛局噶瞠け嗦氬問
發(fā)送方“2”“1”“E”StartFrame.ID
接收方“2”“2”“E”StartFrame.ID,接收表