ZigBee 擴充套件 PAN [EPID] 的目的及其與 16 位 PAN ID [PID] 的區別。
概述
擴充套件 PAN ID 是對於 ZigBee 2007(EmberZNet 3.x 和以後版本)而言屬於全新內容的網路引數,它用於 ZigBee 和 ZigBee PRO 功能集中。此擴充套件 PAN ID [EPID] 可以看作是基本的 16 位 PAN ID [PID] 的擴充套件。EPID 是在生成個人區域網路 [PAN] 時由 ZigBee 協調器 [ZC] 為整個網路設定的 64 位值,在 PAN 執行時不能更改此值(與 PID 不同)。與 PID 相同的是,同一 PAN 內的所有節點都共享一個 EPID。
與掃描和加入過程不同,EPID 由於在報頭中的開銷較大(8 位元組),因而很少顯示於傳輸的 ZigBee 資料包中。但是在網路更新事務中會使用 EPID,此時網路管理器節點將向 PAN 中的其他裝置通知 PID 衝突或通道更改,以便移向新通道和/或 PID 的節點可以將 EPID 的一致性作為條件來查詢行動網路。需要注意的是,在節點關聯到網路中後,擴充套件 PAN ID(即使為零)會儲存在非易失性儲存器中(作為令牌的一部分),因此在裝置離開網路之前,它在裝置的整個生命週期內都不會改變。
用於掃描 / 生成 / 加入過程
EPID(以及諸如 PID 等的其他資訊)將顯示在“主動掃描”可見的信標幀結果中,在開始加入時,如果 EPID 在加入請求中為非零,EPID 將會成為主要條件來匹配此節點和要加入的節點(16 位 PAN ID 被有效地忽略)。但是,某些網路(特別是舊式網路)可能不希望(或無法)處理 EPID,因此 EPID 在來自信標幀的網路引數中將為零。如果在 JoinNetwork 操作過程中,所請求的 EPID 都為零,將僅使用 16 位 PAN ID 進行匹配以實現網路關聯。
儘管 Ember 提供一些典型實用工具(外掛/應用程式/工具/掃描)來掃描網路和解析結果以確定要加入的節點,但此過程通常因應用程式設計和選擇網路時所要求的嚴格級別而不同。(例如,加入裝置可能僅需要任何可用的 ZigBee Pro 網路;它可能查詢專為所用應用程式設計的封閉網路,而不關心選擇哪個封閉網路;或它可能查詢具有特定屬性的特定封閉網路,如此在家裡時我的膝上型電腦就不會加入隨便一個家庭 WiFi 網路,而只加入我自己的 WiFi 網路。)
以下指導原則適用於確定在特定 EPID 下 EmberZNet 在組網/入網時的預期行為:
如果在 FormNetwork 過程中為擴充套件 PAN ID 指定了全零值,則堆疊將為此域生成一個隨機的 64 位值。
如果在JoinNetwork過程中為擴充套件 PAN ID 指定了全零值,則堆疊將使用在 JoinNetwork 引數中指定的 16 位 PAN ID 作為入網過程中選擇網路的主要條件。
如果在JoinNetwork過程中為擴充套件 PAN ID 指定了非零值,則堆疊將使用在 JoinNetwork 引數中指定的 64 位擴充套件 PAN ID(即使 16 位 PAN ID 為不同的值)作為入網過程中選擇網路的主要條件。
選擇 EPID
PAN ID 是為各網路隨機選擇的唯一 16 位值,而 EPID 則更多地被用作 WiFi 網路的 SSID 域以便提供使用者友好的名稱(由製造商或安裝人員指定,因此不如前者那麼隨機)。但是,Ember 不鼓勵為所有部署使用固定 EPID,因為(與 PAN ID 衝突不同)如果執行時出現 EPID 衝突,將無法解決(因為沒有用於區分 PAN 的其他唯一資訊)。希望使用非隨機 EPID 的客戶應該至少通過協調器或通過某些外部除錯工具來掃描網路,檢查新 PAN 的首選 EPID 是否未被其他 PAN 使用。一種方法是在組成 PAN 時使用一個小的首選 EPID 集,這樣在首選項出現衝突時協調器可以選擇其他值。
OEM 製造需要客戶安裝(非經過培訓的安裝人員)的消費級產品時,應該特別注意確保 EPID 的多樣性,因為互為鄰居的兩位客戶可能購買同一種產品供各自家庭使用,並且會希望將各自的網路彼此隔離。如果這兩位鄰居使用具有相同 EPID 的 PAN,兩位使用者都會遇到網路問題,因為兩家將會成為一個網路,會出現許多網路地址衝突的情況。
EPID 與 PID
下面是擴充套件 PAN ID 和標準 PAN ID 差異概覽:
EPID 是 64 位;PID 是 16 位
EPID 通常用於匹配所請求網路的堆疊條件;PID 僅在 EPID 全為 0×00 位元組時用作匹配條件。
EPID 僅存在於幾種資料包(信標幀、網路更新訊息)中;PID 存在於幾乎所有 802.15.4 幀中(MAC ACK 除外)。
EPID 用作唯一標識網路和解決 PID 衝突的條件;PID 用作無線電接收器對 MAC 目標過濾之用。
EPID 可以在掃描結果中提供網路身份的某些識別資訊;PID 始終為完全隨機,因此無法判斷 PAN “適合”與否。
EPID 可以為 0×0000000000000001 到 0xfffffffffffffffe 之間的任意值(全 0 和全 F 是預留值);PID 可以為 0×0000 – 0xFFFE 之間的任意值(全 F 為預留值)。
相關文章
- sql pan baselineSQL
- MySQL 複製 - 效能與擴充套件性的基石:概述及其原理MySql套件
- MySQL 複製 - 效能與擴充套件性的基石 2:部署及其配置MySql套件
- zkw 線段樹-原理及其擴充套件套件
- iOS分類(category)、類擴充套件(extension)、繼承的區別iOSGo套件繼承
- linux與windows下 安裝 ImageMagick 及其 php imagick擴充套件LinuxWindowsPHP套件
- (16) SpringCloud-Eureka的REST API及API擴充套件SpringGCCloudRESTAPI套件
- Solon詳解(六)- Solon的校驗擴充套件框架使用與擴充套件套件框架
- MD5演算法16位與32位的區別演算法
- SAP CRM AET Application Reference型別擴充套件欄位的一個例子APP型別套件
- [外掛擴充套件]多圖上傳欄位擴充套件MultiImages0.4套件
- 【訓練題25:數學+位運算】E : Apollo versus Pan | CF Good Bye 2020Go
- Lambda擴充套件與用途套件
- BSGS與擴充套件BSGS套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- 正則的擴充套件套件
- SRAM的容量擴充套件套件
- 在S/4HANA擴充套件欄位的Available Fields列表裡,看不到自己建立的擴充套件欄位該怎麼辦套件AI
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- java資料型別擴充套件Java資料型別套件
- ES6各大資料型別的擴充套件大資料資料型別套件
- 怎麼取的擴充套件模型裡表裡的欄位啊套件模型
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- Golang 分散式 ID 生成系統,高效能、高可用、易擴充套件的 id 生成服務Golang分散式套件
- TLS擴充套件的那些事TLS套件
- MySQL InnoDB的索引擴充套件MySql索引套件
- 04.字串的擴充套件字串套件
- Spring IoC 容器的擴充套件Spring套件
- DLR 的擴充套件庫 Dynamitey套件MIT
- 擴充套件你的KUBECTL功能套件
- [擴充套件推薦]Aliyun-oss-laravel —— Laravel最好的OSS Storage擴充套件套件Laravel
- Kotlin的裝飾者模式與原始碼擴充套件Kotlin模式原始碼套件
- django 2.0 擴充套件使用者欄位 示例Django套件
- Java SE(12) 擴充套件——進位制轉換Java套件
- 擴充套件工具套件
- Sanic 擴充套件套件
- Mybatis擴充套件MyBatis套件