|
大學嵌入式教材_嵌入式WiFi技術研究與通信設計,
嵌入式WiFi技術是當前無線網絡應用的一個熱點。本文介紹IEEE802.11b的基本技術,給出一種在 嵌入式環(huán)境中的WiFi通信設計方案;通過一個移動監(jiān)護系統(tǒng)的具體實現,說明方案的有效性。 關鍵詞 IEEE802.11b嵌入式WiFi TCP/IP 移動監(jiān)護 目前,IEEE802.11無線局域網標準在語音通信、無線辦公等領域廣泛應用,但主要還是局限在PC機、筆記本電腦等通用平臺的無線通信。無線局域網在信息家電、工業(yè)控制、移動手持設備等嵌入式環(huán)境中的應用需求日益增多。如何在嵌入式系統(tǒng)中整合WLAN寬帶通信,成為嵌入式系統(tǒng)應用中的一個熱點。 1 IEEE802.11b無線局域網 IEEE802.11系列包括IEEE802.11、IEEE802.11a、IEEE802.1lb、IEEE802.1lg四個標準,F階段 IEEE802.11b的產品比較多。本文主要針對IEEE802.1lb標準,介紹嵌入式WiFi的實現。 IEEE802.11b標準是在IEEE802.11的基礎上發(fā)展起來的,工作在2.4 GHz頻段,采用CCK調制技術,最高傳輸率能夠達到11 Mbps,具有部署方便、通信可靠、抗干擾能力強、成本低、靈活性好、移動性強、高吞吐量等特點。它使得無線用戶可以得到以太網級的網絡性能、速率和可用性,并且可以無縫地將多種LAN技術集成起來,形成一種能夠最大限度地滿足用戶需求的網絡。WiFi是Wireless Fidelity的縮寫,專指IEEE802.11b無線標準。在介紹IEEE802.11b的工作模式之前,首先介紹幾個基本的概念。 1.1 IEEE802.11b基本概念 STA是指接入無線媒介的部分,常被稱為網絡適配器或者網絡接口卡。STA可以是移動的,也可以是固定的。每個STA都支持鑒權 (authentication),取消鑒權(deauthentication),加密和數據傳輸等。 基本服務集BSS(Basic Service Set)是IEEES02.11b 局域網的基本構成單元,基本服務集中可以包含多個STA。BSS基本服務集都有一個覆蓋范圍。在該覆蓋范圍內基本服務集的成員STA可以保持相互通信,每個BSS有一個基本服務集識別碼BSSID。 獨立的基本服務集IBSS(Independent BSS)是最基本的IEEE802.11b局域網類型,一個最小的IEEE802.11b局域網可以僅僅包含兩個STA。在這種模式下,STA能夠直接通信。因為這種類型的IEEES02.11b局域網通常在需要的時候才安排,所以這種網絡工作模式通常被稱為ad hoc(拉丁語,可譯為“自組網”)模式。站點(STA)與基本服務集(BSS)之間的相互關系是動態(tài)的,STA可以自由地開機、關機、進入或離開BSS 覆蓋范圍。 DSS(Distribution System Service),用于連接多個BSS。由于物理層覆蓋范圍的限制決定了所能支持的STA與STA之間的直接通信距離。為了解決這個問題,引入 DS(Distribution System),它可以把多個BSS構成一個擴展的網絡。 AP是Access Point簡稱,一般翻譯為“無線訪問節(jié)點”或“橋接器”。主要在媒介訪問控制層MAC中扮演無線工作站及有線局域網絡的橋梁。 ESS(Extended Service Set),DS和多個BSS允許IEEE802.11構成一個任意大小和復雜的無線網絡。IEEE802.11b把這種網絡稱為擴展服務集網絡。同樣,ESS也有一個標識的名稱,即ESSID。 1.2 IEEE802.11b的工作模式 IEEE 802.1lb有兩種工作模式:Ad-hoe和Infra—structure模式。IEEE標準以獨立的基本服務集(IBSS)來定義Ad-hoc模式工作的客戶端集合,以基本服務集(BSS)定義以Infrastructure模式工作的客戶端集合。 在Ad-hoc模式中,客戶端不能直接和網絡外其他的客戶端通信。Ad-hoc模式的設計目的是使在同一個頻譜覆蓋范圍內的客戶間能夠互相通信。如果一個 Ad—hoc網絡模式中的客戶想要和該網絡外的客戶通信,則該網絡中必須有一個客戶做網關并執(zhí)行路由功能。 而在Infrastructure模式中,每一個客戶將其通信報文發(fā)向AP.AP轉發(fā)所有的通信報文。這些報文可以是發(fā)往以太網的,也可以是發(fā)往無線網絡的。這是一種整合以太網和無線網絡架構的應用模式。無線訪問節(jié)點負責頻段管理及漫游等指揮工作。一個AP最多可連接1024個站點。 2 嵌入式WiFi的設計 嵌入式WiFi的結構與標準PC/OS平臺上的實現有所不同。要在普通的微處理器/微控制器上實現WiFi通信,其硬件結構、軟件層次都必須進行裁減。下面以Prism MAC為例說明嵌入式WiFi的軟、硬件設計。 2.1 嵌入式WiFi的硬件設計 嵌入式環(huán)境中WiFi的硬件接口如圖1所示。與標準平臺相比,中間沒有PCMCIA橋。圖1是嵌入式環(huán)境中的PC2MCIA接口的網卡與總線開放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網卡。這種系統(tǒng)一般對硬件資源(如CPU性能、存儲器容量等)有較高的要求。對于許多嵌入式應用,由于硬件資源的限制,很多系統(tǒng)都在簡單OS(如uC/0S等)或無0S的環(huán)境下運行,這時就需要對整個軟件協(xié)議作適當的裁減。圖2是嵌入式WiFi的軟件結構。 圖2中,TCP/IP協(xié)議的實現在許多文章中已經有較多的講述。這里主要以Prism MAC為例,介紹無限網絡驅動,即嵌入式WiFi的驅動。 Prism MAC提供給用戶一組接口寄存器,通過這些寄存器和Prism MAC進行通信。這些寄存器位于Attribute Memory[2]空間中,可以使用AttribLlte Memory地址直接訪問。表1列出了PRISM MAC的常用寄存器及其定義。
為了讀寫這些寄存器,定義了兩個函數:unsigned int getReg(unsigned int reg)和void selReg(unsigned int reg, usnigned int val)。Prism MAC驅動就是向命令寄存器發(fā)命令來操作MAC。常用的命令有分配buffer、查詢網卡狀態(tài)、初始化網卡、讀數據、寫數據等。
[!--empirenews.page--]
Prism MAC驅動程序需要為上層提供MAC的讀寫函數和一些控制函數,實現的函數原型如下: void init_mac(void) void reset_mac(void) WORD wc_write(WORD*buff,WORD len) WORDwc_read(WORD*buff,WORDmaxlen) B00L get_wlan(void) reset_mac(void)用于在系統(tǒng)啟動或者系統(tǒng)需要復位時,復位Prism MAC,同時對驅動使用的變量進行初始化。inh_mac(void)函數完成初始化網絡控制器和固件,同時向網卡控制器申請使用的buffer,保存需要用到的RID。wc_write(W0RD*burf,W0RD len)函數把buff中的len個字節(jié)寫入到MAC的發(fā)送緩沖區(qū),然后寫發(fā)送命令到網卡的命令寄存器發(fā)送數據,函數返回實際發(fā)送的數據長度。 wc_read(WORD*buff,WoRD maxlen)函數接收輸入數據。返回實際收到的數據長度,對上層協(xié)議來講,調用wc_read以后,可以對buff中的數據做協(xié)議分析。對于 TCP/IP來講,實際上取出的可能是IP、ARP等類型的報文。get_wlan(void)通過訪問EvStat寄存器判斷是否有數據被接收,返回判斷結果。若有,則把PrismMAC數據幀收入到共享數據區(qū)中。本函數只是把PrismMAC的數據幀首部讀出,相當于是以太網幀的首部。讀出的數據格式為
上層協(xié)議調用get_wlan以后,如果返回值是TRUE,就可以訪問目的地址、源地址、幀類型等變量,以判斷是否處理收到的數據。如果是需要接收的數據,可以調用wc—read讀取數據。 3 嵌入式WiFi在醫(yī)療監(jiān)護中的應用 嵌入式WiFi在許多領域有著廣泛的應用。這里介紹一個嵌入式WiFi的具體實現——移動監(jiān)護系統(tǒng)。該監(jiān)護系統(tǒng)用于醫(yī)院病人監(jiān)護,采用嵌入式WiFi技術,可在移動環(huán)境下,對被測對象進行數字分組、實時監(jiān)測。 3.1 硬件結構 移動監(jiān)護系統(tǒng)由服務器和多個移動監(jiān)護器組成。服務器端包括1臺PC或者筆記本電腦、1個無線AP和1個報警器,硬件結構和連接方式都比較簡單,在此不再說明。 移動監(jiān)護器的硬件結構框圖如圖3所示。
圖3中,移動監(jiān)護器的硬件結構包括電源模塊、壓力傳感器模塊、加速度傳感器模塊和無線網卡模塊。 移動監(jiān)護器使用Ti的超低功耗微控制器MSP430F148作為CPU。加速度傳感器模塊使用AD公司的加速度傳感器ADXL202,用于運動加速度測試,或重力加速度的測量,分析傾斜度,即用于病人跌倒測試。壓力傳感器使用Motorola醫(yī)療專用的MPX2300DT,具有良好的低電壓工作特性和線性輸出,用于脈搏測量。 電源使用3.6 V電池供電,經過簡單電壓變換即可滿足移動監(jiān)護器電源要求。無線網卡采用基于IntersilPrism2芯片集的PCMCIA網卡。它是一款 IEEE802.11b兼容網絡適配器。 3.2 軟件結構 ad-hoc模式下,移動監(jiān)護器和服務器間的距離很短。為了增大監(jiān)護范圍,移動監(jiān)護系統(tǒng)工作在Infrastructure模式,服務器端的AP和移動監(jiān)護器都相當于一個STA,移動監(jiān)護器與服務器可以在不同的BSS中。移動監(jiān)護器、AP所在的BSS共同構成一個ESS,使用DSS通信。 服務器端軟件模塊主要用于從網絡接收到的數據中分離出斜度、移動監(jiān)護器配置信息、脈搏信息,并根據信息報警,對移動監(jiān)護器進行控制。 移動監(jiān)護器的軟件模塊如圖4所示。移動監(jiān)護器主要完成加速度(斜度)數據的采集、脈搏信號的采集、數據的收發(fā)、傳感器的啟?刂。其軟件可劃分為兩個層次:應用層和驅動層。陰影部分為硬件驅動層,驅動層以上為應用層。
移動監(jiān)護系統(tǒng)由于采用嵌入式WiFi技術,支持數字分組,可以根據需要對被測對象分組檢測,同時進行實時數據傳輸;保證了監(jiān)護的可靠性與準確性,在實際使用中有很好的效果。 |
|