Umbhali: iTorchIoTBotCamp
Ikhonkco: https://zhuanlan.zhihu.com/p/339700391
Ukusuka: Quora
1. Intshayelelo
I-Silicon Labs inikezele ngesisombululo se-host+NCP soyilo lwesango leZigbee. Kolu lwakhiwo, i-host inokunxibelelana ne-NCP nge-UART okanye i-SPI interface. Ngokwesiqhelo, i-UART isetyenziswa kuba ilula kakhulu kune-SPI.
ISilicon Labs ikwabonelele ngeprojekthi yesampulu yenkqubo yokusingatha, eyisampuliI-Z3GatewayHost. Isampulu isebenza kwinkqubo efana ne-Unix. Abanye abathengi banokufuna isampulu yomsingathi enokuqhutywa kwi-RTOS, kodwa ngelishwa, akukho sampulu yomsingathi esekwe kwi-RTOS okwangoku. Abasebenzisi kufuneka baphuhlise inkqubo yabo yomsingathi esekwe kwi-RTOS.
Kubalulekile ukuqonda iprotokholi yesango le-UART ngaphambi kokuba uphuhlise inkqubo yomncedisi eyenzelwe wena. Kuzo zombini i-NCP esekelwe kwi-UART kunye ne-NCP esekelwe kwi-SPI, umphathi usebenzisa iprotokholi ye-EZSP ukunxibelelana ne-NCP.I-EZSPimfutshane kwiIprotokholi yothotho lwe-EmberZnet, kwaye ichazwe kwiUG100Kwi-NCP esekwe kwi-UART, iprotocol yomaleko osezantsi iyasetyenziswa ukuthwala idatha ye-EZSP ngokuthembekileyo ngaphezulu kwe-UART, yiyo leyoUTHUTHUiprotokholi, mfutshaneUmphathi weSerial ongangqamanangaUkuze ufumane iinkcukacha ezithe vetshe malunga ne-ASH, nceda ujonge kuUG101kwayeUG115.
Ulwalamano phakathi kwe-EZSP kunye ne-ASH lungabonakaliswa ngolu dweliso lulandelayo:
Ifomathi yedatha ye-EZSP kunye neprotocol ye-ASH ingabonakaliswa ngolu mzobo lulandelayo:
Kweli phepha, siza kwazisa inkqubo yokuhlela idatha ye-UART kunye nezinye iifreyimu ezibalulekileyo ezisetyenziswa rhoqo kwisango leZigbee.
2. Ukuyila iifreyimu
Inkqubo ngokubanzi yokwenza ifreyimu ingabonakaliswa ngolu tshathi lulandelayo:
Kule tshathi, idatha ithetha ifreyimu ye-EZSP. Ngokubanzi, iinkqubo zokubumba zezi: |Akukho|Inyathelo|Isalathiso|
|:-|:-|:-|
|1|Zalisa ifreyimu ye-EZSP|UG100|
|2|Ukwahlulwahlulwa kwedatha|Icandelo 4.3 le-UG101|
|3|Yongeza i-Control Byte|Isahluko 2 kunye nesahluko 3 se-UG101|
|4|Bala i-CRC|Icandelo 2.3 le-UG101|
|5|Ukufakwa kweByte|Icandelo 4.2 le-UG101|
|6|Yongeza iFlegi yokuphela|Icandelo 2.4 le-UG101|
2.1. Zalisa ifreyimu ye-EZSP
Ifomathi yesakhelo se-EZSP iboniswe kwiSahluko sesi-3 se-UG100.
Qaphela ukuba le fomathi inokutshintsha xa i-SDK iphuculwa. Xa ifomathi itshintsha, siza kuyinika inombolo yenguqulelo entsha. Inombolo yenguqulelo yamva nje ye-EZSP yi-8 xa kubhalwa eli nqaku (EmberZnet 6.8).
Njengoko ifomathi yesakhelo se-EZSP inokwahluka phakathi kweenguqulelo ezahlukeneyo, kukho imfuneko enyanzelekileyo yokuba i-host kunye ne-NCPKUFUNEKAbasebenza ngenguqulelo efanayo ye-EZSP. Ngaphandle koko, abanakunxibelelana ngendlela ebekulindeleke ngayo.
Ukuze kufezekiswe oko, umyalelo wokuqala phakathi kwe-host kunye ne-NCP kufuneka ube ngumyalelo wenguqulelo. Ngamanye amazwi, i-host kufuneka ifumane inguqulelo ye-EZSP ye-NCP ngaphambi kolunye unxibelelwano. Ukuba inguqulelo ye-EZSP yahlukile kwinguqulelo ye-EZSP yecala le-host, unxibelelwano kufuneka lurhoxiswe.
Imfuneko engacacanga emva koku kukuba ifomathi yomyalelo wenguqulelo inokuthiUNGAZE UTSHINTSHEIfomathi yomyalelo wenguqulo ye-EZSP inje ngezantsi:
umthombo: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有
2.2. Ukuhlelwa kweDatha ngokungacwangciswanga
Inkqubo eneenkcukacha zokwahlulwa ...
Apha ngezantsi kukho i-algorithm yokuvelisa ulandelelwano lwe-pseudo-random.
- irandi0 = 0×42
- ukuba i-bit 0 ye-randi ngu-0, i-randi+1 = i-randi >> 1
- ukuba i-bit 0 ye-randi ngu-1, i-randi+1 = (randi >> 1) ^ 0xB8
2.3. Yongeza i-Control Byte
I-control byte yidatha ye-one byte, kwaye kufuneka yongezwe entlokweni yesakhelo. Ifomathi iboniswe ngetheyibhile engasezantsi:
Lilonke, kukho iintlobo ezi-6 zeebhayithi zolawulo. Ezintathu zokuqala zisetyenziselwa iifreyimu eziqhelekileyo ezinedatha ye-EZSP, kuquka i-DATA, i-ACK kunye ne-NAK. Ezintathu zokugqibela zisetyenziswa ngaphandle kwedatha eqhelekileyo ye-EZSP, kuquka i-RST, i-RSACK kunye ne-ERROR.
Ifomathi ye-RST, i-RSACK kunye ne-ERROR ichazwe kwicandelo 3.1 ukuya ku-3.3.
2.4. Bala i-CRC
I-CRC ye-16-bit ibalwa kwii-byte ukusuka kwi-control byte ukuya ekupheleni kwedatha. I-CRCCCITT eqhelekileyo (g(x) = x16 + x12 + x5 + 1) iqaliswa kwi-0xFFFF. Eyona byte ibalulekileyo iphambi kwe-least implicit byte (big-endian mode).
2.5. Ukuzaliswa kweByte
Njengoko kuchaziwe kwicandelo 4.2 le-UG101, kukho amaxabiso e-byte agciniweyo asetyenziselwa injongo ekhethekileyo. La maxabiso angafumaneka kule theyibhile ilandelayo:
Xa la maxabiso ebonakala kwisakhelo, kuya kwenziwa unyango olukhethekileyo kwidatha. – Faka i-escape byte 0x7D phambi kwe-reserved byte – Buyisela i-bit5 yaloo byte ireserved
Ngezantsi kukho imizekelo yale algorithm:
2.6. Yongeza iflegi yokuphela
Inyathelo lokugqibela kukongeza iflegi yokugqibela engu-0x7E ekupheleni kwefreyimu. Emva koko, idatha ingathunyelwa kwizibuko le-UART.
3. Inkqubo yokususa iifreyimu
Xa idatha ifunyenwe kwi-UART, kufuneka senze amanyathelo angasemva ukuze siyiguqule.
4. Iingxelo
Ixesha lokuthumela: Feb-08-2022








