主要内容

IEEE 802.15.4 - MAC帧生成和解码

这个例子展示了如何生成和解码IEEE®802.15.4™标准的MAC帧[1使用ZigBee和UWB的通信工具箱™库。

背景

IEEE 802.15.4标准指定MAC而且体育多层低速率无线个人区域网络(LR-WPANs) [1].IEEE 802.15.4 MAC层和PHY层提供了其他更高层标准的基础,例如无线个域网, WirelessHart®,6LoWPAN和MiWi。这些标准应用于家庭自动化和传感器网络,并与物联网(IoT)趋势高度相关。

体系结构

IEEE 802.15.4 MAC层在网络层帧之前和之后分别插入一个MAC报头和MAC页脚。MAC页脚包含一个CRC检查。

一个lrwpan。MACFrameConfig配置对象用于生成和解码IEEE 802.15.4 MAC帧。这些对象描述一个MAC帧,并指定它的帧类型和所有适用的属性。的lrwpan。MACFrameGenerator函数接受lrwpan。MACFrameConfigobject describing the frame, and optionally a MAC-layer payload (NET-layer frame) in bytes (two-characters), and outputs the MAC frame in bits. Thelrwpan。MACFrameDecoder函数接受MAC协议数据单元(MPDU)位,并输出一个lrwpan。MACFrameConfigobject describing the frame and possibly a NET-layer frame in bytes. Clause 5 in [1MAC帧格式。

家庭自动化ZigBee无线电的MAC帧解码

本节解码从实现家庭自动化的商用ZigBee无线电传输的MAC帧,并使用USRP®B200-mini无线电和无线网络捕获USRP®无线电通信工具箱支持包金宝app.所捕获波形的PHY层已根据中所描述的方法进行解码IEEE 802.15.4 OQPSK信号的恢复的例子。生成的mpdu存储在MAT文件中:

负载lrwpanMACCaptures

首先,解码数据帧:

[dataFrameMACConfig, netFrame] = lrwpan.MACFrameDecoder(MPDU_data);如果~ isempty (dataFrameMACConfig)流(' MAC帧的CRC检查通过。\n');dataFrameMACConfig结束
MAC帧通过CRC校验。dataFrameMACConfig = MACFrameConfig with properties: FrameType: 'Data'通用MAC属性:SequenceNumber: 244确认请求:1 DestinationAddressing: '短地址' DestinationPANIdentifier: '1E16' DestinationAddress: '35EA' SourceAddressing: '短地址' SourceAddress: '0000' PANIdentificationCompression: 1 FramePending: 0 FrameVersion: '2003' Security: 0安全属性:无属性。信标属性:没有属性。“MAC Command”属性:无属性。

接下来,一个确认帧被解码:

ackFrameMACConfig = lrwpan. macframedecode (MPDU_ack)
ackFrameMACConfig = MACFrameConfig with properties: FrameType: ' acknowledgement '通用MAC属性:SequenceNumber: 165 DestinationAddressing: 'Not present' SourceAddressing: 'Not present' FramePending: 0 FrameVersion: '2003' Security: 0安全属性:无属性。信标属性:没有属性。“MAC Command”属性:无属性。

生成MAC帧

lrwpan。MACFrameGenerator功能可以从IEEE 802.15.4标准生成所有MAC帧类型[1],即“信标”、“数据”、“确认”和“MAC命令”帧类型。MAC命令帧类型可以进一步指定为:“关联请求”、“关联响应”、“解除关联通知”、“数据请求”、“PAN ID冲突通知”、“孤儿通知”、“信标请求”和“GTS请求”。

这段代码演示了如何为所有帧类型生成帧:

%的灯塔beaconConfig = lrwpan。MACFrameConfig (“FrameType”“灯塔”);beaconMACFrame = lrwpan.MACFrameGenerator(beaconConfig);%的数据dataConfig = lrwpan。MACFrameConfig (“FrameType”“数据”);numOctets = 50;有效载荷= dec2hex(randi([0 2^8-1], numOctets, 1), 2);dataMACFrame = lrwpan。MACFrameGenerator(dataConfig, payload);%承认ackConfig = lrwpan。MACFrameConfig (“FrameType”“承认”);ackFrame = lrwpan.MACFrameGenerator(ackConfig);% MAC命令commandConfig = lrwpan。MACFrameConfig (“FrameType”“MAC命令”);commandConfig。MACCommand =协会请求”MACCommand的有效设置还包括:'关联响应',“解除关联通知”,“数据请求”,“PAN ID冲突”% notification'、'Orphan notification'、'Beacon request'和'GTS request'。commandFrame = lrwpan.MACFrameGenerator(commandConfig);

进一步的探索

您可以进一步探索以下生成器和解码函数,以及配置对象:

选定的参考书目

  1. IEEE 802.15.4-2011局域网和城域网IEEE标准第15.4部分:低速率无线个人区域网络(lr - wpan)