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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式WiFi技術

          嵌入式WiFi技術

          作者: 時間:2010-02-01 來源:網(wǎng)絡 收藏

          目前,IEEE802.11無線局域網(wǎng)標準在語音通信、無線辦公等領域廣泛應用,但主要還是局限在PC機、筆記本電腦等通用平臺的無線通信。無線局域網(wǎng)在信息家電、工業(yè)控制、移動手持設備等環(huán)境中的應用需求日益增多。如何在系統(tǒng)中整合WLAN寬帶通信,成為系統(tǒng)應用中的一個熱點。

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

          1 IEEE802.11b無線局域網(wǎng)

          IEEE802.11系列包括IEEE802.11、IEEE802.11a、IEEE802.1lb、IEEE802.1lg四個標準?,F(xiàn)階段IEEE802.11b的產(chǎn)品比較多。本文主要針對IEEE802.1lb標準,介紹嵌入式的實現(xiàn)。

          IEEE802.11b標準是在IEEE802.11的基礎上發(fā)展起來的,工作在2.4 GHz頻段,采用CCK調(diào)制,最高傳輸率能夠達到11Mbps,具有部署方便、通信可靠、抗干擾能力強、成本低、靈活性好、移動性強、高吞吐量等特點。它使得無線用戶可以得到以太網(wǎng)級的網(wǎng)絡性能、速率和可用性,并且可以無縫地將多種LAN集成起來,形成一種能夠最大限度地滿足用戶需求的網(wǎng)絡。是Wireless

          Fidelity的縮寫,專指IEEE802.11b無線標準。在介紹IEEE802.11b的工作模式之前,首先介紹幾個基本的概念。

          1.1 IEEE802.11b基本概念

          STA是指接入無線媒介的部分,常被稱為網(wǎng)絡適配器或者網(wǎng)絡接口卡。STA可以是移動的,也可以是固定的。每個STA都支持鑒權(authentication),取消鑒權(deauthentication),加密和數(shù)據(jù)傳輸?shù)取?/p>

          基本服務集BSS(Basic Service

          Set)是IEEES02.11b

          局域網(wǎng)的基本構成單元,基本服務集中可以包含多個STA。BSS基本服務集都有一個覆蓋范圍。在該覆蓋范圍內(nèi)基本服務集的成員STA可以保持相互通信,每個BSS有一個基本服務集識別碼BSSID。

          獨立的基本服務集IBSS(Independent

          BSS)是最基本的IEEE802.11b局域網(wǎng)類型,一個最小的IEEE802.11b局域網(wǎng)可以僅僅包含兩個STA。在這種模式下,STA能夠直接通信。因為這種類型的IEEES02.11b局域網(wǎng)通常在需要的時候才安排,所以這種網(wǎng)絡工作模式通常被稱為ad

          hoc(拉丁語,可譯為“自組網(wǎng)”)模式。站點(STA)與基本服務集(BSS)之間的相互關系嵌態(tài)的,STA可以自由地開機、關機、進入或離開BSS覆蓋范圍。

          DSS(Distribution System

          Service),用于連接多個BSS。由于物理層覆蓋范圍的限制決定了所能支持的STA與STA之間的直接通信距離。為了解決這個問題,引入DS(Distribution

          System),它可以把多個BSS構成一個擴展的網(wǎng)絡。

          AP是Access

          Point簡稱,一般翻譯為“無線訪問節(jié)點”或“橋接器”。主要在媒介訪問控制層MAC中扮演無線工作站及有線局域網(wǎng)絡的橋梁。

          ESS(Extended

          Service

          Set),DS和多個BSS允許IEEE802.11構成一個任意大小和復雜的無線網(wǎng)絡。IEEE802.11b把這種網(wǎng)絡稱為擴展服務集網(wǎng)絡。同樣,ESS也有一個標識的名稱,即ESSID。

          1.2 IEEE802.11b的工作模式

          IEEE

          802.1lb有兩種工作模式:Ad-hoe和Infra―structure模式。IEEE標準以獨立的基本服務集(IBSS)來定義Ad-hoc模式工作的客戶端集合,以基本服務集(BSS)定義以Infrastructure模式工作的客戶端集合。

          在Ad-hoc模式中,客戶端不能直接和網(wǎng)絡外其他的客戶端通信。Ad-hoc模式的設計目的是使在同一個頻譜覆蓋范圍內(nèi)的客戶間能夠互相通信。如果一個Ad―hoc網(wǎng)絡模式中的客戶想要和該網(wǎng)絡外的客戶通信,則該網(wǎng)絡中必須有一個客戶做網(wǎng)關并執(zhí)行路由功能。

          而在Infrastructure模式中,每一個客戶將其通信報文發(fā)向AP.AP轉發(fā)所有的通信報文。這些報文可以是發(fā)往以太網(wǎng)的,也可以是發(fā)往無線網(wǎng)絡的。這是一種整合以太網(wǎng)和無線網(wǎng)絡架構的應用模式。無線訪問節(jié)點負責頻段管理及漫游等指揮工作。一個AP最多可連接1024個站點。

          2 嵌入式的設計

          嵌入式WiFi的結構與標準PC/OS平臺上的實現(xiàn)有所不同。要在普通的微處理器/微控制器上實現(xiàn)WiFi通信,其硬件結構、軟件層次都必須進行裁減。下面以Prism

          MAC為例說明嵌入式WiFi的軟、硬件設計。

          2.1 嵌入式WiFi的硬件設計

          嵌入式環(huán)境中WiFi的硬件接口如圖1所示。與標準平臺相比,中間沒有PCMCIA橋。圖1是嵌入式環(huán)境中的PC2MCIA接口的網(wǎng)卡與總線開放MCU的連接。

          由于Prism

          MAC包括Memory space和I/O memory兩個空間,所以需要兩個片選通過或門控制讀寫空間的選擇。PCMCIA封裝的Prism

          MAC有26根地址線,驅動Prism

          MAC僅僅需要地址線A0~A9,其他地址線全部接地。對于總線不開放的處理器,可以使用I/O口線模擬的方式進行讀寫。

          2.2嵌入式WiFi的軟件設計

          在WinCE、Linux等操作系統(tǒng)環(huán)境下,可以使用廠家提供的設備驅動來使用WiFi網(wǎng)卡。這種系統(tǒng)一般對硬件資源(如CPU性能、存儲器容量等)有較高的要求。對于許多嵌入式應用,由于硬件資源的限制,很多系統(tǒng)都在簡單OS(如uC/0S等)或無0S的環(huán)境下運行,這時就需要對整個軟件協(xié)議作適當?shù)牟脺p。圖2是嵌入式WiFi的軟件結構。

          圖2中,TCP/IP協(xié)議的實現(xiàn)在許多文章中已經(jīng)有較多的講述。這里主要以Prism MAC為例,介紹無限網(wǎng)絡驅動,即嵌入式WiFi的驅動。

          Prism MAC提供給用戶一組接口寄存器,通過這些寄存器和Prism MAC進行通信。這些寄存器位于Attribute

          Memory[2]空間中,可以使用AttribLlte Memory地址直接訪問。表1列出了PRISM MAC的常用寄存器及其定義。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          關鍵詞: 技術 WiFi 嵌入式

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();