Автор : TorchIoTBootCamp
Ссылка : https: //zhuanlan.zhihu.com/p/339700391
: Quoraдан
1. Кереш сүз
Кремний лабораториясе Zigbee шлюз дизайны өчен хуҗа + NCP чишелешен тәкъдим итте. Бу архитектурада хуҗа NCP белән UART яки SPI интерфейсы аша аралаша ала. Иң еш, UART SPI белән чагыштырганда гадирәк булганга кулланыла.
Кремний лабораториясе шулай ук алып баручы программа өчен үрнәк проект тәкъдим итте, ул үрнәкZ3GatewayHost
. Ampleрнәк Уникска охшаган системада эшли. Кайбер клиентлар хост-үрнәк алырга телиләр, алар РТОСта эшли ала, ләкин, кызганычка каршы, хәзерге вакытта RTOS нигезендә хуҗа үрнәге юк. Кулланучыларга РТОС нигезендә үзләренең хост программасын эшләргә кирәк.
Customзенчәлекле хост программасын эшләгәнче, UART шлюз протоколын аңлау мөһим. UART нигезендәге NCP һәм SPI нигезендә NCP өчен, хуҗа EZSP протоколын NCP белән аралашу өчен куллана.EZSPөчен кыскаEmberZnet Серия Протоколы, һәм ул билгеләнгәнUG100. UART нигезендәге NCP өчен, EZSP мәгълүматларын UART өстендә ышанычлы йөртү өчен түбән катлам протоколы тормышка ашырыла, буАШпротокол, кыскаАсинхрон серияле хуҗа. ASH турында тулырак мәгълүмат өчен зинһарUG101һәмUG115.
EZSP һәм ASH арасындагы бәйләнешне түбәндәге схемада күрсәтергә мөмкин:
EZSP һәм ASH протоколының мәгълүмат форматын түбәндәге схема белән күрсәтергә мөмкин:
Бу биттә без UART мәгълүматларын һәм Zigbee шлюзында еш кулланыла торган кайбер төп рамкаларны ясау процессы белән таныштырырбыз.
2. Рамка
Гомуми кадр процессын түбәндәге диаграмма белән күрсәтергә мөмкин:
Бу диаграммада мәгълүмат EZSP рамкасын аңлата. Гомумән, рамминг процесслары: | | к | Адым | Белешмә |
|: - |: - |: - |
| 1 | EZSP рамкасын тутырыгыз | UG100 |
| 2 | Мәгълүматны ранимизацияләү | UG101 4.3 бүлеге |
| 3 | Контроль байтаны өстәргә | 2 нче бүлек һәм UG101 |
| 4 | CRC-ны исәпләгез | UG101-ның 2.3 бүлеге |
| 5 | Байт тутыру | UG101 4.2 бүлеге |
| 6 | Ахыр флагны өстәгез | UG101 2.4 бүлеге |
2.1. EZSP рамкасын тутырыгыз
EZSP кадр форматы UG100 3 бүлегендә күрсәтелгән.
SDK яңартканда бу формат үзгәрергә мөмкин. Формат үзгәргәч, без аңа яңа версия номерын бирербез. Соңгы EZSP версия саны - бу мәкалә язылганда 8 (EmberZnet 6.8).
EZSP кадр форматы төрле версияләр арасында төрле булырга мөмкин, шуңа күрә хуҗа һәм NCP мәҗбүри таләп барМӨTИМшул ук EZSP версиясе белән эш. Otherwiseгыйсә, алар көтелгәнчә аралаша алмыйлар.
Бу максатка ирешү өчен, хуҗа һәм NCP арасында беренче боерык версия командасы булырга тиеш. Башка сүзләр белән әйткәндә, хуҗа башка элемтә алдыннан NCP EZSP версиясен алырга тиеш. Әгәр EZSP версиясе хуҗаның EZSP версиясе белән аерылып торса, элемтә туктатылырга тиеш.
Моның артында тулы таләп - версия боерыгы форматыБеркайчан да үзгәрмәгез. EZSP версиясе боерыгы түбәндәгечә:
链接: https: //zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.2. Мәгълүматларны рандиальләштерү
Рандиальләштерү процессы UG101ның 4.3 бүлегендә тасвирланган. Бөтен EZSP рамкасы раномизацияләнәчәк. Рандализация - эксклюзив-Я EZSP рамкасы һәм псевдо-очраклы эзлеклелек.
Түбәндә псевдо-очраклы эзлеклелек тудыру алгоритмы китерелгән.
- rand0 = 0 × 42
- 0 ранди 0 булса, ранди + 1 = ранди >> 1
- 0 ранди бит 1 булса, ранди + 1 = (ранди >> 1) ^ 0xB8
2.3. Контроль байтаны өстәгез
Контроль байт - бер байт мәгълүмат, һәм аны рам башына өстәргә кирәк. Формат түбәндәге таблицада күрсәтелгән:
Гомумән алганда, 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. Байт
UG101-ның 4.2 бүлегендә күрсәтелгәнчә, махсус максатта кулланылган кайбер сакланган байт кыйммәтләре бар. Бу кыйммәтләрне түбәндәге таблицада табарга мөмкин:
Бу кыйммәтләр рамкада күренгәч, мәгълүматларга махсус дәвалау ясалачак. - 0x7D кача торган байтаны сакланган байт алдына куегыз - сакланган байтның бит5ен кире борыгыз.
Түбәндә бу алгоритмның кайбер мисаллары китерелгән:
2.6. Ахыр флагын өстәгез
Соңгы адым - флагны 0x7E кадр ахырына өстәү. Аннан соң, мәгълүмат UART портына җибәрелергә мөмкин.
3. Де-рамка процессы
УАРТтан мәгълүмат алгач, без аны декодлау өчен кире адымнар ясарга тиеш.
4. Белешмәләр
Пост вакыты: Февраль-08-2022