Umwanditsi: TorchIoTBotCamp
Ihuza : https: //zhuanlan.zhihu.com/p/339700391
Kuva kuri: Quora
1. Intangiriro
Silicon Labs yatanze igisubizo cya host + NCP ku gishushanyo cya Zigbee gateway. Muri ubu buryo, host ishobora kuvugana na NCP binyuze kuri interface ya UART cyangwa SPI. Akenshi, UART ikoreshwa kuko yoroshye cyane kurusha SPI.
Silicon Labs yanatanze umushinga w'icyitegererezo kuri gahunda yakira abantu, ari wo rugeroZ3GatewayHost. Icyitegererezo gikoresha sisitemu isa na Unix. Hari abakiriya bashobora gushaka icyitegererezo cya host gishobora gukoreshwa kuri RTOS, ariko ikibabaje ni uko nta cyitegererezo cya host gishingiye kuri RTOS gihari muri iki gihe. Abakoresha bagomba gukora porogaramu yabo ya host ishingiye kuri RTOS.
Ni ngombwa gusobanukirwa protocole ya UART gateway mbere yo gutegura porogaramu yihariye ya host. Kuri NCP ishingiye kuri UART na NCP ishingiye kuri SPI, host ikoresha protocole ya EZSP kugira ngo ivugane na NCP.EZSPni ngufi kuriPorotokole y'uruhererekane ya EmberZnet, kandi bisobanurwa muriUG100Kuri NCP ishingiye kuri UART, hashyizweho protocole y'urwego rwo hasi kugira ngo amakuru ya EZSP ajye kuri UART yizewe, niyoISHYAprotocole, ngufi yaIkigo cy'uruhererekane kidahuzaKugira ngo umenye byinshi kuri ASH, rebaUG101naUG115.
Isano iri hagati ya EZSP na ASH ishobora kugaragazwa n'igishushanyo mbonera gikurikira:
Imiterere y'amakuru ya EZSP na protocole ya ASH irashobora kugaragazwa n'igishushanyo gikurikira:
Muri uru rupapuro, tuzagaragaza inzira yo gushyira amakuru ya UART mu buryo bwa frame hamwe n'ama frame amwe n'amwe akoreshwa cyane muri Zigbee gateway.
2. Gushushanya inkingi
Uburyo rusange bwo gushyira mu bikorwa igishushanyo mbonera bushobora kugaragazwa n'imbonerahamwe ikurikira:
Muri iyi mbonerahamwe, amakuru asobanura imiterere ya EZSP. Muri rusange, inzira zo gushyira imiterere ni izi: |Oya|Intambwe|Icyitonderwa|
|:-|:-|:-|
|1|Uzuza Frame ya EZSP|UG100|
| 2 | Guhindura amakuru ku buryo butaziguye | Igice cya 4.3 cya UG101 |
|3|Ongeramo Control Byte|Igice cya 2 n'Igice cya 3 cya UG101|
|4|Bara CRC|Igice cya 2.3 cya UG101|
|5 | Gushyiramo Byte | Igice cya 4.2 cya UG101 |
|6|Ongeramo Ibendera ry'Imperuka|Igice cya 2.4 cya UG101|
2.1. Uzuza Frame ya EZSP
Imiterere ya frame ya EZSP igaragara mu Gice cya 3 cya UG100.
Witondere ko iyi format ishobora guhinduka iyo SDK ivuguruye. Iyo format ihindutse, tuzayiha nimero nshya ya verisiyo. Nomero ya verisiyo ya EZSP iheruka ni 8 iyo iyi nkuru yanditse (EmberZnet 6.8).
Kubera ko imiterere ya frame ya EZSP ishobora gutandukana hagati ya verisiyo zitandukanye, hari itegeko risabwa ko igikoresho cyakira amakuru (host) na NCPNGOMBAbakorana na verisiyo imwe ya EZSP. Bitabaye ibyo, ntibashobora kuvugana nk'uko byari byitezwe.
Kugira ngo ibyo bigerweho, itegeko rya mbere hagati ya host na NCP rigomba kuba itegeko rya verisiyo. Mu yandi magambo, host igomba kugarura verisiyo ya EZSP ya NCP mbere y'andi makuru. Niba verisiyo ya EZSP itandukanye na verisiyo ya EZSP yo ku ruhande rwa host, itumanaho rigomba gukurwaho.
Igisabwa kidasobanutse inyuma y'ibi ni uko imiterere y'itegeko rya verisiyo ishoboraNTUGAHINDUKE. Imiterere y'itegeko rya verisiyo ya EZSP imeze itya:
链接: https: //zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.2. Guhindura amakuru mu buryo butaziguye
Uburyo burambuye bwo gukora isesengura ry’amakuru busobanurwa mu gika cya 4.3 cya UG101. Ishusho yose ya EZSP izakorwa ku buryo butaziguye. Isesengura ry’amakuru rigomba kuba iry’umwihariko cyangwa iry’icyitegererezo cya EZSP n’uruhererekane rw’amakuru atari yo.
Hasi hari uburyo bwo gukora urukurikirane rw'ibintu bitateguwe.
- rand0 = 0×42
- niba bit 0 ya randi ari 0, randi+1 = randi >> 1
- niba bit 0 ya randi ari 1, randi+1 = (randi >> 1) ^ 0xB8
2.3. Ongeraho Control Byte
Umuyoboro wa "control byte" ni amakuru ya "one byte", kandi agomba kongerwa ku mutwe w'ishusho. Imiterere igaragazwa n'imbonerahamwe iri hepfo:
Muri rusange, hari ubwoko butandatu bwa byte zo kugenzura. Butatu bwa mbere bukoreshwa ku maframe asanzwe afite amakuru ya EZSP, harimo DATA, ACK na NAK. Butatu bwa nyuma bukoreshwa nta makuru asanzwe ya EZSP, harimo RST, RSTACK na ERROR.
Imiterere ya RST, RSTACK na ERROR isobanurwa mu gika cya 3.1 kugeza ku cya 3.3.
2.4. Kubara CRC
CRC ya biti 16 ibarwa kuri byte kuva kuri byte igenzura kugeza ku musozo w'amakuru. CRCCCITT isanzwe (g(x) = x16 + x12 + x5 + 1) itangirwa kuri 0xFFFF. Byte ikomeye cyane ibanziriza byte idafite akamaro cyane (big-endian mode).
2.5. Gushyiramo ibintu mu buryo bwa Byte
Nkuko byasobanuwe mu gika cya 4.2 cya UG101, hari agaciro ka byte karinzwe gakoreshwa mu nyungu zidasanzwe. Utu gaciro turaboneka mu mbonerahamwe ikurikira:
Iyo izi ndangagaciro zigaragaye muri frame, amakuru azakorwa ku buryo bwihariye. – Shyiramo escape byte 0x7D imbere ya biti yabugenewe – Hindura bit5 y'iyo biti yabugenewe
Dore ingero zimwe na zimwe z'iyi algorithm:
2.6. Ongeraho Ibendera ry'Impera
Intambwe ya nyuma ni ukongeraho ibendera rya nyuma rya 0x7E ku mpera y'ishusho. Nyuma y'ibyo, amakuru ashobora koherezwa kuri port ya UART.
3. Uburyo bwo gukuraho fremu
Iyo amakuru yakiriwe na UART, tugomba gukora intambwe zisubira inyuma kugira ngo tuyasobanure.
4. Inyandiko zishingiye ku byo umuntu yandika
Igihe cyo kohereza: Gashyantare-08-2022








