Лого на SILICON LABS

AN451
ИМПЛЕМЕНТАЦИЈА НА СОФТВЕРОТ БЕЗЖИЧЕН M-BUS

Вовед

Оваа белешка за апликација ја опишува имплементацијата на Silicon Labs на Wireless M-Bus со користење на Silicon Labs C8051 MCU и EZRadioPRO®. Безжичниот M-bus е европски стандард за апликации за читање броила што го користат фреквенцискиот опсег од 868 MHz.

Слоеви на магацинот

Безжичниот M-Bus го користи 3-слојниот IEC модел, кој е подмножество на 7-слојниот OSI модел (види Слика 1).

SILICON LABS Безжичен M-BUS имплементација на софтвер AN451Физичкиот (PHY) слој е дефиниран во EN 13757-4. Физичкиот слој дефинира како битовите се кодираат и се пренесуваат, карактеристиките на RF модемот (стапка на чипови, преамбула и збор за синхронизација) и RF параметри (модулација, централна фреквенција и отстапување на фреквенцијата).
Слојот PHY се имплементира со комбинација на хардвер и фирмвер. EZRadioPRO ги извршува сите функции на RF и модем. EZRadioPRO се користи во режим FIFO со управувачот со пакети. Модулот MbusPhy.c обезбедува SPI интерфејс, кодирање/декодирање, блокирање читање/запишување и ракување со пакети и управува со состојбите на трансиверот.
Слојот за врска M-Bus Data е имплементиран во модулот MbusLink.c. Интерфејсот за програмирање на апликации M-Bus се состои од јавни функции кои може да се повикаат од апликацискиот слој во главната нишка. Модулот MbusLink го имплементира и Data Link Layer. Слојот Data link ќе ги форматира и копира податоците од апликацијата TX бафер во MbusPhy TX баферот, додавајќи ги потребните заглавија и CRC.
Самиот слој на апликација не е дел од фирмверот на M-bus. Апликацискиот слој дефинира како широк спектар на податоци треба да се форматираат за пренос. Повеќето броила треба да пренесат само еден или два типа на податоци. Додавањето голема количина на код за сместување на секаков вид податоци на мерачот ќе додаде непотребна шифра и цена на мерачот. Можеби е изводливо да се имплементира библиотека или заглавие file со исцрпна листа на типови на податоци. Сепак, повеќето корисници на мерење знаат точно какви податоци треба да пренесат и можат да се повикаат на стандардот за детали за форматирање. Универзален читач или трагач може да имплементира целосен сет на типови на податоци на апликации на GUI на компјутерот. Поради овие причини, апликацискиот слој се имплементира со користење на прampле апликации за метар и читач.

Потребни стандарди
  1. EN 13757-4
    EN 13757-4
    Систем за комуникација за броила и далечинско отчитување на броила
    Дел 4: Отчитување на безжичен метар
    Читање на радиометар за работа во опсегот SRD од 868 MHz до 870 MHz
  2. EN 13757-3
    Систем за комуникација за броила и далечинско отчитување на броила
    Дел 3: Посветен слој на апликација
  3. IEC 60870-2-1:1992
    Опрема и системи за телеконтрола
    Дел 5: Протоколи за пренос
    Дел 1: Постапка за пренос на врска
  4. IEC 60870-1-1:1990
    Опрема и системи за телеконтрола
    Дел 5: Протоколи за пренос
    Дел 1: Формати на рамка за пренос
Дефиниции
  • М-автобус -M-Bus е жичен стандард за отчитување на броилата во Европа.
  • Безжичен М-автобус— Безжичен M-Bus за апликации за читање броила во Европа.
  • ФИЗ— Физичкиот слој дефинира како битови и бајти на податоци се кодираат и пренесуваат.
  • API-Апликациски програмерски интерфејс.
  • ЛИНК -Слојот за поврзување на податоци дефинира како се пренесуваат блоковите и рамки.
  • CRC -Циклична проверка на вишок.
  • FSK-Копче за менување на фреквенцијата.
  • Чип -Најмалата единица на пренесени податоци. Еден податочен бит е кодиран како повеќе чипови.
  • Модул-Извор на AC код .в file.

M-Bus PHY функционален опис

Преамбула низа

