Лагатып SILICON LABS

AN451
РЭАЛІЗАЦЫЯ ПРАГРАМНАГА ЗАБЕСПЯЧЭННЯ WIRELESS M-BUS

Уводзіны

У гэтай нататцы па дадатку апісваецца рэалізацыя Silicon Labs бесправадной M-Bus з выкарыстаннем Silicon Labs C8051 MCU і EZRadioPRO®. Бесправадная M-bus з'яўляецца еўрапейскім стандартам для прыкладанняў для счытвання лічыльнікаў з выкарыстаннем дыяпазону частот 868 МГц.

Стэк слаёў

Бесправадная шына M-Bus выкарыстоўвае 3-ўзроўневую мадэль IEC, якая з'яўляецца часткай 7-ўзроўневай мадэлі OSI (гл. малюнак 1).

Рэалізацыя праграмнага забеспячэння SILICON LABS Wireless M-BUS AN451Фізічны ўзровень (PHY) вызначаны ў EN 13757-4. Фізічны ўзровень вызначае спосаб кадавання і перадачы бітаў, характарыстыкі ВЧ-мадэма (хуткасць мікрасхемы, прэамбула і слова сінхранізацыі) і ВЧ-параметры (мадуляцыя, цэнтральная частата і адхіленне частоты).
Узровень PHY рэалізаваны з дапамогай камбінацыі апаратнага і ўбудаванага праграмнага забеспячэння. EZRadioPRO выконвае ўсе функцыі ВЧ і мадэма. EZRadioPRO выкарыстоўваецца ў рэжыме FIFO з апрацоўшчыкам пакетаў. Модуль MbusPhy.c забяспечвае інтэрфейс SPI, кадаванне/дэкадаванне, чытанне/запіс блокаў і апрацоўку пакетаў, а таксама кіруе станамі трансівера.
Канальны ўзровень M-Bus Data рэалізаваны ў модулі MbusLink.c. Інтэрфейс прыкладнога праграмавання M-Bus складаецца з агульнадаступных функцый, якія можна выклікаць з прыкладнога ўзроўню ў галоўным патоку. Модуль MbusLink таксама рэалізуе канальны ўзровень. Узровень канала перадачы дадзеных адфарматуе і скапіруе даныя з буфера перадачы прыкладання ў буфер перадачы MbusPhy, дадаўшы неабходныя загалоўкі і CRC.
Сам узровень прыкладанняў не з'яўляецца часткай прашыўкі M-bus. Узровень прыкладанняў вызначае, як шырокі спектр даных павінен быць адфарматаваны для перадачы. Большасці лічыльнікаў неабходна перадаваць толькі адзін ці два тыпы даных. Даданне вялікай колькасці кода для размяшчэння любых даных у лічыльнік дадало б непатрэбны код і выдаткі на лічыльнік. Можа быць мэтазгодным рэалізаваць бібліятэку або загаловак file з поўным спісам тыпаў дадзеных. Тым не менш, большасць заказчыкаў вымярэння дакладна ведаюць, якія даныя ім трэба перадаць, і могуць звярнуцца да стандарту для дэталяў фарматавання. Універсальны счытвальнік або сніфер можа рэалізаваць поўны набор тыпаў даных прыкладанняў у графічным інтэрфейсе ПК. Па гэтых прычынах прыкладны ўзровень рэалізаваны з дапамогай exampLe прыкладання для лічыльніка і счытвальніка.

Неабходныя стандарты
  1. EN 13757-4
    EN 13757-4
    Сістэма сувязі лічыльнікаў і дыстанцыйнага счытвання лічыльнікаў
    Частка 4: Счытванне бесправадных лічыльнікаў
    Паказчыкі радыёметра для працы ў дыяпазоне SRD ад 868 МГц да 870 МГц
  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 - гэта правадной стандарт для паказу лічыльнікаў у Еўропе.
  • Бесправадная M-Bus—Бесправадная шына M-Bus для прымянення паказанняў лічыльнікаў у Еўропе.
  • ФІЗ—Фізічны ўзровень вызначае, як кадзіруюцца і перадаюцца біты і байты даных.
  • API—Інтэрфейс прыкладнога праграміста.
  • СПАСЫЛКА—Канальны ўзровень вызначае спосаб перадачы блокаў і кадраў.
  • CRC—Праверка цыклічнага рэзервавання.
  • FSK—Частотная маніпуляцыя.
  • Чып-Найменшая адзінка перадаемых даных. Адзін біт дадзеных кадуецца ў выглядзе некалькіх мікрасхем.
  • Модуль—Зыходны код AC .c file.

