Jste zde

Komunikační protokol M-BUS - popis a struktura

Průmyslová datová sběrnice M-BUS (Meter-BUS) je určena k přenosu dat a řízení  v oblasti měření a regulace topných systémů, plynu, odběru vody a elektrické energie. Struktura je založena na sériovém asynchronním přenosu po dvouvodičové sběrnici, podobně jako RS-485, s možností přímého napájení účastnických stanic. Tento článek popisuje základní strukturu komunikačního protokolu standardu a přehled existujících komponent.

ÚVOD

Evropský standard M-Bus (z anglického Meter-Bus) byl původně primárně určen pro dálkové čtení dat měřičů tepla, ale obecně je určen pro aplikace sběru dat z měřičů odběru nejrůznějších médií (například pitné a užitkové vody, plynu, tepla, elektrické energie), stejně tak i pro čtení dat z různých senzorů a řízení akčních členů převážně z oblasti systémů, kde není příliš nutná rychlá odezva v čase. Je vyvíjen ve spolupráci University Padeborn a firem Texas Instruments Deutschland GmbH a Techem GmbH

ZÁKLADNÍ CHARAKTERISTIKA

Vzhledem k relativně úzké a poměrně specializované aplikační oblasti jsou na M-Bus kladeny specifické požadavky. Musí zajistit propojení velkého množství zařízení (řádově několika set) na vzdálenost až několika kilometrů. Přenos dat musí být kvalitně zabezpečen proti chybám. Na druhé straně je typickou vlastností aplikace nepříliš časté odečítání naměřených hodnot s nízkými nároky na odezvy v reálném čase. To spolu s přenosovými rychlostmi do 9600 Bd a obvykle nízkými požadavky měřičů na výpočetní výkon procesoru umožňuje implementovat všechny protokolové vrstvy OSI modelu programově a to včetně programové emulace sériového řadiče (UARTu).

Charakteristické rysy standardní konfigurace lze shrnout do následujících bodů:

  • Speciální implementace fyzické vrstvy
  • Galvanicky oddělené rozhraní
  • Možnost napájení účastníků po sběrnici
  • Dvoudrátové vedení s délkou až několik kilometrů
  • Řízení komunikace na principu Master - Slave
  • Bez implementace síťové vrstvy maximálně 250 účastníků
  • Asynchronní přenos znaků, 8 bitů dat, sudá parita
  • Přenosová rychlost 300 až 9600 Bd
  • Zabezpečení datového bloku pomocí kontrolního součtu

Samotný standard je již v dnešní době podporován výrobky mnoha výrobců, a proto je zde možnost vzájemné komunikace různých zařízení od různých výrobců. 

STRUKTURA SÍTĚ

Struktura sítě M-BUS je sběrnicového typu, což je pro robustní průmyslové aplikace cenově i spolehlivostí nejefektivnější řešení. Jednotlivé komponenty jsou připojeny na jednu společnou linku, což má výhodu v jednoduchému připojování a odpojování komponent bez vlivu na samotnou komunikaci zbylých stanic, možnosti vysílání dat více stanicím najednou (broadcasting, multicasting), naopak nevýhodu v možnosti vysílání dat  vždy jen jedné stanice v daném čase.  

Samotný model komunikace komponent je založen na RM-OSI modelu z důvodu uplatnění téměř jakéhokoliv komunikačního protokolu. 

Vrstva OSI modelu

Funkce

Standard

Aplikační

Struktura dat, typy dat

akce

EN1434-3

Prezenční

nevyužívá se

 

Spojová

nevyužívá se

 

Transportní

nevyužívá se

 

Síťová

rozšířené adresování (volitelné)

-

Linková

parametry přenosu, formát telegramu, adresování, integrita dat

IEC 870

Fyzická

kabel, bitová reprezentace,  topologie, elektrická specifikace.

M-Bus

Vrstvy OSI modelu průmyslové sběrnice M-BUS (Meter-BUS)

Fyzická vrstva sítě