Редоследот на Преамбулата специфицирана со спецификацијата M-bus е цел број наизменични нули и единици. Еден се дефинира како повисока фреквенција, а нула се дефинира како помала фреквенција.
nx (01)
Опциите за преамбула за Si443x се цел број на грицкања што се состои од наизменични нули и нули.
nx (1010)
Преамбулата со дополнителна водечка не би била проблем, но тогаш зборот за синхронизација и носивоста би биле погрешно усогласени за еден бит.
Решението е да се преврти целиот пакет со поставување на битот на моторот во регистарот Modulation Control 2 (0x71). Ова ќе ги преврти преамбулата, синхронизираниот збор и податоците TX/RX. Како последица на тоа, податоците треба да се превртат при пишување на TX податоци или читање на податоците RX. Исто така, зборот за синхронизација се превртува пред да се запише во регистрите за синхронизација на зборот Si443x.

Збор за синхронизација

Зборот за синхронизација што го бара EN-13757-4 е или 18 чипови за режимот S и режимот R или 10 чипови за моделот T. Зборот за синхронизација за Si443x е од 1 до 4 бајти. Меѓутоа, бидејќи на зборот за синхронизација секогаш му претходи преамбулата, последните шест бита од преамбулата може да се сметаат за дел од зборот за синхронизација; така, првиот збор за синхронизација е пополнет со три повторувања на нула проследени со еден. Зборот за синхронизација се надополнува пред да се запише во регистрите Si443x.
Табела 1. Збор за синхронизација за режим S и режим R

EN 13757-4 00 01110110 10010110 бинарни
00 76 96 хексадецимален
подлога со (01) x 3 01010100 01110110 10010110 бинарни
54 76 96 хексадецимален
дополнување 10101011 10001001 01101001 бинарни
AB 89 69 хексадецимален

Табела 2. Збор за синхронизација за режимот Т метар во друг

СИНХИРАЊЕ СИНХИРАЊЕ СИНХИРАЊЕ
ЗБОР ЗБОР ЗБОР
3 2 1
Должина на преамбулата на преносот

Минималната преамбула е наведена за четири различни режими на работа. Прифатливо е да има преамбула подолга од наведеното. Со одземање на шест чипови за преамбулата се добива минималниот број на чипови за преамбулата Si443x. Имплементацијата додава две дополнителни грицкања на преамбулата во сите режими на кратки преамбули за да го подобри откривањето на преамбулата и интероперабилноста. Преамбулата на режимот S со долга преамбула е многу долга; така што се користи минималната преамбула. Должината на преамбулата во грицкањето е запишана во регистарот Должина на преамбулата (0x34). Регистарот за должина на преамбулата ја одредува преамбулата само при преносот. Поставките за минимална спецификација и должина на преамбулата се сумирани во Табела 3.
Табела 3. Должина на преамбулата на преносот

EN-13757-4
минимум
Si443x Преамбула
Поставување
Синхронизирај
збор
Вкупно екстра
nx (01) чипс грицкање чипс чипс чипс чипс
Режим S кратка преамбула 15 30 8 32 6 38 8
Режим S долга преамбула 279 558 138 552 6 558 0
Режим Т (метар-друг) 19 38 10 40 6 46 8
Режим R 39 78 20 80 6 86 8

Минималната преамбула за прием се одредува со регистарот за контрола на откривање преамбула (0x35). По приемот, бројот на битови во синхронизираниот збор мора да се одземе од наведената минимална преамбула за да се одреди употребливата преамбула. Минималното време на смирување на ресиверот е 16-чипови ако е овозможено AFC или 8-чипови ако AFC е оневозможено. Времето на смирување на приемникот исто така се одзема од употребливата преамбула за да се одреди минималната поставка за регистарот за контрола на откривање преамбула.

Веројатноста за лажна преамбула зависи од поставувањето на регистарот за контрола на откривање преамбула. Краткото поставување од 8-чипови може да резултира со откривање на лажна преамбула на секои неколку секунди. Препорачаната поставка од 20 чипови го прави откривањето на лажна преамбула неверојатен настан. Должините на преамбулата за Mode R и Mode SL се доволно долги за да се користи препорачаната поставка.
Има многу мала корист од тоа што преамбулата открива повеќе од 20 чипови.
AFC е оневозможен за Model S со кратка преамбула и Model T. Ова го намалува времето на таложење на приемникот и дозволува подолга поставка за откривање преамбула. Со оневозможен AFC, режимот Т може да ја користи препорачаната поставка од 20 чипови. За Model S се користи поставка од 4 грицкања или 20 чипови со кратка преамбула. Ова ја прави веројатноста за откривање на лажна преамбула малку поголема за овој модел.
Табела 4. Преамбула за откривање