Функцыянальнае апісанне M-Bus PHY

Паслядоўнасць прэамбулы

Паслядоўнасць прэамбулы, вызначаная спецыфікацыяй M-bus, уяўляе сабой цэлы лік, які чаргуецца нулямі і адзінкамі. Адзінка вызначаецца як больш высокая частата, а нуль - як больш нізкая частата.
nx (01)
Параметры прэамбулы для Si443x - гэта цэлая колькасць ніблаў, якія складаюцца з адзінак і нулёў, якія чаргуюцца.
nx (1010)
Прэамбула з дадатковай пачатковай не будзе праблемай, але тады слова сінхранізацыі і карысная нагрузка будуць зрушаны на адзін біт.
Рашэнне складаецца ў тым, каб інвертаваць увесь пакет, усталяваўшы біт рухавіка ў рэгістры Modulation Control 2 (0x71). Гэта інвертуе прэамбулу, слова сінхранізацыі і дадзеныя TX/RX. Як следства, дадзеныя павінны быць інвертаваны пры запісе дадзеных TX або чытанні дадзеных RX. Акрамя таго, слова сінхранізацыі інвертуецца перад запісам у рэгістры Слова сінхранізацыі Si443x.

Word для сінхранізацыі

Слова сінхранізацыі, якое патрабуе EN-13757-4, складае альбо 18 чыпаў для Mode S і Mode R, альбо 10 чыпаў для Model T. Слова сінхранізацыі для Si443x складае ад 1 да 4 байтаў. Аднак, паколькі перад словам сінхранізацыі заўсёды стаіць прэамбула, апошнія шэсць бітаў прэамбулы можна лічыць часткай слова сінхранізацыі; такім чынам, першае слова сінхранізацыі дапаўняецца трыма паўторамі нуля, за якімі ідзе адзінка. Слова сінхранізацыі дапаўняецца перад запісам у рэгістры Si443x.
Табліца 1. Слова сінхранізацыі для Mode S і Mode 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. Слова сінхранізацыі для лічыльніка рэжыму T з іншым

СІНХРАНІЗАЦЫЯ СІНХРАНІЗАЦЫЯ СІНХРАНІЗАЦЫЯ
СЛОВА СЛОВА СЛОВА
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
Рэжым T (метр-іншы) 19 38 10 40 6 46 8
Рэжым Р 39 78 20 80 6 86 8

Мінімальная прэамбула для прыёму вызначаецца рэгістрам кіравання выяўленнем прэамбулы (0x35). Пасля прыёму колькасць бітаў у слове сінхранізацыі павінна быць аднята ад зададзенай мінімальнай прэамбулы, каб вызначыць прыдатную для выкарыстання прэамбулу. Мінімальны час усталёўкі прымача складае 16 чыпаў, калі AFC уключаны, або 8 чыпаў, калі AFC адключаны. Час усталёўкі прымача таксама адымаецца з карыснай прэамбулы, каб вызначыць мінімальную наладу для рэгістра кіравання выяўленнем прэамбулы.

Верагоднасць ілжывай прэамбулы залежыць ад налады рэгістра кіравання выяўленнем прэамбулы. Кароткая ўстаноўка 8-чыпаў можа прывесці да выяўлення ілжывай прэамбулы кожныя некалькі секунд. Рэкамендаваны параметр у 20 мікрасхем робіць выяўленне ілжывай прэамбулы малаверагоднай падзеяй. Даўжыня прэамбулы для рэжыму R і рэжыму SL дастаткова вялікая для выкарыстання рэкамендаванага параметра.
Вельмі мала карысці ад таго, каб выяўляць прэамбулу даўжэй, чым 20 мікрасхем.
AFC адключаны для мадэлі S з кароткай прэамбулай і мадэлі T. Гэта скарачае час усталёўкі прымача і дазваляе больш працяглую наладу выяўлення прэамбулы. Калі AFC адключана, у рэжыме T можна выкарыстоўваць рэкамендаваную наладу ў 20 чыпаў. Налада 4 ніблаў або 20 фішак выкарыстоўваецца для мадэлі S з кароткай прэамбулай. Гэта робіць верагоднасць ілжывага выяўлення прэамбулы крыху вышэйшай для гэтай мадэлі.
Табліца 4. Выяўленне прэамбулы

