Awtur: TorchIoTBootCamp
Link: https://zhuanlan.zhihu.com/p/339700391
Minn: Quora
1. Introduzzjoni
Silicon Labs offra soluzzjoni ospitanti + NCP għad-disinn tal-gateway Zigbee.F'din l-arkitettura, l-ospitant jista 'jikkomunika mal-NCP permezz ta' interface UART jew SPI.L-aktar komuni, UART jintuża peress li huwa ħafna aktar sempliċi minn SPI.
Silicon Labs ipprovda wkoll proġett ta 'kampjun għall-programm ospitanti, li huwa l-kampjunZ3GatewayHost
.Il-kampjun jaħdem fuq sistema Unix-like.Xi klijenti jistgħu jixtiequ kampjun ospitanti li jista 'jimxi fuq RTOS, iżda sfortunatament, għalissa m'hemm l-ebda kampjun host ibbażat fuq RTOS.L-utenti jeħtieġ li jiżviluppaw il-programm ospitanti tagħhom stess ibbażat fuq RTOS.
Huwa importanti li tifhem il-protokoll tal-portal UART qabel ma tiżviluppa programm ospitanti apposta.Kemm għal NCP ibbażat fuq UART kif ukoll għal NCP ibbażat fuq SPI, l-ospitant juża l-protokoll EZSP biex jikkomunika mal-NCP.EZSPhuwa qasir għalProtokoll tas-serje EmberZnet, u huwa definit fiUG100.Għal NCP ibbażat fuq UART, protokoll ta' saff aktar baxx huwa implimentat biex iġorr id-dejta EZSP b'mod affidabbli fuq UART, dak huwa l-IRMIEDprotokoll, qasir għalOspitanti Serjali Asinkronu.Għal aktar dettalji dwar ASH, jekk jogħġbok irreferi għalUG101uUG115.
Ir-relazzjoni bejn EZSP u ASH tista' tiġi illustrata bid-dijagramma li ġejja:
Il-format tad-dejta tal-EZSP u l-protokoll ASH jistgħu jiġu illustrati bid-dijagramma li ġejja:
F'din il-paġna, se nintroduċu l-proċess ta 'kwadru tad-dejta UART u xi frejms ewlenin li jintużaw ta' spiss fil-gateway ta 'Zigbee.
2. Inkwadru
Il-proċess ġenerali tal-qafas jista’ jiġi illustrat bit-tabella li ġejja:
F'din it-tabella, id-dejta tfisser il-qafas EZSP.B'mod ġenerali, il-proċessi tal-qafas huma: |Le|Pass|Referenza|
|:-|:-|:-|
|1|Imla l-Qafas EZSP|UG100|
|2|Randomizzazzjoni tad-Data|Taqsima 4.3 ta' UG101|
|3|Żid il-Byte ta' Kontroll|Kap2 u Kap3 ta' UG101|
|4|Ikkalkula s-CRC|Taqsima 2.3 ta' UG101|
|5|Byte Mili|Taqsima 4.2 ta' UG101|
|6|Żid il-Bandiera tat-Tmiem|Taqsima 2.4 ta' UG101|
2.1.Imla l-Qafas EZSP
Il-format tal-qafas EZSP huwa illustrat f'Kap 3 ta' UG100.
Oqgħod attent li dan il-format jista' jinbidel meta l-SDK jaġġorna.Meta l-format jinbidel, aħna nagħtuh numru ġdid ta 'verżjoni.L-aħħar numru tal-verżjoni EZSP huwa 8 meta jinkiteb dan l-artikolu (EmberZnet 6.8).
Peress li l-format tal-qafas EZSP jista’ jkun differenti bejn verżjonijiet differenti, hemm rekwiżit obbligatorju li l-host u l-NCPGĦANDUtaħdem bl-istess verżjoni EZSP.Inkella, ma jistgħux jikkomunikaw kif mistenni.
Biex jinkiseb dan, l-ewwel kmand bejn l-ospitant u l-NCP għandu jkun il-kmand tal-verżjoni.Fi kliem ieħor, l-ospitant għandu jirkupra l-verżjoni EZSP tal-NCP qabel kwalunkwe komunikazzjoni oħra.Jekk il-verżjoni EZSP hija differenti mal-verżjoni EZSP tan-naħa ospitanti, il-komunikazzjoni għandha tiġi abortita.
Ir-rekwiżit impliċitu wara dan huwa li l-format tal-kmand tal-verżjoni jista 'QATT TIBDIL.Il-format tal-kmand tal-verżjoni EZSP huwa bħal hawn taħt:
链接: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出出
2.2.Randomization tad-Data
Il-proċess dettaljat ta' randomizzazzjoni huwa deskritt fit-taqsima 4.3 ta' UG101.Il-qafas EZSP kollu se jkun randomised.Ir-randomizzazzjoni hija esklussiva-JEW il-qafas EZSP u sekwenza psewdo-random.
Hawn taħt hemm l-algoritmu tal-ġenerazzjoni tas-sekwenza psewdo-random.
- rand0 = 0×42
- jekk il-bit 0 ta’ randi huwa 0, randi+1 = randi >> 1
- jekk il-bit 0 ta' randi huwa 1, randi+1 = (randi >> 1) ^ 0xB8
2.3.Żid il-Byte tal-Kontroll
Il-byte ta 'kontroll huwa data ta' byte wieħed, u għandu jiżdied mal-kap tal-qafas.Il-format huwa illustrat bit-tabella hawn taħt:
Totalment, hemm 6 tipi ta 'bytes ta' kontroll.L-ewwel tlieta huma użati għal frejms komuni b'dejta EZSP, inklużi DATA, ACK u NAK.L-aħħar tlieta jintużaw mingħajr dejta komuni EZSP, inklużi RST, RSTACK u ERROR.
Il-format tal-RST, RSTACK u ERROR huma deskritti fit-taqsima 3.1 sa 3.3.
2.4.Ikkalkula s-CRC
CRC ta' 16-il bit huwa kkalkulat fuq bytes mill-byte ta' kontroll sat-tmiem tad-data.Il-CRCCCITT standard (g(x) = x16 + x12 + x5 + 1) huwa inizjalizzat għal 0xFFFF.L-aktar byte sinifikanti jippreċedi l-byte l-inqas sinifikanti (mod big-endian).
2.5.Byte Mili
Kif deskritt fit-taqsima 4.2 ta 'UG101, hemm xi valuri ta' byte riżervati użati għal skop speċjali.Dawn il-valuri jistgħu jinstabu fit-tabella li ġejja:
Meta dawn il-valuri jidhru fil-qafas, se jsir trattament speċjali lid-dejta.– Daħħal il-byte ta’ ħarba 0x7D quddiem il-byte riżervat – Aqleb il-bit5 ta’ dak il-byte riżervat
Hawn taħt hawn xi eżempji ta’ dan l-algoritmu:
2.6.Żid il-Bandiera Tmiem
Il-pass finali huwa li żżid il-bandiera tat-tarf 0x7E mat-tarf tal-qafas.Wara dan, id-dejta tista 'tintbagħat lill-port UART.
3. Proċess ta 'de-framing
Meta d-data tiġi riċevuta mill-UART, irridu biss nagħmlu l-passi bil-maqlub biex jiddekowdjaha.
4. Referenzi
Ħin tal-post: Frar-08-2022