EN-13757-4
минимум
Синхронизирај
збор
употребливи
преамбула
Порамнување на RX Откријте
мин
Si443x Преамбула
Поставување за откривање
nx (01) чипс чипс чипс чипс чипс грицкање чипс
Режим S кратка преамбула 15 30 6 24 8* 16 4 16
Долга преамбула на Model S 279 558 6 552 16 536 5 20
Модел Т (метар-друг) 19 38 6 32 8* 24 5 20
Режим R 39 78 6 72 16 56 5 20
*Забелешка: AFC е оневозможен

Приемникот е конфигуриран да работи со предавател користејќи ја минималната одредена преамбула. Ова осигурува дека ресиверот ќе работи со кој било предавател во согласност со M-bus.
Спецификацијата Wireless M-Bus бара многу долга преамбула за режимот S1 од најмалку 558 чипови. Ова ќе потрае околу 17 ms само за да се пренесе преамбулата. Si443x не бара толку долга преамбула и нема корист од долгата преамбула. Додека долгата преамбула е забележана како изборна за режимот S2, нема причина да се користи долга преамбула со Si443x. Ако е посакувана еднонасочна комуникација, режимот T1 ќе обезбеди пократка преамбула, поголема брзина на пренос на податоци и подолго траење на батеријата. Доколку е потребна двонасочна комуникација со користење на режимот S2, се препорачува кратка преамбула.
Забележете дека прагот за откривање за моделот S со долга преамбула е подолг од бројот на преамбули кои се пренесуваат за моделот S со кратка преамбула. Ова значи дека долгата преамбула Mode S приемник нема да открие преамбула од кратка преамбула Mode S предавател. Ова е неопходно доколку долгата преамбула Режим S приемник треба да добие каква било корист од долгата преамбула.
Имајте предвид дека кратката преамбула Mode S приемник ќе ја открие преамбулата и ќе прима пакети и од кратка преамбула Mode S
предавател и предавател со долга преамбула Mode S; така, општо земено, читачот на мерачот треба да ја користи кратката преамбула Mode S конфигурација на приемникот.

Кодирање/Декодирање

Спецификацијата за безжичен M-bus бара два различни методи за кодирање. Кодирањето Манчестер се користи за режимите S и режимот R. Кодирањето Манчестер се користи и за врската од друг до метар во Моделот Т. Врската од метар до друг модел Т користи 3 од 6 шифрирања.
1. Манчестер шифрирано/декодирање
Кодирањето Манчестер е вообичаено историски во RF системите за да се обезбеди стабилно обновување и следење на часовникот со користење на едноставен и ефтин модем. Сепак, на модерното радио со високи перформанси како Si443x не му е потребно шифрирање Манчестер. Манчестер кодирањето е поддржано првенствено за компатибилност со постоечките стандарди, но стапката на податоци за Si443x е ефективно двојно зголемена кога не се користи кодирањето Манчестер.
Si443x поддржува Манчестер кодирање и декодирање на целиот пакет во хардвер. За жал, зборот за синхронизација не е кодиран во Манчестер. За зборот за синхронизација намерно беше избрана неважечка манчестерска секвенца. Ова го прави кодирањето Манчестер некомпатибилно со повеќето постоечки радија, вклучувајќи го и Si443x. Како последица на тоа, кодирањето и декодирањето на Манчестер мора да ги изврши MCU. Секој бајт на некодирани податоци се состои од осум податочни битови. Користејќи го кодирањето Манчестер, секој податочен бит е кодиран во симбол со два чипови. Бидејќи кодираните податоци мора да бидат запишани на радио FIFO осум чипови одеднаш, едно грицкање податоци се кодира и се запишува на FIFO одеднаш.
Табела 5. Кодирање на Манчестер

податоци Окс12 0x34 бајти
Окс1 0x2 0x3 0x4 грицкање
1 10 11 100 бинарни
чип 10101001 10100110 10100101 10011010 бинарни
ФИФО OxA9 OxA6 OxA5 Ox9A хексадецимален

