基于CSMA/CA的MAC协议设计实现

来源:
导读 大家好,我是本期栏目编辑小友,现在为大家讲解基于CSMA/CA的MAC协议设计实现问题。 基于CSMA 认证中心的媒体访问控制协议具有简单性和鲁

大家好,我是本期栏目编辑小友,现在为大家讲解基于CSMA/CA的MAC协议设计实现问题。

基于CSMA/认证中心的媒体访问控制协议具有简单性和鲁棒性的优点,适用于分布式网络。每个节点不需要维护和动态更新周围相邻节点的状态信息,可以自行决定何时接入信道。只要上层有数据要传输,MAC层就会争夺信道,所以协议被广泛使用。嵌入式技术的发展也为MAC协议的实现提供了良好的技术支持。本文构建了一个基于ARM和FPGA相结合的嵌入式开发平台,设计并实现了基于CSMA/CA的MAC协议。由于ARM和FPGA都是可重构设备,FPGA中的一些协议参数是由ARM设置的,因此可以通过修改ARM代码来实现FPGA中协议功能的调整,方便快捷,无需重新生成位文件进行下载,有利于可重构MAC协议的实现。

1协议功能描述。

1.1消息结构。

本设计实现了基于CSMA/认证中心的媒体访问控制协议的基本接入方式,节点间的通信只有数据帧和确认帧。图1显示了消息结构,其中确认没有网络数据部分。因为考虑了一跳范围内的无线通信,没有中继节点,所以只有源节点号和目的节点号可用。

1.2联网设计。

本文设计的媒体访问控制协议不仅满足物理载波侦听和虚拟载波侦听相结合检测信道繁忙和空闲的基本机制,还包括帧间间隔、随机退避、确认和重传等机制。

有数据要发送的节点会先监听媒体,如果忙,会继续等待。如果空闲时间超过或等于DIFS或EIFS,它们将进入退避过程。在执行退避过程中,节点会随机生成一个退避时间来设置退避定时器,同时继续监控介质。如果空闲时间达到一个时隙,退避定时器将减去一个时隙。如果介质在此期间变得繁忙,退避过程将暂停,直到介质的空闲时间再次到达DIFS或EIFS。当退避定时器变为0时,允许节点开始发送数据,同时启动超时重传机制。如果在指定的时间内没有接收到期望的确认,则数据帧将被重传,并且当节点的重传次数超过重传阈值或者超过数据帧的最长允许发送时间时,数据帧将被丢弃。当节点收到确认时,它将开始为下一次数据传输做准备。

当接收节点接收到发送给其自身节点的正确数据帧时,它将立即回复源节点确认。如果节点没有接收到正确的数据帧,EIFS;将被使用。如果接收到正确的数据帧,但不是这个节点的数据帧,节点将分析持续时间,更新导航,并认为信道被占用。

1.3职能划分。

该设计充分利用了ARM灵活方便的优点,用于实现随机退避算法和协议参数的管理,如重传次数和帧间间隔的设置。在随机退避算法中,从2i个时隙中随机选择一个值用于第I次退避,作为节点需要退避的值。参数设置由ARM完成,主要考虑FPGA不利于参数修改,也可以增强协议的可重构性。而FPGA由于其出色的实时信号处理优势,被用来管理MAC帧的发送和接收控制。

基于CSMA/认证中心的媒体访问控制协议具有简单性和鲁棒性的优点,适用于分布式网络。每个节点不需要维护和动态更新周围相邻节点的状态信息,可以自行决定何时接入信道。只要上层有数据要传输,MAC层就会争夺信道,所以协议被广泛使用。嵌入式技术的发展也为MAC协议的实现提供了良好的技术支持。本文构建了一个基于ARM和FPGA相结合的嵌入式开发平台,设计并实现了基于CSMA/CA的MAC协议。由于ARM和FPGA都是可重构器件,FPGA中的一些协议参数是由ARM设置的,因此可以通过修改ARM代码来实现FPGA中协议功能的调整,方便快捷,不需要为dow重新生成位文件

1协议功能描述。

1.1消息结构。

本设计实现了基于CSMA/认证中心的媒体访问控制协议的基本接入方式,节点间的通信只有数据帧和确认帧。图1显示了消息结构,其中确认没有网络数据部分。因为考虑了一跳范围内的无线通信,没有中继节点,所以只有源节点号和目的节点号可用。

1.2联网设计。

本文设计的媒体访问控制协议不仅满足物理载波侦听和虚拟载波侦听相结合检测信道繁忙和空闲的基本机制,还包括帧间间隔、随机退避、确认和重传等机制。

有数据要发送的节点会先监听媒体,如果忙,会继续等待,如果空闲时间超过或等于d。

IFS或者EIFS则会进入退避进程。在执行退避进程过程中,节点将随机产生一个退避时间来设置退避定时器,同时继续监听媒介,若空闲时间达到了一个时隙时间,则退避定时器减去一个时隙时间,如果在期间媒介变为了忙,退避进程将挂起,直到媒介空闲时间再次达到DIFS或者EIFS后才会接着继续进行退避进程。当退避定时器变为0时,节点才允许开始发送数据,同时也会启动超时重传机制,如果在规定的时间内没有收到所希望的ACK,则会重传数据帧,当节点重传的次数超过了重传门限将会丢弃该数据帧,或者超过了数据帧最长允许的发送时间,也会丢弃该数据帧;当节点收到ACK时,就会开始准备下一次数据的发送。

接收节点收到正确且是发送给本节点的数据帧将会立刻回复源节点ACK。如果节点没有收到正确的数据帧,则将使用EIFS;如果收到正确的数据帧,但是不是给本节点的,节点将解析出持续时间,更新NAV,将信道视为已被占用。

1.3 功能划分

本设计充分利用ARM灵活便捷的优势,用来实现随机退避算法和协议参数的管理,如重传次数,帧间间隔的设置等。随机退避算法采用的是第i次退避就在2i个时隙中随机地选出一个值作为节点需要退避的值。协议参数的设置由ARM来完成,主要是考虑到FPGA不利于参数的修改,这样也可以增强协议的可重构性。而FPGA以其卓越的实时信号处理优点,用于管理MAC帧的收发控制等。 技术专区 关于ARM7 S3C4510B上μClinux移植问题 多回路化成充放电控制器设计方案 ARM嵌入式系统的中断服务例程跳转 基于8位MCU的LED调光引擎设计 如何在液晶显示器上显示汉字、ASCII字符和彩色图形

标签:

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。