<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > TCP/IP的浮標(biāo)網(wǎng)絡(luò)通信系統(tǒng)設(shè)計策略

          TCP/IP的浮標(biāo)網(wǎng)絡(luò)通信系統(tǒng)設(shè)計策略

          作者: 時間:2012-01-17 來源:網(wǎng)絡(luò) 收藏

          水聲信道匹配基礎(chǔ)研究是建立在水聲學(xué)、海洋物理聲學(xué)以及現(xiàn)代信號處理技術(shù)基礎(chǔ)上的新興研究領(lǐng)域。為滿足研究需要而構(gòu)建的局部海域水聲信道測量平臺(圖 1),能夠?qū)崿F(xiàn)環(huán)境信息和信道參量的采集和實時傳遞,對信道寬容匹配方法的可行性進行檢驗。

          本文引用地址:http://www.ex-cimer.com/article/155347.htm

            以它的靈活、高效、自身干擾小等特點,在水聲信道研究中發(fā)揮著其它設(shè)備不可替代的作用?,F(xiàn)有的大多采用直接序列擴頻電臺直接進行水面通訊,這種方式往往不使用網(wǎng)絡(luò)協(xié)議或使用自定義的網(wǎng)絡(luò)協(xié)議。而采用無線網(wǎng)橋進行水面通訊,以作為網(wǎng)絡(luò)協(xié)議,將大大增強系統(tǒng)網(wǎng)絡(luò)化。同時由于協(xié)議是目前最為成熟的網(wǎng)絡(luò)協(xié)議之一,浮標(biāo)網(wǎng)絡(luò)的穩(wěn)定性、可擴展性都得以提高,甚至通過互聯(lián)網(wǎng)直接控制浮標(biāo)系統(tǒng)也成為可能。因此,本文基于網(wǎng)絡(luò)協(xié)議并實現(xiàn)了浮標(biāo)系統(tǒng)。

            1、浮標(biāo)網(wǎng)絡(luò)通訊系統(tǒng)

            1.1 基于TCP/IP網(wǎng)絡(luò)協(xié)議的浮標(biāo)通訊系統(tǒng)

            水聲信道匹配基礎(chǔ)研究所使用的浮標(biāo)具有水下傳感器單元、信號處理單元及水面通訊單元。其中水面通訊單元負責(zé)浮標(biāo)與岸基控制站、測量船及其它浮標(biāo)的信息交換,要求具備網(wǎng)絡(luò)通訊功能。


            浮標(biāo)網(wǎng)絡(luò)通訊系統(tǒng)由無線網(wǎng)橋、TCP/IP協(xié)議控制單元及微控制器(MCU)組成,如圖 2所示。無線網(wǎng)橋采用較為成熟網(wǎng)橋產(chǎn)品,如BreezeNET無線網(wǎng)橋,其功能是通過無線網(wǎng)路傳輸TCP/IP數(shù)據(jù)包。MCU負責(zé)對TCP/IP協(xié)議棧的進行設(shè)置,并寫入待發(fā)數(shù)據(jù)及讀出接收數(shù)據(jù)。


            TCP/IP協(xié)議棧的實現(xiàn)是浮標(biāo)網(wǎng)絡(luò)通訊系統(tǒng)的核心部分。其實現(xiàn)方式可以采用軟件實現(xiàn),但該方法一般要求處理速度較高的MCU,而且占用大量代碼空間,同時編程需要對整個TCP/IP 協(xié)議的機制和細節(jié)十分熟悉,開發(fā)難度大。而硬件實現(xiàn)方式則把MCU從繁重的網(wǎng)絡(luò)協(xié)議運行工作中解放出來,從而提高了系統(tǒng)效率。

            數(shù)據(jù)或指令由無線網(wǎng)橋發(fā)送或接收。它通過RJ45接口經(jīng)變壓器與10Base-T通用以太網(wǎng)接口控制器RTL8201相連。RTL8201通過MII標(biāo)準(zhǔn)接口與W3100A交換數(shù)據(jù)。RTL8201從W3100A處接收以太幀,然后進行曼徹斯特編碼,發(fā)送以太網(wǎng)幀時,先在幀前端加上幀起始標(biāo)志。當(dāng)*到網(wǎng)絡(luò)中有以太網(wǎng)幀存在時,RTL8201接收模塊首先用鎖相環(huán)電路實現(xiàn)與物理信號同步,然后對物理信號采樣接收并送給曼徹斯特解碼功能塊,最后得到W3100A能識別的歸“0”碼(已把幀前導(dǎo)碼分離),并將其通過MII接口送入網(wǎng)絡(luò)接口層模塊。發(fā)送數(shù)據(jù)時,數(shù)據(jù)由MCU數(shù)據(jù)接口寫入W3100A的發(fā)送緩沖區(qū),通過控制各個協(xié)議層的相關(guān)控制寄存器,數(shù)據(jù)在TCP層中添加上各個控制標(biāo)志等,封裝成為TCP段,實現(xiàn)面向連接的可靠傳輸;TCP段接著交給IP層進行打包,IP層的一個重要功能是實現(xiàn)對TCP段的分片,以達到IP數(shù)據(jù)報能夠最大效率利用以太網(wǎng)幀的數(shù)據(jù)區(qū)的目的。完整的IP數(shù)據(jù)報繼續(xù)傳給網(wǎng)絡(luò)接口層,LLC子層使用物理層提供的不可靠的比特鏈路,實現(xiàn)可靠的分組傳輸服務(wù),MAC子層為數(shù)據(jù)分組添加目的節(jié)點的物理地址,MAC實現(xiàn)不可靠的分組傳輸。經(jīng)過網(wǎng)絡(luò)接口層后,最終封裝成幀格式,然后再經(jīng)過MII接口送入RTL8201,在RTL8201里進行曼徹斯特編碼并添加前導(dǎo)信號等。當(dāng)RTL8201*到物理鏈路空閑時,立即通過RJ45接口把數(shù)據(jù)幀發(fā)送到以太網(wǎng)上。接收數(shù)據(jù)時則進行相反的操作,收發(fā)器接收以太網(wǎng)上的物理信號把前導(dǎo)碼分離出來并進行曼徹斯特解碼,把結(jié)果傳送給網(wǎng)絡(luò)接口層,網(wǎng)絡(luò)接口層MAC子層檢查幀的物理目的地址是否與自己的相同,以決定是否交給LLC子層,LLC用差錯檢測位判斷分組是否正確。正確的分組被送入IP層,在IP層中檢測錯誤、拆封并進行分片重組后送給TCP層,TCP層實現(xiàn)面向連接的可靠傳輸,所以TCP層將進行嚴格的差錯控制,再從TCP段中取出數(shù)據(jù),然后通過數(shù)據(jù)接口傳送回MCU。物理幀經(jīng)過各個協(xié)議層進行解包,最終把數(shù)據(jù)傳回MCU,但在各層解包時如果IP地址或數(shù)據(jù)出錯等,數(shù)據(jù)包將被丟棄,并要求重傳。如果處理的報文是ICMP、UDP 或ARP等時,其大致流程是一樣的,不同報文的區(qū)別會在相應(yīng)的包頭指示出來,供協(xié)議識別。

            1.2 TCP/IP協(xié)議棧W3100A簡介

            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ì)開關(guān)接口MII(Media Independent Interface)單元。W3100A支持全雙工20Mbps的數(shù)據(jù)通信,并可同時支持4個獨立的網(wǎng)絡(luò)連接;提供16KB的數(shù)據(jù)緩沖雙口SRAM;采用0.35μm的CMOS工藝,64引腳LQFP封裝;采用3.3V電源電壓,其I/O接口兼容了5V的數(shù)字邏輯電平,可非常方便地與MCU和DSP接口連接。

          tcp/ip相關(guān)文章:tcp/ip是什么



          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();