Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

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

この例では、Communications Toolbox™ Library for the ZigBee® Protocol を使用して、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 ビットになります。

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);

その他の調査

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

参考文献

  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)