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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于藍(lán)牙的個(gè)人局域網(wǎng)(PAN)的設(shè)計(jì)

          基于藍(lán)牙的個(gè)人局域網(wǎng)(PAN)的設(shè)計(jì)

          作者: 時(shí)間:2005-05-24 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:為了更好地滿足所有移動(dòng)計(jì)算機(jī)和通訊設(shè)備的通訊需要,特別興趣小組(SIG) 提出了一個(gè)新的概念――區(qū)域網(wǎng)(Personal Area Networking) 。本文分析了區(qū)域網(wǎng)()的原理,同時(shí)提出藍(lán)牙模塊的藍(lán)牙區(qū)域網(wǎng)的方案。

          關(guān)鍵詞:藍(lán)牙個(gè)人區(qū)域網(wǎng); 組網(wǎng); 網(wǎng)絡(luò)訪問(wèn)點(diǎn);網(wǎng)橋轉(zhuǎn)發(fā)算法

          引言

          人們所攜帶的電子信息設(shè)備越來(lái)越多,像筆記本電腦、移動(dòng)電話、PDA 等已不再只是商務(wù)人員的必備工具,正逐步進(jìn)入百姓的日常生活。這些信息設(shè)備的功能越來(lái)越強(qiáng)大,同時(shí)尺寸卻越來(lái)越小,但是人們已不能僅僅滿足于它們各自獨(dú)立工作,而是迫切需要各種設(shè)備之間能方便地進(jìn)行信息的交互。因此,在小范圍內(nèi)能夠?qū)€(gè)人設(shè)備互聯(lián)而組成的網(wǎng)絡(luò)―――個(gè)人) 便應(yīng)運(yùn)而生。藍(lán)牙(Bluetooth) 作為一種小范圍無(wú)線連接技術(shù),能夠在設(shè)備間實(shí)現(xiàn)方便快捷、靈活安全、低成本、低功耗的數(shù)據(jù)和語(yǔ)音通信,是目前實(shí)現(xiàn)無(wú)線個(gè)域網(wǎng)的主流技術(shù)之一。本文提出了怎樣實(shí)現(xiàn)現(xiàn)有上層協(xié)議(如TCP/ IP)與藍(lán)牙協(xié)議的無(wú)縫連接;怎樣實(shí)現(xiàn)藍(lán)牙個(gè)人區(qū)域網(wǎng)的數(shù)據(jù)轉(zhuǎn)發(fā)(主要集中在 的網(wǎng)橋算法上) 的解決方法;最后提供了一個(gè)藍(lán)牙個(gè)人區(qū)域網(wǎng)模塊的完整方案供參考,希望對(duì)各個(gè)同行有借鑒意義。本文所提出的解決方案現(xiàn)已用軟件實(shí)現(xiàn),并投入國(guó)外市場(chǎng),用戶(hù)反映運(yùn)行良好。

          1 藍(lán)牙PAN 實(shí)現(xiàn)原理

          藍(lán)牙技術(shù)是一種近距離無(wú)線通信的開(kāi)放性標(biāo)準(zhǔn),其目的是單芯片、低功耗,用來(lái)代替有線電纜連接,實(shí)現(xiàn)短距離無(wú)線語(yǔ)音和數(shù)據(jù)通信。由多個(gè)藍(lán)牙設(shè)備就可以組成一個(gè)藍(lán)牙網(wǎng)絡(luò)。藍(lán)牙個(gè)人區(qū)域網(wǎng)PAN 有兩種應(yīng)用模型: 一種被稱(chēng)為組網(wǎng)絡(luò)( Group Ad - hoc Networking ,GN) ;另一種被稱(chēng)為網(wǎng)絡(luò)訪問(wèn)點(diǎn)(Networking Access Point ,NAP) 。這兩種實(shí)現(xiàn)模式分別有不同的網(wǎng)絡(luò)結(jié)構(gòu)和協(xié)議模型。下面對(duì)它們分別進(jìn)行敘述。

          1.1 組網(wǎng)( GN) 與網(wǎng)絡(luò)訪問(wèn)點(diǎn)(NAP)

          一個(gè)簡(jiǎn)單的組網(wǎng)由一個(gè)主設(shè)備和1~7 個(gè)活動(dòng)的從設(shè)備組成。在這一個(gè)主從網(wǎng)中,主設(shè)備與從設(shè)備之間的點(diǎn)對(duì)點(diǎn)或點(diǎn)對(duì)多點(diǎn)通訊在主設(shè)備的控制下進(jìn)行,這個(gè)網(wǎng)絡(luò)不需與外部網(wǎng)絡(luò)相連。另外一種就是由一個(gè)NAP和其它藍(lán)牙設(shè)備組成的網(wǎng)絡(luò)。這種無(wú)線設(shè)備充當(dāng)網(wǎng)絡(luò)設(shè)備(10baseT,GSM 等) 之間的網(wǎng)橋、代理或者路由。網(wǎng)絡(luò)訪問(wèn)點(diǎn)與Internet 相連,它是其它計(jì)算機(jī)或設(shè)備與外部網(wǎng)絡(luò)相連的中介。計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)訪問(wèn)點(diǎn)共享所有的網(wǎng)絡(luò)資源。

          1.2 PAN 協(xié)議棧模型

          由上可見(jiàn),NAP 和GN 是兩種不同的服務(wù)。組網(wǎng)被用來(lái)允許一個(gè)或多個(gè)藍(lán)牙設(shè)備組成一個(gè)絡(luò),而網(wǎng)絡(luò)訪問(wèn)點(diǎn)提供藍(lán)牙設(shè)備進(jìn)入Internet 網(wǎng)絡(luò)的能力。無(wú)論是NAP 還是GN 都必須提供與TCP/ IP 和其它網(wǎng)絡(luò)協(xié)議的無(wú)縫實(shí)現(xiàn)。下面是關(guān)于NAP 和GN 在協(xié)議棧部分圖示(圖1 和圖2) 。從協(xié)議棧示意圖可以看出,與GN 網(wǎng)絡(luò)比較而言,NAP 除了要實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)之外,還必須實(shí)現(xiàn)網(wǎng)橋,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)的路由,從而能通過(guò)網(wǎng)絡(luò)訪問(wèn)外部網(wǎng)絡(luò)。

          2 PAN 實(shí)現(xiàn)要解決的問(wèn)題

          藍(lán)牙個(gè)人區(qū)域網(wǎng)就是要用無(wú)線代替有線,用藍(lán)牙硬件在不同設(shè)備之間建立一條虛擬的藍(lán)牙鏈路,從而使現(xiàn)有的各種應(yīng)用軟件不經(jīng)修改,就可以在不同藍(lán)牙設(shè)備之間進(jìn)行數(shù)據(jù)傳輸和數(shù)據(jù)交換。它必須解決以下問(wèn)題:

          (1)怎樣支持IPv4 和IPv6 協(xié)議和其它可選協(xié)議。

          (2)怎樣實(shí)現(xiàn)GN 和NAP。

          (3)怎樣實(shí)現(xiàn)藍(lán)牙協(xié)議棧與現(xiàn)有網(wǎng)絡(luò)協(xié)議如TCP/ IP和PPP 等網(wǎng)絡(luò)協(xié)議無(wú)縫連接,從而通過(guò)藍(lán)牙硬件在下層建立一條虛擬的藍(lán)牙鏈路,使現(xiàn)有網(wǎng)絡(luò)應(yīng)用程序就像在有線網(wǎng)絡(luò)中使用一樣。

          3 PAN 的具體實(shí)現(xiàn)

          3.1 實(shí)現(xiàn)高層協(xié)議與藍(lán)牙協(xié)議的無(wú)縫連接

          要充分運(yùn)用現(xiàn)有的各種協(xié)議,如TCP/ IP 協(xié)議和其它上層協(xié)議的接口,PAN 網(wǎng)絡(luò)需要在上層協(xié)議與藍(lán)牙協(xié)議棧之間建立一條藍(lán)牙無(wú)線鏈路。怎樣實(shí)現(xiàn)現(xiàn)有協(xié)議與藍(lán)牙協(xié)議的無(wú)縫連接? 筆者以Windows 平臺(tái)為例提出了一個(gè)解決方案,如圖3 所示。

          在Windows 驅(qū)動(dòng)程序設(shè)計(jì)構(gòu)架中,現(xiàn)在的通訊協(xié)議(如TCP ,IPX/ SPX等) 都是建立在Miniport Driver 之上的。因此,只需實(shí)現(xiàn)一個(gè)Windows 關(guān)于NDIS 的Miniport 驅(qū)動(dòng)程序(圖4) 即可。從TCP/ IP 等高層協(xié)議過(guò)來(lái)的數(shù)據(jù)通過(guò)Miniport 進(jìn)入Dispatch Driver ,然后進(jìn)入個(gè)人區(qū)域網(wǎng)應(yīng)用程序,通過(guò)應(yīng)用程序進(jìn)入藍(lán)牙協(xié)議棧。當(dāng)然,PAN Interface 也可以在Kernel Mode 層實(shí)現(xiàn)。通過(guò)PAN Interface ,數(shù)據(jù)就可以進(jìn)入藍(lán)牙協(xié)議棧了(圖5) 。

          3.2 網(wǎng)橋轉(zhuǎn)發(fā)算法(實(shí)現(xiàn)GN 和NAP)

          為了實(shí)現(xiàn)GN 和NAP ,就必須在GN 和NAP 端實(shí)現(xiàn)一個(gè)虛擬網(wǎng)橋,實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)。網(wǎng)橋轉(zhuǎn)發(fā)算法是藍(lán)牙個(gè)人區(qū)域網(wǎng)PAN 實(shí)現(xiàn)的關(guān)鍵技術(shù)。根據(jù)藍(lán)牙個(gè)人區(qū)域網(wǎng)的特點(diǎn),筆者提出了網(wǎng)橋三個(gè)端口的模型,并提出了一個(gè)網(wǎng)橋轉(zhuǎn)發(fā)算法。

          3.2.1 網(wǎng)橋轉(zhuǎn)發(fā)算法基本思想

          網(wǎng)橋在一定程度上就相當(dāng)于一個(gè)集線器。在它上邊可以有三種類(lèi)型的端口:BNEP 端口(數(shù)據(jù)轉(zhuǎn)發(fā)是直接建立在BNEP[3]之上的) ,本地端口(服務(wù)端本身) 和外部網(wǎng)絡(luò)端口(如接入Internet) 。由于一個(gè)藍(lán)牙主設(shè)備只能連接七臺(tái)藍(lán)牙從設(shè)備,所以網(wǎng)橋的BNEP 端口最多能有七個(gè);本地端口表示的就是提供服務(wù)設(shè)備自己,它只有一個(gè);如果本設(shè)備支持NAP ,那么將會(huì)注冊(cè)一個(gè)外部網(wǎng)絡(luò)端口??梢?jiàn),一個(gè)網(wǎng)橋最多有九個(gè)端口,它的主要功能就是根據(jù)相應(yīng)的網(wǎng)橋轉(zhuǎn)發(fā)算法,把數(shù)據(jù)從一個(gè)藍(lán)牙設(shè)備轉(zhuǎn)發(fā)到其它的藍(lán)牙設(shè)備或者外部網(wǎng)絡(luò),從而實(shí)現(xiàn)在不同設(shè)備間(GN) 或者和外部網(wǎng)絡(luò)(NAP) 通信的目的。在每一個(gè)BNEP 端口設(shè)置一個(gè)自學(xué)習(xí)標(biāo)志位來(lái)標(biāo)志來(lái)自這個(gè)端口的數(shù)據(jù)包的源地址和目的地址是否已經(jīng)被記憶下來(lái),這樣就沒(méi)必要每次都去查找來(lái)自這個(gè)端口的每一個(gè)數(shù)據(jù)包的源地址或目的地址。如果要轉(zhuǎn)發(fā)的數(shù)據(jù)包不是來(lái)自?xún)?nèi)部網(wǎng)絡(luò),并且在端口列表中沒(méi)有找到目標(biāo)端口,則默認(rèn)為被轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò), 如果沒(méi)有外部網(wǎng)絡(luò)端口,則丟棄該包。另外,在每一個(gè)端口還有一個(gè)包過(guò)濾器,它可以過(guò)濾掉某些類(lèi)型的網(wǎng)絡(luò)包和來(lái)自或發(fā)往某地址范圍段的網(wǎng)絡(luò)包。

          3.2.2 算法具體步驟

          (1) 有數(shù)據(jù)包到達(dá)網(wǎng)橋,該數(shù)據(jù)包可能來(lái)自本地設(shè)備、其它藍(lán)牙設(shè)備或外部網(wǎng)絡(luò)(如果實(shí)現(xiàn)了NAP) 。

          (2) 從包頭中取得該數(shù)據(jù)包得源地址,檢查該數(shù)據(jù)包的是否來(lái)自外部網(wǎng)絡(luò)。若是,則檢查數(shù)據(jù)包的源端口是否自學(xué)習(xí)的;若不是,則記下該數(shù)據(jù)包的源地址并設(shè)置自學(xué)習(xí)標(biāo)志位為T(mén)RUE。

          (3) 從包頭中取得該數(shù)據(jù)包的類(lèi)型。如果它是EARP/ ERARP 類(lèi)型數(shù)據(jù)包,則把它作為廣播包,并對(duì)除源端口外的每一個(gè)端口進(jìn)行廣播,然后轉(zhuǎn)到(8) 。

          (4) 如果它是IPv4 , IPv6 或者其它類(lèi)型的數(shù)據(jù)包,則檢查所記憶的目標(biāo)端口是否是一個(gè)有效端口。如果所記憶的目標(biāo)端口有效,則把所記憶的目標(biāo)端口作為該數(shù)據(jù)包要轉(zhuǎn)發(fā)的目標(biāo)端口。

          (5) 如果該數(shù)據(jù)包的目標(biāo)地址是一個(gè)廣播地址或多播地址,則把該數(shù)據(jù)包進(jìn)行廣播或多播,然后轉(zhuǎn)到(8) ;否則,在除源端口外的所有端口中查找目標(biāo)端口。

          (6) 如果找到目標(biāo)端口, 則記憶該目標(biāo)端口;否則,若該網(wǎng)橋有默認(rèn)端口(即外部網(wǎng)絡(luò)端口) ,并且源端口不是外部網(wǎng)絡(luò)端口,則把外部網(wǎng)絡(luò)端口作為目標(biāo)口,若沒(méi)有外部網(wǎng)絡(luò)端口, 則丟棄該包, 然后轉(zhuǎn)到(8) 。

          (7) 進(jìn)行包過(guò)濾, 如果該包沒(méi)有被過(guò)濾掉, 則轉(zhuǎn)發(fā)該數(shù)據(jù)包到目標(biāo)端口。

          (8) 接收下一個(gè)到來(lái)的數(shù)據(jù)包,重復(fù)上述步驟。

          4  模塊介紹

          4.1  PAN UI

          PAN UI 模塊是位于最上層的圖形用戶(hù)界面,它是與用戶(hù)交互的接口。它使用戶(hù)能夠方便快捷地完成相應(yīng)操作,如建立網(wǎng)絡(luò),進(jìn)行數(shù)據(jù)交互等。

          4.2  PAN Profile

          PAN Profile 模塊是藍(lán)牙個(gè)人區(qū)域網(wǎng)PAN 實(shí)現(xiàn)的關(guān)鍵模塊。一方面,它與用戶(hù)界面打交道,另一方面,它又要負(fù)責(zé)與協(xié)議棧和網(wǎng)絡(luò)驅(qū)動(dòng)程序的數(shù)據(jù)交互。它有以下功能:

          ①一方面它能提供PAN 服務(wù),并等待接收來(lái)自客戶(hù)端的連接。

          ②另一方面它又能作為客戶(hù)端,發(fā)出建立連接請(qǐng)求,并接收來(lái)自服務(wù)端的響應(yīng)。

          ③如果提供NAP服務(wù),則還需實(shí)現(xiàn)一個(gè)網(wǎng)橋,詳見(jiàn)網(wǎng)橋算法。

          4.3 Pan Interface

          PAN Interface 模塊是與系統(tǒng)相關(guān)的模塊, 它直接和位于核心態(tài)的Virtual NIC 模塊進(jìn)行交互,接收來(lái)自Virtual NIC 模塊的數(shù)據(jù)(即TCP/ IP 等上層協(xié)議發(fā)來(lái)的數(shù)據(jù))或發(fā)送數(shù)據(jù)到Virtual NIC(即TCP/ IP 等上層協(xié)議接收的數(shù)據(jù)) 。

          4.4 Virtual NIC

          Virtual NIC 模塊即網(wǎng)卡驅(qū)動(dòng)部分,它位于Windows 系統(tǒng)的核心態(tài),實(shí)現(xiàn)了一個(gè)虛擬的藍(lán)牙網(wǎng)卡,直接與Windows 系統(tǒng)通信。

          5  結(jié)束語(yǔ)

          本文首先對(duì)PAN 藍(lán)牙協(xié)議進(jìn)行了一個(gè)概括性的描述,然后對(duì)PAN 設(shè)計(jì)中會(huì)遇到的問(wèn)題進(jìn)行了闡述,并在最后提出了作者對(duì)問(wèn)題的解決方法。本文描述了PAN 的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,提出了算法及解決方案,具有很強(qiáng)的實(shí)用性。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();