Пра Zigbee EZSP UART

Аўтар: TorchIoTBootCamp
Спасылка: https://zhuanlan.zhihu.com/p/339700391
Ад: Quora

1. Увядзенне

Silicon Labs прапанавала рашэнне host+NCP для дызайну шлюза Zigbee.У гэтай архітэктуры хост можа звязвацца з NCP праз інтэрфейс UART або SPI.Часцей за ўсё выкарыстоўваецца UART, бо ён значна прасцейшы за SPI.

Silicon Labs таксама прадставіла ўзор праекта для хост-праграмы, які з'яўляецца ўзорамZ3GatewayHost.Прыклад працуе на Unix-падобнай сістэме.Некаторым кліентам можа спатрэбіцца ўзор хаста, які можа працаваць на АСРВ, але, на жаль, у дадзены момант няма ўзору хаста на аснове АСРВ.Карыстальнікам неабходна распрацаваць уласную хост-праграму на аснове АСРВ.

Важна разумець пратакол шлюза UART перад распрацоўкай наладжанай хост-праграмы.Як для NCP на аснове UART, так і для NCP на аснове SPI хост выкарыстоўвае пратакол EZSP для сувязі з NCP.ЭЗСПгэта скарачэнне адПаслядоўны пратакол EmberZnet, і гэта вызначана ўUG100.Для NCP на аснове UART рэалізаваны пратакол ніжняга ўзроўню для надзейнай перадачы дадзеных EZSP праз UART, гэтаЯШЭНЬпратакол, скарачэнне адАсінхронны паслядоўны хост.Для атрымання дадатковай інфармацыі аб ASH, калі ласка, звярніцеся даUG101іUG115.

Сувязь паміж EZSP і ASH можна праілюстраваць наступнай дыяграмай:

1

Фармат дадзеных пратаколу EZSP і ASH можа быць праілюстраваны наступнай дыяграмай:

2

На гэтай старонцы мы прадставім працэс кадравання даных UART і некаторыя ключавыя кадры, якія часта выкарыстоўваюцца ў шлюзе Zigbee.

2. Апраўленне

Агульны працэс апраўлення можа быць праілюстраваны наступнай дыяграмай:

3

У гэтай дыяграме дадзеныя азначаюць кадр EZSP.Увогуле, працэсы кадравання наступныя: |Няма|Крок|Ссылка|

|:-|:-|:-|

|1|Запоўніце раму EZSP|UG100|

|2|Рандомізацыя даных|Раздзел 4.3 UG101|

|3|Дадаць кантрольны байт|Chap2 і Chap3 UG101|

|4|Разлік CRC|Раздзел 2.3 UG101|

|5|Напаўненне байтамі|Раздзел 4.2 UG101|

|6|Дадайце канчатковы сцяг|Раздзел 2.4 UG101|

2.1.Запоўніце раму EZSP

Фармат кадра EZSP праілюстраваны ў раздзеле 3 UG100.

4

Звярніце ўвагу, што гэты фармат можа змяніцца пры абнаўленні SDK.Калі фармат зменіцца, мы дамо яму новы нумар версіі.Апошняя версія EZSP на момант напісання гэтага артыкула - 8 (EmberZnet 6.8).

Паколькі фармат кадра EZSP можа адрознівацца ў розных версіях, існуе абавязковае патрабаванне, каб хост і NCPАБАВЯЗКОВАпрацаваць з той жа версіяй EZSP.У адваротным выпадку яны не змогуць мець зносіны, як чакалася.

Каб дасягнуць гэтага, першай камандай паміж хостам і NCP павінна быць каманда версіі.Іншымі словамі, хост павінен атрымаць версію EZSP NCP перад любой іншай камунікацыяй.Калі версія EZSP адрозніваецца ад версіі EZSP хоста, сувязь павінна быць спынена.

Няяўнае патрабаванне, якое стаіць за гэтым, заключаецца ў тым, што фармат каманды версіі можаНІКОЛІ НЕ ЗМЕНІЦЦА.Фармат каманды версіі EZSP такі:

5

Тлумачэнні поля параметраў і фармату адказу версіі можна знайсці ў раздзеле 4 UG100.Поле параметра - гэта версія хост-праграмы EZSP.Калі гэты артыкул напісаны, гэта 8.
7
作者: TorchIoTBootCamp
链接: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2.2.Рандомізацыя даных

Падрабязны працэс рандомізацыі апісаны ў раздзеле 4.3 UG101.Увесь кадр EZSP будзе рандомізаваны.Рандамізацыя заключаецца ў эксклюзіўным АБО кадра EZSP і псеўдавыпадковай паслядоўнасці.

Ніжэй прыведзены алгарытм генерацыі псеўдавыпадковай паслядоўнасці.

  • rand0 = 0×42
  • калі біт 0 рандзі роўны 0, рандзі+1 = рандзі >> 1
  • калі біт 0 рандзі роўны 1, рандзі+1 = (рандзі >> 1) ^ 0xB8

2.3.Дадайце кантрольны байт

Кантрольны байт - гэта аднабайтавыя даныя, і яго трэба дадаць у пачатак кадра.Фармат ілюструецца табліцай ніжэй:

6

Усяго існуе 6 відаў кантрольных байтаў.Першыя тры выкарыстоўваюцца для агульных кадраў з дадзенымі EZSP, уключаючы DATA, ACK і NAK.Апошнія тры выкарыстоўваюцца без агульных даных EZSP, уключаючы RST, RSTACK і ERROR.

Фармат RST, RSTACK і ERROR апісаны ў раздзелах 3.1 - 3.3.

2.4.Разлічыце CRC

16-бітны CRC разлічваецца па байтах ад кантрольнага байта да канца даных.Стандартны CRCCCITT (g(x) = x16 + x12 + x5 + 1) ініцыялізуецца ў 0xFFFF.Самы значны байт папярэднічае малодшаму байту (рэжым старшага парадку).

2.5.Байт Начынне

Як апісана ў раздзеле 4.2 UG101, ёсць некаторыя зарэзерваваныя значэнні байтаў, якія выкарыстоўваюцца для спецыяльных мэтаў.Гэтыя значэнні можна знайсці ў наступнай табліцы:

7

Калі гэтыя значэнні з'явяцца ў кадры, да дадзеных будзе зроблена спецыяльная апрацоўка.– Устаўце экраніруючы байт 0x7D перад зарэзерваваным байтам – Змяніце біт 5 гэтага зарэзерваванага байта.

Ніжэй прыведзены некаторыя прыклады гэтага алгарытму:

8

2.6.Дадайце канчатковы сцяг

Апошні крок - дадаць сцяг канца 0x7E у канец кадра.Пасля гэтага дадзеныя можна адпраўляць на порт UART.

3. Працэс дэфреймінг

Калі дадзеныя атрыманы з UART, нам проста трэба зрабіць адваротныя крокі, каб дэкадаваць іх.

4. Спасылкі


Час публікацыі: 8 лютага 2022 г
Інтэрнэт-чат WhatsApp!