EN-13757-4
мінімум
Сінхранізацыя
Слова
прыдатны да выкарыстання
прэамбула
RX Разлік Выявіць
мін
Si443x Прэамбула
Налада выяўлення
nx (01) чыпсы чыпсы чыпсы чыпсы чыпсы грызці чыпсы
Рэжым S кароткая прэамбула 15 30 6 24 8* 16 4 16
Доўгая прэамбула мадэлі S 279 558 6 552 16 536 5 20
Мадэль T (метр-іншы) 19 38 6 32 8* 24 5 20
Рэжым Р 39 78 6 72 16 56 5 20
* Заўвага: AFC адключаны

Прыёмнік настроены на ўзаемадзеянне з перадатчыкам з выкарыстаннем мінімальна вызначанай прэамбулы. Гэта гарантуе, што прыёмнік будзе ўзаемадзейнічаць з любым перадатчыкам, сумяшчальным з M-bus.
Спецыфікацыя Wireless M-Bus патрабуе вельмі доўгай прэамбулы для рэжыму S1 як мінімум з 558 мікрасхем. Гэта зойме каля 17 мс толькі для перадачы прэамбулы. Si443x не патрабуе такой доўгай прэамбулы і не выйграе ад доўгай прэамбулы. Хоць доўгая прэамбула адзначана як неабавязковая для рэжыму S2, няма прычын выкарыстоўваць доўгую прэамбулу з Si443x. Калі патрэбна аднабаковая сувязь, рэжым T1 забяспечыць карацейшую прэамбулу, больш высокую хуткасць перадачы дадзеных і больш працяглы тэрмін службы батарэі. Калі патрабуецца двухбаковая сувязь з выкарыстаннем рэжыму S2, рэкамендуецца кароткая прэамбула.
Звярніце ўвагу на тое, што парог выяўлення для Model S з доўгай прэамбулай большы, чым колькасць кусачак прэамбулы, перададзеных для Model S з кароткай прэамбулай. Гэта азначае, што прыёмнік з доўгай прэамбулай у рэжыме S не будзе выяўляць прэамбулу ад перадатчыка з кароткай прэамбулай у рэжыме S. Гэта неабходна, калі прымач доўгай прэамбулы ў рэжыме S павінен атрымаць якую-небудзь карысць ад доўгай прэамбулы.
Звярніце ўвагу, што прымач кароткай прэамбулы ў рэжыме S будзе выяўляць прэамбулу і атрымліваць пакеты як з кароткай прэамбулы ў рэжыме S
перадатчык і перадатчык рэжыму S з доўгай прэамбулай; такім чынам, у цэлым счытвальнік лічыльнікаў павінен выкарыстоўваць кароткую прэамбулу канфігурацыі прыёмніка Mode S.

Кадзіраванне/дэкадзіраванне

Спецыфікацыя Wireless M-bus патрабуе двух розных метадаў кадавання. Манчэстэрскае кадзіраванне выкарыстоўваецца для рэжымаў S і Mode R. Манчэстэрскае кадзіраванне таксама выкарыстоўваецца для сувязі "ад іншага да лічыльніка" ў мадэлі T. Кадыроўка "ад аднаго метра да іншага" мадэлі T выкарыстоўвае 3 з 6 кадыровак.
1. Manchester Encoded/Decoding
Манчэстэрскае кадзіраванне гістарычна распаўсюджана ў радыёчастотных сістэмах для забеспячэння надзейнага аднаўлення тактавага сігналу і адсочвання з дапамогай простага і недарагога мадэма. Тым не менш, сучасная высокапрадукцыйная радыёстанцыя, такая як Si443x, не патрабуе манчэстэрскага кадавання. Манчэстэрскае кадзіраванне падтрымліваецца галоўным чынам для сумяшчальнасці з існуючымі стандартамі, але хуткасць перадачы дадзеных для Si443x фактычна падвойваецца, калі манчэстэрскае кадаванне не выкарыстоўваецца.
Si443x падтрымлівае манчэстэрскае кадзіраванне і дэкадаванне ўсяго пакета апаратна. На жаль, слова сінхранізацыі не кадзіруецца ў Манчэстэры. Для слова сінхранізацыі была наўмысна абраная недапушчальная манчэстэрская паслядоўнасць. Гэта робіць манчэстэрскае кадзіраванне несумяшчальным з большасцю існуючых радыёпрыёмнікаў, уключаючы Si443x. Як следства, манчэстэрскае кадаванне і дэкадаванне павінна выконвацца MCU. Кожны байт незакадзіраваных дадзеных складаецца з васьмі бітаў дадзеных. З дапамогай манчэстэрскага кадавання кожны біт даных кадуецца ў двухчыпавы сімвал. Паколькі закадаваныя даныя павінны быць запісаны ў радыё FIFO з васьмі чыпаў адначасова, адзін нібл дадзеных кадуецца і запісваецца ў FIFO адначасова.
Табліца 5. Манчэстэрскае кадзіраванне

