引言
水聲信道匹配基礎(chǔ)研究是建立在水聲學(xué),、海洋物理聲學(xué)以及現(xiàn)代信號(hào)處理技術(shù)基礎(chǔ)上的新興研究領(lǐng)域。為滿(mǎn)足研究需要而構(gòu)建的局部海域水聲信道測(cè)量平臺(tái)(圖 1),,能夠?qū)崿F(xiàn)環(huán)境信息和信道參量的系統(tǒng)采集和實(shí)時(shí)傳遞,,對(duì)信道寬容匹配方法的可行性進(jìn)行檢驗(yàn),。
浮標(biāo)系統(tǒng)以它的靈活、高效,、自身干擾小等特點(diǎn),,在水聲信道研究中發(fā)揮著其它設(shè)備不可替代的作用。現(xiàn)有的浮標(biāo)系統(tǒng)大多采用直接序列擴(kuò)頻電臺(tái)直接進(jìn)行水面通訊,,這種方式往往不使用網(wǎng)絡(luò)協(xié)議或使用自定義的網(wǎng)絡(luò)協(xié)議,。而采用無(wú)線(xiàn)網(wǎng)橋進(jìn)行水面通訊,以TCP/IP作為網(wǎng)絡(luò)協(xié)議,,將大大增強(qiáng)浮標(biāo)系統(tǒng)網(wǎng)絡(luò)化,。同時(shí)由于TCP/IP協(xié)議是目前最為成熟的網(wǎng)絡(luò)協(xié)議之一,浮標(biāo)網(wǎng)絡(luò)的穩(wěn)定性,、可擴(kuò)展性都得以提高,,甚至通過(guò)互聯(lián)網(wǎng)直接控制浮標(biāo)系統(tǒng)也成為可能。因此,,本文基于TCP/IP網(wǎng)絡(luò)協(xié)議設(shè)計(jì)并實(shí)現(xiàn)了浮標(biāo)網(wǎng)絡(luò)通信系統(tǒng),。
1、浮標(biāo)網(wǎng)絡(luò)通訊系統(tǒng)設(shè)計(jì)
1.1 基于TCP/IP網(wǎng)絡(luò)協(xié)議的浮標(biāo)通訊系統(tǒng)
水聲信道匹配基礎(chǔ)研究所使用的浮標(biāo)具有水下傳感器單元,、信號(hào)處理單元及水面通訊單元,。其中水面通訊單元負(fù)責(zé)浮標(biāo)與岸基控制站、測(cè)量船及其它浮標(biāo)的信息交換,,要求具備網(wǎng)絡(luò)通訊功能,。
浮標(biāo)網(wǎng)絡(luò)通訊系統(tǒng)由無(wú)線(xiàn)網(wǎng)橋、TCP/IP協(xié)議控制單元及微控制器(MCU)組成,,如圖 2所示,。無(wú)線(xiàn)網(wǎng)橋采用較為成熟網(wǎng)橋產(chǎn)品,如BreezeNET無(wú)線(xiàn)網(wǎng)橋,,其功能是通過(guò)無(wú)線(xiàn)網(wǎng)路傳輸TCP/IP數(shù)據(jù)包,。MCU負(fù)責(zé)對(duì)TCP/IP協(xié)議棧的進(jìn)行設(shè)置,并寫(xiě)入待發(fā)數(shù)據(jù)及讀出接收數(shù)據(jù),。
TCP/IP協(xié)議棧的實(shí)現(xiàn)是浮標(biāo)網(wǎng)絡(luò)通訊系統(tǒng)的核心部分,。其實(shí)現(xiàn)方式可以采用軟件實(shí)現(xiàn),但該方法一般要求處理速度較高的MCU,,而且占用大量代碼空間,,同時(shí)編程需要對(duì)整個(gè)TCP/IP 協(xié)議的機(jī)制和細(xì)節(jié)十分熟悉,開(kāi)發(fā)難度大,。而硬件實(shí)現(xiàn)方式則把MCU從繁重的網(wǎng)絡(luò)協(xié)議運(yùn)行工作中解放出來(lái),,從而提高了系統(tǒng)效率,。
數(shù)據(jù)或指令由無(wú)線(xiàn)網(wǎng)橋發(fā)送或接收。它通過(guò)RJ45接口經(jīng)變壓器與10Base-T通用以太網(wǎng)接口控制器RTL8201相連,。RTL8201通過(guò)MII標(biāo)準(zhǔn)接口與W3100A交換數(shù)據(jù),。RTL8201從W3100A處接收以太幀,然后進(jìn)行曼徹斯特編碼,,發(fā)送以太網(wǎng)幀時(shí),先在幀前端加上幀起始標(biāo)志,。當(dāng)*到網(wǎng)絡(luò)中有以太網(wǎng)幀存在時(shí),,RTL8201接收模塊首先用鎖相環(huán)電路實(shí)現(xiàn)與物理信號(hào)同步,然后對(duì)物理信號(hào)采樣接收并送給曼徹斯特解碼功能塊,,最后得到W3100A能識(shí)別的歸“0”碼(已把幀前導(dǎo)碼分離),,并將其通過(guò)MII接口送入網(wǎng)絡(luò)接口層模塊。發(fā)送數(shù)據(jù)時(shí),,數(shù)據(jù)由MCU數(shù)據(jù)接口寫(xiě)入W3100A的發(fā)送緩沖區(qū),,通過(guò)控制各個(gè)協(xié)議層的相關(guān)控制寄存器,數(shù)據(jù)在TCP層中添加上各個(gè)控制標(biāo)志等,,封裝成為T(mén)CP段,,實(shí)現(xiàn)面向連接的可靠傳輸;TCP段接著交給IP層進(jìn)行打包,,IP層的一個(gè)重要功能是實(shí)現(xiàn)對(duì)TCP段的分片,,以達(dá)到IP數(shù)據(jù)報(bào)能夠最大效率利用以太網(wǎng)幀的數(shù)據(jù)區(qū)的目的。完整的IP數(shù)據(jù)報(bào)繼續(xù)傳給網(wǎng)絡(luò)接口層,,LLC子層使用物理層提供的不可靠的比特鏈路,,實(shí)現(xiàn)可靠的分組傳輸服務(wù),MAC子層為數(shù)據(jù)分組添加目的節(jié)點(diǎn)的物理地址,,MAC實(shí)現(xiàn)不可靠的分組傳輸,。經(jīng)過(guò)網(wǎng)絡(luò)接口層后,最終封裝成幀格式,,然后再經(jīng)過(guò)MII接口送入RTL8201,,在RTL8201里進(jìn)行曼徹斯特編碼并添加前導(dǎo)信號(hào)等。當(dāng)RTL8201*到物理鏈路空閑時(shí),,立即通過(guò)RJ45接口把數(shù)據(jù)幀發(fā)送到以太網(wǎng)上,。接收數(shù)據(jù)時(shí)則進(jìn)行相反的操作,收發(fā)器接收以太網(wǎng)上的物理信號(hào)把前導(dǎo)碼分離出來(lái)并進(jìn)行曼徹斯特解碼,,把結(jié)果傳送給網(wǎng)絡(luò)接口層,,網(wǎng)絡(luò)接口層MAC子層檢查幀的物理目的地址是否與自己的相同,以決定是否交給LLC子層,,LLC用差錯(cuò)檢測(cè)位判斷分組是否正確,。正確的分組被送入IP層,,在IP層中檢測(cè)錯(cuò)誤、拆封并進(jìn)行分片重組后送給TCP層,,TCP層實(shí)現(xiàn)面向連接的可靠傳輸,,所以TCP層將進(jìn)行嚴(yán)格的差錯(cuò)控制,再?gòu)腡CP段中取出數(shù)據(jù),,然后通過(guò)數(shù)據(jù)接口傳送回MCU,。物理幀經(jīng)過(guò)各個(gè)協(xié)議層進(jìn)行解包,最終把數(shù)據(jù)傳回MCU,,但在各層解包時(shí)如果IP地址或數(shù)據(jù)出錯(cuò)等,,數(shù)據(jù)包將被丟棄,并要求重傳,。如果處理的報(bào)文是ICMP,、UDP 或ARP等時(shí),其大致流程是一樣的,,不同報(bào)文的區(qū)別會(huì)在相應(yīng)的包頭指示出來(lái),,供協(xié)議識(shí)別。
1.2 TCP/IP協(xié)議棧W3100A簡(jiǎn)介
W3100A是一種TCP/IP協(xié)議棧芯片,,它包含了TCP,、IP Ver.4、UDP,、ICMP,、ARP等Internet協(xié)議和DLC、MAC以太網(wǎng)協(xié)議,。其功能框圖如圖 3所示,。W3100A芯片由4部分組成:微控器接口單元、網(wǎng)絡(luò)協(xié)議引擎,、雙口RAM及網(wǎng)絡(luò)物理層介質(zhì)開(kāi)關(guān)接口MII(Media Independent Interface)單元,。W3100A支持全雙工20Mbps的數(shù)據(jù)通信,并可同時(shí)支持4個(gè)獨(dú)立的網(wǎng)絡(luò)連接,;提供16KB的數(shù)據(jù)緩沖雙口SRAM,;采用0.35μm的CMOS工藝,64引腳LQFP封裝,;采用3.3V電源電壓,,其I/O接口兼容了5V的數(shù)字邏輯電平,可非常方便地與MCU和DSP接口連接,。
2,、電路設(shè)計(jì)
該系統(tǒng)的主要電路由微控制器MSP430F169、網(wǎng)絡(luò)協(xié)議棧W3100A,、以太網(wǎng)接口控制器RTL8201及網(wǎng)絡(luò)接口構(gòu)成,。W3100A與MSP430F169的連接可采用I2C接口模式或直接總線(xiàn)模式,。采用I2C接口模式的優(yōu)點(diǎn)是電路簡(jiǎn)潔,占用端口資源少,。但I(xiàn)2C接口的傳輸速度會(huì)受到一定限制,,所以當(dāng)要求更高傳輸速度時(shí),可采用直接總線(xiàn)接口方式,,如圖 4所示,。W3100A提供MII接口與RTL8201相連,其中引腳RX_CLK,、RXDV,、RXD[0:3]以及COL用于數(shù)據(jù)的接收,而TX_CLK,、TXE、TXD[0:3]用于數(shù)據(jù)的發(fā)送,。
在接口的實(shí)現(xiàn)中,,以太網(wǎng)變壓器是不可缺少的。在差分發(fā)送引腳(TX+/TX-)上,,需要一個(gè)專(zhuān)用于10BASE-T 操作的脈沖變壓器,,將要發(fā)送的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上。網(wǎng)絡(luò)傳來(lái)的數(shù)據(jù)也經(jīng)過(guò)變壓器,,由差分接收引腳(RX+/RX-)接收,。以太網(wǎng)變壓器的作用主要是將外部線(xiàn)路與RTL8201隔開(kāi),防止干擾和燒壞元器件,,實(shí)現(xiàn)帶電的插拔功能,。本設(shè)計(jì)采用了PULES的J0011型變壓器,其內(nèi)部結(jié)構(gòu)如圖 5所示,。該變壓器集成了RJ-45接頭,,在簡(jiǎn)化了連線(xiàn)的同時(shí)也提高了高頻信號(hào)傳輸?shù)目煽啃浴?/p>
同時(shí)在設(shè)計(jì)復(fù)位電路時(shí)應(yīng)注意,由于W3100A的復(fù)位引腳為高電平有效,,而MSP430F169和RTL8021的復(fù)位引腳為低電平有效,,所以在設(shè)計(jì)復(fù)位電路時(shí)要求同時(shí)產(chǎn)生高、低兩路復(fù)位信號(hào),,如圖 6所示,。
3、軟件設(shè)計(jì)
3.1 MSP430總線(xiàn)讀寫(xiě)
W3100A有專(zhuān)門(mén)的微控制器接口與MCU相連,,其總線(xiàn)操作類(lèi)似于MCU對(duì)外部存儲(chǔ)器的讀寫(xiě),。但MSP430微控制器沒(méi)有專(zhuān)門(mén)的外部擴(kuò)展總線(xiàn)接口,所以這里采用通用端口模擬外部擴(kuò)展總線(xiàn)端口,。對(duì)于W3100A的訪(fǎng)問(wèn)要依照其讀寫(xiě)時(shí)序進(jìn)行操作,,如圖 7,、圖 8所示,可將讀寫(xiě)程序作為函數(shù)在主程序中調(diào)用,。
下面列舉了部分讀總線(xiàn)程序:
寫(xiě)總線(xiàn)過(guò)程與讀總線(xiàn)類(lèi)似,,不同的是將P4端口設(shè)為輸出狀態(tài),并操作寫(xiě)有效(/WE),。要注意的是/WE恢復(fù)到高電平時(shí)的上升沿觸發(fā)數(shù)據(jù)寫(xiě)入,。
3.2 網(wǎng)絡(luò)傳輸控制
通過(guò)Wiznet公司為W3100A專(zhuān)門(mén)提供的Socket API函數(shù),可使網(wǎng)絡(luò)通訊的軟件設(shè)計(jì)更加方便,。首先初始化W3100A的網(wǎng)絡(luò)設(shè)置,,即在相應(yīng)的寄存器中設(shè)置默認(rèn)網(wǎng)關(guān)、子網(wǎng)掩碼,、本機(jī)物理地址和IP地址,,然后建立Socket連接以實(shí)現(xiàn)通訊。整個(gè)過(guò)程與Windows Socket編程十分類(lèi)似,。
建立TCP連接的流程如圖 9所示,。首先完成芯片的TCP/IP初始化,設(shè)置相應(yīng)通道如0通道的協(xié)議選擇寄存器C0_SPOR為0X01,;選擇TCP協(xié)議,,執(zhí)行通道0命令寄存器C0_CR中的sock_init命令位, 同時(shí)將C0_TW_PR,、C0_TR_PR及C0_TA_PR置成同一值,;然后執(zhí)行C0_CR的connect和listen命令位,此時(shí)TCP連接就建立起來(lái),。
W3100A內(nèi)部的16KB的雙口RAM作為數(shù)據(jù)發(fā)送和接收緩沖,。其中0x4000~0x5FFF的地址空間是發(fā)送數(shù)據(jù)緩沖區(qū),0x6000~0x7FFF的地址空間是接收數(shù)據(jù)緩沖區(qū),。MCU程序?qū)⒁l(fā)送的數(shù)據(jù)寫(xiě)入發(fā)送緩沖區(qū),,并從接收緩沖區(qū)讀出收到的數(shù)據(jù)。當(dāng)成批的數(shù)據(jù)發(fā)送時(shí),,一定要先查詢(xún)1次發(fā)送數(shù)據(jù)指針,,從而計(jì)算出可以利用的發(fā)送緩沖區(qū)的大小。圖 10示意了TCP數(shù)據(jù)發(fā)送的程序流程,。數(shù)據(jù)接收的過(guò)程與發(fā)送過(guò)程類(lèi)似,,在此不再贅述。
4,、測(cè)試及分析
功能測(cè)試的關(guān)鍵在于對(duì)系統(tǒng)的可用性及穩(wěn)定性進(jìn)行實(shí)驗(yàn),。為此,建立了一個(gè)簡(jiǎn)化通訊網(wǎng)絡(luò),采用PC機(jī)作為通訊網(wǎng)絡(luò)的一個(gè)終端,,浮標(biāo)作為另一終端,。通過(guò)測(cè)試兩者間的通訊情況來(lái)實(shí)驗(yàn)本系統(tǒng)功能。
首先,,測(cè)試網(wǎng)絡(luò)連接情況,。作為必要的IP實(shí)驗(yàn),由PC機(jī)將PING命令發(fā)送給浮標(biāo),,PC機(jī)顯示結(jié)果如圖 11所示,。
在局域網(wǎng)暢通的情況下,理論上0字節(jié)的PING請(qǐng)求平均響應(yīng)時(shí)間為1ms,,實(shí)驗(yàn)結(jié)果驗(yàn)證了網(wǎng)絡(luò)連接的正常,。
通過(guò)大量轉(zhuǎn)發(fā)數(shù)據(jù)的方法測(cè)試系統(tǒng)穩(wěn)定性。由PC機(jī)發(fā)送數(shù)據(jù)至浮標(biāo),,浮標(biāo)將數(shù)據(jù)直接轉(zhuǎn)發(fā)回PC機(jī),,PC機(jī)比較發(fā)出數(shù)據(jù)與接收數(shù)據(jù),以判斷誤碼情況,。室溫條件下,,通訊距離100米,進(jìn)行三組各持續(xù)10小時(shí)的收發(fā)實(shí)驗(yàn),,無(wú)丟包現(xiàn)象,誤碼率<10-9,,符合設(shè)計(jì)要求,。要指出的是,由于海況及通訊距離的不同,,系統(tǒng)的傳輸誤碼率將有所不同,,但在多數(shù)情況下該系統(tǒng)作為指令收發(fā)的通道是完全可靠的。
5,、結(jié)論
TCP/IP協(xié)議在浮標(biāo)系統(tǒng)中的應(yīng)用極大的增強(qiáng)了浮標(biāo)網(wǎng)絡(luò)的穩(wěn)定性及可擴(kuò)展性,。本設(shè)計(jì)采用MSP430微控制器及網(wǎng)絡(luò)協(xié)議棧W3100A很好地實(shí)現(xiàn)了浮標(biāo)系統(tǒng)的低功耗網(wǎng)絡(luò)通訊系統(tǒng),為水聲信道匹配基礎(chǔ)研究提供了理想的網(wǎng)絡(luò)通訊保障,。同時(shí)本設(shè)計(jì)也可以嵌入到其它設(shè)備中,,如野外測(cè)量?jī)x器、車(chē)載系統(tǒng)等,,為更多的嵌入式系統(tǒng)提供網(wǎng)絡(luò)化服務(wù),具有非常廣闊的應(yīng)有前景,。