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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應用 > 構(gòu)建擁有自主MAC層協(xié)議的無線網(wǎng)卡

          構(gòu)建擁有自主MAC層協(xié)議的無線網(wǎng)卡

          作者: 時間:2005-02-27 來源:網(wǎng)絡(luò) 收藏

          摘要:闡述方法和實現(xiàn)過程。改進了基于Intersil公司的PRISM 2系列套片的無線局域網(wǎng)解決方案,使用DSP和CPLD來替代其中的層控制芯片,實現(xiàn)開發(fā)。

          關(guān)鍵詞:無線網(wǎng)卡 PRISM2 TMS320VC5402 EPM7128AE MAC

          隨著無線網(wǎng)絡(luò)應用領(lǐng)域的增長,各種無線接入方式不斷涌現(xiàn),基于IEEE 802.11無線以太網(wǎng)標準的寬帶無線接入系統(tǒng)憑借其高達11~54Mbps的數(shù)據(jù)傳輸速率及其建網(wǎng)速度快、運營成本低、投資成本回報快等特點獲得用戶的青睞。但是無線網(wǎng)卡芯片供應商只向用戶提供套片解決方案,這對研究無線局域網(wǎng)MAC層協(xié)議的高校和科研單位來說極為不便。通常的作法是:首先開發(fā)出自己的MAC層協(xié)議軟件,然后使用信道仿真器來仿真此MAC層協(xié)議。這種作法的缺點是不能在物理信道上實測。本文針對該問題,基于Intersil公司的PRISM2系列無線局域網(wǎng)套片的解決方案,去掉其中的MAC層控制芯片,使用TMS320VC5402和PEM7128AE來完成對套片其它芯片的控制和數(shù)據(jù)交換,實現(xiàn)的MAC層協(xié)議無線網(wǎng)卡。

          圖1

          1 無線網(wǎng)卡解決方案

          Intersil公司的PRISM2系列無線網(wǎng)卡套片及其主要功能如表1所列。

          使用該套片,根據(jù)Intersil公司提供的無線局域網(wǎng)解決方案,就可以方便地IEEE802.11b的無線網(wǎng)卡。

          參考Intersil公司的提供的無線局域網(wǎng)解決方案,筆者提出的自主MAC層協(xié)議的無線網(wǎng)卡解決方案如圖1所示。

          在該方案中,去掉了PRISM2系列套片中的MAC層控制芯片HFA3841,用TMS320VC5402和EPM7128AE來實現(xiàn)對PRISM2系列其它芯片的控制和數(shù)據(jù)交換,自主MAC層協(xié)議的無線網(wǎng)卡。

          圖2

          2 無線網(wǎng)卡的接口分析

          根據(jù)Intersil公司提供的套片數(shù)據(jù)手冊及其各芯片的接口關(guān)系可知,要構(gòu)建自主MAC層協(xié)議的無線網(wǎng)卡,替代芯片組TMS320VC5402和EPM7128AE須有以下接口能力。

          ①具有足夠的通用I/O口,以便與套片的各個控制引腳相連接,對其進行置位或清位操作,從而使無線網(wǎng)卡處于正確的收發(fā)狀態(tài)。

          ②具有SPI接口,能夠?qū)FA3683、HFA3783和HFA3861中各個寄存器進行初始化。同時需要注意的是,對HFA3861來說應該是16位的數(shù)據(jù)傳輸格式,先傳數(shù)據(jù)高位;對HFA3783和HFA3683來說,應該是20位的數(shù)據(jù)傳輸格式,先傳輸數(shù)據(jù)高位。

          ③具有連續(xù)數(shù)據(jù)傳輸?shù)哪芰Γ軌蚺cHFA3861進行連續(xù)的數(shù)據(jù)交換。需要注意的是數(shù)據(jù)接收和發(fā)送的時鐘都需要由HFA3861來提供。

          根據(jù)TMS320VC5402的芯片資料可知,TMS320VC5402具有2個支持多種接口標準且能高速雙向數(shù)據(jù)傳輸?shù)亩嗤ǔ>彌_同步串口(McBsp)。將DMA與McBsp相結(jié)合,在不占用CPU資源的情況下,可以構(gòu)造自動收發(fā)的串行數(shù)據(jù)傳輸通道。同時EPM7128AE提供了足夠的門陣列單元和I/O引腳,可以完成對無線卡控制引腳的置位或清位操作,同時還可以在EPM7128AE里面設(shè)計完成802.11b的部分功能(如退避、定時、設(shè)置NA位、CRC32校驗等)。

          由以上分析可知,使用TMS320VC5402和EPM7128AE來替代HFA3841完成對套片的設(shè)置、控制和數(shù)據(jù)交換,以實現(xiàn)擁有自主MAC層協(xié)議的無線網(wǎng)卡是可行的。替代芯片組與無線網(wǎng)卡套片的接口關(guān)系如圖2所示。其中,TMS320VC5402的串口0負責對HFA3861、HFA3783和HFA3683的寄存器進行初始化;串口1負責與HFA3861進行數(shù)據(jù)交換;EPM7128AE的I/O引腳與套片的控制引腳相連,進行相應的控制操作。

          3 無線網(wǎng)卡的接口實現(xiàn)

          根據(jù)上述分析可知,利用TMS320VC5402和EPM7128AE完成對無線網(wǎng)卡的控制主要分以下三個步驟。

          ①對于無線網(wǎng)卡的各個寄存器的初始化。由于DSP對HFA3861、HFA3783和HFA3683寄存器初始化時的數(shù)據(jù)傳輸格式不同,而在本接口設(shè)計中又使用了同一個串口,所以在對寄存器進行設(shè)置前要將DSP的串口0初始化為正確的工作模式。另外,若寄存器的初始化值錯誤或寄存器的初始化順序不對,則初始化工作不能正常進行,各個芯片也不能處于正確的工作狀態(tài)。由于這里涉及的寄存器過多,在這里就不一一多述,請參考數(shù)據(jù)手冊的說明。

          圖4

          ②對于無線網(wǎng)卡的控制引腳設(shè)置。套片控制引腳的配置,主要由CPLD內(nèi)的“控制引腳配置模塊”來完成?,F(xiàn)對網(wǎng)卡發(fā)數(shù)據(jù)過程作一示例,此時要求各個相關(guān)的控制引腳狀態(tài)如圖3所示。當DSP要發(fā)送數(shù)據(jù)時,首先發(fā)送一個特殊的配置數(shù)據(jù)CTRL_SND,在CPLD內(nèi)完成譯碼工作,然后啟動“發(fā)送數(shù)據(jù)控制引腳配置模塊”,由該模塊來完成各控制引腳狀態(tài)的變化,進而完成數(shù)據(jù)的發(fā)送。數(shù)據(jù)發(fā)送完畢,應第一時鐘內(nèi)將各控制引腳置為接收態(tài)。

          ③無線網(wǎng)卡的數(shù)據(jù)收發(fā)。無線網(wǎng)卡的基帶數(shù)據(jù)收發(fā)波動如圖4所示,它采用的是數(shù)據(jù)連續(xù)傳送模式,這就要求DSP的McBsp和DMA結(jié)合起來,完成數(shù)據(jù)的連續(xù)傳輸。為了和通用的無線網(wǎng)卡兼容,需要將串口設(shè)置為8位的數(shù)據(jù)傳輸模式,先傳數(shù)據(jù)的高位。需要注意的一點是,無論數(shù)據(jù)收發(fā),都需要由HFA3861來提供時鐘,而HFA3861本身并不提供幀同步信號,所以說幀同步需要在CPLD內(nèi)由HFA3861提供的時鐘來產(chǎn)生。但是并不能簡單地由8時鐘產(chǎn)生一幀同步的方法來產(chǎn)生,否則數(shù)據(jù)的錯位比較嚴重。正確的作法是充分利用TX_RDY和RX_RDY這兩個信號,由它們控制產(chǎn)生合適的幀同步信號。

          4 無線網(wǎng)卡的操作

          至此,按照圖5的順序來操作無線網(wǎng)卡,就可以正確的進行數(shù)據(jù)收發(fā)。

          5 結(jié)論

          通過對PRISM2系列無線網(wǎng)卡套片的接口時序分析,用DSP和CPLD來替換其中的MAC層控制芯片,構(gòu)建擁有自主MAC層協(xié)議的無線網(wǎng)卡,實踐證明是可行的。我們在863重大項目“無線移動自紡織互聯(lián)網(wǎng)及其實驗系統(tǒng)的研制”中得以成功應用,實現(xiàn)了增強型802.11b MAC協(xié)議。



          評論


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