дадзеныя Бык12 0x34 байт
Бык1 0x2 0x3 0x4 грызці
1 10 11 100 двайковы
чып 10101001 10100110 10100101 10011010 двайковы
FIFO OxA9 OxA6 OxA5 Ox9A шаснаццатковы

Кожны байт для перадачы перадаецца па адным байту ў функцыю кадзіравання байтаў. Функцыя encode byte будзе выклікаць функцыю encode nibble двойчы, спачатку для самага значнага нібля, а затым для найменш значнага нібля.
Манчэстэрскае кадзіраванне ў праграмным забеспячэнні не складанае. Пачынаючы са старшага біта, адзінка кадуецца ў выглядзе паслядоўнасці мікрасхем «01». Нуль кадуецца як паслядоўнасць мікрасхем «10». Гэта можа быць лёгка выканана з дапамогай цыкла і зрушэння двух бітаў для кожнага сімвала. Тым не менш, хутчэй проста выкарыстоўваць простую табліцу пошуку з 16 запісаў для кожнага нібля. Функцыя encode Manchester nibble кадуе ніббл даных, а затым запісвае іх у FIFO. Мікрасхемы інвертуюцца перад запісам у FIFO для ўліку патрабаванняў інвертаванай прэамбулы.
Пры прыёме кожны байт у FIFO складаецца з васьмі мікрасхем і дэкадуецца ў адзін нібл дадзеных. Функцыя блока чытання счытвае адзін байт з FIFO і выклікае функцыю дэкадавання байтаў. Мікрасхемы інвертуюцца пасля чытання з FIFO для ўліку патрабаванняў інвертаванай прэамбулы. Кожны байт чыпаў, закадаваных Манчэстэрам, дэкадуецца ў нібл дадзеных. Дэкадзіраваны ніббл запісваецца ў буфер RX з дапамогай функцыі буфера RX нібла запісу.
Звярніце ўвагу, што і кадзіраванне, і дэкадаванне выконваюцца па адным нібле даных за раз. Кадзіраванне ў буфер запатрабуе дадатковага буфера, які ў два разы перавышае памер незакадзіраваных даных. Кадзіраванне і дэкадзіраванне нашмат хутчэй, чым самая высокая падтрымліваемая хуткасць перадачы дадзеных (100 тыс. чыпаў у секунду). Паколькі Si443x падтрымлівае шматбайтавае чытанне і запіс у FIFO, ёсць невялікія накладныя выдаткі пры выкарыстанні толькі аднабайтавага чытання і запісу. Накладныя выдаткі складаюць каля 10 мкс для 100 закадзіраваных мікрасхем. Перавагай з'яўляецца эканомія аператыўнай памяці 512 байт.
2. Тры з шасці кадавання Дэкадаванне
Метад кадавання "Тры з шасці", вызначаны ў EN-13757-4, таксама рэалізаваны ва ўбудаваным праграмным забеспячэнні на MCU. Гэта кадзіраванне выкарыстоўваецца для высакахуткаснага (100 тыс. чыпаў у секунду) рэжыму T ад лічыльніка да іншага. Мадэль T забяспечвае самы кароткі час перадачы і самы доўгі тэрмін службы батарэі для бесправаднога лічыльніка.
Кожны байт дадзеных для перадачы дзеліцца на два байты. Самы значны нібл кадуецца і перадаецца першым. Зноў жа, гэта рэалізавана з дапамогай функцыі encode byte, якая двойчы выклікае функцыю encode nibble.
Кожны нібл дадзеных кадуецца ў сімвал з шасці фішак. Паслядоўнасць сімвалаў з шасці фішак павінна быць запісана ў FIFO з 8 фішак.
Падчас кадавання два байта дадзеных кадуюцца ў выглядзе чатырох ніблаў. Кожны нібл - гэта сімвал з 6 фішак. Чатыры 6-чыпавыя сімвалы аб'ядноўваюцца ў тры байты.
Табліца 6. Тры з шасці кадавання

дадзеныя 0x12 0x34 байт
Бык1 0x2 0x3 0x4 грызці
чып 15 16 13 34 васьмярковы
1101 1110 1011 11100 двайковы
FIFO 110100 11100010 11011100 двайковы
0x34 OxE2 OxDC шаснаццатковы

