Um Zigbee EZSP UART

Höfundur: TorchIoTBootCamp
Tengill: https://zhuanlan.zhihu.com/p/339700391
Frá: Quora

1. Inngangur

Silicon Labs hefur boðið upp á lausn með gestgjafa og NCP fyrir hönnun Zigbee gáttarinnar. Í þessari arkitektúr getur gestgjafinn átt samskipti við NCP í gegnum UART eða SPI tengi. Algengast er að nota UART þar sem það er mun einfaldara en SPI.

Silicon Labs hefur einnig útvegað sýnishorn af verkefni fyrir hýsingarforritið, sem er sýnishorniðZ3GatewayHostSýnishornið keyrir á Unix-líku kerfi. Sumir viðskiptavinir gætu viljað hýsingardæmi sem getur keyrt á RTOS, en því miður er ekkert RTOS-byggt hýsingardæmi í bili. Notendur þurfa að þróa sitt eigið hýsingarforrit byggt á RTOS.

Það er mikilvægt að skilja UART gáttarsamskiptareglurnar áður en sérsniðið hýsingarforrit er þróað. Fyrir bæði UART-byggðan NCP og SPI-byggðan NCP notar hýsingaraðilinn EZSP samskiptareglurnar til að eiga samskipti við NCP.EZSPer stytting fyrirEmberZnet raðnúmerasamskiptareglur, og það er skilgreint íUG100Fyrir UART-byggða NCP er neðri lags samskiptareglur útfærðar til að flytja EZSP gögn áreiðanlega yfir UART, það erASKAsamskiptareglur, skammstöfun fyrirÓsamstilltur raðgestgjafiNánari upplýsingar um ASH er að finna áUG101ogUG115.

Tengslin milli EZSP og ASH má sjá með eftirfarandi skýringarmynd:

1

Gagnasnið EZSP og ASH samskiptareglunnar má sjá með eftirfarandi skýringarmynd:

2

Á þessari síðu munum við kynna ferlið við að ramma UART gögnin og nokkra lykilramma sem eru oft notaðir í Zigbee gátt.

2. Innramma

Almennt rammaferli má lýsa með eftirfarandi töflu:

3

Í þessari töflu þýða gögnin EZSP rammann. Almennt eru rammaferlin: |Nei|Skref|Tilvísun|

|:-|:-|:-|

|1|Fyllið EZSP rammann|UG100|

|2|Slembival gagna|Kafli 4.3 í UG101|

|3|Bæta við stjórnbæti|Kafli 2 og kafli 3 í UG101|

|4|Reiknið út CRC|Kafli 2.3 í UG101|

|5|Bætafylling|Kafli 4.2 í UG101|

|6|Bæta við lokamerki|Kafli 2.4 í UG101|

2.1. Fyllið EZSP rammann

Rammasniðið fyrir EZSP er sýnt í 3. kafla í UG100.

4

Athugið að þetta snið gæti breyst þegar SDK uppfærist. Þegar sniðið breytist munum við gefa því nýtt útgáfunúmer. Nýjasta EZSP útgáfan er 8 þegar þessi grein er skrifuð (EmberZnet 6.8).

Þar sem EZSP rammaformið getur verið mismunandi eftir útgáfum, er nauðsynlegt að hýsillinn og NCPVERÐURvirka með sömu EZSP útgáfu. Annars geta þeir ekki átt samskipti eins og búist var við.

Til að ná því verður fyrsta skipunin milli hýsilsins og NCP að vera útgáfuskipunin. Með öðrum orðum, hýsilinn verður að sækja EZSP útgáfuna af NCP áður en önnur samskipti eiga sér stað. Ef EZSP útgáfan er frábrugðin EZSP útgáfu hýsilsins verður að hætta samskiptunum.

Óbeina krafan á bak við þetta er að snið útgáfuskipunarinnar getiALDREI BREYTASkipunarsnið EZSP útgáfunnar er eins og hér að neðan:

5

Útskýringar á breytureitnum og sniði útgáfusvarsins er að finna í 4. kafla í UG100. Breytureiturinn er EZSP útgáfan af hýsingarforritinu. Þegar þessi grein er skrifuð er hún 8.
7
Höfundur: TorchIoTBootCamp
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注昄凂

2.2. Slembival gagna

Ítarlegt slembivalsferli er lýst í kafla 4.3 í UG101. Allur EZSP ramminn verður slembiraðaður. Slembivalið er til að útiloka EÐA EZSP rammann og sýndarslembiraðaða röð.

Hér að neðan er reiknirit til að búa til sýndar-handahófskennda röð.

  • rand0 = 0×42
  • Ef biti 0 í randi er 0, þá er randi+1 = randi >> 1
  • Ef biti 0 í randi er 1, þá er randi+1 = (randi >> 1) ^ 0xB8

2.3. Bæta við stjórnbæti

Stýribætið er eins bætis gögn og ætti að bæta því við haus rammans. Sniðið er sýnt með töflunni hér að neðan:

6

Það eru sex gerðir af stjórnbætum. Fyrstu þrír eru notaðir fyrir algengar ramma með EZSP gögnum, þar á meðal DATA, ACK og NAK. Síðustu þrír eru notaðir án algengra EZSP gagna, þar á meðal RST, RSTACK og ERROR.

Snið RST, RSTACK og ERROR er lýst í köflum 3.1 til 3.3.

2.4. Reiknaðu CRC

16-bita CRC er reiknað út frá bætum frá stjórnbæti til enda gagnanna. Staðlað CRCCCITT (g(x) = x16 + x12 + x5 + 1) er frumstillt sem 0xFFFF. Marktækasti bætinn kemur á undan þeim minnst marktæka bæti (big-endian ham).

2.5. Bætifylling

Eins og lýst er í kafla 4.2 í UG101, eru nokkur frátekin bætigildi notuð í sérstökum tilgangi. Þessi gildi má finna í eftirfarandi töflu:

7

Þegar þessi gildi birtast í rammanum verður sérstök meðferð gerð á gögnunum. – Setjið útgöngubætið 0x7D fyrir framan frátekna bætið – Snúið við bit5 þess frátekna bætis

Hér að neðan eru nokkur dæmi um þennan reiknirit:

8

2.6. Bæta við lokamerkinu

Síðasta skrefið er að bæta við endamerkinu 0x7E í lok rammans. Eftir það er hægt að senda gögnin á UART tengið.

3. Aðferð til að fjarlægja ramma

Þegar gögn berast frá UART þurfum við bara að gera öfug skref til að afkóða þau.

4. Heimildir


Birtingartími: 8. febrúar 2022
WhatsApp spjall á netinu!