Ú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í C a 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:
- Stránky sběrnice M-BUS s podrobným popise M-BUS standardu v angličtině a němčině: http://www.m-bus.com, http://www.m-bus.de:
- Převodník M-BUS na Ethernet společnosti HWgroup: http://www.hw-group.com/products/HWg-PWR/hwg-pwr25_M-bus_gateway_cz.html
- Texas Instruments: Datasheet obvodu TSS721A METER-BUS TRANSCEIVER - www.m-bus.com/files/slas222.pdf.
- ing. J. Novák : M-BUS. Automatizace 7/98
- Konstrukce odečtu elektroměru přes M-BUS: bakalářská práce pana Štěpána Čejky: "Konstrukce odečtu elektroměru přes M-BUS", Praha 2007, https://measure.feld.cvut.cz/cs/system/files/files/cs/vyuka/zaverecne_prace/BP_2007_Cejka_Stepan_locked.pdf