Секој бајт што треба да се пренесе се пренесува по еден бајт до функцијата за кодирање бајт. Функцијата за кодирање бајт ќе ја повика функцијата за шифрирање на грицкање двапати, прво за најзначајното грицкање, а потоа за најмалку значајното грицкање.
Манчестер кодирањето во софтвер не е тешко. Почнувајќи од најзначајниот бит, еден е кодиран како секвенца на чипови „01“. Нулата е кодирана како секвенца на чипови „10“. Ова може лесно да се постигне со користење на јамка и поместување на два бита за секој симбол. Сепак, побрзо е да се користи едноставна табела за пребарување со 16 записи за секое грицкање. Функцијата encode Manchester nibble шифрира грицкање податоци, а потоа ги запишува на FIFO. Чиповите се превртени пред да се напишат до FIFO за да се земат предвид барањата за превртената преамбула.
При примање, секој бајт во FIFO се состои од осум чипови и се декодира во едно грицкање податоци. Функцијата блок за читање чита по еден бајт од FIFO и ја повикува функцијата за декодирање бајт. Чиповите се превртуваат по читањето од FIFO за да се земат предвид барањата за превртената преамбула. Секој бајт од Манчестер кодирани чипови се декодира во грицкање податоци. Декодираното грицкање се запишува во баферот RX со помош на функцијата за пишување грицкање RX тампон.
Забележете дека и кодираниот и декодирањето се извршуваат едно по едно податочно грицкање во лет. Кодирањето во бафер ќе бара дополнителен бафер двапати поголем од некодираните податоци. Кодирањето и декодирањето е многу побрзо од најбрзата поддржана брзина на податоци (100 k чипови во секунда). Бидејќи Si443x поддржува повеќекратно читање и запишување на FIFO, има мал товар при користење само читање и запишување од еден бајт. Надземните трошоци се околу 10 µs за 100 кодирани чипови. Придобивката е заштеда на RAM меморија од 512 бајти.
2. Три од шест Декодирање на кодирање
Методот за кодирање „Три од шест“ наведен во EN-13757-4 е имплементиран и во фирмверот на MCU. Ова кодирање се користи за режимот Т со голема брзина (100 k чипови во секунда) од метар до друг. Моделот Т обезбедува најкратко време на пренос и најдолго траење на батеријата за безжичен метар.
Секој бајт на податоци што треба да се пренесе е поделен на две грицкања. Најзначајното грицкање прво се кодира и се пренесува. Повторно, ова се имплементира со користење на функцијата за кодирање бајт која двапати ја повикува функцијата за шифрирање на шифрирање.
Секое грицкање податоци е шифрирано во симбол со шест чипови. Низата од симболи со шест чипови мора да биде запишана на FIFO со 8 чипови.
За време на кодирањето, два бајти податоци се кодирани како четири грицкања. Секое грицкање е симбол со 6 чипови. Четири симболи со 6 чипови се собираат како три бајти.
Табела 6. Три од шест кодирање

податоци 0x12 0x34 бајти
Окс1 0x2 0x3 0x4 грицкање
чип 15 16 13 34 октален
1101 1110 1011 11100 бинарни
ФИФО 110100 11100010 11011100 бинарни
0x34 OxE2 OxDC хексадецимален

