Аутор: ТорцхИоТБоотЦамп
Линк: хттпс://зхуанлан.зхиху.цом/п/339700391
Фром:Куора
1. Увод
Силицон Лабс је понудио хост+НЦП решење за Зигбее гатеваи дизајн. У овој архитектури, домаћин може да комуницира са НЦП-ом преко УАРТ или СПИ интерфејса. Најчешће се користи УАРТ јер је много једноставнији од СПИ.
Силицон Лабс је такође обезбедио пример пројекта за програм домаћина, који је примерЗ3ГатеваиХост
. Узорак ради на систему сличном Уник-у. Неки корисници ће можда желети узорак хоста који може да ради на РТОС-у, али нажалост, за сада не постоји узорак хоста заснован на РТОС-у. Корисници треба да развију сопствени хост програм заснован на РТОС-у.
Важно је разумети УАРТ протокол мрежног пролаза пре него што развијете прилагођени хост програм. И за НЦП заснован на УАРТ-у и на НЦП базиран на СПИ, домаћин користи ЕЗСП протокол за комуникацију са НЦП-ом.ЕЗСПје скраћеница заЕмберЗнет серијски протокол, а дефинисан је уУГ100. За НЦП заснован на УАРТ-у, имплементиран је протокол нижег слоја за поуздан пренос ЕЗСП података преко УАРТ-а, то јеАСХпротокол, скраћеница одАсинхрони серијски хост. За више детаља о АСХ-у, погледајтеУГ101иУГ115.
Однос између ЕЗСП и АСХ може се илустровати следећим дијаграмом:
Формат података ЕЗСП и АСХ протокола може се илустровати следећим дијаграмом:
На овој страници ћемо представити процес уоквиривања УАРТ података и неке кључне оквире који се често користе у Зигбее гатеваи-у.
2. Уоквиривање
Општи процес уоквиривања може се илустровати следећим графиконом:
У овом графикону, подаци означавају оквир ЕЗСП. Генерално, процеси кадрирања су: |Не|Корак|Референца|
|:-|:-|:-|
|1|Попуните ЕЗСП оквир|УГ100|
|2|Рандомизација података|Одељак 4.3 од УГ101|
|3|Додајте контролни бајт|Цхап2 и Цхап3 од УГ101|
|4|Израчунајте ЦРЦ|Одељак 2.3 од УГ101|
|5|Бите Стуффинг|Сецтион 4.2 оф УГ101|
|6|Додај ознаку за крај|Одељак 2.4 од УГ101|
2.1. Попуните ЕЗСП оквир
Формат ЕЗСП оквира је илустрован у Поглављу 3 УГ100.
Обратите пажњу да се овај формат може променити када се СДК надогради. Када се формат промени, даћемо му нови број верзије. Најновија верзија ЕЗСП-а је 8 када је овај чланак написан (ЕмберЗнет 6.8).
Пошто формат оквира ЕЗСП може да се разликује између различитих верзија, постоји обавезан захтев да домаћин и НЦПМУСТраде са истом ЕЗСП верзијом. У супротном, не могу да комуницирају како се очекује.
Да би се то постигло, прва команда између хоста и НЦП-а мора бити команда верзија. Другим речима, домаћин мора да преузме ЕЗСП верзију НЦП-а пре било какве друге комуникације. Ако се ЕЗСП верзија разликује од ЕЗСП верзије на страни домаћина, комуникација мора бити прекинута.
Имплицитни захтев иза овога је да формат команде верзије можеНИКАД СЕ НЕ МЕЊАТИ. Формат команде верзије ЕЗСП је као у наставку:
链接:хттпс://зхуанлан.зхиху.цом/п/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明傂
2.2. Дата Рандомизатион
Детаљан процес рандомизације описан је у одељку 4.3 УГ101. Цео ЕЗСП оквир ће бити рандомизован. Насумична селекција је да искључи-ИЛИ ЕЗСП оквир и псеудо-случајну секвенцу.
Испод је алгоритам генерисања псеудо-случајног низа.
- ранд0 = 0×42
- ако је бит 0 ранди 0, ранди+1 = ранди >> 1
- ако је бит 0 ранди 1, ранди+1 = (ранди >> 1) ^ 0кБ8
2.3. Додајте контролни бајт
Контролни бајт је податак од једног бајта и треба га додати у главу оквира. Формат је илустрован у табели испод:
Укупно, постоји 6 врста контролних бајтова. Прва три се користе за уобичајене оквире са ЕЗСП подацима, укључујући ДАТА, АЦК и НАК. Последња три се користе без уобичајених ЕЗСП података, укључујући РСТ, РСТАЦК и ЕРРОР.
Формат РСТ, РСТАЦК и ЕРРОР описани су у одељцима 3.1 до 3.3.
2.4. Израчунајте ЦРЦ
16-битни ЦРЦ се израчунава на бајтовима од контролног бајта до краја података. Стандардни ЦРЦЦЦИТТ (г(к) = к16 + к12 + к5 + 1) је иницијализован на 0кФФФФ. Најзначајнији бајт претходи најмање значајном бајту (биг-ендиан мод).
2.5. Бите Стуффинг
Као што је описано у одељку 4.2 УГ101, постоје неке резервисане вредности бајтова који се користе за посебне намене. Ове вредности се могу наћи у следећој табели:
Када се ове вредности појаве у оквиру, подаци ће се посебно третирати. – Уметните излазни бајт 0к7Д испред резервисаног бајта – Обрните бит 5 тог резервисаног бајта
Испод су неки примери овог алгоритма:
2.6. Додајте заставу за крај
Последњи корак је додавање крајње заставице 0к7Е на крај оквира. Након тога, подаци се могу послати на УАРТ порт.
3. Процес де-фраминга
Када се подаци примају од УАРТ-а, само треба да урадимо обрнуте кораке да бисмо их декодирали.
4. Референце
Време поста: Феб-08-2022