У праграмным забеспячэнні кадзіроўка тры з шасці рэалізавана з дапамогай трох укладзеных функцый. Функцыя encode byte двойчы выкліча функцыю encode nibble. Функцыя encode nibble выкарыстоўвае табліцу пошуку для сімвала з шасці фішак і запісвае сімвал у функцыі Shift Three з шасці. Гэтая функцыя рэалізуе 16-чыповы рэгістр зруху ў праграмным забеспячэнні. Сімвал запісваецца ў малодшы байт рэгістра зруху. Рэгістр двойчы зрушаны ўлева. Гэта паўтараецца тры разы. Калі поўны байт прысутнічае ў верхнім байце рэгістра зруху, ён інвертуецца і запісваецца ў FIFO.
Паколькі кожны байт дадзеных закадаваны як паўтара закадзіраваных байта, важна першапачаткова ачысціць рэгістр зруху, каб першы закадаваны байт быў правільным. Калі даўжыня пакета роўная няцотнай лічбе, пасля кадзіравання ўсіх байтаў у рэгістры зруху ўсё роўна застанецца адзін паўбайт. Гэта апрацоўваецца з паштовай стужкай, як тлумачыцца ў наступным раздзеле.
Расшыфроўка трох з шасці закадаваных - зваротная працэдура. Пры дэкадаванні тры закадаваныя байты дэкадуюцца ў два байта дадзеных. Праграмны рэгістр зрушэння зноў выкарыстоўваецца для агрэгавання байтаў дэкадаваных дадзеных. Для дэкадавання выкарыстоўваецца табліца зваротнага пошуку з 64 запісаў. Гэта выкарыстоўвае менш цыклаў, але больш памяці кода. Пошук адпаведнага сімвала ў табліцы пошуку з 16 запісаў займае значна больш часу.
Пастамбл
У спецыфікацыі Wireless M-bus прад'яўляюцца асаблівыя патрабаванні да пастамбулы або трэйлера. Для ўсіх рэжымаў мінімум - дзве фішкі, максімум - восем фішак. Паколькі мінімальная атамная адзінка для FIFO складае адзін байт, 8-чыповы трэйлер выкарыстоўваецца для рэжыму S і рэжыму R. Паштовая табліца рэжыму T складае восем чыпаў, калі даўжыня пакета цотная, або чатыры чыпа, калі даўжыня пакета няцотная. Чатырохчыпавая пастамбула для няцотнай даўжыні пакета адпавядае патрабаванням наяўнасці як мінімум двух чыпаў, якія чаргуюцца.
Табліца 7. Даўжыня Postamble

Даўжыня паштовай скрынкі (чыпы)
мін макс Рэалізацыя паслядоўнасць мікрасхем
Рэжым S 2 8 8 1010101
Рэжым Т 2 8 4 (няцотны) 101
8 (нават) 1010101
Рэжым Р 2 8 8 1010101
Апрацоўшчык пакетаў

