Zigbee EZSP UART жөнүндө

Author: TorchIoTBootCamp
Шилтеме: https://zhuanlan.zhihu.com/p/339700391
From: Quora

1. Киришүү

Silicon Labs Zigbee шлюз дизайны үчүн хост + NCP чечимин сунуш кылды.Бул архитектурада хост NCP менен UART же SPI интерфейси аркылуу байланыша алат.Көбүнчө, UART SPIге караганда бир топ жөнөкөй болгондуктан колдонулат.

Silicon Labs ошондой эле үлгү болуп саналат кабыл алуучу программасы үчүн үлгү долбоорун бердиZ3GatewayHost.Үлгү Unix сыяктуу системада иштейт.Кээ бир кардарлар RTOSда иштей турган хост үлгүсүн каалашы мүмкүн, бирок, тилекке каршы, азырынча RTOS негизиндеги хост үлгүсү жок.Колдонуучулар RTOS негизинде өздөрүнүн хост программасын иштеп чыгышы керек.

Ыңгайлаштырылган хост программасын иштеп чыгуудан мурун UART шлюз протоколун түшүнүү маанилүү.UART негизиндеги NCP жана SPI негизиндеги NCP үчүн, хост NCP менен байланышуу үчүн EZSP протоколун колдонот.EZSPүчүн кыскаEmberZnet сериялык протоколу, жана ал аныкталатUG100.UART негизиндеги NCP үчүн EZSP маалыматтарын UART аркылуу ишенимдүү алып жүрүү үчүн төмөнкү катмар протоколу ишке ашырылат.ASHпротокол, кыскачаАсинхрондук Сериялык хост.ASH жөнүндө көбүрөөк маалымат алуу үчүн, караңызUG101жанаUG115.

EZSP жана ASH ортосундагы байланыш төмөнкү диаграмма менен көрсөтүлүшү мүмкүн:

1

EZSP жана ASH протоколунун маалымат форматын төмөнкү диаграмма менен көрсөтсө болот:

2

Бул баракта биз UART маалыматтарын жана Zigbee шлюзинде көп колдонулган кээ бир негизги рамкаларды түзүү процесси менен тааныштырабыз.

2. Кадр салуу

Жалпы кадр жараянын төмөнкү диаграмма менен көрсөтсө болот:

3

Бул диаграммада маалыматтар EZSP алкагын билдирет.Жалпысынан, кадр процесстери: |No|Step|Reference|

|:-|:-|:-|

|1|EZSP алкагын толтуруңуз|UG100|

|2|Маалыматтарды рандомизациялоо|UG101дин 4.3-бөлүмү|

|3|Контролдук байтты кошуу|UG101|2 жана 3-бөлүмү

|4|БККны эсептөө|UG101|нин 2.3-бөлүмү

|5|Байт толтуруу|UG101дин 4.2-бөлүмү|

|6|Акырткы желекти кошуу|UG101дин 2.4-бөлүмү|

2.1.EZSP алкагын толтуруңуз

EZSP кадр форматы UG100 3-бөлүмүндө сүрөттөлгөн.

4

Көңүл буруңуз, бул формат SDK жаңыртылганда өзгөрүшү мүмкүн.Формат өзгөргөндө, биз ага жаңы версия номерин беребиз.Бул макала жазылганда акыркы EZSP версиясынын номери 8 болуп саналат (EmberZnet 6.8).

EZSP кадр форматы ар кандай версияларда ар кандай болушу мүмкүн болгондуктан, хост жана NCP милдеттүү түрдө талап кылынат.КЕРЕКошол эле EZSP версиясы менен иштөө.Болбосо алар күткөндөй сүйлөшө алышпайт.

Буга жетүү үчүн, хост менен NCP ортосундагы биринчи буйрук версия буйругу болушу керек.Башка сөз менен айтканда, хост башка баарлашуудан мурун NCPтин EZSP версиясын калыбына келтириши керек.Эгерде EZSP версиясы хост тараптын EZSP версиясы менен башкача болсо, байланыш токтотулушу керек.

Мунун артында жашыруун талап - версия буйругунун форматыЭЧ КАЧАН ӨЗГӨРБӨ.EZSP версиясынын буйрук форматы төмөндөгүдөй:

5

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

2.2.Маалыматтарды рандомизациялоо

Детальдуу рандомизация процесси UG101дин 4.3 бөлүмүндө сүрөттөлгөн.Бүт EZSP кадры рандомизацияланат.Рандомизация эксклюзивдүү - ЖЕ EZSP кадрына жана псевдо-кокус ырааттуулукка.

Төмөндө псевдо-кокус ырааттуулукту түзүүнүн алгоритми.

  • rand0 = 0×42
  • эгерде рандинин 0 бити 0 болсо, randi+1 = randi >> 1
  • эгерде рандинин 0 бити 1 болсо, ранди+1 = (ранди >> 1) ^ 0xB8

2.3.Control Byte кошуу

Башкаруу байты бир байт маалымат жана ал кадрдын башына кошулушу керек.Формат төмөнкү таблица менен сүрөттөлгөн:

6

Жалпысынан башкаруу байттарынын 6 түрү бар.Биринчи үчөө DATA, ACK жана NAK сыяктуу EZSP маалыматтары бар жалпы кадрлар үчүн колдонулат.Акыркы үч жалпы 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.Байт толтуруу

UG101 4.2 бөлүмүндө сүрөттөлгөндөй, атайын максатта колдонулган кээ бир сакталган байт маанилери бар.Бул баалуулуктарды төмөнкү таблицадан тапса болот:

7

Бул баалуулуктар кадрда пайда болгондо, маалыматтарга атайын мамиле жасалат.– Запастагы байттын алдына 0x7D качуу байтты кыстарыңыз – Запастагы байттын бит5ин артка кайтарыңыз

Төмөндө бул алгоритмдин кээ бир мисалдары келтирилген:

8

2.6.Аяк белгисин кошуңуз

Акыркы кадам кадрдын аягына 0x7E акыркы желегин кошуу болуп саналат.Андан кийин, маалыматтар UART портуна жөнөтүлүшү мүмкүн.

3. Кадрларды ажыратуу процесси

UARTдан маалыматтар алынганда, биз аны чечмелөө үчүн тескери кадамдарды жасашыбыз керек.

4. Шилтемелер


Посттун убактысы: 08-февраль 2022-жыл
WhatsApp онлайн чат!