AN451
BREZŽIČNA IMPLEMENTACIJA PROGRAMSKE OPREME M-BUS
Uvod
Ta opomba o aplikaciji opisuje izvedbo brezžičnega M-Bus Silicon Labs z uporabo mikrokontrolerja Silicon Labs C8051 in EZRadioPRO®. Brezžično M-bus je evropski standard za aplikacije za odčitavanje števcev, ki uporabljajo frekvenčni pas 868 MHz.
Zložite plasti
Brezžično M-Bus uporablja 3-slojni model IEC, ki je podmnožica 7-slojnega modela OSI (glej sliko 1).
Fizična (PHY) plast je opredeljena v EN 13757-4. Fizična plast določa, kako so biti kodirani in preneseni, značilnosti RF modema (hitrost čipa, preambula in sinhronizacijska beseda) in RF parametre (modulacija, centralna frekvenca in odstopanje frekvence).
Plast PHY se izvaja s kombinacijo strojne in strojne programske opreme. EZRadioPRO izvaja vse RF in modemske funkcije. EZRadioPRO se uporablja v načinu FIFO z upravljalnikom paketov. Modul MbusPhy.c zagotavlja vmesnik SPI, kodiranje/dekodiranje, branje/pisanje blokov in ravnanje s paketi ter upravlja stanja oddajnika.
Podatkovna povezovalna plast M-Bus je implementirana v modulu MbusLink.c. Vmesnik za programiranje aplikacij M-Bus je sestavljen iz javnih funkcij, ki jih je mogoče poklicati iz sloja aplikacije v glavni niti. Modul MbusLink izvaja tudi sloj podatkovne povezave. Podatkovna povezovalna plast bo formatirala in kopirala podatke iz medpomnilnika TX aplikacije v medpomnilnik MbusPhy TX ter dodala zahtevane glave in CRC-je.
Sama plast aplikacije ni del vdelane programske opreme M-bus. Aplikacijski sloj določa, kako naj se najrazličnejši podatki oblikujejo za prenos. Večina števcev mora posredovati le eno ali dve vrsti podatkov. Dodajanje velike količine kode za sprejem kakršnih koli podatkov v merilnik bi dodalo nepotrebno kodo in stroške merilniku. Morda bi bilo izvedljivo implementirati knjižnico ali glavo file z izčrpnim seznamom vrst podatkov. Vendar pa večina odjemalcev merjenja natančno ve, kakšne podatke morajo posredovati, in se lahko sklicujejo na standard za podrobnosti oblikovanja. Univerzalni bralnik ali vohalnik lahko implementira celoten nabor aplikacijskih podatkovnih tipov v grafičnem vmesniku osebnega računalnika. Iz teh razlogov se aplikacijski sloj izvaja z uporabo example aplikacije za merilnik in čitalnik.
Zahtevani standardi
- EN 13757-4
EN 13757-4
Komunikacijski sistem za števce in daljinsko odčitavanje števcev
4. del: Odčitavanje brezžičnega števca
Odčitavanje radiometra za delovanje v pasu SRD 868 MHz do 870 MHz - EN 13757-3
Komunikacijski sistem za števce in daljinsko odčitavanje števcev
3. del: Namenski sloj aplikacije - IEC 60870-2-1:1992
Oprema in sistemi za daljinsko vodenje
5. del: Protokoli za prenos
Oddelek 1: Postopek prenosa povezave - IEC 60870-1-1:1990
Oprema in sistemi za daljinsko vodenje
5. del: Protokoli za prenos
Oddelek 1: Formati okvirjev za prenos
Definicije
- M-Bus—M-Bus je žični standard za odčitavanje števcev v Evropi.
- Brezžično M-Bus—Brezžično M-Bus za aplikacije za odčitavanje števcev v Evropi.
- PHY—Fizična plast določa, kako se kodirajo in prenašajo podatkovni biti in bajti.
- API-Vmesnik aplikacijskega programerja.
- POVEZAVA—Sloj podatkovne povezave določa, kako se prenašajo bloki in okvirji.
- CRC—Ciklično preverjanje redundance.
- FSK—Frekvenčni premik.
- čip—Najmanjša enota prenesenih podatkov. En podatkovni bit je kodiran kot več čipov.
- modul—Vir kode AC .c file.
Funkcionalni opis M-Bus PHY
Zaporedje preambule
Zaporedje preambule, določeno s specifikacijo M-bus, je celo število, ki se izmenjujejo ničle in enote. Enica je opredeljena kot višja frekvenca, nič pa je definirana kot nižja frekvenca.
nx (01)
Možnosti preambule za Si443x so celo število grize, sestavljeno iz izmeničnih enic in nič.
nx (1010)
Preambula z dodatnim vodilnim ne bi bila težava, toda potem bi bila sinhronizacijska beseda in koristna obremenitev za en bit neusklajena.
Rešitev je, da obrnete celoten paket z nastavitvijo bita motorja v registru Modulation Control 2 (0x71). To bo obrnilo preambulo, sinhronizacijsko besedo in podatke TX/RX. Posledično je treba podatke obrniti pri zapisovanju podatkov TX ali branju podatkov RX. Prav tako se sinhronizacijska beseda obrne pred zapisovanjem v registre sinhronizacijske besede Si443x.
Beseda za sinhronizacijo
Beseda za sinhronizacijo, ki jo zahteva EN-13757-4, je bodisi 18 čipov za način S in način R ali 10 čipov za model T. Sinhronizatorna beseda za Si443x je 1 do 4 bajte. Ker pa je pred sinhronizacijsko besedo vedno preambula, se lahko zadnjih šest bitov preambule šteje za del sinhronizacijske besede; tako je prva sinhronizacijska beseda dopolnjena s tremi ponovitvami ničle, ki ji sledi ena. Beseda za sinhronizacijo se dopolni pred zapisovanjem v registre Si443x.
Tabela 1. Beseda za sinhronizacijo za način S in način R
EN 13757-4 | 00 | 01110110 | 10010110 | dvojiško |
00 | 76 | 96 | hex | |
blazinica z (01) x 3 | 01010100 | 01110110 | 10010110 | dvojiško |
54 | 76 | 96 | hex | |
dopolnjujejo | 10101011 | 10001001 | 01101001 | dvojiško |
AB | 89 | 69 | hex |
Tabela 2. Beseda za sinhronizacijo za merilnik načina T z drugim
SINH | SINH | SINH |
BESEDA | BESEDA | BESEDA |
3 | 2 | 1 |
Dolžina preambule oddaje
Najmanjša preambula je določena za štiri različne načine delovanja. Sprejemljivo je, da je preambula daljša, kot je določeno. Če odštejemo šest čipov za preambulo, dobimo najmanjše število čipov za preambulo Si443x. Izvedba dodaja dva dodatna dela preambule v vseh načinih kratke preambule za izboljšanje zaznavanja in interoperabilnosti preambule. Preambula za način S z dolgo preambulo je zelo dolga; zato se uporablja minimalna preambula. Dolžina preambule v prigrizkih je zapisana v register Dolžina preambule (0x34). Register dolžine preambule določa preambulo samo ob prenosu. Najmanjše nastavitve specifikacije in dolžine preambule so povzete v tabeli 3.
Tabela 3. Dolžina preambule prenosa
EN-13757-4 najmanj |
Si443x Preambula Nastavitev ing |
Sinhronizacija Beseda |
Skupaj | dodatno | |||
nx (01) | čips | grickalice | čips | čips | čips | čips | |
Kratka preambula načina S | 15 | 30 | 8 | 32 | 6 | 38 | 8 |
Dolga preambula načina S | 279 | 558 | 138 | 552 | 6 | 558 | 0 |
Način T (meter-drugo) | 19 | 38 | 10 | 40 | 6 | 46 | 8 |
Način R | 39 | 78 | 20 | 80 | 6 | 86 | 8 |
Najmanjša preambula za sprejem je določena z registrom nadzora zaznavanja preambul (0x35). Po sprejemu je treba število bitov v sinhronizacijski besedi odšteti od navedene minimalne preambule, da se določi uporabna preambula. Najmanjši čas poravnave sprejemnika je 16 čipov, če je AFC omogočen, ali 8 čipov, če je AFC onemogočen. Čas poravnave sprejemnika se prav tako odšteje od uporabne preambule, da se določi minimalna nastavitev za register nadzora zaznavanja preambule.
Verjetnost napačne preambule je odvisna od nastavitve registra nadzora zaznavanja preambule. Kratka nastavitev 8-čipov lahko povzroči, da se vsakih nekaj sekund zazna lažna preambula. Priporočena nastavitev 20 čipov naredi odkrivanje lažne preambule malo verjeten dogodek. Dolžini preambule za način R in način SL sta dovolj dolgi, da se lahko uporabi priporočena nastavitev.
Zelo malo je koristi, če preambula zazna več kot 20 čipov.
AFC je onemogočen za model S s kratko preambulo in model T. To skrajša čas poravnave sprejemnika in omogoča daljšo nastavitev zaznavanja preambule. Če je AFC onemogočen, lahko način T uporabi priporočeno nastavitev 20 žetonov. Za model S s kratko preambulo se uporablja nastavitev 4 grize ali 20 žetonov. Zaradi tega je verjetnost zaznavanja lažne preambule nekoliko večja za ta model.
Tabela 4. Zaznavanje preambule
EN-13757-4 najmanj |
Sinhronizacija Beseda |
uporaben preambula |
RX poravnava | Zaznaj min |
Si443x Preambula Nastavitev zaznavanja |
|||
nx (01) | čips | čips | čips | čips | čips | grickalice | čips | |
Kratka preambula načina S | 15 | 30 | 6 | 24 | 8* | 16 | 4 | 16 |
Dolga preambula modela S | 279 | 558 | 6 | 552 | 16 | 536 | 5 | 20 |
Model T (meter-drugo) | 19 | 38 | 6 | 32 | 8* | 24 | 5 | 20 |
Način R | 39 | 78 | 6 | 72 | 16 | 56 | 5 | 20 |
*Opomba: AFC je onemogočen |
Sprejemnik je konfiguriran za medsebojno delovanje z oddajnikom z uporabo minimalne navedene preambule. To zagotavlja, da bo sprejemnik deloval s katerim koli oddajnikom, ki je skladen z M-bus.
Specifikacija brezžičnega M-Bus zahteva zelo dolgo preambulo za način S1 z najmanj 558 čipi. To bo trajalo približno 17 ms samo za prenos preambule. Si443x ne potrebuje tako dolge preambule in nima koristi od dolge preambule. Čeprav je dolga preambula označena kot neobvezna za način S2, ni razloga za uporabo dolge preambule pri Si443x. Če je zaželena enosmerna komunikacija, bo način T1 zagotovil krajšo preambulo, višjo hitrost prenosa podatkov in daljšo življenjsko dobo baterije. Če je potrebna dvosmerna komunikacija z uporabo načina S2, je priporočljiva kratka preambula.
Upoštevajte, da je prag zaznavanja za model S z dolgo preambulo daljši od števila preambul, ki so bili poslani za model S s kratko preambulo. To pomeni, da sprejemnik Mode S z dolgo preambulo ne bo zaznal preambule iz kratkega preambule Mode S oddajnika. To je potrebno, če naj bi sprejemnik Mode S z dolgo preambulo prejel kakršno koli korist od dolge preambule.
Upoštevajte, da bo sprejemnik kratke preambule Mode S zaznal preambulo in prejel pakete iz obeh kratkih preambule Mode S
oddajnik in oddajnik Mode S z dolgo preambulo; tako naj bi na splošno čitalec merilnika uporabljal kratko preambulo konfiguracijo sprejemnika Mode S.
Kodiranje/dekodiranje
Specifikacija brezžičnega M-bus zahteva dve različni metodi kodiranja. Manchestersko kodiranje se uporablja za način S in način R. Manchestersko kodiranje se uporablja tudi za povezavo drug do meter v modelu T. Povezava meter-to-drugi modela T uporablja 3 od 6 kodiranja.
1. Manchester Encoded/Decoding
Manchestersko kodiranje je v RF sistemih običajno običajno za zagotavljanje robustnega obnavljanja in sledenja ure z uporabo preprostega in poceni modema. Vendar pa sodoben visokozmogljiv radio, kot je Si443x, ne potrebuje kodiranja Manchester. Manchestersko kodiranje je podprto predvsem zaradi združljivosti z obstoječimi standardi, vendar se podatkovna hitrost za Si443x dejansko podvoji, če se ne uporablja Manchestersko kodiranje.
Si443x podpira Manchestersko kodiranje in dekodiranje celotnega paketa v strojni opremi. Na žalost beseda za sinhronizacijo ni kodirana v Manchestru. Za sinhronizacijsko besedo je bilo namerno izbrano neveljavno Manchestersko zaporedje. Zaradi tega Manchestersko kodiranje ni združljivo z večino obstoječih radijskih postaj, vključno s Si443x. Posledično mora kodiranje in dekodiranje Manchester izvajati MCU. Vsak bajt nekodiranih podatkov je sestavljen iz osmih podatkovnih bitov. Z uporabo Manchesterskega kodiranja je vsak podatkovni bit kodiran v simbol z dvema čipoma. Ker je treba kodirane podatke zapisati v radijski FIFO osem čipov naenkrat, se en grižljaj podatkov kodira in zapiše v FIFO naenkrat.
Tabela 5. Manchester Encoding
podatke | Voh 12 | 0x34 | bajtov | ||
Voh 1 | 0x2 | 0x3 | 0x4 | grickalice | |
1 | 10 | 11 | 100 | dvojiško | |
čip | 10101001 | 10100110 | 10100101 | 10011010 | dvojiško |
FIFO | OxA9 | OxA6 | OxA5 | Ox9A | hex |
Vsak bajt, ki ga je treba posredovati, se posreduje en bajt naenkrat funkciji kodiranega bajta. Funkcija kodiranega bajta bo dvakrat poklicala funkcijo zakodiranja, najprej za najpomembnejši pregriz in nato za najmanj pomemben.
Manchestersko kodiranje v programski opremi ni težko. Začenši od najpomembnejšega bita, je eden kodiran kot zaporedje čipov "01". Nič je kodirana kot zaporedje čipov "10". To je mogoče enostavno doseči z uporabo zanke in premikanjem dveh bitov za vsak simbol. Vendar pa je hitreje uporabiti preprosto pregledno tabelo s 16 vnosi za vsak prigrizek. Funkcija encode Manchester grickanje kodira drobec podatkov, nato pa ga zapiše v FIFO. Čipi se obrnejo pred pisanjem v FIFO, da se upoštevajo zahteve obrnjene preambule.
Pri sprejemu je vsak bajt v FIFO sestavljen iz osmih čipov in se dekodira v en zagrizek podatkov. Funkcija bloka branja bere en bajt naenkrat iz FIFO in pokliče funkcijo dekodiranja bajtov. Po branju iz FIFO se čipi obrnejo, da se upoštevajo zahteve obrnjene preambule. Vsak bajt čipov, kodiranih v Manchestru, se dekodira v zalogaj podatkov. Dekodirani prigrizek se zapiše v medpomnilnik RX z uporabo funkcije vmesnega pomnilnika RX za pisanje.
Upoštevajte, da se tako kodiranje kot dekodiranje izvajata po en griz podatkov naenkrat. Kodiranje v medpomnilnik bi zahtevalo dodaten medpomnilnik, dvakrat večji od nekodiranih podatkov. Kodiranje in dekodiranje je veliko hitrejše od najhitrejše podprte hitrosti prenosa podatkov (100 k čipov na sekundo). Ker Si443x podpira večbajtno branje in zapisovanje v FIFO, so pri uporabi samo enobajtnega branja in pisanja majhne stroške. Overhead je približno 10 µs za 100 kodiranih čipov. Prednost je prihranek RAM-a v višini 512 bajtov.
2. Tri od šestih kodirnih dekodiranja
Metoda kodiranja trije od šestih, določena v EN-13757-4, je implementirana tudi v strojno programsko opremo na MCU. To kodiranje se uporablja za visokohitrostni (100 k čipov na sekundo) način T od števca do drugega. Model T zagotavlja najkrajši čas prenosa in najdaljšo življenjsko dobo baterije za brezžični merilnik.
Vsak bajt podatkov, ki jih je treba posredovati, je razdeljen na dva grickanja. Najpomembnejši prigrizek se najprej kodira in posreduje. Ponovno se to izvaja s funkcijo kodiranja bajtov, ki dvakrat pokliče funkcijo zakodiranja.
Vsak grižljaj podatkov je kodiran v simbol s šestimi čipi. Zaporedje simbolov s šestimi čipi mora biti zapisano v 8-čipni FIFO.
Med kodiranjem sta dva bajta podatkov kodirana kot štirje grize. Vsak grižljaj je simbol 6 žetonov. Štirje simboli 6 čipov so združeni kot trije bajti.
Tabela 6. Tri od šestih kodiranja
podatke | 0x12 | 0x34 | bajtov | ||||
Voh 1 | 0x2 | 0x3 | 0x4 | grickalice | |||
čip | 15 | 16 | 13 | 34 | osmiško | ||
1101 | 1110 | 1011 | 11100 | dvojiško | |||
FIFO | 110100 | 11100010 | 11011100 | dvojiško | |||
0x34 | OxE2 | OxDC | hex |
V programski opremi je kodiranje trije od šestih implementirano s tremi ugnezdenimi funkcijami. Funkcija kodiranja bajtov bo dvakrat poklicala funkcijo zakodiranja. Funkcija grizljanja za kodiranje uporablja iskalno tabelo za simbol šestih žetonov in zapiše simbol v funkcije Shift Three of Six. Ta funkcija implementira premični register s 16 čipi v programski opremi. Simbol je zapisan v najmanj pomemben bajt premičnega registra. Register se dvakrat premakne levo. To se ponovi trikrat. Ko je v zgornjem bajtu premičnega registra prisoten celoten bajt, se ta obrne in zapiše v FIFO.
Ker je vsak bajt podatkov kodiran kot en in pol kodiran bajt, je pomembno, da najprej počistite premični register, tako da je prvi kodirani bajt pravilen. Če je dolžina paketa liho število, bo po kodiranju vseh bajtov v premičnem registru še vedno ostal en griz. To se obravnava s poštno številko, kot je razloženo v naslednjem razdelku.
Dekodiranje treh od šestih kodiranih je obraten postopek. Pri dekodiranju se trije kodirani bajti dekodirajo v dva podatkovna bajta. Programski premični register se ponovno uporablja za združevanje bajtov dekodiranih podatkov. Za dekodiranje se uporablja inverzna pregledna tabela s 64 vnosi. To uporablja manj ciklov, vendar več pomnilnika kode. Iskanje ustreznega simbola v iskalni tabeli s 16 vnosi traja precej dlje.
Postamble
Specifikacija brezžičnega M-busa ima posebne zahteve za poštno oznako ali prikolico. Za vse načine je najmanj dva čipa, največ pa osem žetonov. Ker je najmanjša atomska enota za FIFO en bajt, se za način S in način R uporablja priklopnik z 8 čipi. Pošta v načinu T je osem žetonov, če je dolžina paketa soda, ali štirje žetoni, če je dolžina paketa liha. Poštna oznaka s štirimi čipi za liho dolžino paketa ustreza zahtevam, da ima vsaj dva izmenična čipa.
Tabela 7. Poštna dolžina
Dolžina poštnega nastavka (čips) | |||||
min | maks | Izvedba | zaporedje čipov | ||
Način S | 2 | 8 | 8 | 1010101 | |
Način T | 2 | 8 | 4 | (Čuden) | 101 |
8 | (sodo) | 1010101 | |||
Način R | 2 | 8 | 8 | 1010101 |
Upravljavec paketov
Upravljalnik paketov na Si443x se lahko uporablja v načinu spremenljive širine paketa ali načinu s fiksno širino paketa. Način spremenljive širine paketa zahteva bajt dolžine paketa za sinhronizacijsko besedo in neobvezne bajte glave. Po sprejemu bo Radio uporabil bajt dolžine za določitev konca veljavnega paketa. Ob prenosu bo radio vstavil polje dolžine za bajti glave.
Polja L za brezžični protokol M-bus ni mogoče uporabiti za polje dolžine Si443x. Prvič, polje L ni dejanska dolžina paketa. To je število bajtov koristnega tovora sloja povezave, ki ne vključuje bajtov CRC ali kodiranja. Drugič, samo polje L je kodirano z uporabo Manchesterskega kodiranja ali kodiranja Tri od šestih za merilnik Mode T za druge.
Izvedba uporablja upravljalnik paketov v načinu s fiksno širino paketa tako za prenos kot za sprejem. Po prenosu bo plast PHY prebrala polje L v oddajnem medpomnilniku in izračunala število kodiranih bajtov, vključno z poštno oznako. Skupno število kodiranih bajtov za prenos se zapiše v register dolžine paketa (0x3E).
Po sprejemu se prva dva kodirana bajta dekodirata, L-polje pa se zapiše v sprejemni medpomnilnik. Polje L se uporablja za izračun števila kodiranih bajtov, ki jih je treba prejeti. Število kodiranih bajtov, ki jih je treba sprejeti, se nato zapiše v register dolžine paketa (0x3E). Poštnina se zavrže.
MCU mora dekodirati L-polje, izračunati število kodiranih bajtov in zapisati vrednost v register dolžine paketa, preden je bila sprejeta najkrajša možna dolžina paketa. Najkrajše dovoljeno L-polje za plast PHY je 9, kar daje 12 nekodiranih bajtov. To daje 18 kodiranih bajtov za model T. Prva dva bajta sta že dekodirana. Tako je treba register dolžine paketa posodobiti v 16-bajtnih časih pri 100 kbps ali 1.28 milisekunde. To ni problem za 8051, ki deluje pri 20 MIPS.
Število bajtov, ki jih je treba prejeti, ne vključuje poštne oznake, razen poštne oznake s štirimi čipi, ki se uporablja za pakete Mode T z liho dolžino paketa. Tako sprejemnik ne potrebuje poštne oznake, razen paketov čudne dolžine Model T. Ta poštna oznaka je potrebna samo za podajanje celega števila kodiranih bajtov. Vsebina poštnega sporočila je prezrta; torej, če se poštnina ne pošlje, bodo štirje čipi hrupa sprejeti in prezrti. Ker je skupno število kodiranih bajtov omejeno na 255 (0xFF), izvedba omejuje največje L-polje za različne načine.
Tabela 8. Omejitve velikosti paketa
kodirano | dekodirano | M-Bus | ||||
bajtov | bajtov | L-polje | ||||
dec | hex | dec | hex | dec | hex | |
Način S | 255 | FF | 127 | 7 F | 110 | 6E |
Način T (meter-drugo) | 255 | FF | 169 | A9 | 148 | 94 |
Način R | 255 | FF | 127 | 7 F | 110 | 6E |
Te omejitve so običajno precej nad običajnim primerom uporabe za brezžični merilnik. Dolžina paketa naj bo majhna, da zagotovite najboljšo možno življenjsko dobo baterije.
Poleg tega lahko uporabnik določi največje L-polje, ki naj bi ga prejeli (USER_RX_MAX_L_FIELD). To določa zahtevano velikost za sprejemni medpomnilnik (USER_RX_BUFFER_SIZE).
Podpora največjega L-polja 255 bi zahtevala sprejemni medpomnilnik 290 bajtov in največ 581 Manchester kodiranih bajtov. Upravljalnik paketov bi moral biti onemogočen in register dolžine paketa v tem primeru ne bi bilo mogoče uporabiti. To je izvedljivo, vendar je bolj priročno uporabiti upravljalnik paketov, če je mogoče.
Uporaba FIFO
Si4431 zagotavlja 64-bajtni FIFO za oddajanje in sprejemanje. Ker je število kodiranih bajtov 255, se celoten kodirani paket morda ne bo prilegal v 64-bajtni medpomnilnik.
Prenos
Pri prenosu se izračuna skupno število kodiranih bajtov. Če je skupno število kodiranih bajtov, vključno z poštno oznako, manjše od 64 bajtov, se celoten paket zapiše v FIFO in omogočena je samo prekinitev poslanega paketa. Večina kratkih paketov bo poslanih v enem prenosu FIFO.
Če je število kodiranih bajtov večje od 64, bo za pošiljanje paketa potrebnih več prenosov FIFO. Prvih 64 bajtov je zapisanih v FIFO. Prekinitve Packet Sent in TX FIFO Almost Empty so omogočene. Prag TX FIFO skoraj prazen je nastavljen na 16 bajtov (25 %). Ob vsakem dogodku IRQ se register statusa 2 prebere. Najprej se preveri bit Packet Sent in, če paket ni bil v celoti poslan, se naslednjih 48 bajtov kodiranih podatkov zapiše v FIFO. To se nadaljuje, dokler niso zapisani vsi kodirani bajti in ne pride do prekinitve paketa poslano.
1. Sprejem
Ob sprejemu je sprva omogočena samo prekinitev Sync Word. Po prejemu sinhronizacijske besede je prekinitev sinhronizacijske besede onemogočena in omogočena je prekinitev FIFO skoraj polna. Skoraj poln prag FIFO je sprva nastavljen na 2 bajta. Prva prekinitev FIFO Almost Full se uporablja, da vemo, kdaj sta bila prejeta oba bajta dolžine. Ko je dolžina prejeta, se dolžina dekodira in izračuna se število kodiranih bajtov. Prag za skoraj poln RX FIFO je nato nastavljen na 48 bajtov. RX FIFO je skoraj poln in prekinitve veljavnih paketov so omogočene. Ob naslednjem dogodku IRQ se register statusa 1 prebere. Najprej se preveri bit Valid Packet, nato pa se preveri bit FIFO Almost Full. Če je nastavljen samo bit RX FIFO Almost Full, se naslednjih 48 bajtov prebere iz FIFO. Če je nastavljen veljaven paketni bit, se preostanek paketa prebere iz FIFO. MCU spremlja, koliko bajtov je bilo prebranih, in ustavi branje po zadnjem bajtu.
Sloj podatkovne povezave
Modul plasti podatkovne povezave izvaja povezovalno plast, skladno s 13757-4:2005. Plast podatkovne povezave (LINK) zagotavlja vmesnik med fizično plastjo (PHY) in plastjo aplikacije (AL).
Podatkovna povezovalna plast opravlja naslednje funkcije:
- Zagotavlja funkcije za prenos podatkov med PHY in AL
- Ustvari CRC za odhodna sporočila
- Zazna napake CRC v dohodnih sporočilih
- Zagotavlja fizično naslavljanje
- Potrjuje prenose za dvosmerne komunikacijske načine
- Okviri podatkovne bite
- Zazna napake pri oblikovanju v dohodnih sporočilih
Oblika okvirja plasti povezave
Brezžični format okvirja M-Bus, uporabljen v EN 13757-4:2005, izhaja iz okvirnega formata FT3 (Frame Type 3) iz IEC60870-5-2. Okvir je sestavljen iz enega ali več blokov podatkov. Vsak blok vključuje 16-bitno polje CRC. Prvi blok je blok s fiksno dolžino 12 bajtov, ki vključuje L-polje, C-polje, M-polje in A-polje.
- L-polje
Polje L je dolžina koristnega tovora podatkov sloja povezave. To ne vključuje samega polja L ali katerega koli od bajtov CRC. Vključuje L-polje, C-polje, M-polje in A-polje. Ti so del koristnega tovora PHY.
Ker je število kodiranih bajtov omejeno na 255 bajtov, je največja podprta vrednost za M-polje 110 bajtov za kodirane podatke v Manchestru in 148 bajtov za kodirane podatke v načinu T Three-Out-of-Six.
Povezovalni sloj je odgovoren za izračun L-polja pri prenosu. Povezovalni sloj bo ob sprejemu uporabil polje L.
Upoštevajte, da L-polje ne označuje dolžine tovora PHY ali števila kodiranih bajtov. Po prenosu bo PHY izračunal dolžino tovora PHY in število kodiranih bajtov. Po sprejemu bo PHY dekodiral L-polje in izračunal število bajtov za dekodiranje. - C-polje
Polje C je polje za nadzor okvirja. To polje označuje tip okvirja in se uporablja za primitive storitve izmenjave podatkov povezave. Polje C označuje vrsto okvirja – POŠLJI, POTRDI, ZAHTEVAJ ali ODGOVORI. V primeru okvirjev SEND in REQUEST polje C označuje, ali se pričakuje POTVRDI ali ODGOVOR.
Pri uporabi osnovne funkcije Link TX je mogoče uporabiti katero koli vrednost C. Pri uporabi Link Service Primitives se polje C samodejno izpolni v skladu z EN 13757-4:2005. - M-polje
M-polje je koda proizvajalca. Proizvajalci lahko zahtevajo tričrkovno kodo od naslednjih web naslov: http://www.dlms.com/flag/INDEX.HTM Vsak znak tričrkovne kode je kodiran kot pet bitov. 5-bitno kodo lahko dobite tako, da vzamete kodo ASCII in odštejete 0x40 (»A«). Tri 5-bitne kode so povezane v 15-bitne. Najpomembnejši bit je nič. - A-polje
Naslovno polje je edinstven 6-bajtni naslov za vsako napravo. Edinstven naslov mora dodeliti proizvajalec. Vsak proizvajalec je dolžan zagotoviti, da ima vsaka naprava edinstven 6-bajtni naslov. Naslov za okvirje za pošiljanje in zahtevo je lastni naslov števca ali druge naprave. Podatkovni okvirji za potrditev in odgovor se pošljejo z naslovom izvorne naprave. - CI-polje
Polje CI je glava aplikacije in določa vrsto podatkov v koristnem bremenu podatkov aplikacije. Medtem ko EN13757-4:2005 določa omejeno število vrednosti, bodo Primitive Link Service dovolile uporabo katere koli vrednosti. - CRC
CRC je določen v EN13757-4:2005.
Polinom CRC je:
X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
Upoštevajte, da se CRC M-Bus izračuna za vsak 16-bajtni blok. Rezultat je, da vsakih 16 bajtov podatkov zahteva 18 bajtov za prenos,
Dodatne informacije
Za dodatne informacije o implementaciji povezovalne plasti glejte “AN452: Vodnik za programerje brezžičnega sklada M-Bus”.
Upravljanje napajanja
Slika 2 prikazuje časovni okvir upravljanja porabe za merilnik nprample z uporabo načina T1.
MCU mora biti v načinu mirovanja, kadar koli je to mogoče, da varčuje z energijo. V tem example, MCU spi, ko RTC deluje, ko čaka na zagon radijskega kristala in ko oddaja iz FIFO. MCU se bo zbudil iz signala EZRadioPRO IRQ, povezanega s prebujanjem Port Match.
Pri prenosu sporočil, daljših od enega bloka, se mora MCU zbuditi, da zapolni FIFO (na podlagi skoraj prazne prekinitve FIFO) in nato preiti nazaj v stanje spanja.
MCU bi moral biti v stanju mirovanja, ki teče iz oscilatorja nizke moči ali oscilatorja v razpršenem načinu pri branju iz ADC-ja. ADC potrebuje uro SAR.
Ko ni v uporabi, mora biti EZRadioPRO v načinu izklopa z visoko nastavljenim zatičem SDN. To zahteva ožičeno povezavo z MCU. Registri EZ Radio Pro niso ohranjeni v načinu zaustavitve; tako se EZRadioPro inicializira na vsakem intervalu RTC. Inicializacija radia traja manj kot 100 µs in prihrani 400 nA. To povzroči prihranek energije 10 µJ, ki temelji na 10-sekundnem intervalu.
Kristal EZRadioPRO potrebuje približno 16 ms za POR. To je dovolj dolgo za izračun CRC za približno osem blokov. MCU se bo vrnil v stanje spanja, če dokonča vse CRC, preden se kristal stabilizira. Če je potrebno šifriranje, ga lahko zaženete tudi med čakanjem na kristalni oscilator.
MCU bi moral delovati pri 20 MHz z uporabo oscilatorja z nizko porabo za večino nalog. Opravila, ki zahtevajo natančno časovno omejitev, morajo namesto načina mirovanja uporabljati natančen oscilator in način mirovanja. RTC zagotavlja dovolj ločljivosti za večino nalog. Časovni načrt upravljanja porabe za merilnik T2 example aplikacija je prikazana na sliki 3.
Izvedbo oddajno-sprejemnika je treba optimizirati za običajen primer, ko se merilnik prebudi in ni prisotnega čitalnika. Najmanjše/največje časovne omejitve ACK so dovolj dolge, da je mogoče uporabiti C8051F930 RTC in preklopiti MCU v način mirovanja.
Možnosti gradnje so na voljo za bralnike iz omrežja ali USB, ki jim ni treba uporabljati načina mirovanja. Namesto mirovanja bo uporabljen način mirovanja, tako da lahko USB in UART prekineta MCU.
Studio preprostosti
Dostop z enim klikom do MCU in brezžičnih orodij, dokumentacije, programske opreme, knjižnic izvorne kode in več. Na voljo za Windows,
Mac in Linux!
![]() |
![]() |
![]() |
![]() |
Portfelj interneta stvari www.silabs.com/IoT |
SW/HW www.silabs.com/simplicity |
Kakovost www.silabs.com/kakovost |
Podpora in skupnost community.silabs.com |
Zavrnitev odgovornosti
Silicon Labs namerava strankam zagotoviti najnovejšo, natančno in poglobljeno dokumentacijo o vseh zunanjih napravah in modulih, ki so na voljo izvajalcem sistemov in programske opreme, ki uporabljajo ali nameravajo uporabljati izdelke Silicon Labs. Podatki o značilnostih, razpoložljivi moduli in zunanje naprave, velikosti pomnilnika in pomnilniški naslovi se nanašajo na vsako specifično napravo, navedeni »tipični« parametri pa se lahko razlikujejo in se razlikujejo v različnih aplikacijah. Aplikacija npramptukaj opisane le-te so samo za ilustracijo. Silicon Labs si pridržuje pravico do sprememb brez nadaljnjega obvestila in omejitve informacij o izdelkih, specifikacij in opisov v tem dokumentu ter ne daje jamstev glede točnosti ali popolnosti vključenih informacij. Silicon Labs ne prevzema nobene odgovornosti za posledice uporabe tukaj navedenih informacij. Ta dokument ne pomeni ali izraža avtorskih licenc, podeljenih po tem sporazumu za načrtovanje ali izdelavo kakršnih koli integriranih vezij. Izdelki niso zasnovani ali odobreni za uporabo v katerem koli sistemu za vzdrževanje življenja brez posebnega pisnega soglasja Silicon Labs. »Sistem za podporo življenju« je vsak izdelek ali sistem, ki je namenjen podpiranju ali vzdrževanju življenja in/ali zdravja, za katerega je mogoče razumno pričakovati, da bo povzročil resne telesne poškodbe ali smrt, če ne uspe. Izdelki Silicon Labs niso zasnovani ali odobreni za vojaške namene. Izdelki Silicon Labs se pod nobenim pogojem ne smejo uporabljati v orožju za množično uničevanje, vključno (vendar ne omejeno na) jedrskem, biološkem ali kemičnem orožju, ali raketah, ki lahko oddajo takšno orožje.
Informacije o blagovni znamki
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® in logotip Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, logotip Energy Micro in njihove kombinacije, “energetsko najbolj prijazni mikrokrmilniki na svetu”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® in drugi so blagovne znamke ali registrirane blagovne znamke Silicon Labs. ARM, CORTEX, Cortex-M3 in palci so blagovne znamke ali registrirane blagovne znamke ARM Holdings. Keil je registrirana blagovna znamka družbe ARM Limited. Vsi drugi izdelki ali blagovne znamke, omenjene tukaj, so blagovne znamke njihovih imetnikov.
Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
ZDA
http://www.silabs.com
Dokumenti / Viri
![]() |
SILICON LABS Brezžična implementacija programske opreme M-BUS AN451 [pdf] Uporabniški priročnik SILICON LABS, C8051, MCU in, EZRadioPRO, Brezžično M-bus, Brezžično, M-BUS, Programska oprema, Implementacija, AN451 |