このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ZigBee NET フレームの生成と復号化
この例では、Communications Toolbox™ Library for ZigBee® and UWB を使用して、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);
その他の調査
以下のジェネレーター関数と復号化関数、および関連する構成オブジェクトについてさらに調査できます。
zigbee.NETFrameGenerator
zigbee.NETFrameDecoder
zigbee.NETFrameConfig
これらのユーティリティはドキュメンテーションになく、API または機能が将来変更される可能性があります。これらのユーティリティのいずれかについてソース コードを表示するには、関数edit
を使用します。たとえば、次のように入力します。
edit zigbee.NETFrameGenerator
MATLAB® コマンド ラインで上のように入力すると、zigbee.NETFrameGenerator
が開きます。
参考文献
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).