構(gòu)建擁有自主MAC層協(xié)議的無線網(wǎng)卡
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:闡述擁有自主MAC層協(xié)議無線網(wǎng)卡的構(gòu)建方法和實(shí)現(xiàn)過程。改進(jìn)了基于Intersil公司的PRISM 2系列無線網(wǎng)卡套片的無線局域網(wǎng)解決方案,使用DSP和CPLD來替代其中的MAC層控制芯片,實(shí)現(xiàn)自主MAC層協(xié)議的無線網(wǎng)卡開發(fā)。
關(guān)鍵詞:無線網(wǎng)卡 PRISM2 TMS320VC5402 EPM7128AE MAC協(xié)議
隨著無線網(wǎng)絡(luò)應(yīng)用領(lǐng)域的增長(zhǎng),各種無線接入方式不斷涌現(xiàn),基于IEEE 802.11無線以太網(wǎng)標(biāo)準(zhǔn)的寬帶無線接入系統(tǒng)憑借其高達(dá)11~54Mbps的數(shù)據(jù)傳輸速率及其建網(wǎng)速度快、運(yùn)營(yíng)成本低、投資成本回報(bào)快等特點(diǎn)獲得用戶的青睞。但是無線網(wǎng)卡芯片供應(yīng)商只向用戶提供套片解決方案,這對(duì)研究無線局域網(wǎng)MAC層協(xié)議的高校和科研單位來說極為不便。通常的作法是:首先開發(fā)出自己的MAC層協(xié)議軟件,然后使用信道仿真器來仿真此MAC層協(xié)議。這種作法的缺點(diǎn)是不能在物理信道上實(shí)測(cè)。本文針對(duì)該問題,基于Intersil公司的PRISM2系列無線局域網(wǎng)套片的解決方案,去掉其中的MAC層控制芯片,使用TMS320VC5402和PEM7128AE來完成對(duì)套片其它芯片的控制和數(shù)據(jù)交換,實(shí)現(xiàn)自主的MAC層協(xié)議無線網(wǎng)卡。
圖1
1 無線網(wǎng)卡解決方案
Intersil公司的PRISM2系列無線網(wǎng)卡套片及其主要功能如表1所列。
使用該套片,根據(jù)Intersil公司提供的無線局域網(wǎng)解決方案,就可以方便地構(gòu)建IEEE802.11b的無線網(wǎng)卡。
參考Intersil公司的提供的無線局域網(wǎng)解決方案,筆者提出的擁有自主MAC層協(xié)議的無線網(wǎng)卡解決方案如圖1所示。
在該方案中,去掉了PRISM2系列套片中的MAC層控制芯片HFA3841,用TMS320VC5402和EPM7128AE來實(shí)現(xiàn)對(duì)PRISM2系列其它芯片的控制和數(shù)據(jù)交換,構(gòu)建擁有自主MAC層協(xié)議的無線網(wǎng)卡。
圖2
2 無線網(wǎng)卡的接口分析
根據(jù)Intersil公司提供的套片數(shù)據(jù)手冊(cè)及其各芯片的接口關(guān)系可知,要構(gòu)建自主MAC層協(xié)議的無線網(wǎng)卡,替代芯片組TMS320VC5402和EPM7128AE須有以下接口能力。
①具有足夠的通用I/O口,以便與套片的各個(gè)控制引腳相連接,對(duì)其進(jìn)行置位或清位操作,從而使無線網(wǎng)卡處于正確的收發(fā)狀態(tài)。
②具有SPI接口,能夠?qū)FA3683、HFA3783和HFA3861中各個(gè)寄存器進(jìn)行初始化。同時(shí)需要注意的是,對(duì)HFA3861來說應(yīng)該是16位的數(shù)據(jù)傳輸格式,先傳數(shù)據(jù)高位;對(duì)HFA3783和HFA3683來說,應(yīng)該是20位的數(shù)據(jù)傳輸格式,先傳輸數(shù)據(jù)高位。
③具有連續(xù)數(shù)據(jù)傳輸?shù)哪芰?,能夠與HFA3861進(jìn)行連續(xù)的數(shù)據(jù)交換。需要注意的是數(shù)據(jù)接收和發(fā)送的時(shí)鐘都需要由HFA3861來提供。
根據(jù)TMS320VC5402的芯片資料可知,TMS320VC5402具有2個(gè)支持多種接口標(biāo)準(zhǔn)且能高速雙向數(shù)據(jù)傳輸?shù)亩嗤ǔ>彌_同步串口(McBsp)。將DMA與McBsp相結(jié)合,在不占用CPU資源的情況下,可以構(gòu)造自動(dòng)收發(fā)的串行數(shù)據(jù)傳輸通道。同時(shí)EPM7128AE提供了足夠的門陣列單元和I/O引腳,可以完成對(duì)無線卡控制引腳的置位或清位操作,同時(shí)還可以在EPM7128AE里面設(shè)計(jì)完成802.11b的部分功能(如退避、定時(shí)、設(shè)置NA位、CRC32校驗(yàn)等)。
由以上分析可知,使用TMS320VC5402和EPM7128AE來替代HFA3841完成對(duì)套片的設(shè)置、控制和數(shù)據(jù)交換,以實(shí)現(xiàn)擁有自主MAC層協(xié)議的無線網(wǎng)卡是可行的。替代芯片組與無線網(wǎng)卡套片的接口關(guān)系如圖2所示。其中,TMS320VC5402的串口0負(fù)責(zé)對(duì)HFA3861、HFA3783和HFA3683的寄存器進(jìn)行初始化;串口1負(fù)責(zé)與HFA3861進(jìn)行數(shù)據(jù)交換;EPM7128AE的I/O引腳與套片的控制引腳相連,進(jìn)行相應(yīng)的控制操作。
3 無線網(wǎng)卡的接口實(shí)現(xiàn)
根據(jù)上述分析可知,利用TMS320VC5402和EPM7128AE完成對(duì)無線網(wǎng)卡的控制主要分以下三個(gè)步驟。
①對(duì)于無線網(wǎng)卡的各個(gè)寄存器的初始化。由于DSP對(duì)HFA3861、HFA3783和HFA3683寄存器初始化時(shí)的數(shù)據(jù)傳輸格式不同,而在本接口設(shè)計(jì)中又使用了同一個(gè)串口,所以在對(duì)寄存器進(jìn)行設(shè)置前要將DSP的串口0初始化為正確的工作模式。另外,若寄存器的初始化值錯(cuò)誤或寄存器的初始化順序不對(duì),則初始化工作不能正常進(jìn)行,各個(gè)芯片也不能處于正確的工作狀態(tài)。由于這里涉及的寄存器過多,在這里就不一一多述,請(qǐng)參考數(shù)據(jù)手冊(cè)的說明。
圖4
②對(duì)于無線網(wǎng)卡的控制引腳設(shè)置。套片控制引腳的配置,主要由CPLD內(nèi)的“控制引腳配置模塊”來完成?,F(xiàn)對(duì)網(wǎng)卡發(fā)數(shù)據(jù)過程作一示例,此時(shí)要求各個(gè)相關(guān)的控制引腳狀態(tài)如圖3所示。當(dāng)DSP要發(fā)送數(shù)據(jù)時(shí),首先發(fā)送一個(gè)特殊的配置數(shù)據(jù)CTRL_SND,在CPLD內(nèi)完成譯碼工作,然后啟動(dòng)“發(fā)送數(shù)據(jù)控制引腳配置模塊”,由該模塊來完成各控制引腳狀態(tài)的變化,進(jìn)而完成數(shù)據(jù)的發(fā)送。數(shù)據(jù)發(fā)送完畢,應(yīng)第一時(shí)鐘內(nèi)將各控制引腳置為接收態(tài)。
③無線網(wǎng)卡的數(shù)據(jù)收發(fā)。無線網(wǎng)卡的基帶數(shù)據(jù)收發(fā)波動(dòng)如圖4所示,它采用的是數(shù)據(jù)連續(xù)傳送模式,這就要求DSP的McBsp和DMA結(jié)合起來,完成數(shù)據(jù)的連續(xù)傳輸。為了和通用的無線網(wǎng)卡兼容,需要將串口設(shè)置為8位的數(shù)據(jù)傳輸模式,先傳數(shù)據(jù)的高位。需要注意的一點(diǎn)是,無論數(shù)據(jù)收發(fā),都需要由HFA3861來提供時(shí)鐘,而HFA3861本身并不提供幀同步信號(hào),所以說幀同步需要在CPLD內(nèi)由HFA3861提供的時(shí)鐘來產(chǎn)生。但是并不能簡(jiǎn)單地由8時(shí)鐘產(chǎn)生一幀同步的方法來產(chǎn)生,否則數(shù)據(jù)的錯(cuò)位比較嚴(yán)重。正確的作法是充分利用TX_RDY和RX_RDY這兩個(gè)信號(hào),由它們控制產(chǎn)生合適的幀同步信號(hào)。
4 無線網(wǎng)卡的操作
至此,按照?qǐng)D5的順序來操作無線網(wǎng)卡,就可以正確的進(jìn)行數(shù)據(jù)收發(fā)。
5 結(jié)論
通過對(duì)PRISM2系列無線網(wǎng)卡套片的接口時(shí)序分析,用DSP和CPLD來替換其中的MAC層控制芯片,構(gòu)建擁有自主MAC層協(xié)議的無線網(wǎng)卡,實(shí)踐證明是可行的。我們?cè)?63重大項(xiàng)目“無線移動(dòng)自紡織互聯(lián)網(wǎng)及其實(shí)驗(yàn)系統(tǒng)的研制”中得以成功應(yīng)用,實(shí)現(xiàn)了增強(qiáng)型802.11b MAC協(xié)議。