Qore:TorchIoTBootCamp
Xiriirinta: https://zhuanlan.zhihu.com/p/339700391
Laga soo bilaabo: Quora
1. Hordhac
Silicon Labs ayaa soo bandhigtay martigeliyaha + NCP xal nashqadeynta albaabka Zigbee. Qaab dhismeedkan, martigeliyaha wuxuu kula xiriiri karaa NCP iyada oo loo marayo UART ama SPI interface. Inta badan, UART waxaa loo isticmaalaa maadaama ay aad uga fudud tahay SPI.
Silicon Labs waxa kale oo ay bixisay mashruuc muunad ah barnaamijka martida loo yahay, kaas oo ah muunaddaZ3GatewayHost
. Muunadu waxay ku socotaa nidaam u eg Unix. Macaamiisha qaar ayaa laga yaabaa inay rabaan muunad martigeliyaha ah oo ku shaqayn kara RTOS, laakiin nasiib darro, ma jiro muunad martigeliyaha ku salaysan ee RTOS wakhtiga la joogo. Isticmaalayaashu waxay u baahan yihiin inay horumariyaan barnaamijkooda martida loo yahay oo ku saleysan RTOS.
Waa muhiim in la fahmo hab-maamuuska albaabka UART ka hor inta aan la samayn barnaamijka martida loo habeeyey. Labada UART ee ku saleysan NCP iyo SPI ee ku saleysan NCP, martigeliyaha wuxuu isticmaalaa borotokoolka EZSP si uu ula xiriiro NCP.EZSPwaa gaaban yahayEmberZnet Serial Protocol, waxaana lagu qeexayUG100. UART ku salaysan NCP, hab-maamuuska lakabka hoose ayaa la hirgeliyay si loo qaado xogta EZSP si kalsooni leh UART, taasi waaASHprotocol, gaabanAsynchronous Serial Host. Faahfaahin dheeraad ah oo ku saabsan ASH, fadlan tixraacUG101iyoUG115.
Xidhiidhka ka dhexeeya EZSP iyo ASH waxa lagu sawiri karaa jaantuskan soo socda:
Qaabka xogta ee EZSP iyo borotokoolka ASH waxaa lagu sawiri karaa jaantuskan soo socda:
Boggaan, waxaan ku soo bandhigi doonaa habka qaabeynta xogta UART iyo qaar ka mid ah xirmooyinka muhiimka ah kuwaas oo inta badan lagu isticmaalo albaabka Zigbee.
2. qaabaynta
Habka qaabaynta guud waxa lagu sawiri karaa shaxda soo socota:
Shaxdan, xogtu waxay ka dhigan tahay qaabka EZSP. Guud ahaan, hababka qaabaynta waa: |Maya|Tallaabo|Tixraac|
|::-|:-|:-|
|1|Buux qaabka EZSP|UG100|
|2|Qaybta Xogta |Qaybta 4.3 ee UG101|
|3|Ku darso Xakamaynta Byte|Cutubka 2aad iyo Cutubka 3aad ee UG101|
|4|Xisaabi CRC|Qaybta 2.3 ee UG101|
|5|Waxyaabaha Beytka|Qaybta 4.2 ee UG101|
|6|Ku darso calanka dhamaadka|Qaybta 2.4 ee UG101|
2.1. Buuxi qaabka EZSP
Qaabka qaab-dhismeedka EZSP waxa lagu sawiray cutubka 3 ee UG100.
U fiirso in qaabkani isbedeli karo marka SDK la cusboonaysiiyo. Marka qaabku is beddelo, waxaanu siin doonaa nambar nooc cusub ah. Nambarka nooca ugu dambeeya ee EZSP waa 8 marka maqaalkan la qoro (EmberZnet 6.8).
Maadaama qaabka qaabka EZSP uu uga duwanaan karo noocyada kala duwan, waxaa jira shuruudo qasab ah oo ah martigeliyaha iyo NCPWaa waajibla shaqee isla nooca EZSP. Haddii kale, ma wada xidhiidhi karaan sidii la filayey.
Si taas loo gaaro, amarka ugu horreeya ee u dhexeeya martigeliyaha iyo NCP waa inuu noqdaa amarka nooca. Si kale haddii loo dhigo, martigeliyaha waa inuu soo ceshadaa nooca EZSP ee NCP ka hor isgaarsiin kale. Haddii nooca EZSP uu ka duwan yahay nooca EZSP ee dhinaca martida loo yahay, isgaarsiinta waa in la joojiyaa.
Shuruudda daahsoon ee tan ka dambeysa ayaa ah in qaabka amarka nooca uu noqon karoWALIGAA HA BEDELIN. Habka amarka nooca EZSP waa sida hoose:
Laga soo bilaabo: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.2. Kala soocidda xogta
Habka kala-soocidda ee faahfaahsan waxaa lagu sifeeyay qaybta 4.3 ee UG101. Qaabka EZSP oo dhan waa la kala soocay. Randomization-ku waa mid gaar ah-AMA qaabka EZSP iyo isku xigxiga- random-ka been-abuurka ah.
Hoos waxaa ku yaal algorithm ee soo saarista isku xigxiga- random-ka been-abuurka ah.
- rand0 = 0×42
- Haddii 0 ee randi uu yahay 0, randi+1 = randi >> 1
- haddii yara 0 ee randi ay tahay 1, randi+1 = (randi >> 1) ^ 0xB8
2.3. Kudar Xakamaynta Byte
Xakamaynta byte-ku waa xog hal byte ah, waana in lagu daraa madaxa fareega. Qaabka waxaa lagu sawiray shaxda hoose:
Guud ahaan, waxaa jira 6 nooc oo bytes kontorool ah. Saddexda hore waxaa loo isticmaalaa xirmooyin caadi ah oo leh xogta EZSP, oo ay ku jiraan DATA, ACK iyo NAK. Seddexda ugu dambeeya waxaa la isticmaalaa iyada oo aan la helin xogta EZSP ee caadiga ah, oo ay ku jiraan RST, RSTACK iyo ERROR.
Qaabka RST, RSTACK iyo ERROR waxaa lagu sifeeyay qaybta 3.1 ilaa 3.3.
2.4. Xisaabi CRC-da
16-bit CRC waxaa lagu xisaabiyaa bytes laga bilaabo byte kantaroolka ilaa dhamaadka xogta. Heerka CRCCCITT (g(x) = x16 + x12 + x5 + 1) waxaa loo bilaabay 0xFFFF. Byte-ga ugu muhiimsan ayaa ka horreeya byte-ka ugu yar ee muhiimka ah (qaabka weyn-endian).
2.5. Waxyaalaha Byte
Sida lagu qeexay qaybta 4.2 ee UG101, waxa jira qaar ka mid ah qiyamka byte-ka ee loo isticmaalo ujeeddo gaar ah. Qiimayaashan waxaa laga heli karaa shaxdan soo socota:
Marka qiyamkan ay ka soo muuqdaan qaabka, daaweyn gaar ah ayaa lagu samayn doonaa xogta. - Geli byte baxsadka 0x7D horteeda baytiga la xafiday - U rog qaybta 5 ee baytiga la xafiday
Hoos waxaa ku yaal tusaalooyin algorithmeedkan:
2.6. Ku dar calanka dhamaadka
Tallaabada ugu dambeysa waa in lagu daro calanka dhamaadka 0x7E dhamaadka jir Taas ka dib, xogta waxaa loo diri karaa dekedda UART.
3. Geedi socodka qaabaynta
Marka xogta laga helo UART, waxaan u baahanahay kaliya inaan sameyno tillaabooyinka gadaal ka ah si aan u furno.
4. Tixraacyo
Waqtiga boostada: Feb-08-2022