Mpanoratra:TorchIoTBootCamp
Rohy: https://zhuanlan.zhihu.com/p/339700391
Avy amin'ny: Quora
1. Fampidirana
Silicon Labs dia nanolotra vahaolana mpampiantrano + NCP ho an'ny famolavolana vavahady Zigbee. Amin'ity maritrano ity, ny mpampiantrano dia afaka mifandray amin'ny NCP amin'ny alàlan'ny interface UART na SPI. Amin'ny ankapobeny, ny UART dia ampiasaina satria tsotra kokoa noho ny SPI.
Ny Silicon Labs dia nanome tetikasa santionany ho an'ny programa mpampiantrano, izay santionanyZ3GatewayHost
. Ny santionany dia mandeha amin'ny rafitra mitovy amin'ny Unix. Ny mpanjifa sasany dia mety maniry santionany mpampiantrano izay afaka mandeha amin'ny RTOS, saingy indrisy fa tsy misy santionany mpampiantrano miorina amin'ny RTOS amin'izao fotoana izao. Ny mpampiasa dia mila mamolavola ny programa mpampiantrano azy manokana mifototra amin'ny RTOS.
Zava-dehibe ny mahatakatra ny protocole vavahady UART alohan'ny hamolavola programa mpampiantrano namboarina. Ho an'ny NCP miorina amin'ny UART sy ny NCP miorina amin'ny SPI, dia mampiasa ny protocole EZSP ny mpampiantrano mba hifandraisana amin'ny NCP.EZSPdia fohy nyEmberZnet Serial Protocol, ary voafaritra ao amin'nyUG100. Ho an'ny NCP miorina amin'ny UART, misy protocole sosona ambany kokoa entina hitondrana ny angona EZSP azo antoka amin'ny UART, izany noASHprotocol, fanafohezana nyAsynchronous Serial Host. Raha mila fanazavana fanampiny momba ny ASH dia jereo nyUG101SYUG115.
Ny fifandraisana misy eo amin'ny EZSP sy ny ASH dia azo aseho amin'ny sary manaraka:
Ny endrika angon-drakitra momba ny EZSP sy ny protocol ASH dia azo aseho amin'ny sary manaraka:
Ato amin'ity pejy ity dia hampiditra ny fizotran'ny fandrafetana ny angon-drakitra UART sy ny sary fototra sasany izay ampiasaina matetika amin'ny vavahadin'i Zigbee.
2. Fandrafetana
Ny fizotry ny fandrafetana ankapobeny dia azo aseho amin'ny tabilao manaraka:
Amin'ity tabilao ity, ny angon-drakitra dia midika hoe frame EZSP. Amin'ny ankapobeny, ny dingana fandrafetana dia: |Tsia|Dingana|Reference|
|:-|:-|:-|
|1|Feno ny Frame EZSP|UG100|
|2|Fizarana 4.3 amin'ny UG101|
|3|Ampio ny Control Byte|Chap2 sy Chap3 of UG101|
|4|Kajy ny CRC|Fizarana 2.3 amin'ny UG101|
|5|Byte Stuffing|Fizarana 4.2 amin'ny UG101|
|6|Ampio ny saina farany|Fizarana 2.4 amin'ny UG101|
2.1. Fenoy ny Frame EZSP
Ny endrika endrika EZSP dia aseho ao amin'ny Toko faha-3 amin'ny UG100.
Tandremo fa mety hiova ity endrika ity rehefa misy fanavaozana ny SDK. Rehefa miova ny endrika dia homenay laharana dikan-teny vaovao. Ny laharana EZSP farany indrindra dia 8 rehefa nosoratana ity lahatsoratra ity (EmberZnet 6.8).
Satria mety tsy mitovy ny endrika EZSP eo amin'ny dikan-teny samihafa, dia misy fepetra takiana amin'ny mpampiantrano sy ny NCP.TSY mAINTSYmiasa miaraka amin'ny dikan-teny EZSP mitovy. Raha tsy izany dia tsy afaka mifandray araka ny efa nampoizina izy ireo.
Mba hahatratrarana izany, ny baiko voalohany eo amin'ny mpampiantrano sy ny NCP dia tsy maintsy ny baiko version. Raha lazaina amin'ny teny hafa, ny mpampiantrano dia tsy maintsy mamerina ny dikan-teny EZSP an'ny NCP alohan'ny fifandraisana hafa. Raha tsy mitovy ny dikan-teny EZSP amin'ny EZSP amin'ny lafiny mpampiantrano, dia tsy maintsy atsahatra ny fifandraisana.
Ny fepetra takiana ao ambadik'izany dia ny mety ho endriky ny baiko versionTSY MIOVA. Ny format baiko version EZSP dia toy ny eto ambany:
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.2. Data Randomization
Ny fizotran'ny randomization amin'ny antsipiriany dia voalaza ao amin'ny fizarana 4.3 amin'ny UG101. Ny frame EZSP manontolo dia ho kisendrasendra. Ny randomization dia ny exclusive-OR ny EZSP frame sy ny pseudo-random sequence.
Ity ambany ity ny algorithm amin'ny famoronana ny pseudo-random sequence.
- rand0 = 0×42
- raha 0 ny bit 0 amin'ny randi, randi+1 = randi >> 1
- raha 1 ny bit 0 amin'ny randi, randi+1 = (randi >> 1) ^ 0xB8
2.3. Ampio ny Control Byte
Ny bita fanaraha-maso dia angona iray byte, ary tokony ampiana amin'ny lohan'ny frame. Ny endrika dia aseho amin'ny tabilao etsy ambany:
Amin'ny ankapobeny, misy karazany 6 amin'ny fanaraha-maso. Ny telo voalohany dia ampiasaina amin'ny frame mahazatra misy angona EZSP, anisan'izany ny DATA, ACK ary NAK. Ny telo farany dia ampiasaina tsy misy angona EZSP mahazatra, anisan'izany ny RST, RSTACK ary ERROR.
Ny endrika RST, RSTACK ary ERROR dia voalaza ao amin'ny fizarana 3.1 hatramin'ny 3.3.
2.4. Kajy ny CRC
Ny CRC 16-bit dia kajy amin'ny bytes manomboka amin'ny byte fanaraha-maso ka hatramin'ny faran'ny angona. Ny CRCCCITT mahazatra (g(x) = x16 + x12 + x5 + 1) dia manomboka amin'ny 0xFFFF. Ny byte manan-danja indrindra dia mialoha ny bitika kely indrindra (mode big-endian).
2.5. Byte Stuffing
Araka ny voalaza ao amin'ny fizarana 4.2 amin'ny UG101, dia misy sanda byte voatokana ampiasaina amin'ny tanjona manokana. Ireto sanda ireto dia azo jerena ao amin'ny tabilao manaraka:
Rehefa miseho eo amin'ny frame ireo soatoavina ireo dia hisy fitsaboana manokana hatao amin'ny angon-drakitra. - Ampidiro eo anoloan'ny byte voatokana ny escape byte 0x7D - Avereno ny bit5 amin'io byte voatokana io
Ireto misy ohatra sasantsasany amin'ity algorithm ity:
2.6. Ampio ny saina farany
Ny dingana farany dia ny manampy ny saina farany 0x7E amin'ny faran'ny frame. Aorian'izany dia azo alefa any amin'ny seranan-tsambo UART ny angon-drakitra.
3. De-framing dingana
Rehefa voaray avy amin'ny UART ny angon-drakitra dia mila manao ny dingana mifamadika fotsiny isika mba hamadika azy io.
4. References
Fotoana fandefasana: Feb-08-2022