Základní konfigurace sítě obsahuje jednu řídící stanici (repeater, Master) a až 250 stanic účastnických (Slave), které reprezentují jednotlivá měřící, řídící a akční zařízení. Řídící stanice může být  PC s příslušným softwarem a rozhraním (RS232 - M-BUS interface), které může plnit i více rolí jako jsou testování jednotlivých stanic nebo průběžné sledování fyzických parametrů samotné sítě či M-BUS administrátora. Sběrnice je tvořena dvoudrátovou sběrnicí (telefonní kabel) s poloduplexním přenosem dat a řízením přístupu Master - Slave. Primárně se využívá přenosu po stíněném kabelu s krouceným párem, i když poslední roky je možné využít i bezdrátovou variantu s radiovým přenosem. O tom však podrobněji v některém dalším článku. Zde si nastíníme klasické provedení s komunikací po vodičích.

Délka kabelového segmentu v této konfiguraci nesmí překročit 1000 m (350 m pro 9600 Bd). Aby bylo možné napájení účastnických stanic po tomtéž vedení, používá M-Bus pro přenos od řídicí stanice (Master) ke stanicím účastnickým (Slave) změny napěťových úrovní, ve směru opačném změny v odběru proudu. Oba případy uvádějí následující dva obrázky.    

Přenos dat od řídící stanice (Master) k účastnické (Slave) - přijímač Slave

Přenos dat od účastnické stanice (Slave) k řídící (Master) - vysílač Slave

Příklady obvodů jsou převzaty z datasheetu integrovaného obvodu transceiveru pro slave TI TSS721A . VBUS a  IBUS značí proudy a napětí na sběrnici M-BUS, jejíž dva vodiče jsou zde označeny BUSL1 a BUSL2. TC3 a TC4 označují komparátory. TX, TXI resp. RX, RXI  značí přiváděné vystupující resp. vstupující signály například z RS-485. Napájecí napětí samotného integrovaného obvodu se vytváří na připojeném externím kondenzátoru, který je nabíjen proudem ze sběrnice. Bližší popis je obsažen v datasheetu www.m-bus.com/files/slas222.pdf.

Definice logických úrovní:

Ve směru od řídicí stanice (Master) ke stanicím účastnickým (Slave):

  • log.1 => VMARK = +36 V
  • log.0 => VSPACE = +36V - 12V = + 24 V
  • IBUS = 1,5 mA

Ve směru od účastnické stanice (Slave) ke stanici řídicí (Master):

  • log.1 => ISPACE = 1,5mA
  • log.0 => IMARK = 1,5 mA + 11 až 20 mA
  • VBUS = +36 V

Grafický popis úrovní na vodičích pro přenos bitů na sběrnici M-BUS

Linková vrstva

Základem protokolu je poloduplexní asynchronní přenos s rozsahem přenosových rychlostí 300 až 9600 Baud. Pro komunikaci pak linková vrstva využívá dvě základní procedury:

  • Vyslání/Potvrzení (Send/Confirm) - SND/CON
  • Žádost/Odezva (Request/Respond) - REQ/RSP

Zvláštním dodatečným požadavkem, který vyplývá z požadavků fyzické vrstvy, je, aby mezi jednotlivými přenášenými znaky nebyly časové mezery. To znamená, že ihned po stopbitu musí následovat přenos dalšího znaku. Protokol linkové vrstvy je založen na mezinárodním standardu IEC  870-5 a specifikuje tři rozdílné telegramů lišící se startovacími znaky. 

Formát telegramu M-Bus protokolu

Telegram protokolu M-BUS definuje následující 4 komunikační rámce:

  • Jednotlivý znak: tento rámec se skládá z jediného znaku, jmenovitě 0xE5. Používá se k potvrzení o přijetí jiného vyslaného rámce.

  • Krátký rámec: tento rámec má pevnou délku. Začíná úvodním znakem 0x10, následuje pole C, pole A, kontrolní součet a koncový znak 0x16. Kontrolní součet se počítá pouze z polí A.

  • Dlouhý rámec: tento rámec začíná znakem 0x68, pokračuje dvakrát opakovaným polem L, obsahujícím délku rámce a opět úvodním znakem 0x68. Poté následuje pole C, pole A, pole CI, uživatelská data o délce 0 ¸  252 bajtů, kontrolní součet a ukončovací znak 0x16. Pole L obsahuje počet bajtů uživatelských dat zvýšený o tři (tj. o délku polí C, A a CI). Kontrolní součet je počítán z polí C, A, CI a z uživatelských dat.

  • Řídicí rámec: obsah řídicího rámce odpovídá dlouhému rámci, neobsahuje však položku “uživatelská data”. Kontrolní součet je počítán z polí C, A a CI.

 

