Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

IEEE 802.15.4 - MAC フレームの生成および復号化

この例では、Communications Toolbox™ Library for the ZigBee® Protocol を使用して、IEEE® 802.15.4™ 規格 [1] の MAC フレームを生成および復号化する方法を説明します。

背景

IEEE 802.15.4規格は、低速無線パーソナル エリア ネットワーク (LR-WPAN) [1] のMAC層とPHY層を規定します。IEEE 802.15.4 の MAC 層と PHY 層は、ZigBee、WirelessHart®、6LoWPAN、MiWi などの他の上位層の規格のベースを提供します。このような規格は、ホーム オートメーションやセンサー ネットワーキングに使用例があり、モノのインターネット (IoT) の流行にも密接に関連しています。

アーキテクチャ

IEEE 802.15.4 MAC 層は、MAC ヘッダーと MAC フッターをそれぞれネットワーク層フレームの前後に挿入します。MAC フッターは CRC チェックを含みます。

lrwpan.MACFrameConfig構成オブジェクトは、IEEE 802.15.4 MAC フレームの生成と復号化の両方で使用されます。このようなオブジェクトは、MAC フレームを表し、そのフレーム タイプと適用可能なすべてのプロパティを指定します。lrwpan.MACFrameGenerator関数は、フレームを表す lrwpan.MACFrameConfig オブジェクト、オプションで MAC 層ペイロード (NET 層フレーム) をバイト単位 (2 文字) で受け入れ、MAC フレームをビット単位で出力します。lrwpan.MACFrameDecoder関数は、MAC プロトコル データ ユニット (MPDU) をビット単位で受け入れ、フレームと場合によっては NET 層フレームを表す lrwpan.MACFrameConfig オブジェクトをバイト単位で出力します。Clause 5 [1] では、MAC フレーム形式について説明します。

ホーム オートメーション ZigBee 無線機の MAC フレームの復号化

この節では、USRP® B200-mini 無線機とCommunications Toolbox Support Package for USRP® radioを使用して取得した、ホーム オートメーションを有効にする市販の ZigBee 無線機から送信された MAC フレームを復号化します。取得した波形の PHY 層は、IEEE 802.15.4 OQPSK 信号の復元の例で説明されている方法論に従って復号化されています。結果として得られる MPDU は MAT ファイルに保存されます。

loadlrwpanMACCaptures

はじめに、データ フレームを復号化します。

[dataFrameMACConfig, netFrame] = lrwpan.MACFrameDecoder(MPDU_data);if~isempty(dataFrameMACConfig) fprintf('CRC check passed for the MAC frame.\n'); dataFrameMACConfigend
CRC check passed for the MAC frame. dataFrameMACConfig = MACFrameConfig with properties: FrameType: 'Data' General MAC properties: SequenceNumber: 244 AcknowledgmentRequest: 1 DestinationAddressing: 'Short address' DestinationPANIdentifier: '1E16' DestinationAddress: '35EA' SourceAddressing: 'Short address' SourceAddress: '0000' PANIdentificationCompression: 1 FramePending: 0 FrameVersion: '2003' Security: 0

次に、肯定応答フレームを復号化します。

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 フレームの生成

関数lrwpan.MACFrameGeneratorは、IEEE 802.15.4 規格 [1]のすべてのMACフレームタイプ(“ビーコン’,‘データ’,”肯定応答”,およびMACコマンド' フレーム タイプ) を生成できます。MAC コマンド フレーム タイプはさらに以下として規定できます。'アソシエーション要求'、'アソシエーション応答'、'アソシエーション解除通知'、'データ要求'、'PAN ID 競合通知'、'孤立通知'、'ビーコン要求'、'GTS 要求'。

このコードは、すべてのフレーム タイプのフレームを生成する方法を示します。

% BeaconbeaconConfig = lrwpan.MACFrameConfig('FrameType','Beacon'); beaconMACFrame = lrwpan.MACFrameGenerator(beaconConfig);% DatadataConfig = lrwpan.MACFrameConfig('FrameType','Data'); numOctets = 50; payload = dec2hex(randi([0 2^8-1], numOctets, 1), 2); dataMACFrame = lrwpan.MACFrameGenerator(dataConfig, payload);% AcknowledgmentackConfig = lrwpan.MACFrameConfig('FrameType','Acknowledgment'); ackFrame = lrwpan.MACFrameGenerator(ackConfig);% MAC CommandcommandConfig =lrwpan.MACFrameConfig('FrameType','MAC Command'); commandConfig.MACCommand ='Association request';% Valid settings for MACCommand also include: 'Association response',% 'Disassociation notification', 'Data request', 'PAN ID conflict% notification', 'Orphan notification', 'Beacon request', and 'GTS request'.commandFrame = lrwpan.MACFrameGenerator(commandConfig);

その他の調査

ジェネレーター関数と復号化関数、および構成オブジェクトの詳細については、次の情報を参照してください。

参考文献

  1. IEEE 802.15.4-2011 - IEEE Standard for Local and metropolitan area networks--Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs)