这个示例展示了如何使用SimEvents®、statflow®和WLAN工具箱™对包含介质访问控制(MAC)层和PHY的多个WLAN节点之间的通信建模。本示例模拟由5个WLAN节点组成的802.11网络。将MAC中的分布式协调函数(DCF)建模为离散事件图,而PHY则使用MATLAB离散事件系统模块进行建模。导出的仿真结果包括一个运行时图,显示每个节点在信道争用、传输和接收上花费的时间。图中还显示了每个节点的指标,如PHY层和MAC层的发送、接收和丢弃数据包的数量。
IEEE®802.11™ 是一套用于WLAN实施的MAC和PHY规范。典型的WLAN网络将有多个设备(节点)共享相同的信道资源。每个节点可以有不同类型的应用程序从其他节点发送或接收数据包。当节点共享信道时,它们的传输可能会相互冲突或干扰。
对多节点WLAN网络建模通常涉及对MAC层、PHY、共享通信信道、数据流量模式和干扰进行建模。这个例子展示了如何使用离散事件仿真建模一个802.11a PHY和MAC的多节点WLAN网络。
本示例模拟一个有5个节点的WLAN网络。这些节点实现了具有物理载波感知和虚拟载波感知的带冲突避免的载波感知多址访问(CSMA/CA)。物理载波传感使用清晰信道评估(CCA)机制来确定传输前介质是否繁忙。而虚拟载波传感采用RTS/CTS握手来防止隐藏节点问题。
示例中的模型输出各种统计信息,如PHY层和MAC层的发送、接收和丢弃数据包的数量,以及有助于分析/估计节点级和网络级性能的图。
建模包括:
多个节点,其中每个节点包含一个应用程序、一个MAC层和一个PHY。
通过频道传输的数据包,其在多个节点上共享。
使用自由空间路径损耗、距离传播损耗和多径衰落(使用瑞利信道模型)对共享信道进行仿真。
一种节点位置分配器,用于配置网络中节点的位置。
在该示例中,节点1、2和3是通信中的主动参与者,而节点4和5通过信道被动地接收分组。
每个节点被建模为具有网络堆栈的子系统,网络堆栈包括应用程序层、MAC层和物理层。
应用层使用SimEvents生成数据包实体生成器(SimEvents)块。
MAC中的DCF被建模为离散事件图表。
PHY使用SimEvents离散事件系统块建模。
共享通道在接收路径中的每个节点中建模。
应用层用于生成和接收应用流量。它被分为两个子块:
MAC层实现本协议第10.3节规定的DCF算法[1]。在发送分组之前,MAC层感测共享信道以确定信道的状态。如果信道空闲,则开始数据包传输。如果信道繁忙,则数据包传输延迟。等待传输的数据包排队。
在该模型中,MAC层由两部分组成:队列管理和竞争算法。
队列管理
从应用层接收的数据包将排队,直到通道可用为止。一旦通道变得可用,数据包就会退出队列以进行传输。队列大小是可配置的。默认的队列大小是10。
竞争算法
在MAC层实现的争用算法是[第10.3节中指定的DCF功能。1].它被实现为一个有限状态机,有以下六种不同的状态:
Idle:无活动操作
争夺:争夺频道
Rx:接收并处理帧
WaitForRx:等待响应帧
发送数据:发送帧
Eifs:延迟传输,用于错误恢复
状态层MAC层的状态处理
最初,MAC层是在闲置的状态。当从应用层接收到数据包时,MAC层移动到竞争状态。
在竞争状态下,如果信道在一段DCF帧间空间(DIFS)时间内被感知为空闲,随后是一个随机回退时间,则MAC层移动到SendingData状态。
在SendingData状态,帧被传输,并且MAC层移动到WaitForRx状态。
在WaitForRx状态,MAC层等待ACK / CTS超时的时段。接收响应帧时,MAC启动下一个帧传输。如果在超时期间未接收到响应帧,则重新发送帧。
当从PHY层接收到忙的清晰信道评估(CCA)时,MAC层移动到处方状态。帧被接收和处理处方状态。如果接收到错误的帧处方状态时,MAC层等待扩展帧间空间(EIFS)时间型双状态。如果帧是为其他节点准备的,则更新网络分配向量(NAV)并延迟传输,直到NAV变为零。如果帧打算发送给这个节点,则在需要时发送响应帧。
MAC参数,如RTS阈值,重试限制和数据速率可为每个节点配置。
传输链:
MAC层通过发送包含Tx矢量信息的传输启动请求来启动传输。收到启动请求后,PhyTx80211aDES块使用给定的Tx矢量配置PHY传输参数,并将传输启动确认发送到MAC层。PHY参数在非HT模式下配置,用于类型的mat配置对象wlanNonHTConfig
。在接收到启动确认后,MAC层将帧发送到PhyTx80211aDES块。
该PhyTx80211aDES块为MAC帧生成一个波形使用瓦兰波发生器
函数。它也与配置的Tx增益缩放波形的样本。所产生的波形通过所述共享信道传输。
您可以为PhyTx80211aDES块配置Tx功率(dBm)和Tx增益(dB)的掩码属性。
信道损伤建模:
由自由空间路径损耗模型和瑞利多径衰落确定的信道损伤被添加到传输的PHY波形中。您可以选择启用或禁用这些损伤模型。除了损伤模型外,信号接收范围还可以由可选的距离传播损耗模型限制。要对这些lo中的任何一个进行建模在SSE中,信道模型必须包含发送方和接收方位置以及传输信号强度。在将波形传递到PhyRx80211aDES块之前,在每个接收节点内对信道进行建模。
接收器链:
当phyrx8021ades块接收到一个波形时,它根据配置的Rx增益缩放波形。然后,phyrx8021ades块对接收的波形施加热噪声和干扰。这是通过计算预期的信号干扰加噪声比(SINR)在序言,报头和有效载荷的结束。计算的SINR作为加性高斯白噪声(AWGN)添加到接收波形的前导、报头和有效载荷中。然后,phyrx8021ades块将波形功率与能量检测(ED)阈值进行比较。如果波形功率大于ED阈值,PHY向MAC层发送CCA忙指示,并开始对波形进行解码。否则,PHY将波形视为噪声,并在电流波形持续期间将其作为干扰添加到即将到来的波形中。如果在解码时发现错误,PHY停止对波形的进一步处理,并向MAC层发送错误指示。如果前导和报头解码成功,phyrx8021ades块向MAC层发送一个开始指示。如果有效负载也被成功解码,则将有效负载传递到MAC层并给出成功指示。
可以为PhyRx80211aDES块配置Rx增益(dB)和噪声值(dB)。
节点位置分配器用于分配节点的初始位置。它支持金宝app线性和列表位置分配策略。
线性位置分配策略-在二维网格上,将节点均匀地放置在直线上。
列表位置分配策略–从列表[[x1 y1 z1][x2 y2 z2]…[xn yn zn]]分配节点位置,以便(xk,yk,zk)是(1,2,…,n)中所有k的第k个节点的位置。
该模型的仿真生成:
描述每个节点在信道争用、传输和接收上花费的时间的运行时图。
描述每个节点指标的图,如PHY层和MAC层上发送、接收和丢弃数据包的数量。
一个垫子文件statistics.mat
在每个节点的每个层获得详细的统计信息。
通过复制现有节点或使用库块创建自定义节点来增加网络中的节点数量。
更改应用程序参数:数据包大小和数据包间隔。
修改MAC参数:RTS阈值、Tx队列大小、数据速率和重试限制。
更改PHY参数:PHY发送增益、PHY接收增益和接收噪声系数。
改变通道建模参数。
使用节点位置分配器更改节点位置。
通过改变不同的参数来比较吞吐量。
启用序列查看器并查看节点之间以及节点内部组件之间交换的消息。
这个例子展示了一个多节点802.11a网络,并向您展示了如何使用离散事件模拟对多个WLAN节点之间的通信进行建模。MAC中的DCF建模为离散事件图,而PHY则使用MATLAB离散事件系统模块进行建模。运行时可视化显示每个节点在信道争用、传输和接收上花费的时间,这有助于您研究和分析DCF功能。根据PHY层和MAC层的发送、接收和丢弃包数等节点相关指标的图,分析了各节点的网络通信性能。
MAC层重传基于一个普通的重试计数,而不是在[章节10.3.4.4中指定的短重试计数(SRC)和长重试计数(LRC)。1].
不交换任何管理框架。
每个节点的MAC层为所有帧传输维护一个单独的序列号计数器,而不是一个目的地计数器。
MAC层的数据速率自适应未实现。
未实现MAC服务数据单元(MSDU)碎片。
将干扰建模为AWGN,SINR由干扰包的信号强度和热噪声导出。还可以通过组合干扰信号的IQ样本来建模干扰。
这个例子使用了这些助手:
dcfapplyfading.m.:对波形应用瑞利衰落效应。
dcfAssignNodeIDs.m:分配节点ID。
dcfDisplayStats.m:显示统计信息。
dcfGetNodeInfo.m:对指定节点的MAC地址执行get或set操作。
dcfGetNodeNamesList.m:获取模型中的节点列表。
dcfgeneratemacframe.m.:生成MAC帧。
dcfplotqueuelength.m:绘制模拟中的队列长度。
dcfPlotStats.m:绘制模拟时间线统计。
dcfStats.m:枚举以指示模型统计信息。
dcfupdatestats.m:更新给定节点的统计信息。
物理原语:枚举PHY和MAC层之间的指示
PhyRx80211aDES.m:与数据包接收相关的型号PHY操作。
PhyTx80211aDES.m:与包传输相关的PHY型号操作。
信息技术IEEE标准。系统间电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和PHY规范