RFスターシニアアドバイザーXCODER(We-Mediaエッセイスト)によって書かれました
1. TI ZigBeeプロトコルスタックのバージョン間の違いにより、製品開発に適切なプロトコルスタックを選択するにはどうすればよいですか?
TI ZigBeeプロトコルスタックZ-Stackは、Z-Stack0.1からZ-Stack2.5.1a、およびそれ以降のZ-Stack Home 1.2.1、Z-Stack Lighting 1.0.2、Z-Stack Energy1.0に開発されています. 1、Zスタックメッシュ1.0.0.プロトコルスタックをアップグレードする過程で、TIは主にプロトコルスタックの2つの側面を実行しました.
1)ZigBeeAllianceのZigBee仕様に従っていくつかの新機能を追加します.
たとえば、ZigBee2007はツリー型のルーティングです. ZigBee Proでは、メッシュルーティングが登場し、MTOやソースルーティングなどのルーティングアルゴリズムが提案されています. TIは、対応する新機能をプロトコルスタックに追加します.これは、説明があいまいなものなど、仕様の関連するバグを修正することです.
2)TIZigBeeプロトコルスタック自体のバグを修正する.
バージョンと以前のバージョンのプロトコルスタックの違いは、リリースノートに記載されています.
Z-Stack 2.5.1aのバージョン以降、TIプロトコルスタックはZ-Stack 2.6.xの形式で直接リリースされ続けることはなく、アプリケーションプロファイルの形式でリリースされました.
その理由は、TIは、開発者が実際のアプリケーションに応じて、開発用によりターゲットを絞ったプロトコルスタックを選択することを望んでいるためです. Z-stack Home 1.2.1のようなプロトコルスタックには、主に次の2つの部分が含まれます.
1)このパートの冒頭にあるコアスタックは、Z-Stack 2.5.1a以降の継続バージョンであり、Z-Stackコアリリースノート.txtバージョン2.6.2にあります.
2)アプリケーションプロトコルスタックは、主に実際のアプリケーションに関連するプロファイルに関連しています.ホームオートメーションプロトコルスタックはすべて、ZigBeeホームオートメーションプロファイルの実装に関連しています.同様に、Z-Stack Lighting1.0.2およびZ-StackEnergy 1.0.1も、アプリケーションプロファイルを備えたコアスタックです.
a.Z-Stack Home 1.2.2aは、スマートホーム関連製品用に開発されています.
b.Z-Stack Lighting 1.0.2は、ZLL関連製品用に開発されています.
c.Z-Stack Energy 1.0.1は、スマートエネルギー、メーター、家庭内ディスプレイ、およびその他の関連製品向けに開発されています.
d.Z-Stack Mesh 1.0.0は、メッシュルーティングなどの標準のZigBeeプロトコル関連機能のみを使用するプライベートアプリケーションに関連する製品用に開発されています.アプリケーション層は開発者によって定義されます.
ZigBeeAllianceがリリースした後 ZigBee 3.0 プロトコル、最新のZigBeeプロトコルスタックは Z-Stack 3.0 、現在サポートしています CC2530、CC2538、CC2652R、CC265P.
2.製品のZigBeeテストと認証を行う方法、何を理解する必要があり、どのプロセスに従う必要がありますか?
標準のZigBeeホームオートメーション関連製品の開発に関する例があります.まず、開発者が製品を開発するときは、に記載されている製品に従って製品を開発する必要があります. ZigBeeホームオートメーションプロファイル仕様 これはwww.zigbee.orgからダウンロードできます.製品開発を完了した後、開発者は理解する必要があります ZigBeeホームオートメーションプロファイルテスト仕様 www.zigbee.orgからダウンロードすることもできます.このドキュメントでは、特定の製品をテストハウスでテストする必要がある関連テスト項目について説明しています.上記の2つのドキュメントの他にPICSドキュメントもあります. 3番目のドキュメントでは、認定とテストが必要な製品でサポートされている機能について説明しています.開発者は、開発した製品の実際の機能と仕様に必要な機能に従って、PICSの機能を比較および確認します.以下はテストプロセスです.
1)ZigBee Allianceに参加すると、テストの完了を支援できるテストラボができます.
2)サンプルをテストラボに送信し、PICSファイルを完成させます.
3)最初の事前テストの後、テストラボはテスト結果をフィードバックし、開発者はサンプルコードを変更します. (必要に応じて)
4)変更されたサンプルをテストラボで確認してから、正式なテストを開始します.
5)開発者は、テストラボの助けを借りて、ZigBeeAllianceオンライン認証申請資料の準備と提出を完了します.
6)テストラボは正式なテストレポートをZigBeeAllianceに提出します.アライアンスは証明書を確認して発行します.
現在、標準のZigBeeテストを実行できる7つのテストラボがあります.
https://zigbeealliance.org/certification/testing-providers/
3.デバイスの64ビットMACアドレスを選択するにはどうすればよいですか?
CC2530 / CC2538 / CC2630には2つのIEEEアドレスがあり、1つはプライマリIEEEアドレスと呼ばれ、もう1つはセカンダリアドレスと呼ばれます.プライマリIEEEアドレスは、チップの情報ページに保存されます.このプライマリアドレスは、TIがIEEE Associationから購入したものであり、それぞれが一意です.ユーザーはこの値を読み取ることしかできず、消去/変更することはできません.プロトコルスタックのアドレスを読み取ると、Osal_memcpy(aExtendedAddress、(uint8 *)(P_INFOPAGE + HAL_INFOP_IEEE_OSET)、Z_EXTADDR_LEN)を取得できます.セカンダリアドレスはFlashの最後のページに保存され、ユーザーは関数HalFlashRead(HAL_FLASH_IEEE_PAGE、HAL_FLASH_IEEE_OSET、aExtendedAddress、Z_EXTADDR_LEN)を介して読み取り/書き込みを実行できます.
デバイスのMACアドレスとしてプライマリIEEEアドレスまたはセカンダリアドレスを選択するために、プロトコルスタックはどのように動作しますか?特定の操作はzmain_ext_addr(void)にあります.
1)NVからIEEEアドレスを読み取ります. MACアドレスがすでに存在する場合(いずれも0xFFではない)、MACアドレスである可能性があります.
2)1)にMACアドレスが存在しない場合は、セカンダリIEEEアドレスの保存場所から読み取ることができます.セカンダリIEEEアドレス(いずれも0xFFではない)の保存場所に存在する場合、アドレスは後でMACアドレスとしてNVに書き込むことができます.
3)MACアドレスが2)にない場合は、プライマリIEEEアドレスの保存場所から読み取ることができます.プライマリIEEEアドレス(いずれも0xFFではない)の保存場所に存在する場合、アドレスは後でMACアドレスとしてNVに書き込むことができます.
4)MACアドレスが3)にない場合、64ビットの可変アドレスがランダムに生成され、MACアドレスとしてNVに書き込まれます.
4.End Deviceは、バッテリー電源を備えた低電力デバイスです.ノードがネットワークから切断された後、ノードがネットワークを継続的に検索することを禁止する方法、またはビーコン要求を送信する間隔を増やす方法は?
1)ネットワークの検索を開始します:uint8 ZDApp_StartJoiningCycle(void)
ネットワークの検索を停止します:uint8 ZDApp_StopJoiningCycle(void)
2)ビーコンリクエストの送信サイクルを変更します.
変数を変更します:zgDefaultStartingScanDuration
//ビーコンの順序値
#define BEACON_ORDER_NO_BEACONS 15
#define BEACON_ORDER_4_MINUTES 14 // 245760ミリ秒
#define BEACON_ORDER_2_MINUTES 13 // 122880ミリ秒
#define BEACON_ORDER_1_MINUTE 12 // 61440ミリ秒
#define BEACON_ORDER_31_SECONDS 11 // 30720ミリ秒
#define BEACON_ORDER_15_SECONDS 10 // 15360 MSecs
#define BEACON_ORDER_7_5_SECONDS 9 // 7680 MSecs
#define BEACON_ORDER_4_SECONDS 8 // 3840 MSecs
#define BEACON_ORDER_2_SECONDS 7 // 1920 MSecs
#define BEACON_ORDER_1_SECOND 6 // 960 MSecs
#define BEACON_ORDER_480_MSEC 5
#define BEACON_ORDER_240_MSEC 4
#define BEACON_ORDER_120_MSEC 3
#define BEACON_ORDER_60_MSEC 2
#define BEACON_ORDER_30_MSEC 1
#define BEACON_ORDER_15_MSEC 0
5.エンドデバイスを低電力状態にする方法とスリープ時間を設定する方法は?
プロトコルスタックマクロ定義でPOWER_SAVINGを有効にし、f8wConfig.cfgファイルで-DRFD_RCVC_ALWAYS_ON = FALSEを操作すると、エンドデバイスはスリープステータスに入ることができます.
スリープ時間は、OSALオペレーティングシステムのスケジューリングによって決定されます.各スリープ時間は、スリープ時間としての最新のイベントタイムアウトに基づいています.詳細は、プロトコルスタックのhal_sleep関数で説明されています.
このタイムアウトは主に2つのカテゴリに分けられます.1つはアプリケーション層イベントのタイムアウトであり、もう1つはMAC層イベントのタイムアウトです.
1)アプリケーション層のタイムアウト時間はosal_next_timeout()によって取得されます. osal_pwrmgr_powerconserve(void)の関数で.
2)MAC層のタイムアウト時間は、MAC_PwrNextTimeout()によって取得されます. halSleep(uint16 osal_timeout)の関数で.
6. ZigBee 3.0プロトコルスタックの新機能は何ですか?
以前のZigBeeホームオートメーション/ ZigBeeライトリンクと比較したZigBee3.0プロトコルスタックの追加を紹介する以下のリンクを参照してください.
https://www.ti.com/lit/an/swra615a/swra615a.pdf?ts=1627190581608
7. TIZigBeeプロトコルスタック内の端末機器の状態切り替えの詳細な説明.
8.TIプロトコルスタックにおけるOADとOTAの違い.
OADはOverthe Air Downloadであり、OTAはOver theAirです.これら2つの実装の機能は同じであり、どちらもプログラムのリモートアップグレードと呼ぶことができます.初期のZigBeeプロトコル標準には、ノードプログラムの無線アップグレードの標準はありませんが、多くのお客様がそれを要求しています.そのため、TIは、プログラムの無線アップグレード用の一連のプロトコルスタックを開発し、OADと名付けました. ZigBee Allianceは、需要が増加していることに気づき、無線アップグレードの標準を指定し、OTAと名付けました.これは、TI OADの実装にも言及し、関連する変更を加えました.したがって、初期のTIプロトコルスタックでは、無線アップグレードはOADと呼ばれ、後のZigBeeAllianceではOTAと呼ばれます.
9. 32K水晶発振器が非低電力デバイスにはんだ付けされていない場合、Z-Stackプロトコルスタックを変更するにはどうすればよいですか?
Z-Stackプロトコルスタックでは、使用する水晶発振器が安定しているかどうかが初期化プロセス中にチェックされます. 32K水晶発振器がはんだ付けされていない場合は、次のコードを変更する必要があります. TI Z-Stackプロトコルスタックは、デフォルトで32K水晶発振器を使用します.
hal_board_cfg.hのファイルで、#define OSC32K_CRYSTAL_INSTALLED FALSE
10. ZigBeeメッシュネットワークに基づいてプライベートアプリケーションを開発する必要がある場合、どのプロトコルスタックを選択する必要がありますか?
多くのユーザーは、一部の産業用アプリケーションでは、ZigBeeメッシュネットワークの機能を独自のシステムまたは製品で使用したいだけであり、ZigBeeで定義されたアプリケーション層の仕様に従う必要はありません.このようなアプリケーション要件の場合、製品開発に適切なTIプロトコルスタックを選択するにはどうすればよいですか? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx
11.CC2630 / CC2650 ZigBeeを使用して開発する場合、コアスタックコードのブレークポイントを使用してデバッグできますか?
はい.ブレークポイントコードに対応するファイルをダウンロードして事前に開き、デバッグする必要があります.
12.Zigbeeコーディネーターはどのようにしてネットワークを作成するための適切なチャネルを選択しますか?
Zigbeeネットワークの作成は、コーディネーターが完了する必要があります. Zigbeeネットワークにはコーディネーターが1人しかいません. Zigbeeコーディネーターは、主にネットワークチャネルの選択と、ネットワークの作成時にPANIDの生成を完了します.チャネルを選択するには2つのステップがあります.
1)パッシブスキャンはエネルギースキャンとも呼ばれます.パッシブスキャンとは、コーディネーターがレシーバーをオンにしてから、以前に設定したチャネルリストを順番にスキャンすることを意味します.スキャン後、各チャネルのエネルギー値が取得されます.このエネルギーは、主に他のZigbeeネットワークまたは他の2.4GHzワイヤレスネットワーク信号から発生します.コーディネーターは、エネルギー値が事前設定されたしきい値よりも高いチャネルを干渉が大きいと見なし、チャネルを削除します.
2)アクティブスキャン.スキャンの最初のラウンドの後に残ったチャネルでは、ビーコン要求が順番に送信されます.対応するビーコンデータパケットが受信された場合、チャネル内に他のZigbeeデバイスがあると見なされます.最後に、コーディネーターは、他のZigbeeネットワークを持たないPANIDを選択するか、Zigbeeネットワークが最も少ないチャネルを選択して、独自のネットワークを確立し、競合しないPANIDを設定します.
13.UIを削除し、TI Zigbee 3.0プロトコルスタックを使用して製品開発モードにすばやく入るにはどうすればよいですか?
https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/146528
14.CC2530のフラッシュとRAMを最適化するにはどうすればよいですか?
http://www.ti.com/lit/wp/swra635/swra635.pdf
CC2650、CC2538、CC2652R、CC2630、Zスタック、CC2530