Во софтверот, кодирањето три од шест се имплементира со користење на три вгнездени функции. Функцијата за кодирање бајт ќе ја повика функцијата за грицкање на кодирање двапати. Функцијата за шифрирање на грицкање користи табела за пребарување за симболот со шест чипови и го запишува симболот на Shift три од шест функции. Оваа функција имплементира регистер за смена од 16 чипови во софтверот. Симболот се запишува на најмалку значајниот бајт од регистарот за поместување. Регистарот двапати се префрла налево. Ова се повторува три пати. Кога целосен бајт е присутен во горниот бајт на регистарот за поместување, тој се превртува и се запишува на FIFO.
Бидејќи секој бајт на податоци е кодиран како еден и пол кодирани бајти, важно е првично да се исчисти регистарот за поместување, така што првиот кодиран бајт е точен. Ако должината на пакетот е непарен број, по кодирањето на сите бајти, сè уште ќе остане едно грицкање во регистарот за поместување. Ова се постапува со поштата како што е објаснето во следниот дел.
Декодирањето на три од шест кодирани е обратна постапка. При декодирање, три кодирани бајти се декодираат во два податочни бајти. Регистарот за поместување на софтверот повторно се користи за собирање бајти од декодирани податоци. За декодирање се користи инверзна табела за пребарување со 64 записи. Ова користи помалку циклуси, но повеќе меморија за кодови. Пребарувањето на табела за пребарување со 16 записи за соодветниот симбол трае значително подолго.
Поштенски
Спецификацијата за безжичен M-bus има специфични барања за поштата или приколката. За сите режими, минимумот е два чипови, а максимумот е осум чипови. Бидејќи минималната атомска единица за FIFO е еден бајт, се користи приколка со 8 чипови за режимите S и режимот R. Поштата на Mode T е осум чипови ако должината на пакетот е парна или четири чипови ако должината на пакетот е непарна. Поштата со четири чипови за непарна должина на пакетот ги задоволува барањата да има најмалку два наизменични чипови.
Табела 7. Должина на поштата

Должина на поштата (чипови)
мин макс Имплементација чип секвенца
Режим С 2 8 8 1010101
Режим Т 2 8 4 (чудно) 101
8 (дури) 1010101
Режим R 2 8 8 1010101
Ракувач со пакети

Ракувачот со пакети на Si443x може да се користи во режим со променлива ширина на пакети или режим со фиксна ширина на пакети. Режимот со променлива ширина на пакетот бара бајт со должина на пакет по зборот за синхронизација и опционални бајти за заглавие. По приемот, радиото ќе го користи бајтот за должина за да го одреди крајот на валиден пакет. При преносот, радиото ќе го вметне полето за должина по бајтите на заглавието.
Полето L за безжичниот протокол M-bus не може да се користи за полето со должина Si443x. Прво, полето L не е вистинската должина на пакетот. Тоа е бројот на бајти за оптоварување на слојот на врската, не вклучувајќи ги бајтите CRC или кодирањето. Второ, самото поле L е кодирано со користење или кодирање Манчестер или кодирање Три од шест за режимот Т метар на друго.
Имплементацијата го користи управувачот на пакети во режим на фиксна ширина на пакети и за пренос и за прием. По преносот, слојот PHY ќе го прочита полето L во баферот за пренос и ќе го пресмета бројот на кодирани бајти, вклучително и поштата. Вкупниот број на кодирани бајти што треба да се пренесат се запишува во регистарот Packet Length (0x3E).
По приемот, првите два кодирани бајти се декодираат, а полето L се запишува во тампонот за примање. Полето L се користи за пресметување на бројот на кодирани бајти што треба да се примат. Бројот на кодирани бајти што треба да се примат потоа се запишува во регистарот Packet Length (0x3E). Поштата е отфрлена.
MCU мора да го дешифрира L-полето, да го пресмета бројот на кодирани бајти и да ја запише вредноста во регистарот Packet Length пред да се прими најкратката можна должина на пакетот. Најкраткото дозволено L-поле за слојот PHY е 9, што дава 12 некодирани бајти. Ова дава 18 кодирани бајти за Model T. Првите два бајта се веќе декодирани. Така, регистарот за должина на пакетот мора да се ажурира за 16-бајти пати со 100 kbps или 1.28 милисекунди. Ова не е проблем за 8051 што работи со 20 MIPS.
Бројот на бајти што треба да се примат не ја вклучува поштата, освен поштата со четири чипови што се користи за пакетите од режим Т со непарна должина на пакетот. Така, на приемникот не му е потребна пошта, освен пакетите со непарна должина на Model T. Оваа пошта е потребна само за да се даде цел број на кодирани бајти. Содржината на поштата е игнорирана; така што, ако поштата не се пренесе, четири чипови на бучава ќе бидат примени и игнорирани. Бидејќи вкупниот број на кодирани бајти е ограничен на 255 (0xFF), имплементацијата го ограничува максималното L-поле за различните режими.
Табела 8. Ограничувања на големината на пакетот

кодирани декодирана М-автобус
бајти бајти L-поле
дек хексадецимален дек хексадецимален дек хексадецимален
Режим С 255 FF 127 7 Ф 110 6E
Режим Т (метар-друг) 255 FF 169 A9 148 94
Режим R 255 FF 127 7 Ф 110 6E

Овие ограничувања вообичаено се многу над типичните случаи на употреба за безжичен метар. Должината на пакетот треба да се чува мала за да се добие најдоброто можно траење на батеријата.
Покрај тоа, корисникот може да го одреди максималното L-поле што треба да се прими (USER_RX_MAX_L_FIELD). Ова ја одредува потребната големина за баферот за примање (USER_RX_BUFFER_SIZE).
Поддршката на максимално L-поле од 255 би барал тампон за примање од 290 бајти и максимум 581 шифриран Манчестер бајти. Управувачот со пакети ќе треба да се оневозможи и во тој случај не може да се користи регистарот за должина на пакети. Ова е изводливо, но попогодно е да се користи управувачот со пакети, ако е можно.

Употреба на FIFO

Si4431 обезбедува FIFO од 64 бајти за пренос и примање. Бидејќи бројот на кодирани бајти е 255, цел кодиран пакет може да не се вклопи во баферот од 64 бајти.
Преносливост
При преносот се пресметува вкупниот број на кодирани бајти. Ако вкупниот број на кодирани бајти, вклучително и поштата, е помал од 64 бајти, целиот пакет се запишува на FIFO и само испратениот пакет е овозможен прекин. Повеќето кратки пакети ќе бидат испратени во еден FIFO трансфер.
Ако бројот на кодирани бајти е поголем од 64, ќе бидат потребни повеќе FIFO трансфери за да се испрати пакетот. Првите 64 бајти се напишани на FIFO. Пакетите испратени и TX FIFO Речиси празен прекин се овозможени. Прагот на TX FIFO Речиси празен е поставен на 16 бајти (25%). По секој настан IRQ, се чита статус 2 регистарот. Најпрво се проверува битот Испратен пакет, а доколку пакетот не е целосно испратен, следните 48 бајти кодирани податоци се запишуваат на FIFO. Ова продолжува се додека не се напишат сите кодирани бајти и не дојде до прекин на Испратени пакети.
1. Прием
На приемот, првично, само прекинот на Sync Word е овозможен. Откако ќе го примите зборот за синхронизација, прекинот на синхронизираниот збор е оневозможен и прекинот FIFO речиси целосен е овозможен. Речиси целосниот праг на FIFO првично е поставен на 2 бајти. Првиот FIFO речиси целосен прекин се користи за да се знае кога се примени двата бајти со должина. Откако ќе се прими должината, должината се дешифрира и се пресметува бројот на кодирани бајти. Прагот RX FIFO речиси Целосно потоа е поставен на 48 бајти. RX FIFO е речиси полн и овозможени се прекини на Valid Packet. По следниот настан IRQ, се чита статус 1 регистарот. Прво, се проверува битот Valid Packet, а потоа се проверува битот FIFO Almost Full. Ако е поставен само битот RX FIFO Речиси целосна, следните 48 бајти се читаат од FIFO. Ако е поставен важечкиот бит на пакетот, остатокот од пакетот се чита од FIFO. MCU следи колку бајти се прочитани и престанува да чита по последниот бајт.

Слој за податочна врска

Модулот за слој на податочна врска имплементира слој за врска усогласен со 13757-4:2005. Слојот за податочна врска (LINK) обезбедува интерфејс помеѓу физичкиот слој (PHY) и слојот на апликација (AL).
Слојот за врска со податоци ги извршува следните функции:

  • Обезбедува функции кои пренесуваат податоци помеѓу PHY и AL
  • Генерира CRC за појдовни пораки
  • Открива CRC грешки во дојдовните пораки
  • Обезбедува физичко адресирање
  • Ги признава преносите за двонасочните начини на комуникација
  • Рамки на битови на податоци
  • Открива грешки при кадрирање во дојдовните пораки
Формат на рамка за слој на врска

Форматот на рамката за безжичен M-Bus што се користи во EN 13757-4:2005 е изведен од форматот на рамката FT3 (Тип на рамка 3) од IEC60870-5-2. Рамката се состои од еден или повеќе блокови на податоци. Секој блок вклучува 16-битно CRC поле. Првиот бок е блок со фиксна должина од 12 бајти што ги вклучува полето L, C-полето, M-полето и A-полето.

  1. L-поле
    Полето L е должината на товарот на податоци на слојот Link. Ова не го вклучува самото поле L или некој од бајтите на CRC. Тоа ги вклучува полето L, C-полето, M-полето и A-полето. Овие се дел од носивоста на PHY.
    Бидејќи бројот на кодирани бајти е ограничен на 255 бајти, максималната поддржана вредност за M-полето е 110 бајти за кодирани податоци од Манчестер и 148 бајти за кодирани податоци во режим Т Три од шест.
    Слојот Link е одговорен за пресметување на полето L при преносот. Слојот за врска ќе го користи полето L на приемот.
    Забележете дека L-полето не ја означува должината на товарот PHY или бројот на кодирани бајти. По преносот, PHY ќе ја пресмета должината на носивоста на PHY и бројот на кодирани бајти. По приемот, PHY ќе го декодира полето L и ќе го пресмета бројот на бајти за декодирање.
  2. Ц-поле
    Полето C е полето за контрола на рамката. Ова поле го идентификува типот на рамката и се користи за примитивите на услугата за размена на податоци за врски. Полето C го означува типот на рамката - ИСПРАТИ, ПОТВРДИ, БАРАЊЕ или ОДГОВОРИ. Во случај на рамки SEND и REQUEST, полето C покажува дали се очекува ПОТВРДУВАЊЕ или ОДГОВОРИ.
    Кога се користи основната функција Link TX, може да се користи која било вредност на C. При користење на Примитивните услуги за врски, полето C се пополнува автоматски според EN 13757-4:2005.
  3. М-поле
    Полето М е кодот на производителот. Производителите можат да побараат шифра со три букви од следново web адреса: http://www.dlms.com/flag/INDEX.HTM Секој знак од кодот со три букви е кодиран како пет бита. 5-битниот код може да се добие со земање на ASCII кодот и одземање 0x40 („А“). Трите 5-битни кодови се споени за да направат 15-бита. Најзначајниот бит е нула.
  4. А-Поле
    Полето за адреса е единствена адреса од 6 бајти за секој уред. Единствената адреса треба да ја додели производителот. Одговорност на секој производител е да се погрижи секој уред да има единствена адреса од 6 бајти. Адресата за рамки за испраќање и барање е само-адреса на мерачот или друг уред. Рамките со податоци за потврда и одговор се испраќаат со помош на адресата на изворниот уред.
  5. CI-поле
    CI-полето е заглавие на апликацијата и го одредува типот на податоци во товарот на податоци на апликацијата. Додека EN13757-4:2005 одредува ограничен број вредности, Примитивите на услугата за врски ќе дозволат да се користи која било вредност.
  6. CRC
    CRC е наведен во EN13757-4:2005.
    Полиномот CRC е:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Забележете дека M-Bus CRC се пресметува на секој блок од 16 бајти. Резултатот е дека секои 16 бајти податоци бараат 18 бајти за да се пренесат,
Дополнителни информации

За дополнителни информации за имплементацијата на слојот за поврзување, видете „AN452: Водич за програмирачи за безжичен M-Bus Stack“.

Управување со енергија

Слика 2 ја прикажува временската линија за управување со енергија за броило прampкористејќи го режимот Т1.

MCU треба да биде во режим на мирување секогаш кога е можно за да заштеди енергија. Во овој ексampтака, MCU спие кога работи RTC, кога чека при стартување на радио кристалот и кога се емитува од FIFO. MCU ќе се разбуди од сигналот EZRadioPRO IRQ поврзан со будење на Port Match.
Кога се пренесуваат пораки подолги од еден блок, MCU мора да се разбуди за да го пополни FIFO (врз основа на речиси празен прекин на FIFO) и потоа повторно да спие.
MCU треба да биде во режим на мирување и работи од осцилаторот со мала моќност или осцилаторот во режим на рафал кога чита од ADC. ADC бара SAR часовник.
Кога не се користи, EZRadioPRO треба да биде во режим на исклучување со SDN-пинот заведен високо. Ова бара жичана врска со MCU. Регистрите EZ Radio Pro не се зачувани во режим на исклучување; така, EZRadioPro се иницијализира на секој RTC интервал. Иницијализирањето на радиото трае помалку од 100 µs и зачувува 400 nA. Ова резултира со заштеда на енергија од 10 µJ, врз основа на интервал од 10 секунди.
На кристалот EZRadioPRO му требаат околу 16 ms за POR. Ова е доволно долго за да се пресмета CRC за околу осум блока. MCU повторно ќе спие ако ги заврши сите CRC пред да се стабилизира кристалот. Ако е потребно шифрирање, исто така може да се стартува додека се чека на кристалниот осцилатор.
MCU треба да работи на 20 MHz користејќи осцилатор со мала моќност за повеќето задачи. Задачите за кои е потребно прецизно времетраење мора да користат прецизен осцилатор и режим на мирување наместо режим на мирување. RTC обезбедува доволно резолуција за повеќето задачи. Временската рамка за управување со енергија за мерачот Т2 прampАпликацијата е прикажана на Слика 3.

Имплементацијата на трансиверот треба да биде оптимизирана за нормален случај кога мерачот се буди и нема присутен читач. Минималните/максималните временски прекини на ACK се доволно долги, така што е можно да се користи C8051F930 RTC и да се стави MCU во режим на мирување.
Опциите за градба се обезбедени за мрежни или USB-напојувани читачи кои не треба да користат режим на мирување. Режимот на мирување ќе се користи наместо мирување, така што USB и UART може да го прекинат MCU.

SILICON LABS Wireless M-BUS софтвер за имплементација AN451-1

Студио за едноставност
Пристап со еден клик до MCU и безжични алатки, документација, софтвер, библиотеки со изворни кодови и повеќе. Достапно за Windows,
Mac и Linux!

Портфолио на IoT Квалитет
Портфолио на IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Квалитет
www.silabs.com/quality
Поддршка и заедница
Community.silabs.com

Одрекување
Silicon Labs има намера да им обезбеди на клиентите најнова, точна и длабинска документација за сите периферни уреди и модули достапни за имплементаторите на системот и софтверот кои користат или имаат намера да ги користат производите на Silicon Labs. Податоците за карактеризација, достапните модули и периферни уреди, големината на меморијата и адресите на меморијата се однесуваат на секој специфичен уред, а дадените „Типични“ параметри може и се разликуваат во различни апликации. Апликација прampОписите опишани овде се само за илустративни цели. Silicon Labs го задржува правото да прави промени без дополнително известување и ограничување на информациите за производот, спецификациите и описите овде, и не дава гаранции за точноста или комплетноста на вклучените информации. Silicon Labs нема да има одговорност за последиците од употребата на информациите доставени овде. Овој документ не имплицира или изразува лиценци за авторски права дадени со ова за дизајнирање или фабрикување на какви било интегрирани кола. Производите не се дизајнирани или овластени да се користат во кој било систем за поддршка на животот без специфична писмена согласност од Silicon Labs. „Систем за поддршка на животот“ е секој производ или систем наменет за поддршка или одржување на животот и/или здравјето, што, доколку не успее, може разумно да се очекува да резултира со значителна лична повреда или смрт. Производите на Silicon Labs не се дизајнирани или овластени за воени апликации. Производите на Silicon Labs во никој случај нема да се користат во оружје за масовно уништување, вклучувајќи (но не ограничувајќи се на) нуклеарно, биолошко или хемиско оружје или проектили способни да испорачуваат такво оружје.
Информации за заштитен знак
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® и логото на Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro лого и нивни комбинации, „најнергетските микроконтролери во светот“, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® и други се заштитни знаци или регистрирани заштитни знаци на Silicon Labs. ARM, CORTEX, Cortex-M3 и палците се заштитни знаци или регистрирани заштитни знаци на ARM Holdings. Keil е регистрирана трговска марка на ARM Limited. Сите други производи или имиња на брендови споменати овде се заштитни знаци на нивните соодветни сопственици.Лого на SILICON LABS

Silicon Laboratories Inc.
400 Запад Цезар Чавез
Остин, TX 78701
САД
http://www.silabs.com

Документи / ресурси

SILICON LABS Безжичен M-BUS имплементација на софтвер AN451 [pdf] Упатство за корисникот
SILICON LABS, C8051, MCU, и, EZRadioPRO, Безжичен M-bus, Wireless, M-BUS, софтвер, имплементација, AN451

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *