新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于ARM和FPGA的可重构MAC协议设计

一种基于ARM和FPGA的可重构MAC协议设计

作者:时间:2012-07-03来源:网络收藏

摘要:为了在实际信道条件下研究Ad Hoc网络,克服商业网卡芯片和理论仿真等带来的局限性,搭建了相结合的硬件平台,与实现了CSMA/CA的可,并进行了仿真测试,验证了该的正确性。对Ad Hoc网络协议的实用化提供有益的参考。
关键词:媒体访问控制;带冲突避免的载波侦听多路访问;

0 引言
CSMA/CA的MAC协议的优势在于其简单和健壮性,适用于分布式网络,每个节点无需维持和动态更新周围相邻节点的状态信息,可以独自决定何时接入信道,只要上层有数据需要传输,MAC层就会对信道进行竞争,因此该协议的应用也相当广泛。嵌入式技术的发展对MAC协议的实现也提供了很好的技术支撑。本文搭建了一种基于相结合的嵌入式开发平台,并在此基础上与实现了基于CSMA/CA的MAC协议。由于ARM和FPGA本身就是可器件,同时将FPGA中的一些协议参数由ARM来设置,通过修改ARM的代码就可以实现对FPGA中协议功能的调整,方便快捷,不再需要重新生成比特文件下载,有利于MAC协议可的实现。

1 协议功能描述
1.1 报文结构
本设计实现的是基于CSMA/CA的MAC协议的基本访问模式,节点之间的通信只有数据帧(DATA)和应答确认帧(ACK)。图1给出了报文结构,其中ACK没有净数据部分。由于考虑的是一跳范围的无线通信,没有中继节点等,因此只有源节点号和目的节点号。

本文引用地址:http://www.eepw.com.cn/article/148811.htm

a.JPG


1.2 组网设计
本文设计的MAC协议除了满足基本的的物理载波侦听和虚拟载波侦听相结合检测信道忙闲的机制外,还包括帧间间隔、随机退避、应答确认和重传机制。
有数据要发送的节点会首先监听媒介,若为忙则继续等待,若空闲的时间超过或者等于DIFS或者EIFS则会进入退避进程。在执行退避进程过程中,节点将随机产生一个退避时间来设置退避定时器,同时继续监听媒介,若空闲时间达到了一个时隙时间,则退避定时器减去一个时隙时间,如果在期间媒介变为了忙,退避进程将挂起,直到媒介空闲时间再次达到DIFS或者EIFS后才会接着继续进行退避进程。当退避定时器变为0时,节点才允许开始发送数据,同时也会启动超时重传机制,如果在规定的时间内没有收到所希望的ACK,则会重传数据帧,当节点重传的次数超过了重传门限将会丢弃该数据帧,或者超过了数据帧最长允许的发送时间,也会丢弃该数据帧;当节点收到ACK时,就会开始准备下一次数据的发送。
接收节点收到正确且是发送给本节点的数据帧将会立刻回复源节点ACK。如果节点没有收到正确的数据帧,则将使用EIFS;如果收到正确的数据帧,但是不是给本节点的,节点将解析出持续时间,更新NAV,将信道视为已被占用。
1.3 功能划分
本设计充分利用ARM灵活便捷的优势,用来实现随机退避算法和协议参数的管理,如重传次数,帧间间隔的设置等。随机退避算法采用的是第i次退避就在2i个时隙中随机地选出一个值作为节点需要退避的值。协议参数的设置由ARM来完成,主要是考虑到FPGA不利于参数的修改,这样也可以增强协议的可重构性。而FPGA以其卓越的实时信号处理优点,用于管理MAC帧的收发控制等。

2 协议设计
MAC层的工作状态主要是由物理载波侦听和虚拟载波侦听共同决定的(即:MAC_flag=CS_flag or NAV_flag),当两者都显示为空闲时,MAC层才会进入发送数据帧状态。同时该协议也需要时钟计数参与其中,IFS_time是每个节点在进入退避进程前需要等待的时间,实现帧间间隔的功能;Backoff_time是每个节点在退避进程中退避的时间;NAV_time是没有在通信的节点预留信道的时间。这三个时间也关系着整个协议所处的状态。图2给出了具体的实现流程图,具体实现过程步骤如下:

b.JPG


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