張中杰 孫仕勝 張敦鍵 王登魁


摘 要 數(shù)傳電臺(tái)在工業(yè)現(xiàn)場(chǎng)有著廣泛的應(yīng)用,該類(lèi)設(shè)備提供了一種在無(wú)運(yùn)營(yíng)商網(wǎng)絡(luò)環(huán)境下的低成本數(shù)據(jù)通信方案。然而受限于數(shù)傳電臺(tái)的通信機(jī)制,多個(gè)數(shù)傳電臺(tái)間的組網(wǎng)技術(shù)是困擾數(shù)傳電臺(tái)進(jìn)一步推廣應(yīng)用的關(guān)鍵問(wèn)題。本文結(jié)合數(shù)傳電臺(tái)的通信特點(diǎn),在借鑒計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)思想的基礎(chǔ)上,提出了一種基于數(shù)傳電臺(tái)的網(wǎng)絡(luò)通信協(xié)議。
【關(guān)鍵詞】數(shù)傳電臺(tái) 網(wǎng)絡(luò) 通信協(xié)議
1 引言
通信網(wǎng)絡(luò)是制約野外物探作業(yè)信息化發(fā)展的關(guān)鍵瓶頸。面對(duì)不穩(wěn)定的公共運(yùn)營(yíng)商網(wǎng)絡(luò)以及衛(wèi)星通信的高昂費(fèi)用,在現(xiàn)有通信手段的基礎(chǔ)上,自主研發(fā)實(shí)現(xiàn)一套通用的、支持公網(wǎng)通信協(xié)議(TCP/UDP)的網(wǎng)絡(luò)通信系統(tǒng)顯得尤為重要。數(shù)傳電臺(tái)作為一種低成本、長(zhǎng)距離、安裝維護(hù)方便的數(shù)據(jù)傳輸解決方案在石油、煤炭、環(huán)境等行業(yè)有著較為普遍的應(yīng)用。但是多個(gè)數(shù)傳電臺(tái)間的無(wú)序數(shù)據(jù)通信使得目前基于計(jì)算機(jī)網(wǎng)絡(luò)編程實(shí)現(xiàn)的各類(lèi)應(yīng)用軟件的移植受到了限制,本文提出了一種以數(shù)傳電臺(tái)為底層通信方式的網(wǎng)絡(luò)通信協(xié)議,并從網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)體系結(jié)構(gòu)等方面對(duì)協(xié)議進(jìn)行了詳細(xì)的描述。
2 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)
由于數(shù)傳電臺(tái)的帶寬有限,由復(fù)雜的網(wǎng)絡(luò)拓?fù)鋷?lái)的路由算法會(huì)占用過(guò)多的帶寬資源,進(jìn)而影響整個(gè)網(wǎng)絡(luò)的通信效率。同時(shí),經(jīng)過(guò)對(duì)目前大量實(shí)際應(yīng)用需求的抽象分析,最終本協(xié)議選用了星型網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為,如圖1所示。星型網(wǎng)絡(luò)中的通信節(jié)點(diǎn)分為主節(jié)點(diǎn)與從節(jié)點(diǎn)。主節(jié)點(diǎn)負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的管理,包括網(wǎng)絡(luò)組建、從節(jié)點(diǎn)的注冊(cè)與注銷(xiāo)管理等。從節(jié)點(diǎn)可以發(fā)起針對(duì)一個(gè)網(wǎng)絡(luò)的注冊(cè)、注銷(xiāo)請(qǐng)求,并在主節(jié)點(diǎn)的控制下完成相關(guān)工作。在該網(wǎng)絡(luò)中,所有從節(jié)點(diǎn)間的通信必須經(jīng)過(guò)主節(jié)點(diǎn)轉(zhuǎn)發(fā)。
3 網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計(jì)
參考計(jì)算機(jī)網(wǎng)絡(luò)的OSI模型,并結(jié)合數(shù)傳電臺(tái)網(wǎng)絡(luò)的特點(diǎn),本協(xié)議將數(shù)傳電臺(tái)網(wǎng)絡(luò)體系結(jié)構(gòu)劃分為4層:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸預(yù)處理層,如圖2所示。
物理層提供基礎(chǔ)的通信方式,完成信號(hào)的物理編解碼、發(fā)送及接收工作,在本設(shè)計(jì)中由數(shù)傳電臺(tái)實(shí)現(xiàn)。數(shù)據(jù)鏈路層一方面負(fù)責(zé)通信節(jié)點(diǎn)間邏輯鏈路的管理并實(shí)現(xiàn)上層信息格式與本層數(shù)據(jù)幀格式間的轉(zhuǎn)換;另一方面解決無(wú)線(xiàn)網(wǎng)絡(luò)中共享通信信道的各節(jié)點(diǎn)間的有序數(shù)據(jù)通信。網(wǎng)絡(luò)層定義了與無(wú)線(xiàn)網(wǎng)絡(luò)管理相關(guān)的具體規(guī)則及策略。傳輸預(yù)處理層為數(shù)傳電臺(tái)網(wǎng)絡(luò)與通用計(jì)算機(jī)網(wǎng)絡(luò)傳輸層(即TCP/UDP等協(xié)議所屬層)間的接口,本設(shè)計(jì)為了最大限度的利用電臺(tái)網(wǎng)絡(luò)帶寬,于該層實(shí)現(xiàn)了傳輸層協(xié)議預(yù)處理功能,通過(guò)引入經(jīng)典的加解密算法對(duì)傳輸層通信數(shù)據(jù)進(jìn)行了有效壓縮。數(shù)據(jù)鏈路層至傳輸預(yù)處理層的功能在與數(shù)傳電臺(tái)配套的嵌入式終端模塊中通過(guò)編程實(shí)現(xiàn)。
3.1 數(shù)據(jù)鏈路層
3.1.1 數(shù)據(jù)幀設(shè)計(jì)
數(shù)據(jù)幀是電臺(tái)網(wǎng)絡(luò)數(shù)據(jù)鏈路層數(shù)據(jù)的具體組織方式。本協(xié)議中的數(shù)據(jù)幀格式如圖3所示。
其中,Type字段占一個(gè)字節(jié),其中bit0表示該數(shù)據(jù)幀的類(lèi)型,‘0代表普通數(shù)據(jù)幀,‘1代表網(wǎng)絡(luò)管理數(shù)據(jù)幀;bit1用于區(qū)分原幀與應(yīng)答幀,‘0代表原幀,‘1代表應(yīng)答幀;bit2用于標(biāo)識(shí)該數(shù)據(jù)幀的本次傳輸是否由主節(jié)點(diǎn)發(fā)起,‘0代表由從節(jié)點(diǎn)發(fā)起,‘1代表由主節(jié)點(diǎn)發(fā)起;bit3-7暫未定義。To字段占一個(gè)字節(jié),標(biāo)識(shí)該數(shù)據(jù)幀的目的地址;From字段占一個(gè)字節(jié),標(biāo)識(shí)該數(shù)據(jù)幀的源地址;Seq.字段占一個(gè)字節(jié),用于標(biāo)識(shí)該原幀在發(fā)送隊(duì)列中的序號(hào),接收方正確接收數(shù)據(jù)后,在應(yīng)答幀中沿用原幀Seq.值。Data字段占0-64個(gè)字節(jié),為實(shí)際發(fā)送的數(shù)據(jù)。Resd.字段為保留字段,占一個(gè)字節(jié),用于今后協(xié)議的擴(kuò)展。Checksum字段占一個(gè)字節(jié),為該數(shù)據(jù)幀的校驗(yàn)和。
3.1.2 差錯(cuò)控制設(shè)計(jì)
差錯(cuò)控制保證了數(shù)據(jù)幀發(fā)送的正確性。本設(shè)計(jì)中該功能由帶超時(shí)檢測(cè)的握手機(jī)制實(shí)現(xiàn)。原理即接收方對(duì)每次接收到的數(shù)據(jù)幀進(jìn)行應(yīng)答,發(fā)送方在發(fā)送數(shù)據(jù)后即啟動(dòng)定時(shí)器,規(guī)定時(shí)間內(nèi)未收到應(yīng)答即重發(fā)。因此,一次完整的數(shù)據(jù)通信過(guò)程由兩次獨(dú)立的數(shù)據(jù)收發(fā)構(gòu)成。
3.1.3 多路訪(fǎng)問(wèn)控制設(shè)計(jì)
為了解決由多個(gè)電臺(tái)同時(shí)發(fā)送數(shù)據(jù)帶來(lái)的信道污染問(wèn)題,并最大限度的利用電臺(tái)的傳輸帶寬,本設(shè)計(jì)采用了輪詢(xún)發(fā)送機(jī)制。主節(jié)點(diǎn)作為信道資源的分配者,依次為網(wǎng)絡(luò)中的各節(jié)點(diǎn)分配信道使用權(quán)限,各節(jié)點(diǎn)在獲得信道使用權(quán)限后完成一個(gè)數(shù)據(jù)幀的發(fā)送。
3.1.4 主節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)發(fā)流程
本設(shè)計(jì)中,所有節(jié)點(diǎn)間的數(shù)據(jù)通信均須經(jīng)過(guò)主節(jié)點(diǎn)的轉(zhuǎn)發(fā)實(shí)現(xiàn)。主節(jié)點(diǎn)接收到數(shù)據(jù)幀后如果發(fā)現(xiàn)目的地址不是自己,則將Type置‘1后轉(zhuǎn)發(fā);從節(jié)點(diǎn)只接收由中心節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù),接收處理流程如圖4所示。節(jié)點(diǎn)發(fā)送數(shù)據(jù)過(guò)程較為簡(jiǎn)單,不再贅述。
3.2 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層定義了基于電臺(tái)的無(wú)線(xiàn)網(wǎng)絡(luò)的組網(wǎng)方式,從節(jié)點(diǎn)的注冊(cè)、注銷(xiāo)機(jī)制及路由算法等。
3.2.1 電臺(tái)網(wǎng)絡(luò)組網(wǎng)
電臺(tái)網(wǎng)絡(luò)的組網(wǎng)是在主節(jié)點(diǎn)的控制下,由主節(jié)點(diǎn)與從節(jié)點(diǎn)的交互完成的,具體包括從節(jié)點(diǎn)的注冊(cè)、注銷(xiāo)兩個(gè)過(guò)程。從節(jié)點(diǎn)的網(wǎng)絡(luò)注冊(cè)過(guò)程如圖5所示,網(wǎng)絡(luò)注銷(xiāo)過(guò)程如圖6所示。
3.2.2 路由算法
為了降低網(wǎng)絡(luò)節(jié)點(diǎn)由于執(zhí)行路由算法帶來(lái)的開(kāi)銷(xiāo),本設(shè)計(jì)采用了層次型網(wǎng)絡(luò)管理模式,一個(gè)星型網(wǎng)絡(luò)代表一個(gè)通信子網(wǎng),各子網(wǎng)間的通信由主節(jié)點(diǎn)負(fù)責(zé)轉(zhuǎn)發(fā)。因此,路由表僅須由各子網(wǎng)的主節(jié)點(diǎn)負(fù)責(zé)維護(hù)。當(dāng)一個(gè)通信子網(wǎng)的成員變化后,該子網(wǎng)的主節(jié)點(diǎn)會(huì)向其余各通信子網(wǎng)的主節(jié)點(diǎn)發(fā)送更新路由表請(qǐng)求,經(jīng)過(guò)各主節(jié)點(diǎn)確認(rèn)后,完成路由表的全網(wǎng)更新。
3.3 傳輸預(yù)處理層
為了進(jìn)一步更加有效的利用電臺(tái)的傳輸帶寬,在協(xié)議的傳輸預(yù)處理層引入了ASN.1標(biāo)準(zhǔn)中的PER壓縮編解碼規(guī)則,該規(guī)則具備冗余度低、編碼緊湊、效率高等特點(diǎn)。經(jīng)設(shè)計(jì)、編程驗(yàn)證,引入該編碼規(guī)則后數(shù)據(jù)量可減少50%以上,帶寬利用率明顯提高。
4 結(jié)束語(yǔ)
本文提出了一種基于數(shù)傳電臺(tái)的組網(wǎng)解決方案。詳細(xì)設(shè)計(jì)了電臺(tái)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)及網(wǎng)絡(luò)體系結(jié)構(gòu),對(duì)數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸預(yù)處理層進(jìn)行了清晰的劃分并對(duì)各層功能的具體實(shí)現(xiàn)機(jī)制進(jìn)行了介紹。設(shè)計(jì)的實(shí)現(xiàn)屏蔽了底層具體的通信方式,滿(mǎn)足了網(wǎng)絡(luò)編程的需要,進(jìn)一步推廣了數(shù)傳電臺(tái)的應(yīng)用范圍。
參考文獻(xiàn)
[1]李賀祿,蔣凡,楊敬峰等.基于面向?qū)ο蠓椒ǖ腁SN.1編解碼的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2002,28(12):101-103.
作者單位
北京中油瑞飛信息技術(shù)有限責(zé)任公司 北京市 100007