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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式WiFi技術(shù)淺析

          嵌入式WiFi技術(shù)淺析

          作者: 時(shí)間:2011-12-06 來源:網(wǎng)絡(luò) 收藏

          為了讀寫這些寄存器,定義了兩個(gè)函數(shù):unsigned int getReg(unsigned int reg)和void selReg(unsigned int reg,usnigned int val)。

          Prism MAC驅(qū)動(dòng)就是向命令寄存器發(fā)命令來操作MAC。常用的命令有分配buffer、查詢網(wǎng)卡狀態(tài)、初始化網(wǎng)卡、讀數(shù)據(jù)、寫數(shù)據(jù)等。

          Prism MAC驅(qū)動(dòng)程序需要為上層提供MAC的讀寫函數(shù)和一些控制函數(shù),實(shí)現(xiàn)的函數(shù)原型如下:

          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)啟動(dòng)或者系統(tǒng)需要復(fù)位時(shí),復(fù)位Prism MAC,同時(shí)對(duì)驅(qū)動(dòng)使用的變量進(jìn)行初始化。inh_mac(void)函數(shù)完成初始化網(wǎng)絡(luò)控制器和固件,同時(shí)向網(wǎng)卡控制器申請(qǐng)使用的buffer,保存需要用到的RID。wc_write(W0RD*burf,W0RD

          len)函數(shù)把buff中的len個(gè)字節(jié)寫入到MAC的發(fā)送緩沖區(qū),然后寫發(fā)送命令到網(wǎng)卡的命令寄存器發(fā)送數(shù)據(jù),函數(shù)返回實(shí)際發(fā)送的數(shù)據(jù)長(zhǎng)度。wc_read(WORD*buff,WoRD

          maxlen)函數(shù)接收輸入數(shù)據(jù)。返回實(shí)際收到的數(shù)據(jù)長(zhǎng)度,對(duì)上層協(xié)議來講,調(diào)用wc_read以后,可以對(duì)buff中的數(shù)據(jù)做協(xié)議分析。對(duì)于TCP/IP來講,實(shí)際上取出的可能是IP、ARP等類型的報(bào)文。get_wlan(void)通過訪問EvStat寄存器判斷是否有數(shù)據(jù)被接收,返回判斷結(jié)果。若有,則把PrismMAC數(shù)據(jù)幀收入到共享數(shù)據(jù)區(qū)中。本函數(shù)只是把PrismMAC的數(shù)據(jù)幀首部讀出,相當(dāng)于是以太網(wǎng)幀的首部。讀出的數(shù)據(jù)格式為

          上層協(xié)議調(diào)用get_wlan以后,如果返回值是TRUE,就可以訪問目的地址、源地址、幀類型等變量,以判斷是否處理收到的數(shù)據(jù)。如果是需要接收的數(shù)據(jù),可以調(diào)用wc—read讀取數(shù)據(jù)。

          3 在醫(yī)療監(jiān)護(hù)中的應(yīng)用

          在許多領(lǐng)域有著廣泛的應(yīng)用。這里介紹一個(gè)的具體實(shí)現(xiàn)——移動(dòng)監(jiān)護(hù)系統(tǒng)。該監(jiān)護(hù)系統(tǒng)用于醫(yī)院病人監(jiān)護(hù),采用嵌入式WiFi,可在移動(dòng)環(huán)境下,對(duì)被測(cè)對(duì)象進(jìn)行數(shù)字分組、實(shí)時(shí)監(jiān)測(cè)。

          3.1 硬件結(jié)構(gòu)

          移動(dòng)監(jiān)護(hù)系統(tǒng)由服務(wù)器和多個(gè)移動(dòng)監(jiān)護(hù)器組成。服務(wù)器端包括1臺(tái)PC或者筆記本電腦、1個(gè)無線AP和1個(gè)報(bào)警器,硬件結(jié)構(gòu)和連接方式都比較簡(jiǎn)單,在此不再說明。

          移動(dòng)監(jiān)護(hù)器的硬件結(jié)構(gòu)框圖如圖3所示。

          圖3中,移動(dòng)監(jiān)護(hù)器的硬件結(jié)構(gòu)包括電源模塊、壓力傳感器模塊、加速度傳感器模塊和無線網(wǎng)卡模塊。

          移動(dòng)監(jiān)護(hù)器使用Ti的超低功耗微控制器MSP430F148作為CPU。加速度傳感器模塊使用AD公司的加速度傳感器ADXL202,用于運(yùn)動(dòng)加速度測(cè)試,或重力加速度的測(cè)量,分析傾斜度,即用于病人跌倒測(cè)試。壓力傳感器使用Motorola醫(yī)療專用的MPX2300DT,具有良好的低電壓工作特性和線性輸出,用于脈搏測(cè)量。

          電源使用3.6

          V電池供電,經(jīng)過簡(jiǎn)單電壓變換即可滿足移動(dòng)監(jiān)護(hù)器電源要求。無線網(wǎng)卡采用基于IntersilPrism2芯片集的PCMCIA網(wǎng)卡。它是一款I(lǐng)EEE802.11b兼容網(wǎng)絡(luò)適配器。

          3.2 軟件結(jié)構(gòu)

          ad-hoc模式下,移動(dòng)監(jiān)護(hù)器和服務(wù)器間的距離很短。為了增大監(jiān)護(hù)范圍,移動(dòng)監(jiān)護(hù)系統(tǒng)工作在Infrastructure模式,服務(wù)器端的AP和移動(dòng)監(jiān)護(hù)器都相當(dāng)于一個(gè)STA,移動(dòng)監(jiān)護(hù)器與服務(wù)器可以在不同的BSS中。移動(dòng)監(jiān)護(hù)器、AP所在的BSS共同構(gòu)成一個(gè)ESS,使用DSS通信。

          服務(wù)器端軟件模塊主要用于從網(wǎng)絡(luò)接收到的數(shù)據(jù)中分離出斜度、移動(dòng)監(jiān)護(hù)器配置信息、脈搏信息,并根據(jù)信息報(bào)警,對(duì)移動(dòng)監(jiān)護(hù)器進(jìn)行控制。

          移動(dòng)監(jiān)護(hù)器的軟件模塊如圖4所示。移動(dòng)監(jiān)護(hù)器主要完成加速度(斜度)數(shù)據(jù)的采集、脈搏信號(hào)的采集、數(shù)據(jù)的收發(fā)、傳感器的啟??刂?。其軟件可劃分為兩個(gè)層次:應(yīng)用層和驅(qū)動(dòng)層。陰影部分為硬件驅(qū)動(dòng)層,驅(qū)動(dòng)層以上為應(yīng)用層。

          移動(dòng)監(jiān)護(hù)系統(tǒng)由于采用嵌入式WiFi,支持?jǐn)?shù)字分組,可以根據(jù)需要對(duì)被測(cè)對(duì)象分組檢測(cè),同時(shí)進(jìn)行實(shí)時(shí)數(shù)據(jù)傳輸;保證了監(jiān)護(hù)的可靠性與準(zhǔn)確性,在實(shí)際使用中有很好的效果。

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

          上一頁 1 2 下一頁

          關(guān)鍵詞: 淺析 技術(shù) WiFi 嵌入式

          評(píng)論


          相關(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); })();