Umbhali: I-TorchIoTBotCamp
Isixhumanisi: https://zhuanlan.zhihu.com/p/339700391
Kusukela ku: Quora
1. Isingeniso
I-Silicon Labs inikeze isixazululo se-host+NCP sokuklama isango le-Zigbee. Kulolu hlobo lokwakha, i-host ingaxhumana ne-NCP nge-UART noma i-interface ye-SPI. Ngokuvamile, i-UART isetshenziswa njengoba ilula kakhulu kune-SPI.
I-Silicon Labs iphinde yahlinzeka ngephrojekthi yesampula yohlelo lokusingatha, okuyisampulaI-Z3GatewayHost. Isampula isebenza ohlelweni olufana ne-Unix. Amanye amakhasimende angase afune isampula ye-host engasebenza ku-RTOS, kodwa ngeshwa, ayikho isampula ye-host esekelwe ku-RTOS okwamanje. Abasebenzisi kudingeka bathuthukise uhlelo lwabo lwe-host olusekelwe ku-RTOS.
Kubalulekile ukuqonda iphrothokholi yesango le-UART ngaphambi kokuthuthukisa uhlelo lwe-host oluhlelwe ngokwezifiso. Kuzo zombili i-NCP esekelwe ku-UART kanye ne-NCP esekelwe ku-SPI, i-host isebenzisa iphrothokholi ye-EZSP ukuxhumana ne-NCP.I-EZSPkufushane ngo-Iphrothokholi Yochungechunge lwe-EmberZnet, futhi ichazwa ku-UG100. Kwi-NCP esekelwe ku-UART, kusetshenziswa iphrothokholi yezendlalelo ezingezansi ukuthwala idatha ye-EZSP ngokuthembekile ngaphezu kwe-UART, yilokhoUMLOTHAiphrothokholi, okufushane ngokuthiI-Host ye-Serial EngavumelanisiweUkuze uthole imininingwane eyengeziwe mayelana ne-ASH, sicela ubheke ku-UG101futhiUG115.
Ubudlelwano phakathi kwe-EZSP ne-ASH bungaboniswa ngomdwebo olandelayo:
Ifomethi yedatha ye-EZSP kanye nephrothokholi ye-ASH ingaboniswa ngomdwebo olandelayo:
Kuleli khasi, sizokwethula inqubo yokuhlela idatha ye-UART kanye nezinye izinhlaka eziyinhloko ezivame ukusetshenziswa ku-Zigbee gateway.
2. Ukwakha uhlaka
Inqubo ejwayelekile yokwenza uhlaka ingaboniswa yishadi elilandelayo:
Kuleli shadi, idatha isho uhlaka lwe-EZSP. Ngokuvamile, izinqubo zokwakheka yilezi: |Cha|Isinyathelo|Ireferensi|
|:-|:-|:-|:-|
|1|Gcwalisa Uhlaka lwe-EZSP|UG100|
|2|Ukuhlelwa Kwedatha Okungahleliwe|Isigaba 4.3 se-UG101|
|3|Engeza i-Control Byte|Isahluko 2 kanye nesahluko 3 se-UG101|
|4|Bala i-CRC|Isigaba 2.3 se-UG101|
|5|Ukugcwalisa Ngebhayithi|Isigaba 4.2 se-UG101|
|6|Faka ifulegi lokugcina|Isigaba 2.4 se-UG101|
2.1. Gcwalisa Uhlaka lwe-EZSP
Ifomethi yohlaka lwe-EZSP iboniswe kuSahluko 3 se-UG100.
Qaphela ukuthi le fomethi ingashintsha uma i-SDK ithuthukiswa. Uma ifomethi ishintsha, sizoyinika inombolo entsha yenguqulo. Inombolo yakamuva yenguqulo ye-EZSP ingu-8 lapho lesi sihloko sibhalwa (EmberZnet 6.8).
Njengoba ifomethi yohlaka lwe-EZSP ingase ihluke phakathi kwezinguqulo ezahlukene, kunesidingo esiyimpoqo sokuthi i-host kanye ne-NCPKUMELEbasebenze ngenguqulo efanayo ye-EZSP. Ngaphandle kwalokho, abakwazi ukuxhumana ngendlela obekulindelekile.
Ukuze kufezwe lokho, umyalo wokuqala phakathi kwe-host kanye ne-NCP kumele kube umyalo wenguqulo. Ngamanye amazwi, i-host kumele ithole inguqulo ye-EZSP ye-NCP ngaphambi kwanoma yikuphi okunye ukuxhumana. Uma inguqulo ye-EZSP ihlukile nenguqulo ye-EZSP yohlangothi lwe-host, ukuxhumana kumele kukhanselwe.
Imfuneko engacacile ngemuva kwalokhu ukuthi ifomethi yomyalo wenguqulo ingakwaziUNGALOKOTHI USHINTSHEIfomethi yomyalo wenguqulo ye-EZSP ifana nalokhu okulandelayo:
Umthombo: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处.
2.2. Ukungahleliwe Kwedatha
Inqubo eningiliziwe yokwenza ngokungahleliwe ichazwe esigabeni 4.3 se-UG101. Lonke uhlaka lwe-EZSP luzokwenziwa ngokungahleliwe. Ukwenza ngokungahleliwe kungokukhethekile-NOMA uhlaka lwe-EZSP kanye nochungechunge olungahleliwe.
Ngezansi kune-algorithm yokukhiqiza ukulandelana okungahleliwe okungahleliwe.
- irandi0 = 0×42
- uma i-bit 0 ye-randi ingu-0, i-randi+1 = i-randi >> 1
- uma i-bit 0 ye-randi ingu-1, i-randi+1 = (randi >> 1) ^ 0xB8
2.3. Engeza i-Control Byte
I-control byte iyidatha ye-byte eyodwa, futhi kufanele ifakwe ekhanda lohlaka. Ifomethi iboniswe ngethebula elingezansi:
Sekukonke, kunezinhlobo eziyisithupha zama-control byte. Ezintathu zokuqala zisetshenziselwa ozimele abavamile abanedatha ye-EZSP, okuhlanganisa i-DATA, i-ACK kanye ne-NAK. Ezintathu zokugcina zisetshenziswa ngaphandle kwedatha evamile ye-EZSP, okuhlanganisa i-RST, i-RSACK kanye ne-ERROR.
Ifomethi ye-RST, i-RSACK kanye ne-ERROR ichazwe esigabeni 3.1 kuya ku-3.3.
2.4. Bala i-CRC
I-CRC engu-16-bit ibalwa ngama-byte kusukela ku-control byte kuze kube sekupheleni kwedatha. I-CRCCCITT ejwayelekile (g(x) = x16 + x12 + x5 + 1) iqaliswa ku-0xFFFF. I-byte ebaluleke kakhulu yandulela i-byte ebaluleke kakhulu (imodi ye-big-endian).
2.5. Ukugcwaliswa kwe-Byte
Njengoba kuchaziwe esigabeni 4.2 se-UG101, kunezinye izilinganiso ze-byte ezigciniwe ezisetshenziselwa injongo ekhethekile. Lezi zilinganiso zingatholakala kuthebula elilandelayo:
Uma la manani evela kufreyimu, kuzokwenziwa ukwelashwa okukhethekile kudatha. – Faka i-escape byte engu-0x7D phambi kwe-reserved byte – Buyisela emuva i-bit5 yaleyo byte ereserved
Ngezansi kunezibonelo ezimbalwa zale algorithm:
2.6. Engeza ifulegi lokugcina
Isinyathelo sokugcina ukwengeza ifulegi lokugcina elingu-0x7E ekugcineni kohlaka. Ngemva kwalokho, idatha ingathunyelwa echwebeni le-UART.
3. Inqubo Yokususa Uhlaka
Uma idatha itholwa yi-UART, sidinga nje ukwenza izinyathelo eziphambene ukuze siyihlukanise.
4. Izinkomba
Isikhathi sokuthunyelwe: Feb-08-2022








