XBee3与XBee S2C混合应用注意事项(石油A11领域)
中石油在油氣產(chǎn)業(yè)自動(dòng)化走在國(guó)內(nèi)的前列,采用了標(biāo)準(zhǔn)的Zigbee無(wú)線協(xié)議,A11協(xié)議是多年前召集多家無(wú)線供應(yīng)商共同研討并制定的標(biāo)準(zhǔn),中石油也對(duì)該協(xié)議的應(yīng)用提出許多自己的要求。雖然中石油的數(shù)字化油田戰(zhàn)略已經(jīng)實(shí)施多年,有A11作為一種標(biāo)準(zhǔn)體系,但是由于各個(gè)廠家的技術(shù)水平,產(chǎn)品的可靠性和智能化水平不盡相同,在具體實(shí)施環(huán)節(jié)常會(huì)碰到一些障礙,容易發(fā)生不同廠家的數(shù)據(jù)互通問(wèn)題,影響生產(chǎn)效率。具體而言,在無(wú)線儀表這塊,由于有不同廠家的參與,雖然有A11標(biāo)準(zhǔn)確立了大方向,但各廠家的適配上有時(shí)仍需要相互協(xié)調(diào),一般以RTU為主,不同廠家的傳感器為輔。具體到項(xiàng)目環(huán)節(jié),由于不同傳感器廠家的自適應(yīng)能力和兼容性測(cè)試驗(yàn)證做得不充分,在項(xiàng)目實(shí)施環(huán)節(jié)的表現(xiàn)差異較大。
目前能入圍且批量部署并穩(wěn)定運(yùn)行的,大多是采用XBee無(wú)線模塊的產(chǎn)品和方案。隨著XBee系列產(chǎn)品的更新?lián)Q代,能符合Zigbee 3.0標(biāo)準(zhǔn)的XBee3橫空出世,慢慢地將替換原有的XBee S2C。A11協(xié)議并沒(méi)有隨時(shí)代變化而演進(jìn),而XBee3提供了許多新的特性,但也為向前兼容S2C 做了許多兼容優(yōu)化。在實(shí)際應(yīng)用中,不論是傳感器還是RTU,XBee3都可以直接替換S2C部署在產(chǎn)品上。對(duì)于S2C和XBee3混合組網(wǎng)的場(chǎng)景,需要了解這兩代產(chǎn)品的異同,以便盡可能在軟件上實(shí)現(xiàn)無(wú)憂的混合組網(wǎng)智能部署,減少等待時(shí)間和丟包率以及人工干預(yù)的情況。本文試圖從產(chǎn)品設(shè)計(jì)和兼容性驗(yàn)證,無(wú)線ZigBee協(xié)議的注意事項(xiàng)等方方面面來(lái)討論如何讓自家產(chǎn)品做到兼容百搭,智能部署。
一、初級(jí)篇
本節(jié)主要是針對(duì)初級(jí)用戶(hù),希望能簡(jiǎn)單地對(duì)無(wú)線模塊進(jìn)行配置,而不想在程序上做太多的智能部署設(shè)置的用戶(hù)。雖然簡(jiǎn)單配置也能滿(mǎn)足基本的項(xiàng)目實(shí)施和應(yīng)用,但由于缺少程序的網(wǎng)絡(luò)管理和智能部署功能,在參數(shù)和模塊選型上要多下功夫。
1. 模塊選型。
Digi XBee Zigbee模塊是應(yīng)用最為廣泛的符合ZigBee聯(lián)盟協(xié)議規(guī)范的無(wú)線模塊。ZigBee系列模塊從第一代的XBee S2B,演進(jìn)到S2C,以及目前最新的XBee3,只要是ZigBee協(xié)議的模塊,都可以相互兼容通信。
如果是新項(xiàng)目設(shè)計(jì),盡量采用XBee3,老產(chǎn)品也應(yīng)盡快升級(jí),在PCB封裝設(shè)計(jì)上盡量做到大小模塊封裝兼容,以應(yīng)對(duì)供應(yīng)鏈緊張時(shí)帶來(lái)的風(fēng)險(xiǎn)。Digi的無(wú)線模塊分為普通型和增強(qiáng)型,只有發(fā)射功率的區(qū)別,應(yīng)盡量選擇增強(qiáng)型版本,以在復(fù)雜的電磁環(huán)境中增強(qiáng)信號(hào),減少丟包率。
2. 固件。
Digi會(huì)定期發(fā)布XBee模塊的新固件,主要是增加功能特性并修復(fù)已知bug。如果沒(méi)有解決bug或是新特性的需求,現(xiàn)有的模塊并不需要升級(jí)到最新的固件版本。但XBee模塊在生產(chǎn)時(shí)總是會(huì)以最新發(fā)布的固件來(lái)進(jìn)行生產(chǎn),反應(yīng)到模塊的標(biāo)簽上,就是不同的revision。一般情況下固件會(huì)在充分測(cè)試后發(fā)布,由于每個(gè)用戶(hù)的應(yīng)用配置不盡相同,很難保證某些特定配置下不會(huì)有一些bug出現(xiàn),因此最好的方式是閱讀Release Note,根據(jù)相關(guān)描述避開(kāi)或繞過(guò)潛在的影響。建議客戶(hù)在新的項(xiàng)目上馬之前,對(duì)現(xiàn)用產(chǎn)品的當(dāng)前可用的固件做充分測(cè)試,確保沒(méi)問(wèn)題后再量產(chǎn)。
下面列出近兩年來(lái)一些中國(guó)區(qū)用戶(hù)常碰到的固件問(wèn)題和解決方案:
XBee S2C
問(wèn)題固件:405F;主要問(wèn)題:休眠節(jié)點(diǎn)的polling timeout異常。
問(wèn)題固件:4061;主要問(wèn)題:當(dāng)休眠節(jié)點(diǎn)NJ<FF時(shí),rejoin機(jī)制不可用,并且無(wú)法加回原父節(jié)點(diǎn)。
解決問(wèn)題:回退或升級(jí)4059、4060、4062等固件版本。
XBee3
和XBee S2C混合組網(wǎng)時(shí),協(xié)調(diào)器應(yīng)至少用100B固件,不可用更早期的固件,以便真正兼容原S2C的協(xié)調(diào)器行為。
3. 參數(shù)配置。
中石油A11無(wú)線儀表規(guī)范在設(shè)立之初參考了當(dāng)時(shí)Zigbee協(xié)議的標(biāo)準(zhǔn)和知名的XBee無(wú)線模塊API標(biāo)準(zhǔn),而ZigBee協(xié)議作為一種開(kāi)放的無(wú)線物聯(lián)網(wǎng)協(xié)議有許多優(yōu)勢(shì),首先是安全性,中石油的物聯(lián)網(wǎng)通信時(shí)需采用加密的ZigBee協(xié)議通信,因此各廠家的RTU和儀器儀表均需要開(kāi)啟加密模式。要做到互聯(lián)互通,各廠家在加密參數(shù)上需要保持一致。傳感器設(shè)備上,休眠參數(shù)上應(yīng)盡量和協(xié)調(diào)器的休眠參數(shù)保持大致相同或接近。
有關(guān)XBee的休眠參數(shù),許多人并未深刻理解其意義,可以參考附錄1。
XBee3還應(yīng)該設(shè)置C8=10,ET的值應(yīng)該略大于休眠時(shí)長(zhǎng)。此外,開(kāi)啟入網(wǎng)公告的功能有助于進(jìn)階用戶(hù)的程序設(shè)計(jì),因此通常JN=1。其它常見(jiàn)的參數(shù)請(qǐng)參考A11的協(xié)議要求。
值得注意的是,由于ZigBee 3.0的升級(jí),XBee3和S2C中有些默認(rèn)參數(shù)并不一樣,通常您可以按S2C的參數(shù)來(lái)設(shè)置XBee3。但在ZigBee 3.0中引入分布式網(wǎng)絡(luò)概念,其中EO默認(rèn)是配置成2,也就是集中式網(wǎng)絡(luò);而在S2C上,并沒(méi)有這個(gè)概念,因此S2C的EO默認(rèn)值是0,而實(shí)際應(yīng)用上也大多是使用S2C協(xié)調(diào)器來(lái)作為集中式網(wǎng)絡(luò)的中心。因此通常在中石油的A11的加密網(wǎng)絡(luò)中不用按S2C的EO值去設(shè)置XBee3,而是保持XBee3的EO=2,以防止在兩種模塊的混合網(wǎng)絡(luò)中的出現(xiàn)協(xié)調(diào)器默認(rèn)的0地址無(wú)效的情況。詳情可以參考附錄2。
二、進(jìn)階篇
ZigBee是一種無(wú)線網(wǎng)絡(luò)協(xié)議,而ZigBee設(shè)備都必須支持ZigBee網(wǎng)絡(luò)的基本功能。雖然XBee模塊可以不需要應(yīng)用程序配合來(lái)管理最基本的ZigBee網(wǎng)絡(luò),但在實(shí)際應(yīng)用中,通常可以主動(dòng)利用ZigBee協(xié)議的網(wǎng)絡(luò)功能實(shí)現(xiàn)智能部署和安裝調(diào)試。
設(shè)備列表:一個(gè)完備的ZigBee產(chǎn)品,是能夠在程序空間建立一張通信設(shè)備的列表,它有一系列好處,比如可以記錄并采用16位短地址的方式通信,減少出錯(cuò)機(jī)率。RTU可以對(duì)在網(wǎng)設(shè)備進(jìn)行鑒權(quán),主動(dòng)剔除第三方設(shè)備,可以同時(shí)和多個(gè)目標(biāo)設(shè)備通信,比如傳感器不僅可以把數(shù)據(jù)傳給RTU,還可以發(fā)給router設(shè)備等。通常可以在部署模式階段主動(dòng)掃描或是通過(guò)入網(wǎng)通知的API幀來(lái)添加設(shè)備到列表當(dāng)中。對(duì)于設(shè)備列表,還應(yīng)該有剔除的機(jī)制,畢竟有些設(shè)備會(huì)損壞,更新或替換,通常是以一定時(shí)間都無(wú)法成功通信上來(lái)作為設(shè)備已不在現(xiàn)場(chǎng)標(biāo)志。
有兩種API幀可作為設(shè)備入網(wǎng)通知來(lái)把設(shè)備添加到列表中,一種是利用ZigBee本身的Joining Announce,它的不依賴(lài)于JN參數(shù),缺點(diǎn)是只有入網(wǎng)時(shí)有一次通知,并且不太好識(shí)別設(shè)備類(lèi)型,因此這種方式通常還需要配合在部署時(shí)主動(dòng)掃描。另一種是利用XBee的JN參數(shù),當(dāng)JN=1時(shí),設(shè)備會(huì)在入網(wǎng)或reset后向網(wǎng)內(nèi)其它設(shè)備公告自己的身份。油田上的設(shè)備經(jīng)常有reset動(dòng)作,即使錯(cuò)過(guò)了首次入網(wǎng)通知,還可以后續(xù)在對(duì)方設(shè)備reset后獲取,因此這種方式添加設(shè)備列表比較容易。
運(yùn)行模式:無(wú)線網(wǎng)絡(luò)通常會(huì)有入網(wǎng),離網(wǎng)等動(dòng)作,因此在程序中制定產(chǎn)品的工作模式,有利于更高效組建好網(wǎng)絡(luò)并保障可靠通信。比如在產(chǎn)品的部署階段,可以定義為部署模式,此時(shí)以加快網(wǎng)絡(luò)部署為目標(biāo),可以增加主動(dòng)掃描的功能和一些握手鑒權(quán)等功能,在產(chǎn)品的正常工作模式下,可以關(guān)閉一些功能以便產(chǎn)品能無(wú)負(fù)擔(dān)地專(zhuān)注于應(yīng)用的實(shí)現(xiàn)。調(diào)試模式則可以開(kāi)啟一段調(diào)試代碼,方便現(xiàn)場(chǎng)調(diào)試,雖然這些模式在產(chǎn)品設(shè)計(jì)中并非不可或缺,但合理安排仍可能最大化保障產(chǎn)品對(duì)各種異常環(huán)境的兼容能力。對(duì)于RTU來(lái)說(shuō),可以很方便通過(guò)按鈕來(lái)切換模式;對(duì)于無(wú)按鈕的傳感器,則應(yīng)該主要考慮在程序中智能實(shí)現(xiàn)各種模式的切換。
三、高級(jí)篇
XBee3已經(jīng)推出有一段時(shí)間了,在許多項(xiàng)目上可以直接替換。但在一些特別的應(yīng)用場(chǎng)景,仍可能存在一些尚未解決的兼容性bug。盡管由于zigbee 3.0協(xié)議的升級(jí),一些兼容性的功能只能通過(guò)專(zhuān)用參數(shù)或在特定的參數(shù)組合下實(shí)現(xiàn),Digi仍然會(huì)致力于讓XBee3能完全取代和替換S2C,而不需要對(duì)傳統(tǒng)使用S2C的產(chǎn)品作出修改。
最新發(fā)現(xiàn)的一個(gè)bug是在開(kāi)啟APS加密的情況下出現(xiàn)。XBee模塊在開(kāi)啟EE后,網(wǎng)絡(luò)包已經(jīng)是加密了,但由于許多早期用戶(hù)對(duì)ZigBee了解不深,在產(chǎn)品中還額外開(kāi)啟了APS加密。APS加密實(shí)際上是在加密網(wǎng)絡(luò)包內(nèi)對(duì)任意兩點(diǎn)的應(yīng)用層的payload再做進(jìn)一步加密,意義不大,工業(yè)場(chǎng)景很少被使用。在XBee API模式中有個(gè)transmit option字段,默認(rèn)為0x00,中石油不少RTU和傳感器的早期用戶(hù)就在XBee中采用了transmit option=0x60這種方式進(jìn)行通訊。
下面做S2C和XBee3開(kāi)啟APS層加密通訊的兼容性測(cè)試。本次測(cè)試所用固件:100D和4061。
一、XBee3作為協(xié)調(diào)器, S2C作為路由器
方向:S2C –> XB3
剛開(kāi)始時(shí)通訊正常,大約過(guò)5分鐘后, S2C發(fā)不成功,錯(cuò)誤代碼:21 (Network ACK Failure)。
如果對(duì)S2C進(jìn)行reset,仍不能修復(fù),但錯(cuò)誤代碼變成:24 (Address not found)。
使用00作為協(xié)調(diào)器16位地址,結(jié)果仍一樣。
方向:XB3 –> S2C
剛開(kāi)始時(shí)通訊正常,大約過(guò)5分鐘后,發(fā)不成功,錯(cuò)誤代碼:24 (Address not found)。
使用真實(shí)的16bit地址而不用FFFE,結(jié)果仍一樣。
把S2C的EO改為和XBee3一樣的0x2看看結(jié)果,要讓雙向通訊恢復(fù),只有S2C發(fā)ATNR退網(wǎng)才行。
二、XBee3作為路由器,S2C作為協(xié)調(diào)器
奇怪的是,如果S2C作為協(xié)調(diào)器,XBee3作為路由器,并不會(huì)有這個(gè)bug。
初步結(jié)論:這是一個(gè)不常用的bug,只有當(dāng)XBee3作為協(xié)調(diào)器時(shí),S2C作為路由器時(shí),并且API幀中的發(fā)送選項(xiàng)開(kāi)啟了APS加密(0x20或0x60),才會(huì)出現(xiàn)。
解決思路:
是否能在XBee3的配置中解決?很可能是NK或trust center的因素,需要測(cè)試以下幾種臨時(shí)解決方案:
1. 設(shè)置XBee3的EO=0。這個(gè)設(shè)置會(huì)導(dǎo)致地址0不能代表XBee3作為協(xié)調(diào)器了,S2C發(fā)XBee3只能用FFFE或是真實(shí)的16位短地址。如果用0作為短地址發(fā)不通,并且會(huì)阻塞后續(xù)的發(fā)送(除非退網(wǎng))。
2. 固定NK的值。實(shí)驗(yàn)表明,NK即使雙方配置成一樣的默認(rèn)值,這個(gè)bug也依然存在。
這個(gè)bug的解決要等Digi發(fā)布新版的XBee3固件。對(duì)于混合組網(wǎng)的設(shè)備產(chǎn)家來(lái)說(shuō),在程序中不盲目采用部分廠家的0x60發(fā)送選項(xiàng)的設(shè)備制造商,在S2C到XBee3換代升級(jí)過(guò)程中受到的影響最小。
補(bǔ)充:RTU為XBee S2C, 傳感器為XBee3
1、因ET參數(shù)默認(rèn)值產(chǎn)生傳感器多次入網(wǎng)短地址發(fā)生變化的問(wèn)題
問(wèn)題描述:根據(jù)報(bào)告,當(dāng)休眠參數(shù)SPSN的值大于ET定義的時(shí)間,則ET時(shí)間到后會(huì)有退網(wǎng)的現(xiàn)象。
用開(kāi)發(fā)板重現(xiàn):
S2C(4060固件)協(xié)調(diào)器配置:ZS=2, ID=58, CE=1, AP=1, AO=1,BD=7,SP=AF0,SN=7,SO=6,EE=1,EO=0,KY=11,NK=0, NI=end
XBee3(100B固件)休眠終端配置:ZS=2, ID=58, CE=0, AP=1, AO=1,BD=7,SP=AF0,SN=7,SO=6,EE=1,EO=0,KY=11,NK=0, NI=cord
測(cè)試時(shí)一般要記錄一下MY的值,以觀察是否有變化。
在XCTU上兩個(gè)模塊都可以觀察到cluster 0013的入網(wǎng)通告,可見(jiàn)休眠節(jié)點(diǎn)有離網(wǎng)過(guò)程。由于重新加網(wǎng),所以休眠節(jié)點(diǎn)的短地址會(huì)變化。這個(gè)問(wèn)題可以歸結(jié)于,ET比休眠周期小,它認(rèn)為自己時(shí)間到了要重入網(wǎng),而協(xié)調(diào)器為S2C只看休眠參數(shù),并沒(méi)有ET值。
解決方法:將ET值改為大于休眠周期的值,則這個(gè)問(wèn)題消失。
2、更換協(xié)調(diào)器問(wèn)題
參數(shù)配置同1,在S2C時(shí),不論NJ<FF還是NJ=FF,都不需要發(fā)ATNR來(lái)離網(wǎng),而是通訊不上時(shí)會(huì)自動(dòng)離網(wǎng),在XBee3時(shí),需要發(fā)ATNR0, 通訊不上, polling沒(méi)有時(shí)不會(huì)主動(dòng)退網(wǎng)。
附錄1:詳解XBee ZigBee模塊的休眠參數(shù)和相關(guān)意義
ZigBee設(shè)備可分為協(xié)調(diào)器,路由器和終端節(jié)點(diǎn)三種角色,其中只有終端節(jié)點(diǎn)可以休眠,在睡眠期間可以實(shí)現(xiàn)極低功耗,在醒來(lái)后又可獲取休眠時(shí)期收到的數(shù)據(jù)。休眠參數(shù)不僅對(duì)終端節(jié)點(diǎn)有意義,在作為父節(jié)點(diǎn)的協(xié)調(diào)器或路由器,也同樣有著重要的功能。
XCTU上,在配置界面的Sleep Modes區(qū)塊,列出了所有的休眠參數(shù):SP、SN、SM、ST、SO、WH、PO、ET,不同版本可用參數(shù)略有差異,下面詳述:
SP:休眠周期。
休眠節(jié)點(diǎn)的SP代表休眠時(shí)間,也就是每隔SP*10ms的時(shí)間,休眠模塊會(huì)醒來(lái)查詢(xún)自己的數(shù)據(jù)。而在協(xié)調(diào)器或路由器上,它代表的是父節(jié)點(diǎn)收到數(shù)據(jù)后能為其子節(jié)點(diǎn)緩存多久。
SN:周期倍數(shù)。
這個(gè)參數(shù)用于設(shè)置polling timeout,算法是:3 * SN * (SP * 10ms)。休眠節(jié)點(diǎn)醒來(lái)時(shí)會(huì)向父節(jié)點(diǎn)查詢(xún)自己的數(shù)據(jù),這個(gè)過(guò)程叫polling。如果在polling timeout規(guī)定的時(shí)間內(nèi),父節(jié)點(diǎn)沒(méi)有收到子節(jié)點(diǎn)查詢(xún)請(qǐng)求,則父節(jié)點(diǎn)會(huì)把子節(jié)點(diǎn)從它的子節(jié)點(diǎn)列表中移除。XBee的協(xié)調(diào)器或路由器都能作為父節(jié)點(diǎn)為子節(jié)點(diǎn)緩存數(shù)據(jù),每個(gè)模塊最多可以掛20個(gè)子節(jié)點(diǎn)。當(dāng)子節(jié)點(diǎn)從網(wǎng)絡(luò)中移除,需要有個(gè)機(jī)制在父節(jié)點(diǎn)中也把該節(jié)點(diǎn)從列表中除名,也就是父節(jié)點(diǎn)不再為該子節(jié)點(diǎn)緩存數(shù)據(jù),從而讓出空間給其它節(jié)點(diǎn),這個(gè)機(jī)制就叫polling timeout。值得注意的是,XBee3支持最新的ZigBee 3.0協(xié)議,支持休眠子節(jié)點(diǎn)設(shè)備入網(wǎng)時(shí)向父節(jié)點(diǎn)報(bào)告自己的polling timeout時(shí)間,也就是不同的設(shè)備可以有不同的超時(shí)時(shí)間,而不需要在父節(jié)點(diǎn)處統(tǒng)一設(shè)置。
ET:子節(jié)點(diǎn)超時(shí)時(shí)間。
這個(gè)ET是ZigBee 3.0后引入XBee3的,主要是用在休眠節(jié)點(diǎn)。對(duì)于混合組網(wǎng)的情況,當(dāng)XBee3作為協(xié)調(diào)器或路由器,而網(wǎng)內(nèi)有S2C的休眠節(jié)點(diǎn)時(shí),應(yīng)該把父節(jié)點(diǎn)的ET也配置得和休眠周期差不多,略大些即可。
ST:醒來(lái)時(shí)間。
該參數(shù)僅在周期休眠中使用(SM=4,5),其代表沒(méi)數(shù)據(jù)活動(dòng)多久后進(jìn)入休眠。當(dāng)XBee在收發(fā)數(shù)據(jù)時(shí),模塊不能立即進(jìn)入休眠狀態(tài),它必須等待收發(fā)結(jié)束后一段空閑時(shí)間都再無(wú)數(shù)據(jù),以保證收發(fā)數(shù)據(jù)能順利完成。這個(gè)時(shí)間正是ST定義的。休眠節(jié)點(diǎn)醒來(lái)時(shí)polling父節(jié)點(diǎn)后,發(fā)現(xiàn)沒(méi)有數(shù)據(jù)一般可以立即休眠,而無(wú)需等待ST時(shí)間,但有時(shí)模塊不僅是接收,也需要外發(fā)信息,因此我們也可配置模塊醒后保持ST時(shí)間,以有足夠的時(shí)間通過(guò)串口來(lái)發(fā)送數(shù)據(jù)或命令,這是在后面的SO中配置。
SO:休眠選項(xiàng)。
這是兩個(gè)字節(jié)的參數(shù),注意bit0不用,目前僅bit1,bit2有定義。bit1: 在SN個(gè)休眠周期后,強(qiáng)制醒來(lái)ST時(shí)間。bit2: 啟用擴(kuò)展休眠周期,即休眠SN*SP時(shí)間。由于父節(jié)點(diǎn)在收到數(shù)據(jù)后只為子節(jié)點(diǎn)緩存SP定義的時(shí)間,而SP最大只能設(shè)置28秒,所以啟用擴(kuò)展休眠周期是有可能丟數(shù)據(jù)的。
WH:喚醒主機(jī)時(shí)間。
設(shè)備從睡眠中醒來(lái),到發(fā)送數(shù)據(jù)到串口的允許時(shí)間。有些設(shè)備是通過(guò)XBee模塊的信號(hào)喚醒或給處理器上電的,而主機(jī)醒來(lái)是需要時(shí)間,通過(guò)這個(gè)參數(shù)來(lái)確保從父節(jié)點(diǎn)收到的數(shù)據(jù)通過(guò)串口吐出給MCU時(shí),MCU能準(zhǔn)備好接收。
PO:查詢(xún)時(shí)間。
這個(gè)參數(shù)定義模塊醒著時(shí),多久向父節(jié)點(diǎn)查詢(xún)一次數(shù)據(jù)。默認(rèn)是100ms。
通過(guò)理解模塊的休眠參數(shù),我們可很好的利用它的性能,靈活安排程序任務(wù),最大少減少不必要的丟包。
附錄2:從S2C升級(jí)到XBee3需要注意哪些問(wèn)題
ZigBee 3.0對(duì)網(wǎng)絡(luò)安全有著遠(yuǎn)比過(guò)去更嚴(yán)格的定義,為了適應(yīng)這一變化,一些默認(rèn)參數(shù)值在XBee3時(shí)代有了一些變化,在實(shí)際使用中,程序的邏輯應(yīng)針對(duì)這些變化做相應(yīng)的調(diào)整,特別是NJ參數(shù)和C8參數(shù)。
1、NJ
NJ是一個(gè)允許模塊開(kāi)放網(wǎng)絡(luò)的參數(shù)。在S2C時(shí)代,它默認(rèn)值是0xFF,表示任何時(shí)候都允許其它模塊加入該網(wǎng)絡(luò);而在XBee3,它的默認(rèn)值是0xFE,也就是在上電254秒后,會(huì)自動(dòng)關(guān)閉加入功能。因此,如果和之前S2C混合組網(wǎng),可以將該參數(shù)改為0xFF。必須注意的是,一個(gè)更安全的網(wǎng)絡(luò),應(yīng)該是在適時(shí)開(kāi)啟加入,也就是一個(gè)網(wǎng)絡(luò)出于安全考慮,應(yīng)該只在開(kāi)放部署時(shí),才允許終端加入,應(yīng)用程序設(shè)置有不同的模式(部署模式,開(kāi)放部署維護(hù)模式,封網(wǎng)運(yùn)作模式……),能更好地維護(hù)和管理無(wú)線網(wǎng)絡(luò)。
2、C8
XBee3使用更新的zigbee協(xié)議棧,它計(jì)算LQI曲線和S2C不同,如果一個(gè)網(wǎng)絡(luò)內(nèi)全用XBee3,并不需要設(shè)置該參數(shù),默認(rèn)值就可以。如果一個(gè)網(wǎng)絡(luò)內(nèi)有S2C和XBee3混合組網(wǎng),則需要把XBee3的C8設(shè)置成10,以便達(dá)到最好的效果。混合組網(wǎng)中,C8不設(shè)置的話,S2C會(huì)更容易成為router跳點(diǎn)。該參數(shù)在1009后引后,所有混合組網(wǎng)的用戶(hù),都建議把XBee3升級(jí)到1009之后的版本。
3、ET
在ZigBee 3.0中,子節(jié)點(diǎn)掛在父節(jié)點(diǎn)下的timeout時(shí)間可以自己申報(bào),而不像以前一樣由父節(jié)點(diǎn)的休眠參數(shù)來(lái)決定。這樣會(huì)更靈活一些,在實(shí)際應(yīng)用中,建議ET比休眠參數(shù)略大一些。
4、EO
在XBee3為了支持ZigBee 3.0的默認(rèn)安全機(jī)制,參數(shù)中默認(rèn)使用中心化的信任中心(EO=2),在S2C,默認(rèn)是分布式的信任中心(EO=0). 在一個(gè)網(wǎng)絡(luò)中,EO的bit1必須相同,以便它們知道如何做密鑰交換。由于在S2C中,CE=1代表協(xié)調(diào)器,由它維護(hù)著集中式安全的網(wǎng)絡(luò)。在ZigBee 3.0引入了分布式網(wǎng)絡(luò)的概念,CE不再特指協(xié)調(diào)器。XBee3的Router為了加入之前S2C協(xié)調(diào)器維護(hù)的集中式網(wǎng)絡(luò),應(yīng)該使用EO=2,而非和S2C一樣配置為EO=0,該參數(shù)值在XBee3中無(wú)需更改。
5、DO
DO在S2C和XBee3有不同的定義,因此大多數(shù)情況下您無(wú)需更改它,使用默認(rèn)值即可。
除了NJ參數(shù)外,其它一些參數(shù)默認(rèn)值的不同也大多不會(huì)影響入網(wǎng)和通訊體驗(yàn)。如果您的應(yīng)用程序在初始化時(shí)寫(xiě)入一些參數(shù),請(qǐng)仔細(xì)檢查程序是否將不適用的S2C參數(shù)值寫(xiě)入XBee3。
ZigBee 3.0在安全機(jī)制上做了一些修改。Digi為了保證和S2C老用戶(hù)有一樣的用戶(hù)體驗(yàn),在固件上做了一些適應(yīng)。因此,在使用XBee3作為協(xié)調(diào)器的情況下,當(dāng)有混合組網(wǎng)需求時(shí),為了達(dá)到最好的向前兼容效果,需要使用100A以后的固件。
總結(jié)
以上是生活随笔為你收集整理的XBee3与XBee S2C混合应用注意事项(石油A11领域)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数字化油田解决方案
- 下一篇: 测试用例模板(个人习惯使用)