Апрацоўшчык пакетаў на Si443x можа выкарыстоўвацца ў рэжыме зменнай шырыні пакета або ў рэжыме фіксаванай шырыні пакета. Рэжым зменнай шырыні пакета патрабуе байта даўжыні пакета пасля слова сінхранізацыі і дадатковых байтаў загалоўка. Пасля прыёму радыё будзе выкарыстоўваць байт даўжыні для вызначэння канца сапраўднага пакета. Пры перадачы радыёстанцыя ўставіць поле даўжыні пасля байтаў загалоўка.
Поле L для бесправаднога пратаколу M-bus нельга выкарыстоўваць для поля даўжыні Si443x. Па-першае, поле L не з'яўляецца фактычнай даўжынёй пакета. Гэта колькасць байтаў карыснай нагрузкі канальнага ўзроўню без уліку байтаў CRC або кадавання. Па-другое, само поле L кадуецца альбо з выкарыстаннем манчэстэрскай кадыроўкі, альбо кадавання "Тры з шасці" для лічыльніка рэжыму T.
Рэалізацыя выкарыстоўвае апрацоўшчык пакетаў у рэжыме фіксаванай шырыні пакетаў як для перадачы, так і для прыёму. Пасля перадачы ўзровень PHY счытвае поле L у буферы перадачы і вылічвае колькасць закадзіраваных байтаў, уключаючы пастамбулу. Агульная колькасць закадзіраваных байтаў для перадачы запісваецца ў рэгістр даўжыні пакета (0x3E).
Пасля прыёму першыя два закадаваныя байты дэкадуюцца, а поле L запісваецца ў буфер прыёму. L-поле выкарыстоўваецца для разліку колькасці атрыманых закадзіраваных байтаў. Затым колькасць закадзіраваных байтаў, якія трэба атрымаць, запісваецца ў рэгістр даўжыні пакета (0x3E). Постэмбула выкідваецца.
MCU павінен дэкадаваць L-поле, вылічыць колькасць закадзіраваных байтаў і запісаць значэнне ў рэгістр даўжыні пакета да таго, як будзе атрымана максімальна кароткая даўжыня пакета. Самае кароткае дазволенае L-поле для ўзроўню PHY роўна 9, што дае 12 незакадзіраваных байтаў. Гэта дае 18 закадзіраваных байтаў для Model T. Першыя два байты ўжо дэкадзіраваны. Такім чынам, рэгістр даўжыні пакета павінен абнаўляцца па 16 байт са хуткасцю 100 кбіт/с або 1.28 мілісекунды. Гэта не праблема для 8051, які працуе на 20 MIPS.
Колькасць атрыманых байтаў не ўключае пастамбулу, за выключэннем пастамбулы з чатырох чыпаў, якая выкарыстоўваецца для пакетаў рэжыму T з няцотнай даўжынёй пакета. Такім чынам, прыёмнік не патрабуе паштовай стужкі, за выключэннем пакетаў няцотнай даўжыні Model T. Гэтая пастамбула патрэбна толькі для таго, каб даць цэлую колькасць закадзіраваных байтаў. Змест пастамбулы ігнаруецца; такім чынам, калі пастамбула не перадаецца, чатыры мікрасхемы шуму будуць атрыманы і праігнараваны. Паколькі агульная колькасць закадзіраваных байтаў абмежавана 255 (0xFF), рэалізацыя абмяжоўвае максімальнае поле L для розных рэжымаў.
Табліца 8. Абмежаванні памеру пакета

закадзіраваны расшыфраваны М-аўтобус
байт байт Л-поле
дэк шаснаццатковы дэк шаснаццатковы дэк шаснаццатковы
Рэжым S 255 FF 127 7 F 110 6E
Рэжым T (метр-іншы) 255 FF 169 A9 148 94
Рэжым Р 255 FF 127 7 F 110 6E

Звычайна гэтыя абмежаванні значна перавышаюць тыповы варыянт выкарыстання бесправаднога лічыльніка. Даўжыня пакета павінна быць невялікай, каб атрымаць найлепшы тэрмін службы батарэі.
Акрамя таго, карыстальнік можа ўказаць максімальнае L-поле, якое павінна быць атрымана (USER_RX_MAX_L_FIELD). Гэта вызначае неабходны памер буфера атрымання (USER_RX_BUFFER_SIZE).
Падтрымка максімальнага L-поля ў 255 патрабуе буфера прыёму ў 290 байтаў і максімум у 581 байт у манчэстэрскім кадзіраванні. Апрацоўшчык пакетаў павінен быў быць адключаны, і ў гэтым выпадку нельга было б выкарыстоўваць рэгістр даўжыні пакета. Гэта магчыма, але зручней выкарыстоўваць апрацоўшчык пакетаў, калі гэта магчыма.

Выкарыстанне FIFO

