Муаллиф: TorchIoTBootCamp
Истинод: https://zhuanlan.zhihu.com/p/339700391
Аз: Quora
1. Муқаддима
Ширкати Silicon Labs барои тарҳрезии дарвозаи Zigbee як ҳалли host+NCP пешниҳод кардааст. Дар ин меъморӣ, хост метавонад бо NCP тавассути интерфейси UART ё SPI муошират кунад. Аксар вақт, UART истифода мешавад, зеро он нисбат ба SPI хеле соддатар аст.
Ширкати Silicon Labs инчунин як лоиҳаи намунавӣ барои барномаи мизбон пешниҳод кардааст, ки ин намуна аст.Z3GatewayHostНамуна дар системаи монанд ба Unix кор мекунад. Баъзе муштариён метавонанд намунаи хостеро талаб кунанд, ки метавонад дар RTOS кор кунад, аммо мутаассифона, дар айни замон намунаи хост дар асоси RTOS вуҷуд надорад. Истифодабарандагон бояд барномаи хостии худро дар асоси RTOS таҳия кунанд.
Пеш аз таҳияи барномаи хости фармоишӣ, фаҳмидани протоколи дарвозаи UART муҳим аст. Ҳам барои NCP-и бар асоси UART ва ҳам барои NCP-и бар асоси SPI, хост протоколи EZSP-ро барои муошират бо NCP истифода мебарад.EZSPкӯтоҳ аст бароиПротоколи силсилавии EmberZnet, ва он дар муайян карда шудаастUG100Барои NCP-и асоси UART, протоколи қабати поёнӣ барои интиқоли боэътимоди маълумоти EZSP тавассути UART татбиқ карда мешавад, ки ин астАшпротокол, мухтасар бароиХости силсилавии асинхронӣБарои маълумоти бештар дар бораи ASH, лутфан баUG101ваUG115.
Робитаи байни EZSP ва ASH-ро бо диаграммаи зерин нишон додан мумкин аст:
Формати додаҳои EZSP ва протоколи ASH-ро бо диаграммаи зерин нишон додан мумкин аст:
Дар ин саҳифа, мо раванди чаҳорчӯба кардани маълумоти UART ва баъзе чаҳорчӯбаҳои калидиро, ки зуд-зуд дар дарвозаи Zigbee истифода мешаванд, муаррифӣ хоҳем кард.
2. Чаҳорчӯбасозӣ
Раванди умумии сохтмони чӯбро бо диаграммаи зерин нишон додан мумкин аст:
Дар ин диаграмма, маълумот маънои чаҳорчӯбаи EZSP-ро дорад. Умуман, равандҳои чаҳорчӯбасозӣ инҳоянд: |Не|Қадами|Истинод|
|:-|:-|:-|
|1|Чаҳорчӯбаи EZSP-ро пур кунед|UG100|
|2|Тасодуфии маълумот|Бахши 4.3-и UG101|
|3|Байти идоракуниро илова кунед|Боби 2 ва Боби 3-и UG101|
|4|Ҳисоб кардани CRC|Қисми 2.3-и UG101|
|5|Пуркунии байтҳо|Қисми 4.2-и UG101|
|6|Илова кардани парчами ниҳоӣ|Қисми 2.4-и UG101|
2.1. Чаҳорчӯбаи EZSP-ро пур кунед
Формати чаҳорчӯбаи EZSP дар боби 3-и UG100 нишон дода шудааст.
Диққат диҳед, ки ин формат ҳангоми навсозии SDK метавонад тағйир ёбад. Вақте ки формат тағйир меёбад, мо ба он рақами версияи нав медиҳем. Рақами охирини версияи EZSP ҳангоми навиштани ин мақола 8 аст (EmberZnet 6.8).
Азбаски формати чаҳорчӯбаи EZSP метавонад байни версияҳои гуногун фарқ кунад, талаботи ҳатмӣ вуҷуд дорад, ки мизбон ва NCPБОЯДбо ҳамон версияи EZSP кор мекунанд. Дар акси ҳол, онҳо наметавонанд он тавре ки интизор мерафт, муошират кунанд.
Барои ноил шудан ба ин, аввалин фармон байни хост ва NCP бояд фармони версия бошад. Ба ибораи дигар, хост бояд пеш аз ҳама гуна муоширати дигар версияи EZSP-и NCP-ро аз нав ҷустуҷӯ кунад. Агар версияи EZSP аз версияи EZSP-и тарафи хост фарқ кунад, муошират бояд қатъ карда шавад.
Талаботи норавшани ин дар он аст, ки формати фармони версия метавонадҲАРГИЗ ТАҒЙИР НАДИҲЕДФормати фармони версияи EZSP чунин аст:
链接: 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 намуди байтҳои идоракунӣ мавҷуданд. Се намуди аввал барои чаҳорчӯбаҳои маъмулӣ бо маълумоти EZSP, аз ҷумла DATA, ACK ва NAK, истифода мешаванд. Се намуди охирин бе маълумоти маъмулии EZSP, аз ҷумла RST, RSTACK ва ERROR, истифода мешаванд.
Формати RST, RSTACK ва ERROR дар бахшҳои 3.1 то 3.3 тавсиф шудаанд.
2.4. CRC-ро ҳисоб кунед
CRC-и 16-битӣ аз рӯи байтҳо аз байтҳои идоракунӣ то охири маълумот ҳисоб карда мешавад. CRCCCITT стандартӣ (g(x) = x16 + x12 + x5 + 1) ба 0xFFFF ибтидо карда мешавад. Байти аз ҳама муҳимтар аз камтарин байт пеш мегузарад (режими калон-эндиан).
2.5 Пуркунии байт
Тавре ки дар бахши 4.2-и UG101 тавсиф шудааст, баъзе арзишҳои байтҳои захирашуда мавҷуданд, ки барои мақсадҳои махсус истифода мешаванд. Ин арзишҳоро дар ҷадвали зерин пайдо кардан мумкин аст:
Вақте ки ин арзишҳо дар фрейм пайдо мешаванд, ба маълумот коркарди махсус анҷом дода мешавад. – Байти фирори 0x7D-ро дар пеши байтҳои захирашуда ворид кунед – Бити 5-и он байтҳои захирашударо баръакс кунед
Дар зер чанд мисоли ин алгоритм оварда шудааст:
2.6. Илова кардани парчами хотима
Қадами ниҳоӣ илова кардани парчами ниҳоӣ 0x7E ба охири чаҳорчӯба аст. Пас аз ин, маълумотро ба порти UART фиристодан мумкин аст.
3. Раванди де-чаҳорчӯбакунӣ
Вақте ки маълумот аз UART гирифта мешавад, мо бояд танҳо қадамҳои баръаксро барои рамзкушоии он анҷом диҳем.
4. Адабиёт
Вақти нашр: 08 феврали соли 2022








