用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

基于ARM平台的MAC协议IP核设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:58:00
【本文由PB创新网为您整理】
摘要:在介绍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层的数据服务接口。javascript:window.open(this.src);" style="cursor:pointer;"/>

*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++环境下进行开发并进行了软仿真,结果表明所开发的设计在逻辑上是正确可行的。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 协议向ARM平台的移植

我们所使用的ARM硬件平台ARM anywhere II采用的是三星公司的ARM芯片S3C4510B。S3C4510B是采用ARM7TDMI核的高性价比RISC微控制器,特别适用于网络应用系统。

我们开发了一个软件模块PHY来模拟物理层收敛过程子层(PLCP),对于物理介质依赖子层(PMD)我们没有实现。这并不影响MAC协议的开发。LLC层的数据通过PC串口发送到ARM平台来模拟,数据

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:6,578.12500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号