Si4431 забяспечвае 64-байтны FIFO для перадачы і атрымання. Паколькі колькасць закадзіраваных байтаў роўная 255, увесь закадаваны пакет можа не змясціцца ў 64-байтавы буфер.
Перадача
Пры перадачы вылічваецца агульная колькасць закадзіраваных байтаў. Калі агульная колькасць закадзіраваных байтаў, уключаючы пастамбулу, менш за 64 байты, увесь пакет запісваецца ў FIFO і ўключаецца толькі перапыненне адпраўленага пакета. Большасць кароткіх пакетаў будуць адпраўлены ў адной перадачы FIFO.
Калі колькасць закадзіраваных байтаў перавышае 64, для адпраўкі пакета спатрэбіцца некалькі перадач FIFO. Першыя 64 байта запісваюцца ў FIFO. Уключаны перапыненні "Пакет адпраўлены" і "Амаль пусты TX FIFO". Парог TX FIFO Almost Empty усталяваны ў 16 байтаў (25%). Пасля кожнай падзеі IRQ счытваецца рэестр стану 2. Спачатку правяраецца біт адпраўленага пакета, і, калі пакет не быў адпраўлены цалкам, наступныя 48 байт закадзіраваных даных запісваюцца ў FIFO. Гэта працягваецца да таго часу, пакуль не будуць запісаны ўсе закадаваныя байты і не адбудзецца перапыненне адпраўленага пакета.
1. Прыёмная
Пры прыёме першапачаткова ўключана толькі перапыненне сінхранізацыі слова. Пасля атрымання слова сінхранізацыі перапыненне слова сінхранізацыі адключаецца, а перапыненне FIFO Almost Full уключана. Амаль поўны парог FIFO першапачаткова ўсталяваны ў 2 байты. Першае перапыненне FIFO Almost Full выкарыстоўваецца, каб даведацца, калі былі атрыманы два байты даўжыні. Пасля атрымання даўжыні яна дэкадуецца і вылічваецца колькасць закадзіраваных байтаў. Затым парог RX FIFO амаль поўны ўсталёўваецца на 48 байтаў. FIFO RX амаль запоўнены і перапыненні сапраўднага пакета ўключаны. Пры наступнай падзеі IRQ счытваецца рэгістр стану 1. Спачатку правяраецца біт сапраўднага пакета, а затым біт FIFO Almost Full. Калі ўсталяваны толькі біт RX FIFO Almost Full, наступныя 48 байтаў чытаюцца з FIFO. Калі ўсталяваны сапраўдны біт пакета, астатняя частка пакета счытваецца з FIFO. MCU адсочвае, колькі байтаў было прачытана, і спыняе чытанне пасля апошняга байта.

Канал сувязі дадзеных

Модуль канальнага ўзроўню рэалізуе сумяшчальны канальны ўзровень 13757-4:2005. Канальны ўзровень (LINK) забяспечвае інтэрфейс паміж фізічным узроўнем (PHY) і прыкладным узроўнем (AL).
Канальны ўзровень выконвае наступныя функцыі:

  • Прадастаўляе функцыі, якія перадаюць даныя паміж PHY і AL
  • Стварае CRC для выходных паведамленняў
  • Выяўляе памылкі CRC ва ўваходных паведамленнях
  • Забяспечвае фізічную адрасацыю
  • Пацвярджае перадачы для рэжымаў двухнакіраванай сувязі
  • Біты дадзеных кадраў
  • Выяўляе памылкі кадравання ва ўваходных паведамленнях
Фармат кадра спасылкавага ўзроўню

Фармат кадра Wireless M-Bus, які выкарыстоўваецца ў EN 13757-4:2005, узяты з фармату кадра FT3 (Frame Type 3) з IEC60870-5-2. Кадр складаецца з аднаго або некалькіх блокаў даных. Кожны блок уключае 16-бітнае поле CRC. Першы блок - гэта блок фіксаванай даўжыні з 12 байтаў, які ўключае L-поле, C-поле, M-поле і A-поле.

  1. Л-поле
    L-поле - гэта даўжыня карыснай нагрузкі дадзеных канальнага ўзроўню. Гэта не ўключае само поле L або любы з байтаў CRC. Ён уключае L-поле, C-поле, M-поле і A-поле. Гэта частка карыснай нагрузкі PHY.
    Паколькі колькасць закадзіраваных байтаў абмежавана 255 байтамі, максімальнае значэнне, якое падтрымліваецца для М-поля, складае 110 байт для даных у манчэстэрскім кадзіраванні і 148 байт для даных у рэжыме T Three-Out-of-Six.
    Канальны ўзровень адказвае за разлік L-поля пры перадачы. Канальны ўзровень будзе выкарыстоўваць L-поле пры прыёме.
    Звярніце ўвагу, што L-поле не паказвае даўжыню карыснай нагрузкі PHY або колькасць закадзіраваных байтаў. Пасля перадачы PHY вылічыць даўжыню карыснай нагрузкі PHY і колькасць закадзіраваных байтаў. Пасля атрымання PHY дэкадуе L-поле і вылічыць колькасць байтаў для дэкадавання.
  2. С-поле
    C-поле - поле кіравання кадрам. Гэта поле ідэнтыфікуе тып кадра і выкарыстоўваецца для прымітываў службы абмену данымі па спасылцы. Поле C паказвае тып фрэйма – АДПРАВІЦЬ, ПАТЦВЕРДЗІЦЬ, ЗАПЫТ ці АДКАЗ. У выпадку кадраў SEND і REQUEST поле C паказвае, ці чакаецца CONFIRM або RESPOND.
    Пры выкарыстанні асноўнай функцыі Link TX можна выкарыстоўваць любое значэнне C. Пры выкарыстанні Link Service Primitives поле C запаўняецца аўтаматычна ў адпаведнасці з EN 13757-4:2005.
  3. М-поле
    Поле М - гэта код вытворцы. Вытворцы могуць запытаць трохлітарны код у наступным web адрас: http://www.dlms.com/flag/INDEX.HTM Кожны сімвал трохлітарнага кода закадаваны ў выглядзе пяці бітаў. 5-бітны код можна атрымаць, узяўшы код ASCII і адняўшы 0x40 ("A"). Тры 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
    Звярніце ўвагу, што CRC M-Bus разлічваецца для кожнага 16-байтавага блока. У выніку кожныя 16 байт дадзеных патрабуюць 18 байт для перадачы,
