Logo SILICON LABS

AN451
IMPLEMENTACE SOFTWARU BEZDRÁTOVÉ M-BUS

Zavedení

Tato aplikační poznámka popisuje implementaci Wireless M-Bus Silicon Labs pomocí Silicon Labs C8051 MCU a EZRadioPRO®. Wireless M-bus je evropský standard pro aplikace odečtu měřičů využívající frekvenční pásmo 868 MHz.

Skládání vrstev

Wireless M-Bus využívá 3vrstvý model IEC, který je podmnožinou 7vrstvého modelu OSI (viz obrázek 1).

Implementace softwaru SILICON LABS Wireless M-BUS AN451Fyzická vrstva (PHY) je definována v EN 13757-4. Fyzická vrstva definuje, jak jsou bity kódovány a vysílány, charakteristiky RF modemu (rychlost čipu, preambule a synchronizační slovo) a RF parametry (modulace, střední frekvence a frekvenční odchylka).
Vrstva PHY je implementována pomocí kombinace hardwaru a firmwaru. EZRadioPRO provádí všechny funkce RF a modemu. EZRadioPRO se používá v režimu FIFO s obsluhou paketů. Modul MbusPhy.c poskytuje rozhraní SPI, kódování/dekódování, blokové čtení/zápis a manipulaci s pakety a spravuje stavy transceiveru.
Linková vrstva M-Bus je implementována v modulu MbusLink.c. Rozhraní pro programování aplikací M-Bus se skládá z veřejných funkcí, které lze volat z aplikační vrstvy v hlavním vláknu. Modul MbusLink také implementuje Data Link Layer. Vrstva datového spojení bude formátovat a kopírovat data z aplikační TX vyrovnávací paměti do MbusPhy TX vyrovnávací paměti, přičemž přidá požadovaná záhlaví a CRC.
Samotná aplikační vrstva není součástí firmwaru M-bus. Aplikační vrstva definuje, jak má být široká škála dat formátována pro přenos. Většina měřičů potřebuje přenášet pouze jeden nebo dva typy dat. Přidání velkého množství kódu pro uložení jakéhokoli druhu dat do měřiče by zvýšilo zbytečný kód a náklady na měřidlo. Mohlo by být možné implementovat knihovnu nebo hlavičku file s vyčerpávajícím seznamem datových typů. Většina zákazníků s měřením však přesně ví, jaký druh dat potřebuje přenášet, a podrobnosti o formátování si může prohlédnout ve standardu. Univerzální čtečka nebo sniffer může implementovat kompletní sadu aplikačních datových typů na PC GUI. Z těchto důvodů je aplikační vrstva implementována pomocí exampaplikace pro měřič a čtečku.

Požadované standardy
  1. EN 13757-4
    EN 13757-4
    Komunikační systém pro měřidla a dálkový odečet měřidel
    Část 4: Bezdrátový odečet
    Stav radiometru pro provoz v pásmu SRD 868 MHz až 870 MHz
  2. EN 13757-3
    Komunikační systém pro měřidla a dálkový odečet měřidel
    Část 3: Vyhrazená aplikační vrstva
  3. IEC 60870-2-1:1992
    Zařízení a systémy dálkového ovládání
    Část 5: Přenosové protokoly
    Oddíl 1: Postup přenosu odkazu
  4. IEC 60870-1-1:1990
    Zařízení a systémy dálkového ovládání
    Část 5: Přenosové protokoly
    Část 1: Formáty přenosových rámců
Definice
  • M-Bus –M-Bus je kabelový standard pro odečet měřičů v Evropě.
  • Bezdrátový M-Bus—Bezdrátový M-Bus pro aplikace odečtu měřičů v Evropě.
  • PHY—Fyzická vrstva definuje, jak jsou datové bity a bajty kódovány a přenášeny.
  • API —Rozhraní aplikačního programátora.
  • ODKAZ-Data Link Layer definuje, jak se přenášejí bloky a rámce.
  • CRC —Kontrola cyklické redundance.
  • FSK —Klíčování s frekvenčním posunem.
  • Čip-Nejmenší jednotka přenášených dat. Jeden datový bit je zakódován jako více čipů.
  • Modul-Zdroj AC kódu .c file.

Popis funkce M-Bus PHY

Sekvence preambule

Sekvence preambule specifikovaná specifikací M-bus je celočíselné číslo se střídáním nul a jedniček. Jednička je definována jako vyšší frekvence a nula je definována jako nižší frekvence.
nx (01)
Možnosti preambule pro Si443x je celočíselný počet kousků sestávající ze střídajících se jedniček a nul.
nx (1010)
Preambule s dalším úvodním by nebyl problém, ale pak by synchronizační slovo a užitečné zatížení byly nesprávně zarovnány o jeden bit.
Řešením je invertovat celý paket nastavením bitu enginu v registru Modulation Control 2 (0x71). Tím se invertuje preambule, synchronizační slovo a data TX/RX. V důsledku toho by měla být data invertována při zápisu dat TX nebo čtení dat RX. Také synchronizační slovo je invertováno před zápisem do registrů synchronizačního slova Si443x.

Synchronizace Word

Synchronizační slovo požadované normou EN-13757-4 je buď 18 čipů pro režim S a režim R nebo 10 čipů pro model T. Synchronizační slovo pro Si443x je 1 až 4 bajty. Protože však před synchronizačním slovem vždy předchází preambule, může být posledních šest bitů preambule považováno za součást synchronizačního slova; takže první synchronizační slovo je doplněno třemi opakováními nuly následovanými jedničkou. Synchronizační slovo je doplněno před zápisem do registrů Si443x.
Tabulka 1. Synchronizační slovo pro režim S a režim R

EN 13757-4 00 01110110 10010110 binární
00 76 96 hex
podložka s (01) x 3 01010100 01110110 10010110 binární
54 76 96 hex
doplněk 10101011 10001001 01101001 binární
AB 89 69 hex

Tabulka 2. Synchronizační slovo pro měřidlo v režimu T k jinému

SYNCH SYNCH SYNCH
SLOVO SLOVO SLOVO
3 2 1
Délka preambule přenosu

Minimální preambule je určena pro čtyři různé provozní režimy. Je přijatelné mít preambuli delší, než je uvedeno. Odečtením šesti čipů pro preambuli získáme minimální počet čipů pro preambuli Si443x. Implementace přidává dvě další části preambule ve všech režimech krátké preambule pro zlepšení detekce preambule a interoperability. Preambule v režimu S s dlouhou preambulí je velmi dlouhá; takže se používá minimální preambule. Délka preambule v útržcích se zapisuje do registru Délka preambule (0x34). Registr délky preambule určuje preambuli pouze při přenosu. Minimální specifikace a nastavení délky preambule jsou shrnuty v tabulce 3.
Tabulka 3. Délka preambule přenosu

EN-13757-4
minimální
Si443x Preambule
Nastavení ing
Synchronizovat
Slovo
Celkový další
nx (01) čipy okusuje čipy čipy čipy čipy
Krátká preambule režimu S 15 30 8 32 6 38 8
Dlouhá preambule režimu S 279 558 138 552 6 558 0
Režim T (metr-jiný) 19 38 10 40 6 46 8
Režim R. 39 78 20 80 6 86 8

Minimální preambule pro příjem je určena registrem řízení detekce preambule (0x35). Po příjmu musí být počet bitů v synchronizačním slově odečten od specifikované minimální preambule pro určení použitelné preambule. Minimální doba ustálení přijímače je 16 čipů, pokud je AFC povoleno, nebo 8 čipů, pokud je AFC zakázáno. Doba ustálení přijímače se také odečte od použitelné preambule, aby se určilo minimální nastavení pro registr řízení detekce preambule.

Pravděpodobnost falešné preambule závisí na nastavení registru řízení detekce preambule. Krátké nastavení 8 čipů může mít za následek falešnou preambuli detekovanou každých několik sekund. Doporučené nastavení 20 čipů činí detekci falešné preambule nepravděpodobnou událostí. Délky preambule pro režim R a režim SL jsou dostatečně dlouhé pro použití doporučeného nastavení.
Je velmi málo přínosné, aby preambule detekovala déle než 20 čipů.
AFC je deaktivováno pro Model S s krátkou preambulí a Model T. To zkracuje dobu ustálení přijímače a umožňuje delší nastavení detekce preambule. S deaktivovaným AFC může režim T používat doporučené nastavení 20 čipů. Nastavení 4 kousků nebo 20 žetonů se používá pro Model S s krátkou preambulí. To u tohoto modelu mírně zvyšuje pravděpodobnost detekce falešné preambule.
Tabulka 4. Detekce preambule

EN-13757-4
minimální
Synchronizovat
Slovo
použitelný
preambule
Vyrovnání RX Zjistit
min
Si443x Preambule
Nastavení detekce
nx (01) čipy čipy čipy čipy čipy okusuje čipy
Krátká preambule režimu S 15 30 6 24 8* 16 4 16
Model S dlouhá preambule 279 558 6 552 16 536 5 20
Model T (metr-jiný) 19 38 6 32 8* 24 5 20
Režim R. 39 78 6 72 16 56 5 20
*Poznámka: AFC deaktivováno

Přijímač je nakonfigurován tak, aby spolupracoval s vysílačem pomocí minimální specifikované preambule. To zajišťuje, že přijímač bude spolupracovat s jakýmkoli vysílačem kompatibilním s M-bus.
Specifikace Wireless M-Bus vyžaduje velmi dlouhou preambuli pro režim S1 s minimálně 558 čipy. Přenos preambule bude trvat asi 17 ms. Si443x nevyžaduje tak dlouhou preambuli a netěží z dlouhé preambule. Zatímco dlouhá preambule je uvedena jako volitelná pro režim S2, není důvod používat dlouhou preambuli u Si443x. Pokud je požadována jednosměrná komunikace, režim T1 poskytne kratší preambuli, vyšší rychlost přenosu dat a delší životnost baterie. Pokud je vyžadována obousměrná komunikace pomocí režimu S2, doporučuje se krátká preambule.
Všimněte si, že práh detekce pro Model S s dlouhou preambulí je delší než počet nibbů preambule přenášených pro Model S s krátkou preambulí. To znamená, že přijímač režimu S s dlouhou preambulí nezjistí preambuli z vysílače režimu S s krátkou preambulí. To je nezbytné, pokud má přijímač s dlouhou preambulí v režimu S získat nějakou výhodu z dlouhé preambule.
Všimněte si, že přijímač s krátkou preambulí Mode S detekuje preambuli a přijímá pakety z obou krátkých preambulí Mode S
vysílač a vysílač režimu S s dlouhou preambulí; obecně by tedy měla čtečka měřidel používat konfiguraci přijímače s krátkou preambulí Mode S.

Kódování/dekódování

Specifikace Wireless M-bus vyžaduje dvě různé metody kódování. Kódování Manchester se používá pro režim S a režim R. Kódování Manchester se používá také pro propojení mezi ostatními měřidly v Modelu T. Linka z měřiče na Model T používá 3 ze 6 kódování.
1. Manchester Encoded/Decoding
Kódování v Manchesteru je historicky běžné v RF systémech a poskytuje robustní obnovu a sledování hodin pomocí jednoduchého a levného modemu. Moderní vysoce výkonné rádio, jako je Si443x, však kódování Manchester nepotřebuje. Kódování Manchester je podporováno primárně kvůli kompatibilitě se stávajícími standardy, ale rychlost přenosu dat pro Si443x je efektivně zdvojnásobena, když se nepoužívá kódování Manchester.
Si443x podporuje manchesterské kódování a dekódování celého paketu v hardwaru. Bohužel synchronizační slovo není zakódováno v Manchesteru. Pro synchronizační slovo byla záměrně zvolena neplatná Manchesterská sekvence. Díky tomu je kódování Manchester nekompatibilní s většinou existujících rádií, včetně Si443x. V důsledku toho musí kódování a dekódování v Manchesteru provádět MCU. Každý bajt nekódovaných dat se skládá z osmi datových bitů. Pomocí kódování Manchester je každý datový bit zakódován do dvoučipového symbolu. Protože kódovaná data musí být zapsána do rádiového FIFO osmi čipy najednou, je zakódován a zapsán do FIFO jeden kousek dat najednou.
Tabulka 5. Kódování Manchester

data Ox12 0x34 bajtů
Ox1 0x2 0x3 0x4 okusuje
1 10 11 100 binární
čip 10101001 10100110 10100101 10011010 binární
FIFO OxA9 OxA6 OxA5 Ox9A hex

Každý bajt, který má být přenesen, je předán po jednom bajtu funkci kódování bajtů. Funkce encode byte zavolá funkci encode nibble dvakrát, nejprve pro nejvýznamnější nibble a poté pro nejméně významnou nibble.
Kódování Manchester v softwaru není obtížné. Počínaje nejvýznamnějším bitem je jeden kódován jako sekvence čipu „01“. Nula je zakódována jako sekvence žetonů „10“. To lze snadno provést pomocí smyčky a posunutí dvou bitů pro každý symbol. Je však rychlejší použít jednoduchou vyhledávací tabulku se 16 položkami pro každý kousek. Funkce encode Manchester nibble zakóduje nibble dat a poté je zapíše do FIFO. Čipy jsou před zápisem do FIFO invertovány, aby se zohlednily požadavky na invertovanou preambuli.
Při příjmu se každý bajt ve FIFO skládá z osmi čipů a je dekódován do jednoho kousku dat. Funkce čtení bloku čte jeden bajt po druhém z FIFO a volá funkci dekódování bajtů. Čipy jsou po načtení z FIFO invertovány, aby se zohlednily požadavky na invertovanou preambuli. Každý bajt čipů kódovaných v Manchesteru je dekódován do kousku dat. Dekódovaný nibble je zapsán do RX vyrovnávací paměti pomocí funkce write nibble RX buffer.
Všimněte si, že jak kódování, tak dekódování jsou prováděny po jednom datovém kousnutí za běhu. Kódování do vyrovnávací paměti by vyžadovalo další vyrovnávací paměť dvakrát větší než nekódovaná data. Kódování a dekódování je mnohem rychlejší než nejrychlejší podporovaná datová rychlost (100 k čipů za sekundu). Protože Si443x podporuje vícebajtové čtení a zápis do FIFO, je zde malá režie při použití pouze jednobajtového čtení a zápisu. Režie je asi 10 µs pro 100 kódovaných čipů. Výhodou je úspora RAM 512 bajtů.
2. Tři ze šesti kódování dekódování
Metoda kódování tři ze šesti specifikovaná v EN-13757-4 je také implementována ve firmwaru na MCU. Toto kódování se používá pro vysokorychlostní (100 k čipů za sekundu) režim T z měřiče na druhý. Model T poskytuje nejkratší dobu přenosu a nejdelší výdrž baterie pro bezdrátový měřič.
Každý bajt dat, která mají být přenesena, je rozdělen do dvou kousků. Nejvýznamnější kousnutí je zakódováno a přeneseno jako první. Opět je to implementováno pomocí funkce encode byte, která dvakrát volá funkci encode nibble.
Každý kousek dat je zakódován do šestičipového symbolu. Sekvence šestičipových symbolů musí být zapsána do 8čipového FIFO.
Během kódování jsou dva bajty dat zakódovány jako čtyři nibble. Každý okus je symbolem 6 žetonů. Čtyři 6čipové symboly jsou agregovány jako tři bajty.
Tabulka 6. Kódování tří ze šesti

data 0x12 0x34 bajtů
Ox1 0x2 0x3 0x4 okusuje
čip 15 16 13 34 osmičkový
1101 1110 1011 11100 binární
FIFO 110100 11100010 11011100 binární
0x34 OxE2 OxDC hex

V softwaru je kódování tři ze šesti implementováno pomocí tří vnořených funkcí. Funkce encode byte zavolá funkci encode nibble dvakrát. Funkce encode nibble používá vyhledávací tabulku pro šestičipový symbol a zapisuje symbol do funkcí Shift Three ze šesti. Tato funkce implementuje 16čipový posuvný registr v softwaru. Symbol se zapisuje do nejméně významného bytu posuvného registru. Registr se dvakrát posune doleva. Toto se opakuje třikrát. Když je v horním bajtu posuvného registru přítomen úplný bajt, je invertován a zapsán do FIFO.
Protože každý bajt dat je zakódován jako jeden a půl zakódovaného bajtu, je důležité nejprve vymazat posuvný registr, aby byl první zakódovaný bajt správný. Pokud je délka paketu liché číslo, po zakódování všech bajtů zůstane v posuvném registru stále jeden nibble. To je řešeno pomocí postamble, jak je vysvětleno v další části.
Dekódování tří ze šesti zakódovaných je opačný postup. Při dekódování se tři zakódované bajty dekódují na dva datové bajty. Softwarový posuvný registr opět slouží k agregaci bajtů dekódovaných dat. K dekódování se používá inverzní vyhledávací tabulka s 64 položkami. To využívá méně cyklů, ale více paměti kódu. Hledání odpovídajícího symbolu ve vyhledávací tabulce o 16 záznamech trvá podstatně déle.
Postamble
Specifikace Wireless M-bus má specifické požadavky na postamble nebo přívěs. Pro všechny režimy jsou minimum dva žetony a maximum osm žetonů. Protože minimální atomová jednotka pro FIFO je jeden bajt, používá se 8čipový přívěs pro režim S a režim R. Postamble režimu T je osm čipů, pokud je délka paketu sudá, nebo čtyři čipy, pokud je délka paketu lichá. Čtyřčipový postamble pro lichou délku paketu splňuje požadavky mít alespoň dva střídající se čipy.
Tabulka 7. Délka postamble

Délka postamble (žetony)
min max Implementace sekvence čipů
Režim S 2 8 8 1010101
Režim T 2 8 4 (zvláštní) 101
8 (dokonce) 1010101
Režim R. 2 8 8 1010101
Manipulátor paketů

Ovladač paketů na Si443x lze použít v režimu proměnné šířky paketu nebo režimu s pevnou šířkou paketu. Režim proměnné šířky paketu vyžaduje bajt délky paketu za synchronizačním slovem a volitelné bajty záhlaví. Po příjmu radiostanice použije bajt délky k určení konce platného paketu. Při přenosu rádio vloží pole délky za bajty záhlaví.
Pole L pro bezdrátový protokol M-bus nelze použít pro pole délky Si443x. Za prvé, pole L není skutečná délka paketu. Je to počet bajtů užitečného zatížení linkové vrstvy bez bajtů CRC nebo kódování. Za druhé, samotné L-pole je kódováno buď pomocí Manchester kódování, nebo pomocí kódování tři ze šesti pro měřidlo v módu T na jiný.
Implementace používá obsluhu paketů v režimu pevné šířky paketu pro vysílání i příjem. Po přenosu bude vrstva PHY číst pole L ve vyrovnávací paměti přenosu a vypočítá počet zakódovaných bajtů, včetně postamble. Celkový počet kódovaných bajtů, které mají být přeneseny, je zapsán do registru Packet Length (0x3E).
Po příjmu jsou první dva zakódované bajty dekódovány a L-pole je zapsáno do přijímací vyrovnávací paměti. L-pole se používá k výpočtu počtu kódovaných bajtů, které mají být přijaty. Počet zakódovaných bajtů, které mají být přijaty, je poté zapsán do registru Packet Length (0x3E). Postamble se zahodí.
MCU musí dekódovat L-pole, vypočítat počet zakódovaných bajtů a zapsat hodnotu do registru Packet Length předtím, než bude přijata nejkratší možná délka paketu. Nejkratší přípustné L-pole pro vrstvu PHY je 9, což dává 12 nekódovaných bajtů. To dává 18 zakódovaných bajtů pro Model T. První dva bajty již byly dekódovány. Registr délky paketu tedy musí být aktualizován v 16bajtových časech rychlostí 100 kb/s nebo 1.28 milisekundy. To není žádný problém pro 8051 běžící na 20 MIPS.
Počet bajtů, které mají být přijaty, nezahrnuje postamble, s výjimkou čtyřčipového postamble používaného pro pakety módu T s lichou délkou paketu. Přijímač tedy nevyžaduje postamble, s výjimkou paketů Model T s lichou délkou. Tento postamble je potřeba pouze k zadání celého čísla zakódovaných bajtů. Obsah postamble je ignorován; takže pokud se postamble nepřenese, budou přijaty a ignorovány čtyři čipy šumu. Protože celkový počet zakódovaných bajtů je omezen na 255 (0xFF), implementace omezuje maximální L-pole pro různé režimy.
Tabulka 8. Limity velikosti paketů

zakódované dekódováno M-Bus
bajtů bajtů Pole L
prosinec hex prosinec hex prosinec hex
Režim S 255 FF 127 7 F 110 6E
Režim T (metr-jiný) 255 FF 169 A9 148 94
Režim R. 255 FF 127 7 F 110 6E

Tyto limity jsou obvykle výrazně nad obvyklým případem použití bezdrátového měřiče. Délka paketu by měla být malá, aby byla zajištěna co nejlepší životnost baterie.
Kromě toho může uživatel zadat maximální L-pole, které má být přijato (USER_RX_MAX_L_FIELD). To určuje požadovanou velikost vyrovnávací paměti pro příjem (USER_RX_BUFFER_SIZE).
Podpora maximálního L-pole 255 by vyžadovala přijímací vyrovnávací paměť 290 bajtů a maximálně 581 bajtů kódovaných v Manchesteru. Obslužný program paketů by musel být deaktivován a v takovém případě by nebylo možné použít registr Délka paketu. To je možné, ale pokud je to možné, je pohodlnější použít obsluhu paketů.

Použití FIFO

Si4431 poskytuje 64bajtové FIFO pro vysílání a příjem. Protože počet kódovaných bajtů je 255, celý kódovaný paket se nemusí vejít do 64bajtové vyrovnávací paměti.
Přenos
Při přenosu se vypočítá celkový počet zakódovaných bajtů. Pokud je celkový počet zakódovaných bajtů včetně postamble menší než 64 bajtů, je celý paket zapsán do FIFO a je povoleno pouze přerušení odeslaného paketu. Většina krátkých paketů bude odeslána jedním přenosem FIFO.
Pokud je počet zakódovaných bajtů větší než 64, bude k odeslání paketu zapotřebí více přenosů FIFO. Prvních 64 bajtů je zapsáno do FIFO. Jsou povolena přerušení Packet Sent a TX FIFO Almost Empty. Prahová hodnota TX FIFO Téměř prázdné je nastavena na 16 bajtů (25 %). Při každé události IRQ se přečte stav 2 registru. Nejprve je zkontrolován bit Packet Sent, a pokud paket nebyl zcela odeslán, je do FIFO zapsáno dalších 48 bajtů kódovaných dat. Toto pokračuje, dokud nejsou zapsány všechny kódované bajty a nedojde k přerušení Packet Sent.
1. Recepce
Při příjmu je zpočátku povoleno pouze přerušení synchronizačního slova. Po přijetí synchronizačního slova je přerušení synchronizačního slova zakázáno a je povoleno přerušení FIFO Téměř plné. Téměř plný práh FIFO je zpočátku nastaven na 2 bajty. První přerušení FIFO Téměř plné se používá ke zjištění, kdy byly přijaty dva byty délky. Po obdržení délky se délka dekóduje a vypočítá se počet zakódovaných bajtů. Prahová hodnota RX FIFO téměř plná je pak nastavena na 48 bajtů. RX FIFO je téměř plný a jsou povolena platná přerušení paketů. Při další události IRQ se přečte stav 1 registru. Nejprve se zkontroluje bit Platný paket a poté se zkontroluje bit FIFO Téměř plný. Pokud je nastaven pouze bit RX FIFO Téměř plné, bude z FIFO načteno dalších 48 bajtů. Pokud je nastaven platný bit paketu, přečte se zbytek paketu z FIFO. MCU sleduje, kolik bajtů bylo přečteno, a zastaví čtení po posledním bajtu.

Vrstva datového spojení

Modul vrstvy datového spojení implementuje linkovou vrstvu vyhovující 13757-4:2005. Vrstva datového spojení (LINK) poskytuje rozhraní mezi fyzickou vrstvou (PHY) a aplikační vrstvou (AL).
Data Link Layer plní následující funkce:

  • Poskytuje funkce, které přenášejí data mezi PHY a AL
  • Generuje CRC pro odchozí zprávy
  • Detekuje chyby CRC v příchozích zprávách
  • Poskytuje fyzické adresování
  • Potvrzuje přenosy pro obousměrné komunikační režimy
  • Rámuje datové bity
  • Detekuje chyby rámce v příchozích zprávách
Link Layer Frame Format

Formát rámce Wireless M-Bus používaný v EN 13757-4:2005 je odvozen od formátu rámce FT3 (Frame Type 3) z IEC60870-5-2. Rámec se skládá z jednoho nebo více bloků dat. Každý blok obsahuje 16bitové pole CRC. První blok je blok s pevnou délkou 12 bajtů, který zahrnuje L-pole, C-pole, M-pole a A-pole.

  1. Pole L
    L-pole je délka datové zátěže linkové vrstvy. To nezahrnuje samotné L-pole ani žádný z bajtů CRC. Zahrnuje L-pole, C-pole, M-pole a A-pole. Ty jsou součástí užitečného zatížení PHY.
    Protože počet kódovaných bajtů je omezen na 255 bajtů, maximální podporovaná hodnota pro pole M je 110 bajtů pro data kódovaná v Manchesteru a 148 bajtů pro data kódovaná v režimu T tři z šesti.
    Linková vrstva je zodpovědná za výpočet L-pole při přenosu. Link-layer použije L-pole na příjmu.
    Všimněte si, že pole L neudává délku užitečného zatížení PHY ani počet zakódovaných bajtů. Při přenosu PHY vypočítá délku užitečného zatížení PHY a počet zakódovaných bajtů. Po příjmu PHY dekóduje L-pole a vypočítá počet bajtů k dekódování.
  2. C-pole
    C-pole je pole řízení rámce. Toto pole identifikuje typ rámce a používá se pro primitiva služby výměny dat spojení. Pole C udává typ rámce – ODESLAT, POTVRDIT, ŽÁDAT nebo ODPOVĚDĚT. V případě rámců SEND a REQUEST C-pole udává, zda se očekává POTVRZENÍ nebo ODPOVĚĎ.
    Při použití základní funkce Link TX lze použít jakoukoli hodnotu C. Při použití Primitives Link Service Primitives se pole C vyplní automaticky podle EN 13757-4:2005.
  3. M-pole
    M-pole je kód výrobce. Výrobci mohou požadovat třípísmenný kód z následujícího web adresa: http://www.dlms.com/flag/INDEX.HTM Každý znak třípísmenného kódu je zakódován jako pět bitů. 5bitový kód lze získat odebráním kódu ASCII a odečtením 0x40 („A“). Tři 5bitové kódy jsou zřetězeny tak, aby vytvořily 15bitové. Nejvýznamnější bit je nula.
  4. A-pole
    Pole adresy je jedinečná 6bajtová adresa pro každé zařízení. Jedinečnou adresu by měl přidělit výrobce. Je odpovědností každého výrobce zajistit, aby každé zařízení mělo jedinečnou 6bajtovou adresu. Adresa pro rámce Send a Request je vlastní adresa měřiče nebo jiného zařízení. Datové rámce potvrzení a odpovědi se odesílají pomocí adresy původního zařízení.
  5. CI pole
    Pole CI je hlavička aplikace a specifikuje typ dat v datové části aplikace. Zatímco EN13757-4:2005 specifikuje omezený počet hodnot, Link Service Primitives povolí použití jakékoli hodnoty.
  6. CRC
    CRC je specifikováno v EN13757-4:2005.
    Polynom CRC je:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Všimněte si, že M-Bus CRC se vypočítává pro každý 16bajtový blok. Výsledkem je, že každých 16 bajtů dat vyžaduje přenos 18 bajtů,
Další informace

Další informace o implementaci Link Layer najdete v „AN452: Wireless M-Bus Stack Programmers Guide“.

Správa napájení

Obrázek 2 ukazuje časovou osu správy napájení pro elektroměr napřamppomocí režimu T1.

MCU by měl být v režimu spánku, kdykoli je to možné, aby se šetřila energie. V tomto example, MCU spí, když běží RTC, když čeká na spuštění krystalu rádia a když vysílá z FIFO. MCU se probudí ze signálu EZRadioPRO IRQ připojeného k probuzení Port Match.
Při přenosu zpráv delších než jeden blok se MCU musí probudit, aby zaplnil FIFO (na základě přerušení FIFO téměř prázdné) a poté se vrátit do režimu spánku.
Při čtení z ADC by MCU měl být v klidovém režimu spuštěném z oscilátoru s nízkým výkonem nebo z oscilátoru v burst režimu. ADC vyžaduje hodiny SAR.
Když se EZRadioPRO nepoužívá, mělo by být v režimu vypnutí s SDN pinem řízeným vysoko. To vyžaduje pevné připojení k MCU. Registry EZ Radio Pro nejsou zachovány v režimu vypnutí; takže EZRadioPro je inicializováno v každém RTC intervalu. Inicializace rádia trvá méně než 100 µs a šetří 400 nA. Výsledkem je úspora energie 10 µJ na základě 10sekundového intervalu.
Krystal EZRadioPRO trvá POR asi 16 ms. To je dostatečně dlouhá doba pro výpočet CRC pro asi osm bloků. MCU se vrátí do režimu spánku, pokud dokončí všechny CRC dříve, než se krystal stabilizuje. Pokud je vyžadováno šifrování, lze jej také spustit při čekání na krystalový oscilátor.
MCU by měl pro většinu úloh běžet na frekvenci 20 MHz s použitím nízkovýkonového oscilátoru. Úlohy, které vyžadují přesný časový limit, musí místo režimu spánku používat přesný oscilátor a režim nečinnosti. RTC poskytuje dostatečné rozlišení pro většinu úloh. Časová osa správy napájení pro měřič T2 exampAplikace je znázorněna na obrázku 3.

Implementace transceiveru by měla být optimalizována pro normální případ, kdy se měřič probudí a není přítomna žádná čtečka. Minimální/maximální časové limity ACK jsou dostatečně dlouhé, aby bylo možné použít C8051F930 RTC a uvést MCU do režimu spánku.
K dispozici jsou možnosti sestavení pro čtečky napájené ze sítě nebo USB, které nepotřebují režim spánku. Místo spánku bude použit klidový režim, takže USB a UART mohou přerušit MCU.

Implementace softwaru SILICON LABS Wireless M-BUS AN451-1

Studio jednoduchosti
Přístup jedním kliknutím k MCU a bezdrátovým nástrojům, dokumentaci, softwaru, knihovnám zdrojového kódu a dalším. K dispozici pro Windows,
Mac a Linux!

Portfolio IoT Kvalitní
Portfolio IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Kvalitní
www.silabs.com/quality
Podpora a komunita
community.silabs.com

Zřeknutí se odpovědnosti
Silicon Labs má v úmyslu poskytovat zákazníkům nejnovější, přesnou a hloubkovou dokumentaci všech periferií a modulů dostupných pro implementátory systémů a softwaru, kteří používají nebo hodlají používat produkty Silicon Labs. Charakterizační údaje, dostupné moduly a periferie, velikosti paměti a adresy paměti se vztahují ke každému konkrétnímu zařízení a poskytnuté „typické“ parametry se mohou v různých aplikacích lišit a mění se. Aplikace exampzde popsané texty slouží pouze pro ilustrativní účely. Silicon Labs si vyhrazuje právo provádět změny bez dalšího upozornění a omezení zde uvedených informací o produktech, specifikací a popisů a neposkytuje záruky na přesnost nebo úplnost obsažených informací. Silicon Labs nenese žádnou odpovědnost za důsledky použití zde uvedených informací. Tento dokument neimplikuje ani nevyjadřuje autorská práva udělená podle tohoto dokumentu k návrhu nebo výrobě jakýchkoli integrovaných obvodů. Produkty nejsou navrženy ani schváleny k použití v rámci jakéhokoli systému podpory života bez výslovného písemného souhlasu Silicon Labs. „Systém podpory života“ je jakýkoli produkt nebo systém určený k podpoře nebo udržení života a/nebo zdraví, u kterého lze důvodně předpokládat, že pokud selže, povede k vážnému zranění nebo smrti. Produkty Silicon Labs nejsou navrženy ani schváleny pro vojenské aplikace. Produkty Silicon Labs se za žádných okolností nesmějí používat ve zbraních hromadného ničení, včetně (ale nejen) jaderných, biologických nebo chemických zbraní nebo střel schopných takové zbraně nést.
Informace o ochranné známce
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® a logo Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, logo Energy Micro a jejich kombinace, „světově nejšetrnější mikrokontroléry“, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® a další jsou ochranné známky nebo registrované ochranné známky společnosti Silicon Labs. ARM, CORTEX, Cortex-M3 a palce jsou ochranné známky nebo registrované ochranné známky společnosti ARM Holdings. Keil je registrovaná ochranná známka společnosti ARM Limited. Všechny ostatní produkty nebo názvy značek zde uvedené jsou ochrannými známkami příslušných vlastníků.Logo SILICON LABS

Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
USA
http://www.silabs.com

Dokumenty / zdroje

Implementace softwaru SILICON LABS Wireless M-BUS AN451 [pdfUživatelská příručka
SILICON LABS, C8051, MCU, and, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Software, Implementation, AN451

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *