微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于ARM的IEEE802.11MAC协议IP核设计

一种基于ARM的IEEE802.11MAC协议IP核设计

时间:07-03 来源:互联网 点击:

摘要:在介绍IEEE802.11MAC协议结构的基础上,给出协议开放的方案和步骤,提出IEEE802.11MAC协议在32位ARM7TDMI微处理器S3C4510B上的一种移植方案,开发出了嵌入式IEEE802.11MAC协议的IP核。同时,围绕着IEEE802.11MAC协议的原理和移植过程中硬件相关部分,介绍ARM平台的结构、可用资源以及ARM的初始化过程等。

关键词:IEEE802.11 MAC协议 ARM平台 无线局域网

引言

无线局域网被认为是下一代IT产业发展的是大推动之一,被IT业赋予了极大的希望。无线局域网802.11系列标准的MAC协议是一样的,只是在物理层上有差异,因此对802.11MAC协议的开发,不论是在802.11b流行的今天,还是802.11g可能会成为主流的将来,都是很有意义的。当然,ARM以其先进的体系结构已经成为嵌入式市场的RISC标准,因此基于ARM的IEEE802.11MAC协议的开发是很有现实意义的。 我们的开发流程如图1所示。 PC软件开发是指脱离硬件的嵌入式软件开发阶段。此阶段可以在各种IDE环境下进行开发,并进行软仿真来验证软件的逻辑正确性。然后将开发出来的PC软件结合硬件所需要的硬件相关代码向硬件平台进行移值调试。前两个阶段完成后就得到了开发的最终成品。

1 协议结构

IEEE802.11MAC协议的SDL描述可以分为以下几个功能模块,如图2所示。 *MAC数据服务模块:向LLC层提供MAC层的数据服务接口。

*MPDU生成模块:将MSDU(MMPDU)生成MPDU,并对MPDU分段、加密以及进行排队管理。 *协议控制模块:完成DCF、PCF下的各种协议控制功能,包括RTS/CTS、ACK、ATIM、CF-ACK等,并根据信道状态请求退避,在传送数据挫败后控制重传等。该模块还负责对所有接收到的MAC帧进行分类,按不同的类型送到不同的模块进行处理。 *发送模块:将MAC帧以字节流的形式发送到物理层,完成实际的发送过程。这个模块中要完成对整个发送帧产生CRC校验,向发送的beacon帧中加入时戳用来进行时间同步。这个模块还负责处理底层获得的当前信道的状态,完成协议要求的随机退避功能。 *接收模块:对从物理层接收到的帧进行CRC校验。如果正确接收的话,则进行地址过滤,丢弃目的地址不是自己的帧。如果数据是经过分段的话,还有进行数据分段的重装,然后将接收帧送往协议控制模块进行分类处理。同时,这个模块还要提取接收帧中的信道保留信息,结合信道上有无载波的状况综合判断信道的状态,并把信道的状态送往发送模块来协调退避功能的完成。 *MAC管理实体模块:是管理核心,完成所有的管理功能,包括扫描、入网、认证、解认证、关联、解关联、重新关联、beacon帧的发送、站点状态管理等功能。 *MAC管理服务模块:提供MAC管理接口,包括MIB库的管理,对MIB库的访问,并将管理接口传来的管理服务请求送到MLME模块进行实际处理,将结果返回给管理接口。

2 协议实现

IEEE802.11MAC协议的SDL流程中各模块之间的交互是通过信号的方式来完成的,模块之间通过交互信息来协调工作,并且完成各种MAC帧的结构之间的传递。我们将信号定义为Signal(PID,SID,Param)参数PID用来标准信号的目的模块,SID用来标志信号在目的模块中由哪个函数来处理,参数Param是一个指向存储区的指针,存储区里存放的是信号所要传递的信息。为了能使整个协议在信号的驱动下运行,需要由一个功能实体来完成信号的处理过程。这里采用的是一个循环队列来存放产生的信号,由主循环程序来不断检测队列中的信号,根据信号的PID和SID调用相应模块里的信号处理函数进行处理。 协议中还涉及大量的比较判断和定时操作,当比较成立或定时到期后,进入相应的处理程序。其实,我们可以认为当比较成立或时间到期产生相应的信号,然后由信号处理机制来完成后续的工作。我们所要做的只是定义一个比较队列和一个定时队列,比较操作加到比较队列中,定时操作加到定时队列中,由主循环检测这两个队列。当某个比较判断成立时或某个定时期时从相应的队列中取出,然后再以信号方式加入到信号队列中去。因此我们将比较操作和定时操作分别定义为: Compare(PID,SID,Param11,Param12,Param21,Param22,Param31,Param32); Timer(PID,SID,Time); PID、SID标志比较成立或定时到期时产生的信号,Paramil、Parami2(i=1,2,3)为比较操作中需要进行比较的几对数据。Time为定时操作中设定的定时值。 上面介绍的机制建构了协议框架,然后在这个框架基础上按照SDL流程编写相应的信号处理函数就要吧实现整个协议。 前期协议开发了验证逻辑上的正确性。我们在Microsoft Visual C++环境下进行开发并进行了软

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top