主要内容

IEEE 802.15.4 - MAC帧生成和解码

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

背景

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 [1表示MAC帧的格式。

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

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

负载lrwpanMACCaptures

首先,对数据帧进行解码:

[dataFrameMACConfig, netFrame] = lrwpan.MACFrameDecoder(MPDU_data);如果~ isempty (dataFrameMACConfig)流(MAC帧CRC检查通过\n');dataFrameMACConfig结束
MAC帧CRC校验通过。dataFrameMACConfig = MACFrameConfig属性:FrameType:“数据”一般MAC属性:SequenceNumber: 244 AcknowledgmentRequest: 1 DestinationAddressing:“短地址”DestinationPANIdentifier:“1 e16天”DestinationAddress:“35 ea”SourceAddressing:“短地址”SourceAddress:“0000”PANIdentificationCompression: 1 FramePending:0 FrameVersion: '2003

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

ackFrameMACConfig = lrwpan.MACFrameDecoder (MPDU_ack)
ackFrameMACConfig = MACFrameConfig with properties: FrameType: 'Acknowledgment' General MAC properties: SequenceNumber: 165 DestinationAddressing: 'Not present' SourceAddressing: 'Not present' FramePending: 0 FrameVersion: '2003' Security: 0 . MAC属性:FrameType: 'Acknowledgment

生成MAC帧

lrwpan。MACFrameGenerator函数可以生成IEEE 802.15.4标准的所有MAC帧类型[1,即“信标”、“数据”、“确认”和“MAC命令”帧类型。MAC命令帧类型可以进一步指定为:'Association request', 'Association response', 'Disassociation notification', 'Data request', 'PAN ID conflict notification', 'Orphan notification', 'Beacon request', and 'GTS request'。

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

%的灯塔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的有效设置还包括:'Association response',% '解除关联通知','数据请求','PAN ID冲突% notification', 'Orphan notification', 'Beacon request'和'GTS request'。commandFrame = lrwpan.MACFrameGenerator (commandConfig);

进一步的探索

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

选定的参考书目

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