基于ARM7的無線局域網(wǎng)MAC層上系統(tǒng)架構(gòu)
在IEEE推出802.11-1999和802.11b以來,無線局域網(wǎng)在技術(shù)上已日漸成熟。在國家863計劃 SoC設(shè)計方法及其關(guān)鍵支撐技術(shù)專項資金的資助下,我們初步完成無線局域網(wǎng)MAC層控制器知識產(chǎn)權(quán)核(IP core)的設(shè)計和驗證。設(shè)計了用ARM7TDMI實現(xiàn)的MAC層控制器的體系結(jié)構(gòu),同時片上總線使用先進微控制器總線架構(gòu)(AMBA)。該實現(xiàn)結(jié)構(gòu)清晰,利于設(shè)計重用且設(shè)計復(fù)雜度不大,是一種值得推薦的體系結(jié)構(gòu)。
無線局域網(wǎng)協(xié)議描述數(shù)據(jù)鏈路層MAC子層及其以下各層的規(guī)范。MAC層控制器實現(xiàn)的規(guī)范為IEEE 802.11-1999有關(guān)的無線局域網(wǎng)MAC層部分。MAC層的控制分點控制和分布控制兩種,其中分布控制是CSMA/CA。802.11同時定義了可選的有線網(wǎng)等效加密(WEP)機制。
2、ARM核和AMBA
MAC層控制器是802.11 協(xié)議MAC部分的物理實現(xiàn)。由于協(xié)議比較復(fù)雜,一般在設(shè)計中嵌入32 位處理器,而ARM 7核就是一種選擇。
ARM7TDMI為馮諾依曼體系結(jié)構(gòu),支持ARM的Thumb兩個指令集,ARM對16位的Thumb指令集的支持,使其實現(xiàn)了比16位體系結(jié)構(gòu)更高的性能和比32位體系結(jié)構(gòu)更高的代碼密度。
先進微控制器總線架構(gòu)AMBA是ARM公司為高性能片上微控制器定義的一套總線標準,是一種中央多路選擇器互連方案,它讀數(shù)據(jù)和寫數(shù)據(jù)的總線分開,完成片上數(shù)據(jù)傳送。AMBA包括先進高性能總線(AHB)、先進系統(tǒng)總線(ASB)和先進外設(shè)總線(APB)。AHB和ASB都是高性能總線,采用高性能、高帶寬系統(tǒng)設(shè)計,它支持多個主(Master)設(shè)備和多個從(Slave)設(shè)備,ARM公司推薦使用AHB。APB實際上是二級總線,為AHB/ASB提供一個低功耗和接口簡單的擴展。它從整體上說是一個從設(shè)備。APB通過橋與AHB/ASB連接。
3、 基于AMBA的MAC層控制器方案
系統(tǒng)中共有4個主設(shè)備:ARM7核、PCMCIA接口、物理層數(shù)據(jù)接口和有線網(wǎng)等效加密引擎。各個模塊的功能:
ARM7TDMI核:它完成系統(tǒng)的核心控制功能,完成802.11MAC協(xié)議,整個系統(tǒng)在它的控制之下工作。
物理層數(shù)據(jù)接口(PLDI):完成與基帶處理器數(shù)據(jù)端口的通信。在接收時,緩存來自基帶處理器的數(shù)據(jù),通知ARM核收到數(shù)據(jù)需要進一步處理。ARM核首先讀取包頭,如果數(shù)據(jù)需要緩存,則ARM核控制該接口的DMA控制器將數(shù)據(jù)凈核存儲到SRAM中。在發(fā)送端,它緩存來自MAC的數(shù)據(jù),然后送給基帶處理器。
物理層控制接口(PLCI):它通過讀寫基帶處理器的寄存器完成基帶處理器的初始化和控制功能。
有線網(wǎng)等效加密引擎(WEP):完成無線局域網(wǎng)的加密算法和進行循環(huán)冗余校驗,其內(nèi)有 DMA控制器。
PCMCIA接口(PCMCIA):完成MAC處理器與主計算機的通信功能,也可以是USB或者PCI 接口等。
中斷控制器(ICTRL):中斷控制模塊仲裁當前哪個模塊應(yīng)該產(chǎn)生中斷,ARM通過讀取它的寄存器得知中斷的原因。
存儲器管理單元(MMU):ARM7TDMI-S內(nèi)部沒有存儲器管理單元,需要單獨設(shè)計。存儲器管理單元完成邏輯地址向物理地址的轉(zhuǎn)換和其他存儲器控制功能。
串口(UART)和定時器(timers):通過UART可以與主計算機通信,完成基本的MAC控制功能和狀態(tài)監(jiān)視,另外實現(xiàn)MAC協(xié)議需要專門的定時器。
Arbiter、Decoder、Dummy Slave、Bridge為實現(xiàn)AMBA所需的功能模塊。SRAM的大小為256K×16,F(xiàn)lash的大小為128×16。
另外,需要設(shè)計PCMCIA接口的NDIS5 WDM網(wǎng)絡(luò)設(shè)備驅(qū)動程序。
4、 MAC控制器工作原理
MAC控制器的工作原理:
系統(tǒng)加電并復(fù)位后,F(xiàn)lash處于邏輯地址的最低端。ARM核讀取Flash中的指令,將核心代碼存入片內(nèi)RAM中,然后通過寫地址映射寄存器,實現(xiàn)物理地址和邏輯地址的重新映射,將片內(nèi)RAM映射為邏輯最低端地址,重新執(zhí)行初始化程序。執(zhí)行片內(nèi)RAM中的指令,初始化基帶處理器和PCMCIA接口的屬性存儲器以完成初始化。
對于來自物理層的數(shù)據(jù),首先緩存在PLDI中。ARM核讀出PLDI中的數(shù)據(jù),處理包頭,然后將數(shù)據(jù)緩存入SDRAM。ARM核根據(jù)需要通知WEP完成解密工作。解密完成后,數(shù)據(jù)被重新存入SRAM。PCMCIA接口依設(shè)備驅(qū)動程序的需要讀取數(shù)據(jù)給主機。對于來自PCMCIA接口的數(shù)據(jù),首先緩存在SRAM中。然后執(zhí)行與來自物理層的數(shù)據(jù)相反順序的操作。
5、 若干關(guān)鍵子模塊的設(shè)計
5.1 PCMCIA接口
該接口完成MAC控制器與主機的接口,左邊是PCMCIA主機接口模塊,實現(xiàn)PC Card-1995標準;右邊是DMA控制器,完成與AHB的接口。來自主機的數(shù)據(jù)首先在臨時存儲器中緩存。存儲器被管理為以256字節(jié)為單位的首尾相接的環(huán),可以使該存儲器得到最有效的利用。
5.2 主設(shè)備中DMA控制器的設(shè)計
所有主設(shè)備都包含一個DMA控制器,完成存儲器直接存取,以減少ARM核的數(shù)據(jù)處理壓力。ARM核通過從設(shè)備設(shè)定DMA控制器的寄存器,包括起始地址、數(shù)據(jù)長度、數(shù)據(jù)讀寫使能和讀寫方向等。DMA控制器通過AHB主設(shè)備接口申請使用AHB總線、完成DMA請求和響應(yīng)接口和存儲器之間的DMA操作。完成操作后DMA控制器將產(chǎn)生中斷通知ARM核任務(wù)的完成情況。通道和控制邏輯完成相應(yīng)的控制功能。
5.3 PCMCIA接口中的主機接口
接口服從PC Card-1995標準,設(shè)計為程控IO工作模式。屬性存儲器存儲卡相關(guān)的信息如卡的類型、IO范圍和申請的中斷號。功能控制寄存器完成卡的進一步控制功能。
有線網(wǎng)等效加密引擎的設(shè)計:該模塊由CRC模塊、加密模塊、數(shù)據(jù)緩存模塊、DMA控制器和相關(guān)控制邏輯構(gòu)成。加密模塊使用的是RC4加密算法。
6、 結(jié)論
MAC控制器有多種實現(xiàn)方式,包括(1)不采用AMBA架構(gòu)完成與ARM核的接口方案,(2)不使用32位處理器,而是使用微碼編程,這種結(jié)構(gòu)更加專門化,設(shè)計復(fù)雜度更高。基于ARM7TDMI和AMBA的無線局域網(wǎng)MAC層控制器片上系統(tǒng),結(jié)構(gòu)清晰,接口為標準接口,擴展性強,符合設(shè)計重用的要求。
評論