您的位置首页>互联网>

802.11b无线网络信号的无线MAC开发平台设计

摘要大家好,我是极客范的本期栏目编辑小友,现在为大家讲解802.11b无线网络信号的无线MAC开发平台设计问题。目前,利用802.11b无线网卡的物理...

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解802.11b无线网络信号的无线MAC开发平台设计问题。

目前,利用802.11b无线网卡的物理层和Altera公司的EPXA1开发板,实现了一个可以收发802.11b无线网络信号的软件无线电平台,可以在此平台基础上自由开发各种无线局域网媒体访问控制协议。

无线局域网中媒体访问控制协议的发展是各种无线应用的热点。同时,MAC协议的开发、调试和实现离不开物理层(PHY)的支持。很多MAC协议开发者因为没有物理层支持,只能停留在协议模拟阶段。本文提出了一种无线媒体访问控制开发平台,该平台可以通过无线链路发送和接收信号(并可以与基于802.11b的无线局域网接入点和无线网卡进行通信)。该平台由现有802.11b无线网卡的物理层(包括天线、射频芯片、中频芯片和基带处理器)加上EPXA1开发板组成。有了这个平台,可以在EPXA1开发板上开发和调试各种MAC协议。

1系统架构。

系统主要由三部分组成:802.11b无线网卡、EPXA1开发板和连接在它们之间的PCB板,如图1所示。

系统使用的802.11b无线网卡通过标准的PCMCIA接口与笔记本连接。这款无线网卡最大的特点就是MAC控制芯片与前端的基带处理芯片和射频芯片分离。只有这样,它的MAC芯片才能被EPXA1开发板取代。在启动无线网卡之前,必须为基带处理芯片以及前端中频和射频芯片的控制寄存器设置适当的值。这是控制逻辑中PLCI要做的工作。网卡的主要芯片有:

(一)hfa3841(无线局域网介质访问控制器)是无线网卡的MAC部分,在本次设计中由作者的开发板替代。

(b) HFA3861B(基带处理器)是无线网卡的基带处理器,在网卡启动时需要通过相应的串行配置端口进行配置。

(c)HFA 3863 a(射频/中频转换器和合成器)芯片将射频转换为中频[4],控制寄存器需要通过相应的配置端口进行配置。

(HFA3783芯片从中频转换到基带[5],并登记(工作模式和工作频率等)。)需要通过相应的配置端口进行配置。

适配器板用于将EPXA1开发板的扩展I/O端口与802.11b无线网卡上的有用信号线连接。主板上设计了一个PCMCIA插槽来固定无线网卡。适配板使用隔离芯片SN74CBTD3384对EPXA1开发板进行电平转换和保护,同时也通过该板为无线网卡供电。

2设计过程。

2.1 802.11 b无线网卡的处理。

首先取下无线网卡的MAC芯片,然后将MAC芯片上与基带处理器、前端射频、中频芯片连接的导线引出,因为网卡启动时需要通过这些导线配置前端芯片。图2显示了无线网卡的MAC芯片与其他芯片的连接关系。在设计过程中,有必要确保将这些导线引出到EPXA1开发板。

2.2适配PCB的设计。

根据PCMCIA接口标准,电源线、地线、有用地址线、数据线可以连接到EPXA1的扩展I/O口(逻辑高电平为5V),连接过程中使用sn74 CTBT d 3384进行电平转换(5V到3.3V转换)。此外,在EPXA1的扩展I/O口中,有提供3.3V和5V电源的引脚,可以作为无线网卡的电源,也可以在PCB板上增加测试引脚,方便硬件调试。

2.3 plci部分的设计。

整个系统的架构和PLCI的位置如图3所示。设计重点为PLCI(物理层控制接口)和PLDI(物理层数据接口),采用EPXA1的可编程逻辑实现,主要编程语言为Verilog HDL。PLCI是MAC和物理层之间的控制接口,实现前端芯片(包括HFA3861B、HFA3683和HFA3783)控制寄存器的配置,包括生成配置所需的串行数据、时钟和芯片选择信号。PLDI是MAC和physi之间的数据接口

ext-indent: 2em;">在写程序之前,首先要弄清楚各个控制寄存器的读写过程。

BBP(基带处理器)的控制接口是一个典型的三线接口,即只有时钟(SCLK、)数据(SD)和片选(CS_BAR)三个信号,没有单独的读/写使能信号,面临早用了地址的最高位来标识读或写操作。每次读/写操作时,数据线(SD)上先后出现串行的地址和数据,其中地址位的MSB(A7)=1时为写操作,表明将数据写入该地址对应的寄存器中;地址位MSB(A7)=0时为读操作,表面后面的数据是从该地址指示的寄存器中读取出来的。

HFA3683与HFA3783的读写时序相同,通过LE_RF和LE_I的有效(低有效)来决定对哪块芯片进行读写。

DATA线上的串行数据是在时钟的上升沿写入芯片中的一个20位的移位寄存器,然后在LE的上升沿写入根据LSB1和LSB2两位对应的地址。

上述的串行输出数据(SD)和时钟(SCLK)由PLCI逻辑产生。各前端芯片利用时钟的上升沿来采集数据的,所以数据与时钟的上升沿要严格对齐,有足够的建立时间和保持时间。

在PLCI的设计中,定义了一些寄存器与CPU通信,这些寄存器根据相应芯片读写时序的要求,有不同的宽度,例如BBP的写寄存器有17位,低8位为要写入的数据,高8位为要写入的寄存器的地址,最高位用来表明写入操作是否完成。以便启动下一次读写操作。

ESS(Excalibur Strpe Simulator)是一个Stripe仿真模型,它可以仿真CPU指令的执行,并用来观察PLD to Stripe和Stripe to PLD的总线时序。ADS 1.2带的AXD调试器可以模块CPU执行指令的情况,并观察每条指令执行之后系统的状态。

通过AXD Debugger与ESS的结合,可以观察一条PLD-to-Stripe或者Stripe-to-PLD总线操作指令执行后相应总线上的时序,再结合ModelSim进行仿真,方便了程序的调试。图4是ModelSim中对BBP进行配置时的仿真波形,该波形与要求的BBP的写入逻辑是一致的。

3 系统的启动和验证

在启动系统前,还必须写一个PLCI.C文件,在其中利用c函数对PLCI.V中定义的寄存器进行读写操作。

//BBP的写操作函数

void BBP_wr(long val)

{

*BBP_WRITE=vall0x8000;

//val的高八位是地址,低八位为数据,最高位置1表明为写寄存器操作

while(((*BBP_WRITE)&0x10000)==0x10000){}

//读取标志位,一直到操作完成

}

RF以及IF芯片的写操作函数类似。

BBP总共有49个寄存器要进行写入操作。

HFA3683有三个控制寄存器需要写入,HFA3783有四个控制寄存器。后面两个芯片共同的寄存器有:模式寄存器M(用于控制芯片的工作模式)、R counter寄存器和A/B counter(用于控制频率综合器的综合频率),R counter和A/B counter的具体值需要对无线网卡工作时的射频和中频频率进行测量得到。按照802.11b协议的规定之一,无线网卡工作时共有14个信道[2],所以得到的射频芯片(HFA3683A)工作频率共有14个(即有14种不同的R、A、B值),中频(HFA783)芯片的工作频率有一个。

使用的编程工具是Quartus II,它可以分别编译硬件部分(PLCI.V主要是或者verilog HDL语言)和软件部分(PLCI.C),然后再一起编译生成.hex文件下载到开发板上。

验证过程:将无线网卡设置成接收状态(RX_PE置高、TX_PEL置低、RADIO_PE置低,PE1置高、PE2置高、RESET置高、TR/SW置低)。另外需要设置好一个802.11b的AP(Access Point),将其设置在一个固定的工作频道上,同时设置RF/IF Converter的控制寄存器,使网卡也工作在该频道上。此时用逻辑分析仪监测来自BBP的三个信号:RXC、RXD、MD_RDY信号,可以在逻辑分析上得到如图5所示波形。

本系统提供了一条至MAC的最高速率为22Mbps的串行数据链路,结合EPAX1开发板上的嵌入式微处理器可以构建各种无线局域网演示系统。利用现有的无线网卡作为物理层,可以给那些专注于上层协议开发的人更多的方便。只要有相应的控制逻辑,这种系统构建方式也适用于其它的开发板,给想验证和实现自己开发MAC协议的人带来了一条捷径。笔者目前正在利用此平台开发802.11e媒体访问控制协议。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。