Jednotlivý znak

 

Krátký rámec

 

Řídící rámec

 

Dlouhý rámec

E5h

 

Start 10h

 

Start 68h

 

Start 68h

   

C pole

 

L pole

 

L pole

   

A pole

 

L pole

 

L pole

   

kontrolní součet

 

Start 68h

 

Start 68h

   

Stop 16h

 

C pole

 

C pole

       

A pole

 

A pole

       

CI pole

 

CI pole

       

kontrolní součet

 

uživatelská data

 

     

Stop 16h

 

(0-252 Byte)

           

kontrolní součet

           

Stop 16h

Rámce formátu telegramu M-Bus protokolu

 

Pole výše uvedených rámců mají délku jednoho znaku, což odpovídá osmi bitům, a mají následující význam:

  • Pole C (Control Field, Function Field)

    Toto pole obsahuje řídicí parametry rámce. Mimo jiné určuje směr toku dat, jak je vidět z následující tabulky:

    Číslo bitu

    7

    6

    5

    4

    3

    2

    1

    0

    Master ® Slave

    0

    1

    FCB

    FCV

    F3

    F2

    F1

    F0

    Slave ® Master

    0

    0

    ACD

    DFC

    F3

    F2

    F1

    F0

    Kódování řídicího pole C

    Kódování řídicího pole C

    V rámci vysílaném řídicí stanicí je bit FCB (frame count bit) při bezchybné komunikaci nastavován střídavě do log. 0 a log. 1. Pokud řídicí stanice nepřijala odezvu na předchozí rámec, vysílá ho znovu s identickým FCB a účastnická stanice odpovídá znovu stejným rámcem. Bit FCV (frame count valid) v log. 1 indikuje platnost bitu FCB. Pokud je FCV v log. 0, bit FCB musí být ignorován.

    V rámci vysílaném účastnickou stanicí mají bity 5 a 4 odlišný význam. Bit ACD (access demand) v log. 1 signalizuje řídicí stanici, že účastnická stanice potřebuje předat data s vyšší prioritou (tzv. Class 1 data). Tato data na rozdíl od standardních (Class 2) dat mají být přenesena co nejdříve. Řídicí stanice proto v následujícím cyklu reaguje požadavkem na přenos těchto dat. Bit DFC (data flow control) slouží k řízení datového toku. Hodnota log. 1 indikuje řídicí stanici, že účastnická stanice není schopna akceptovat další data.

    Bity F0, F3 kódují vlastní účel zprávy.

    Linková vrstva využívá dvě základní procedury:

    Níže uvedená tabulka ukazuje běžně používané řídicí kódy v rámcích M-Busu.

    Jméno

    Pole C bin.

    Pole C hex.

    Rámec

    Popis

    SND_NKE

    0100 0000

    40

    krátký

    inicializace účastníka

    SND_UD

    01F1 0011

    53/73

    dlouhý/řídicí

    odeslání dat účastnické stanici stanicí řídicí

    REQ_UD2

    01F1 1011

    5B/7B

    krátký

    žádost na běžná data (Class 2) od účastnické stanice

    REQ_UD1

    01F1 1010

    5A/7A

    krátký

    žádost na prioritní data (Class 1) od účastnické stanice

    RSP_UD

    00AD 1000

    08/18/28/38

    dlouhý/řídicí

    odeslání dat řídicí stanici stanicí účastnickou po žádosti

     Běžně používané řídicí kódy v rámcích M- Busu.

  • Pole A (Address Field)

    Pole A slouží k adresaci či určení účastnické stanice při vysílání resp. příjmu rámce. Velikost A pole je 8 bitů. Adresy 0, 250 mohou být přiřazeny jednotlivým účastnickým stanicím, adresy 254 resp. 255 jsou využity pro potvrzovaný resp. nepotvrzovaný broadcast. Je zřejmé, že při potvrzení broadcastu dojde na sběrnici ke kolizím vždy, je-li připojena více než jedna účastnická stanice. Jeho použití je pouze pro testovací účely. Adresa 253 indikuje adresaci v síťové vrstvě, nikoli v linkové. Adresy 251 a 252 jsou rezervovány pro budoucí využití.

  • Pole CI (Control Information Field)

    Pole CI nese informaci, která je již součástí aplikačního protokolu. Jeho úkolem je kromě jiného rozlišení formátu dlouhého a řídicího rámce. Podrobnější popis tohoto pole je součástí kapitoly o aplikačním protokolu M-Busu.

Síťová vrstva

Pokud nestačí rozsah 250 primárních adres dostupných v linkové vrstvě, lze pro rozsáhlejší systémy implementovat vrstvu síťovou. Protokoly této vrstvy vlastně dynamicky přiřazují linkové adrese 253 jednotlivé účastnické stanice. Chce-li řídicí stanice přiřadit účastnické stanici linkovou adresu 253, použije k tomu speciální rámec "Přiřazení sekundární adresy" (viz níže), který uvede vybranou účastnickou stanici do tzv. vybraného (selected) stavu. V tomto stavu reaguje zvolená stanice na linkové rámce s adresou 253.

0x68

0x0B

0x0B

0x68

0x53

0xFD

0x52

ID1-4

Man1-2

Gen

Med

CS

0x16

Speciální rámec přiřazení sekundární adresy

Sekundární adresa je definována prvky Identifikační číslo, Výrobce, Verze a Médium. Po uvedení do vybraného stavu pak účastnická stanice komunikuje tak, jako by její adresa byla 253, a to až do té doby, než je do vybraného stavu uvedena jiná účastnická stanice.

Aplikační vrstva standardu

Protokoly aplikační vrstvy definují význam pole CI a uživatelských dat rámců. Jejich definice vychází z normy EN1434-3, která však byl původně navržena pouze přenos dat směrem od Slave stanice k Master stanici .  Dále uváděná  struktura rozšiřuje tuto normu i další přenosy dat.

  • Pole CI (Control Information Field)

Toto pole definuje typ a sekvenci aplikačních dat v rámci. Bit s vahou 0x04, značený normou jako bit M (Mode bit), specifikuje pořadí bajtů ve vícebajtových datových strukturách. Je-li nastaven (Mode 2), významnější bajty vícebajtových záznamů jsou přenášeny jako první, je-li v log. 0 (Mode 1), je tomu naopak. Je doporučeno používat pouze Mode 1.

Následující tabulka popisuje kódy CI pole definované pro rámce vysílané řídicí stanicí.

Mód 1

Mód 2

Aplikace

0x51

0x55

vyslání dat

0x52

0x56

volba účastnické stanice (slave)

0x50

 

reset aplikace

0x54

 

synchronizovaná akce

0xB8

 

nastavení baudové rychlosti na 300 Bd

0xB9

 

nastavení baudové rychlosti na 600 Bd

0xBA

 

nastavení baudové rychlosti na 1200 Bd

0xBB

 

nastavení baudové rychlosti na 2400 Bd

0xBC

 

nastavení baudové rychlosti na 4800 Bd

0xBD

 

nastavení baudové rychlosti na 9600 Bd

0xBE

 

nastavení baudové rychlosti na 19200 Bd

0xBF

 

nastavení baudové rychlosti na 38400 Bd

0xB1

 

žádost o čtení obsahu celé RAM

0xB2

 

vyslání uživ. dat (zápis do RAM)

0xB3

 

inicializace testu kalibrace

0xB4

 

čtení EEPROM

0xB6

 

spuštění programového testu

0x90 ¸ 0x97

 

kódy pro hashování

 Kódy CI pole rámců užívaných řídicí stanicí (Master)

Další tabulka popisuje kódy CI pole definované pro rámce vysílané účastnickou stanicí.

Mód 1

Mód 2

Aplikace

0x70

 

hlášení obecných chyb aplikace

0x71

 

hlášení stavu varování

0x72

0x76

odezva s proměnným formátem rámce

0x73

0x77

odezva s pevným formátem rámce

Kódy CI pole rámců vysílaných účastnickou stanicí

Podrobnější popis použití všech těchto kódů a formátu příslušných rámců jde nad rámec tohoto příspěvku, zájemce o implementaci je nalezne ve standardu nebo například na www.m-bus.com.

  • Pole uživatelských dat

V rámci dlouhého rámce se vysílají užitečná uživatelská data, které přenášejí měřené údaje daného měřícího přístroje či zařízení. V této oblasti jsou definovány následující možnosti:

Pole uživatelských dat s pevnou strukturou

V rámci s pevnou strukturou dat  mohou být přenášeny stavy maximálně dvou čítačů. Tento formát není doporučen pro další vývoj ( původně určen pro měření odběru tepla atd.) a je součástí standardu pouze z důvodu zachování zpětné kompatibility.

Identifikační číslo

Čítač přístupů

Status

Médium/Jednotka

Čítač 1

Čítač 2

4 bajty

1 bajt

1 bajt

2 bajty

4 bajty

4 bajty

 Formát datového pole rámce s pevnou strukturou dat

Identifikační číslo (Identification Number) je sériové číslo přiřazené během výroby. Je kódováno v osmi BCD číslicích, jeho rozsah je tedy 0 ¸ 99999999. Čítač přístupů (Access Number) je binární čítač, inkrementovaný po každém odeslání datového rámce účastnickou stanicí. Slouží ke kontrole konzistence dat na úrovni aplikačního protokolu. Položka Status obsahuje bitovou mapu, která definuje kódování údajů v polích obou čítačů a zároveň umožňuje základní hlášení chybových stavů. Položka Médium/Jednotka (Medium/Unit) obsahuje kódovaný údaj o měřeném médiu a o jednotkách obou čítačů. Položky Čítač 1 a Čítač 2 (Counter 1, Counter 2) pak obsahují údaje o množství odebraného média.

Pole uživatelských dat  s proměnnou strukturou

V tomto rámci může být přenášen libovolný počet hodnot, omezený pouze maximální délkou datového pole.

Pevná hlavička dat

Proměnné datové bloky

MDH

Specifická data výrobce

12 bajtů

variabilní počet

1 bajt

variabilní počet

 Formát datového pole rámce s proměnnou strukturou dat

Pevná hlavička dat (Fixed Data Header) - obsahuje položky jako jsou Identifikační číslo, Výrobce, verze, médium, číslo přístupu podpis

Proměnný datový blok (Variable Data Block) - Maximální délka tohoto bloku je 240 bajtů a  je složen z Hlavičky datového záznamu  a bloku dat. Hlavička obsahuje informační blok dat a informační blok hodnoty.

Hlavičky dat výrobce (MDH - Manufacturer Data Header) - uvádí následující blok Specifická data výrobce (Manufacturer Specific Data Block)  a oba obsah bloky není standardem charakterizován.

Příklady komponent pro M-BUS

  • centrály  M-BUS sítě - slouží k identifikaci nově připojených přístrojů (automatické vyhledávání),umožňuje přímý přístup prostřednictvím PC k M-Bus přístrojům ( přímo nebo přes modem), pravidelně kontroluje M-BUS přístroje, hlásí alarmy.

        

Příklad centrál pro M-BUS

  • opakovače
  • přepínače (switch) - dovolují vytvořit síť pro více než 250 stanic a topologii typu strom nebo hvězda
  • řadiče zóny
  • převodníky: M-BUS/RS-232, M-BUS/RS-485, M-BUS/proudová smyčka 4-20mA, M-BUS/optické signály, M-BUS/Ethernet, M-BUS/ různé firemní sítě

Příklad  převodníku M-BUS na Ethernet od společnosti HWgroup.

  • regulátory topných systémů (regulátory pro dálkové vytápění)
  • M-BUS interface + řídící a testovací software pro PC - komponenty pro PC, které slouží k přímému řízení sítě M-BUS ( řídící stanice), bez nutnosti využít tzv. centrály.

            

Příklad  měřiče tepla a regulátoru pro dálkové vytápění s přístupem na M-BUS

Závěr

Komunikační síť M-BUS byla vyvinuta jako úzce specializovaná datová síť hlavně pro oblast měření spotřeby a MaR (Měření a Regulace). Z této specializace plynou nároky na tuto síť a tedy i její vlastnosti. Základní topologií sítě je typ sběrnice, ale s využitím přepínačů a síťové vrstvy standardu, lze vytvořit i stromovou strukturu nebo hvězda. Samotný standard stále podléhá dalšímu vývoji podle nároků v oboru, ale je již rozšířen a podporován mnoha výrobci zařízení pro uvedenou oblast automatizace.

Odkazy:

Hodnocení článku: