Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ZigBee NET フレームの生成と復号化

この例では、Communications Toolbox™ を使用して、ZigBee 仕様 [ 1 ] の NET フレームを生成および復号化する方法を説明します。

背景

ZigBee 規格は、低速無線パーソナル エリア ネットワークのネットワーク (NET または NWK) 層とアプリケーション (APP または APL) 層を規定します。この NET レイヤーおよび APP レイヤーの仕様は、IEEE® 802.15.4™ [ 2 ] の PHY 仕様および MAC 仕様に基づいて作成されています。ZigBee デバイスは、ホーム オートメーションやセンサー ネットワーキングに使用例があり、Internet of Things (IoT) の流行にも密接に関連しています。

アーキテクチャ

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

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

このセクションでは、USRP® B200-mini 無線機と Communications Toolbox Support Package for USRP® radio を使用して取得した、ホーム オートメーションを有効にする市販の ZigBee 無線機から送信された NET フレームを復号化します。

関数 zigbee.NETFrameDecoder は、NET レイヤー ZigBee データ フレームと、NET コマンド フレーム タイプのヘッダーを復号化できます。

load zigbeeNETCaptures % netFrame

[netConfig,netPayload] = zigbee.NETFrameDecoder(netFrame);
netConfig
netConfig = 
  NETFrameConfig with properties:

                FrameType: 'Data'
          ProtocolVersion: 'ZigBee 2007'
           SequenceNumber: 212

   Addressing:
            SourceAddress: '0000'
       DestinationAddress: '35EA'
           IEEEAddressing: 'None'

   Security:
                 Security: 1
           DataEncryption: 0
                MICLength: 0
            KeyIdentifier: 'Network'
            ExtendedNonce: 1
             FrameCounter: 193458
    SecuritySourceAddress: '24FD5B00000014B6'
              KeySequence: 0

   Routing:
                   Radius: 30
            DiscoverRoute: 1
            SourceRouting: 1
               RelayIndex: 0
                RelayList: [0x4 char]

   Multicast:
                Multicast: 0

NET レイヤーの復号化とは、NET レイヤー ペイロードが暗号化されること (Security = true) を示します。セキュリティは、ネットワーク層とアプリケーション層のいずれかで使用できます。このフレームはネットワーク層のセキュリティを使用します。一方で、フレームの DataEncryption フィールドは false で、message integrity code (MIC) 長はゼロです。これは、セキュリティ レベル #0 が使用されることと、ペイロードは暗号化されないことを示します。ただし、ZigBee 規格 (Clause 4.4.1.2 [ 1 ]) に従って、これら 2 つのフィールドは、ネットワーク設定中にローカルに保存された値で上書きされます。この場合、このフレームはセキュリティ レベル #5 で保護されていました。つまり、NET ペイロードは暗号化され、MIC 長は 32 ビットになります。

zigbeeFrameFormat.png

NET フレームの生成

関数 zigbee.NETFrameGenerator は、セキュリティで保護されない NET レイヤー ZigBee データ フレームを生成できます。構成オブジェクトをさらにカスタマイズできます。

netConfig = zigbee.NETFrameConfig( ...
    'SequenceNumber',123, ...
    'DestinationAddress','E568');
numOctets = 50;
payload = dec2hex(randi([0 2^8-1],numOctets, 1),2);
netFrame = zigbee.NETFrameGenerator(netConfig,payload);

その他の調査

この例では、ドキュメンテーションにない以下のユーティリティを使用します。ドキュメンテーションにないユーティリティの API と機能は、将来変更される可能性があります。ユーティリティのソース コードを表示するには、関数editを使用します。

  • zigbee.NETFrameGenerator

  • zigbee.NETFrameDecoder

  • zigbee.NETFrameConfig

参考文献

1 - ZigBee Alliance, ZigBee Specification Document 053474r17, 2007.

2 - IEEE 802.15.4-2011 - IEEE Standard for Local and Metropolitan Area Networks--Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs).

関連するトピック