Дадатковая інфармацыя

Для атрымання дадатковай інфармацыі пра рэалізацыю канальнага ўзроўню глядзіце «AN452: Кіраўніцтва праграміста па стэку бесправадной шыны M-Bus».

Кіраванне харчаваннем

На малюнку 2 паказаны графік кіравання энергаспажываннем для глюкометраample з дапамогай рэжыму T1.

MCU павінен знаходзіцца ў спячым рэжыме кожны раз, калі гэта магчыма для эканоміі энергіі. У гэтым эксample, MCU знаходзіцца ў рэжыме сну, калі RTC працуе, калі чакае запуску радыёкрышталя і калі перадае з FIFO. MCU выйдзе з рэжыму сну ад сігналу IRQ EZRadioPRO, падлучанага да абуджэння Port Match.
Пры перадачы паведамленняў даўжэй аднаго блока MCU павінен прачнуцца, каб запоўніць FIFO (на аснове амаль пустога перапынення FIFO), а затым вярнуцца ў спячы рэжым.
Пры чытанні з АЦП MCU павінен знаходзіцца ў рэжыме чакання, які працуе ад генератара нізкай магутнасці або генератара ў пакетным рэжыме. АЦП патрабуе гадзінніка SAR.
Калі EZRadioPRO не выкарыстоўваецца, ён павінен знаходзіцца ў рэжыме выключэння з высокім узроўнем штыфта SDN. Гэта патрабуе праваднога злучэння з MCU. Рэгістры EZ Radio Pro не захоўваюцца ў рэжыме выключэння; такім чынам, EZRadioPro ініцыялізуецца на кожным інтэрвале RTC. Ініцыялізацыя радыё займае менш за 100 мкс і захоўвае 400 нА. Гэта прыводзіць да эканоміі энергіі ў 10 мкДж на аснове 10-секунднага інтэрвалу.
Крышталь EZRadioPRO займае каля 16 мс для POR. Гэтага дастаткова, каб вылічыць CRC прыкладна для васьмі блокаў. MCU вернецца ў рэжым сну, калі ён выканае ўсе CRC да таго, як крышталь стабілізуецца. Калі патрабуецца шыфраванне, яго таксама можна запусціць падчас чакання кварцавага генератара.
MCU павінен працаваць на частаце 20 МГц з выкарыстаннем маламагутнага генератара для большасці задач. Задачы, якія патрабуюць дакладнага тайм-аўту, павінны выкарыстоўваць дакладны асцылятар і рэжым чакання замест спячага рэжыму. RTC забяспечвае дастатковую раздзяляльнасць для большасці задач. Графік кіравання сілкаваннем для лічыльніка T2, напр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®, USBXpress® і іншыя з'яўляюцца гандлёвымі маркамі або зарэгістраванымі гандлёвымі маркамі Silicon Labs. ARM, CORTEX, Cortex-M3 і thumbs з'яўляюцца гандлёвымі маркамі або зарэгістраванымі гандлёвымі маркамі ARM Holdings. Keil з'яўляецца зарэгістраванай гандлёвай маркай ARM Limited. Усе іншыя прадукты або гандлёвыя маркі, згаданыя тут, з'яўляюцца гандлёвымі маркамі іх адпаведных уладальнікаў.Лагатып SILICON LABS

Кампанія Silicon Laboratories Inc.
400 Захад Сезар Чавес
Осцін, Тэхас 78701
ЗША
http://www.silabs.com

Дакументы / Рэсурсы

Рэалізацыя праграмнага забеспячэння SILICON LABS Wireless M-BUS AN451 [pdfКіраўніцтва карыстальніка
SILICON LABS, C8051, MCU і, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Праграмнае забеспячэнне, Рэалізацыя, AN451

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *