802.11b無(wú)線(xiàn)網(wǎng)站和EPXA1開(kāi)發(fā)板的MAC平臺
關(guān)鍵詞:802.11b網(wǎng)卡媒體訪(fǎng)問(wèn)控制EPXA1開(kāi)發(fā)平臺
無(wú)線(xiàn)局域網(wǎng)媒體訪(fǎng)問(wèn)控制(MAC)協(xié)議的開(kāi)發(fā)是目前各種無(wú)線(xiàn)應用研究的熱點(diǎn)。同時(shí)MAC協(xié)議的開(kāi)發(fā)、調試和實(shí)現離不開(kāi)物理層(PHY)的支持。很多MAC協(xié)議的開(kāi)發(fā)者由于沒(méi)有物理層的支持,只能停留在協(xié)議仿真的階段。本文提出了一個(gè)可以通過(guò)無(wú)線(xiàn)鏈路收發(fā)信號(可以與基于802.11b的無(wú)線(xiàn)局域網(wǎng)AP以及無(wú)線(xiàn)網(wǎng)卡通信)的無(wú)線(xiàn)MAC開(kāi)發(fā)平臺。該平臺利用現有802.11b無(wú)線(xiàn)網(wǎng)卡的物理層部分(包括天線(xiàn)、射頻芯片、中頻芯片和基帶處理器),再加上EPXA1開(kāi)發(fā)板構成。利用該平臺,可以EPXA1開(kāi)發(fā)板上進(jìn)行各種MAC協(xié)議的開(kāi)發(fā)和調試。

1 系統架構
系統主要由三部分構成:802.11b無(wú)線(xiàn)網(wǎng)卡、EPXA1開(kāi)發(fā)板以及兩者之間轉接PCB板,如圖1所示。
系統中使用的802.11b無(wú)線(xiàn)網(wǎng)卡通過(guò)標準的PCMCIA接口與筆記本相連。該無(wú)線(xiàn)網(wǎng)卡最大的特點(diǎn)是MAC控制芯片和基帶處理芯片以及前端中射頻芯片是分離的,只有這樣才能將其MAC芯片替換成EPXA1開(kāi)發(fā)板。在無(wú)線(xiàn)網(wǎng)卡啟動(dòng)之前必須給基帶處理芯片以及前端中頻、射頻芯片的控制寄存器設置合適的值。這是控制邏輯PLCI部分要做的工作。該網(wǎng)卡的主要組成芯片有:
?。╝) HFA3841(Wireless LAN Medium Access Controller)是該無(wú)線(xiàn)網(wǎng)卡的MAC部分,在本設計中,將其替換成筆者的開(kāi)發(fā)板。
?。╞) HFA3861B(Baseband processor)是無(wú)線(xiàn)網(wǎng)卡的基帶處理器[3],在網(wǎng)卡啟動(dòng)過(guò)程中,需要通過(guò)相應的串行配置口對其進(jìn)行配置。
?。╟) HFA3863A(RF/IF converter and synthesizer)芯片進(jìn)行射頻到中頻的變換[4],需要通過(guò)相應配置口進(jìn)行控制寄存器的配置。
?。╠) HFA3783 芯片進(jìn)行中頻到基帶的變換[5],也需要通過(guò)相應配置口進(jìn)行寄存器的配置(工作模式和工作頻率等)。

Altera公司的EPXA1開(kāi)發(fā)板集成了ARM922T嵌入式微處理器以及相應外設,其外設中擁有10萬(wàn)等效系統門(mén)的可編程邏輯器件以及相應的擴展I/O口,不需要再另外設計FPGA電路,更方便了軟件和硬件的協(xié)同設計。同時(shí),Altera公司提供的QnartusII軟件,也提供了對硬件和軟件協(xié)同設計的良好支持。
轉接PCB板用于連接EPXA1開(kāi)發(fā)板的擴展I/O口和802.11b無(wú)線(xiàn)網(wǎng)卡上有用的信號線(xiàn)。板上設計了一個(gè)PCMCIA插槽,用來(lái)固定無(wú)線(xiàn)網(wǎng)卡,轉接板使用了隔離芯片SN74CBTD3384進(jìn)行電平轉換和保護EPXA1開(kāi)發(fā)板,同時(shí)也通過(guò)該板給無(wú)線(xiàn)網(wǎng)卡供電。
2 設計過(guò)程
2.1 對802.11b無(wú)線(xiàn)網(wǎng)卡的處理
首先拿掉無(wú)線(xiàn)網(wǎng)卡的MAC芯片,然后將MAC芯片上與基帶處理器、前端射頻以及中頻芯片相連的線(xiàn)引出,因為在網(wǎng)卡啟動(dòng)過(guò)程中,需要通過(guò)這些線(xiàn)對前端芯片進(jìn)行相應配置。圖2是無(wú)線(xiàn)網(wǎng)卡的MAC芯片與其他芯片之間的連接關(guān)系,在設計過(guò)程要確保將這些線(xiàn)引出到EPXA1開(kāi)發(fā)板上。
2.2 轉接PCB板的設計
可以參照PCMCIA接口標準,將其中的電源線(xiàn)、地線(xiàn)以及有用的地址線(xiàn)和數據線(xiàn)連接到EPXA1的擴展I/O口(邏輯高電平為5V),連接過(guò)程使用了SN74CBTD3384進(jìn)行電平轉換(5V到3.3V的轉換)。另外在EPXA1的擴展I/O口中,有提供3.3V和5V電源的引腳,可以作為無(wú)線(xiàn)網(wǎng)卡的電源,PCB板上還可以加上測試引腳,方便硬件的調試。

2.3 PLCI部分的設計
整個(gè)系統的構架和PLCI所處的位置如圖3所示。PLCI(物理層控制接口)和PLDI(物理層數據接口)是設計的重點(diǎn),是利用EPXA1的可編程邏輯實(shí)現的,主要編程語(yǔ)言是Verilog HDL。PLCI是MAC與物理層的控制接口,它實(shí)現了對前端芯片(包括HFA3861B、HFA3683以及HFA3783)的控制寄存器的配置,包括產(chǎn)生配置所需的串行數據、時(shí)鐘及片選信號。PLDI是MAC與物理層的數據接口,是MAC與PHY交換數據的通路;而ARM9嵌入式微處理器則運行C語(yǔ)言代碼實(shí)現各種無(wú)線(xiàn)MAC協(xié)議。ARM9與外圍設備之間通過(guò)AHB總線(xiàn)連接。
在寫(xiě)程序之前,首先要弄清楚各個(gè)控制寄存器的讀寫(xiě)過(guò)程。
BBP(基帶處理器)的控制接口是一個(gè)典型的三線(xiàn)接口,即只有時(shí)鐘(SCLK、)數據(SD)和片選(CS_BAR)三個(gè)信號,沒(méi)有單獨的讀/寫(xiě)使能信號,面臨早用了地址的最高位來(lái)標識讀或寫(xiě)操作。每次讀/寫(xiě)操作時(shí),數據線(xiàn)(SD)上先后出現串行的地址和數據,其中地址位的MSB(A7)=1時(shí)為寫(xiě)操作,表明將數據寫(xiě)入該地址對應的寄存器中;地址位MSB(A7)=0時(shí)為讀操作,表面后面的數據是從該地址指示的寄存器中讀取出來(lái)的。
HFA3683與HFA3783的讀寫(xiě)時(shí)序相同,通過(guò)LE_RF和LE_I的有效(低有效)來(lái)決定對哪塊芯片進(jìn)行讀寫(xiě)。
DATA線(xiàn)上的串行數據是在時(shí)鐘的上升沿寫(xiě)入芯片中的一個(gè)20位的移位寄存器,然后在LE的上升沿寫(xiě)入根據LSB1和LSB2兩位對應的地址。
上述的串行輸出數據(SD)和時(shí)鐘(SCLK)由PLCI邏輯產(chǎn)生。各前端芯片利用時(shí)鐘的上升沿來(lái)采集數據的,所以數據與時(shí)鐘的上升沿要嚴格對齊,有足夠的建立時(shí)間和保持時(shí)間。
在PLCI的設計中,定義了一些寄存器與CPU通信,這些寄存器根據相應芯片讀寫(xiě)時(shí)序的要求,有不同的寬度,例如BBP的寫(xiě)寄存器有17位,低8位為要寫(xiě)入的數據,高8位為要寫(xiě)入的寄存器的地址,最高位用來(lái)表明寫(xiě)入操作是否完成。以便啟動(dòng)下一次讀寫(xiě)操作。
ESS(Excalibur Strpe Simulator)是一個(gè)Stripe仿真模型,它可以仿真CPU指令的執行,并用來(lái)觀(guān)察PLD to Stripe和Stripe to PLD的總線(xiàn)時(shí)序。ADS 1.2帶的AXD調試器可以模塊CPU執行指令的情況,并觀(guān)察每條指令執行之后系統的狀態(tài)。

通過(guò)AXD Debugger與ESS的結合,可以觀(guān)察一條PLD-to-Stripe或者Stripe-to-PLD總線(xiàn)操作指令執行后相應總線(xiàn)上的時(shí)序,再結合ModelSim進(jìn)行仿真,方便了程序的調試。圖4是ModelSim中對BBP進(jìn)行配置時(shí)的仿真波形,該波形與要求的BBP的寫(xiě)入邏輯是一致的。
3 系統的啟動(dòng)和驗證
在啟動(dòng)系統前,還必須寫(xiě)一個(gè)PLCI.C文件,在其中利用c函數對PLCI.V中定義的寄存器進(jìn)行讀寫(xiě)操作。
//BBP的寫(xiě)操作函數
void BBP_wr(long val)
{
*BBP_WRITE=vall0x8000;
//val的高八位是地址,低八位為數據,最高位置1表明為寫(xiě)寄存器操作
while(((*BBP_WRITE)0x10000)==0x10000){}
//讀取標志位,一直到操作完成
}
RF以及IF芯片的寫(xiě)操作函數類(lèi)似。
BBP總共有49個(gè)寄存器要進(jìn)行寫(xiě)入操作。
HFA3683有三個(gè)控制寄存器需要寫(xiě)入,HFA3783有四個(gè)控制寄存器。后面兩個(gè)芯片共同的寄存器有:模式寄存器M(用于控制芯片的工作模式)、R counter寄存器和A/B counter(用于控制頻率綜合器的綜合頻率),R counter和A/B counter的具體值需要對無(wú)線(xiàn)網(wǎng)卡工作時(shí)的射頻和中頻頻率進(jìn)行測量得到。按照802.11b協(xié)議的規定之一,無(wú)線(xiàn)網(wǎng)卡工作時(shí)共有14個(gè)信道[2],所以得到的射頻芯片(HFA3683A)工作頻率共有14個(gè)(即有14種不同的R、A、B值),中頻(HFA783)芯片的工作頻率有一個(gè)。

使用的編程工具是Quartus II,它可以分別編譯硬件部分(PLCI.V主要是或者verilog HDL語(yǔ)言)和軟件部分(PLCI.C),然后再一起編譯生成.hex文件下載到開(kāi)發(fā)板上。
驗證過(guò)程:將無(wú)線(xiàn)網(wǎng)卡設置成接收狀態(tài)(RX_PE置高、TX_PEL置低、RADIO_PE置低,PE1置高、PE2置高、RESET置高、TR/SW置低)。另外需要設置好一個(gè)802.11b的AP(Access Point),將其設置在一個(gè)固定的工作頻道上,同時(shí)設置RF/IF Converter的控制寄存器,使網(wǎng)卡也工作在該頻道上。此時(shí)用邏輯分析儀監測來(lái)自BBP的三個(gè)信號:RXC、RXD、MD_RDY信號,可以在邏輯分析上得到如圖5所示波形。
本系統提供了一條至MAC的最高速率為22Mbps的串行數據鏈路,結合EPAX1開(kāi)發(fā)板上的嵌入式微處理器可以構建各種無(wú)線(xiàn)局域網(wǎng)演示系統。利用現有的無(wú)線(xiàn)網(wǎng)卡作為物理層,可以給那些專(zhuān)注于上層協(xié)議開(kāi)發(fā)的人更多的方便。只要有相應的控制邏輯,這種系統構建方式也適用于其它的開(kāi)發(fā)板,給想驗證和實(shí)現自己開(kāi)發(fā)MAC協(xié)議的人帶來(lái)了一條捷徑。筆者目前正在利用此平臺開(kāi)發(fā)802.11e媒體訪(fǎng)問(wèn)控制協(xié)議。
評論