1 无线局域网MAC层协议
在IEEE推出802.11-1999和802.11b以来,无线局域网在技术上已日渐成熟。在国家863计划 SoC设计方法及其关键支撑技术专项资金的资助下,我们初步完成无线局域网MAC层控制器知识产权核(IP core)的设计和验证。设计了用ARM7TDMI实现的MAC层控制器的体系结构,同时片上总线使用先进微控制器总线架构(AMBA)。该实现结构清晰,利于设计重用且设计复杂度不大,是一种值得推荐的体系结构。
无线局域网协议描述数据链路层MAC子层及其以下各层的规范。 MAC层控制器实现的规范为IEEE 802.11-1999有关的无线局域网MAC层部分。MAC层的控制分点控制和分布控制两种,其中分布控制是CSMA/CA。802.11同时定义了可选的有线网等效加密(WEP)机制。
2 ARM核和AMBA
MAC层控制器是802.11 协议MAC部分的物理实现。由于协议比较复杂,一般在设计中嵌入32 位处理器,而ARM 7核就是一种选择。
ARM7TDMI为冯诺依曼体系结构,支持ARM 的Thumb两个指令集,ARM对16位的Thumb指令集的支持,使其实现了比16位体系结构更高的性能和比32位体系结构更高的代码密度。
先进微控制器总线架构AMBA是ARM公司为高性能片上微控制器定义的一套总线标准,是一种中央多路选择器互连方案,它读数据和写数据的总线分开,完成片上数据传送。AMBA包括先进高性能总线(AHB)、先进系统总线(ASB)和先进外设总线(APB)。AHB和ASB都是高性能总线,采用高性能、高带宽系统设计,它支持多个主 (Master)设备和多个从(Slave)设备,ARM公司推荐使用AHB。APB实际上是二级总线,为AHB/ASB 提供一个低功耗和接口简单的扩展。它从整体上说是一个从设备。APB通过桥与AHB/ASB连接。
另外AMBA结构用仲裁器支持主设备总线仲裁,需要译码器哑从设备响应处理器。
3 基于AMBA的MAC层控制器方案
基于AMBA的MAC控制器方案如图1。整个系统围绕AMBA总线构成,完成所需控制信号和数据传输。系统中共有4个主设备:ARM7核、PCMCIA接口、物理层数据接口和有线网等效加密引擎。各个模块的功能:
ARM7TDMI核:它完成系统的核心控制功能,完成802.11MAC协议,整个系统在它的控制之下工作。
物理层数据接口(PLDI):完成与基带处理器数据端口的通信。在接收时,缓存来自基带处理器的数据,通知ARM核收到数据需要进一步处理。ARM核首先读取包头,如果数据需要缓存,则ARM核控制该接口的DMA控制器将数据净核存储到SRAM中。在发送端,它缓存来自MAC的数据,然后送给基带处理器。
物理层控制接口(PLCI):它通过读写基带处理器的寄存器完成基带处理器的初始化和控制功能。
有线网等效加密引擎(WEP):完成无线局域网的加密算法和进行循环冗余校验,其内有 DMA控制器。
PCMCIA接口(PCMCIA):完成MAC处理器与主计算机的通信功能,也可以是USB或者PCI 接口等。
中断控制器(ICTRL):中断控制模块仲裁当前哪个模块应该产生中断,ARM通过读取它的寄存器得知中断的原因。
存储器管理单元(MMU):ARM7TDMI-S内部没有存储器管理单元,需要单独设计。存储器管理单元完成逻辑地址向物理地址的转换和其他存储器控制功能。
串口(UART)和定时器(timers):通过UART可以与主计算机通信,完成基本的MAC 控制功能和状态监视,另外实现MAC协议需要专门的定时器。
Arbiter、Decoder、Dummy Slave、Bridge为实现AMBA所需的功能模块。
SRAM的大小为256K×16,Flash的大小为128×16。
另外,需要设计PCMCIA接口的NDIS5 WDM网络设备驱动程序。
4 MAC控制器工作原理
MAC控制器的工作原理:
系统加电并复位后,Flash处于逻辑地址的最低端。ARM核读取Flash中的指令,将核心代码存入片内RAM中,然后通过写地址映射寄存器,实现物理地址和逻辑地址的重新映射,将片内 RAM映射为逻辑最低端地址,重新执行初始化程序。
执行片内RAM中的指令,初始化基带处理器和PCMCIA接口的属性存储器以完成初始化。
对于来自物理层的数据,首先缓存在PLDI中。ARM核读出PLDI中的数据,处理包头,然后将数据缓存入SDRAM。ARM核根据需要通知WEP完成解密工作。解密完成后,数据被重新存入SRAM。PCMCIA接口依设备驱动程序的需要读取数据给主机。
对于来自PCMCIA接口的数据,首先缓存在SRAM中。然后执行与来自物理层的数据相反顺序的操作。
5 若干关键子模块的设计
5.1 PCMCIA接口
该接口完成MAC控制器与主机的接口,左边是PCMCIA主机接口模块,实现PC Card-1995标准;右边是DMA控制器,完成与AHB的接口。来自主机的数据首先在临时存储器中缓存。存储器被管理为以256字节为单位的首尾相接的环,可以使该存储器得到最有效的利用。
5.2 主设备中DMA控制器的设计
所有主设备都包含一个DMA控制器,完成存储器直接存取,以减少ARM核的数据处理压力。 DMA控制器的框图如图3。ARM核通过从设备设定DMA控制器的寄存器,包括起始地址、数据长度、数据读写使能和读写方向等。DMA控制器通过AHB主设备接口申请使用AHB总线、完成DMA 请求和响应接口和存储器之间的DMA操作。完成操作后DMA控制器将产生中断通知ARM核任务的完成情况。通道和控制逻辑完成相应的控制功能。
5.3 PCMCIA接口中的主机接口
接口服从PC Card-1995标准,设计为程控IO工作模式。属性存储器存储卡相关的信息如卡的类型、IO范围和申请的中断号。功能控制寄存器完成卡的进一步控制功能(图4)。
有线网等效加密引擎的设计:该模块由CRC模块、加密模块、数据缓存模块、DMA控制器和相关控制逻辑构成。加密模块使用的是RC4加密算法。
6 设计验证和实现
本设计使用Verilog HDL进行描述,已经完成 系统验证工作。并在Xilinx xc2v3000 FPGA上完成原型实测,实际系统基本上达到了设计需求。
7 结论
MAC控制器有多种实现方式,包括(1)不采用AMBA架构完成与ARM核的接口方案,(2)不使用32位处理器,而是使用微码编程,这种结构更加专门化,设计复杂度更高。
基于ARM7TDMI和AMBA的无线局域网MAC层控制器片上系统,结构清晰,接口为标准接口,扩展性强,符合设计重用的要求。