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 trid 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. Randomizzazzjoni 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-każwali.
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