Logo SILICON LABS-a

AN451
IMPLEMENTACIJA BEŽIČNOG M-BUS SOFTVERA

Uvod

Ova napomena o aplikaciji opisuje implementaciju Silicon Labs bežične M-Bus pomoću Silicon Labs C8051 MCU i EZRadioPRO®. Bežični M-bus je europski standard za aplikacije za očitavanje brojila koji koriste frekvencijski pojas od 868 MHz.

Slagati slojeve

Bežični M-Bus koristi 3-slojni IEC model, koji je podskup 7-slojnog OSI modela (vidi sliku 1).

SILICON LABS Bežična M-BUS implementacija softvera AN451Fizički (PHY) sloj definiran je u EN 13757-4. Fizički sloj definira kako se bitovi kodiraju i prenose, karakteristike RF modema (brzina čipa, preambula i sinkronizacijska riječ) i RF parametre (modulacija, središnja frekvencija i devijacija frekvencije).
PHY sloj implementiran je kombinacijom hardvera i firmwarea. EZRadioPRO obavlja sve RF i modemske funkcije. EZRadioPRO se koristi u FIFO načinu rada s paketom za rukovanje. MbusPhy.c modul pruža SPI sučelje, kodiranje/dekodiranje, čitanje/pisanje blokova i rukovanje paketima te upravlja stanjima primopredajnika.
M-Bus podatkovni sloj veze implementiran je u modulu MbusLink.c. M-Bus aplikacijsko programsko sučelje sastoji se od javnih funkcija koje se mogu pozvati iz sloja aplikacije u glavnoj niti. MbusLink modul također implementira sloj podatkovne veze. Sloj podatkovne veze će formatirati i kopirati podatke iz međuspremnika TX aplikacije u međuspremnik MbusPhy TX, dodajući potrebna zaglavlja i CRC-ove.
Sam sloj aplikacije nije dio firmvera M-busa. Aplikacijski sloj definira kako se širok raspon podataka treba formatirati za prijenos. Većina mjerača treba prenijeti samo jednu ili dvije vrste podataka. Dodavanje velike količine koda za smještaj bilo koje vrste podataka u mjerač bi dodalo nepotreban kod i trošak mjeraču. Možda bi bilo izvedivo implementirati knjižnicu ili zaglavlje file s iscrpnim popisom tipova podataka. Međutim, većina korisnika mjerenja točno zna kakve podatke trebaju prenijeti i mogu se pozvati na standard za detalje o formatiranju. Univerzalni čitač ili njuškalo može implementirati kompletan skup tipova podataka aplikacije na GUI računala. Iz tih razloga, aplikacijski sloj se implementira pomoću example aplikacije za mjerač i čitač.

Potrebni standardi
  1. EN 13757-4
    EN 13757-4
    Komunikacijski sustav za brojila i daljinsko očitavanje brojila
    Dio 4: Bežično očitanje brojila
    Očitavanje radiometra za rad u SRD pojasu od 868 MHz do 870 MHz
  2. EN 13757-3
    Komunikacijski sustav za brojila i daljinsko očitavanje brojila
    Dio 3: Namjenski sloj aplikacije
  3. IEC 60870-2-1:1992
    Oprema i sustavi daljinskog upravljanja
    Dio 5: Protokoli za prijenos
    Odjeljak 1: Postupak prijenosa veze
  4. IEC 60870-1-1:1990
    Oprema i sustavi daljinskog upravljanja
    Dio 5: Protokoli za prijenos
    Odjeljak 1: Formati okvira za prijenos
Definicije
  • M-Bus—M-Bus je žičani standard za očitavanje brojila u Europi.
  • Bežični M-Bus—Bežični M-Bus za aplikacije očitanja brojila u Europi.
  • PHY—Fizički sloj definira kako se podatkovni bitovi i bajtovi kodiraju i prenose.
  • API-Sučelje aplikacijskog programera.
  • VEZA-Sloj podatkovne veze definira kako se blokovi i okviri prenose.
  • CRC—Ciklična provjera redundantnosti.
  • FSK—Frekventni pomak.
  • Čip-Najmanja jedinica prenesenih podataka. Jedan bit podataka je kodiran kao više čipova.
  • Modul-AC izvor koda .c file.

M-Bus PHY funkcionalni opis

Slijed preambule

Slijed preambule specificiran specifikacijom M-busa je cijeli broj koji se izmjenjuju nule i jedinice. Jedinica je definirana kao viša frekvencija, a nula je definirana kao niža frekvencija.
nx (01)
Opcije preambule za Si443x cijeli je broj grickanja koji se sastoji od izmjeničnih jedinica i nula.
nx (1010)
Preambula s dodatnim vodećim ne bi bila problem, ali bi tada sinkronizirajuća riječ i korisni teret bili pogrešno usklađeni za jedan bit.
Rješenje je invertiranje cijelog paketa postavljanjem bita motora u registar Modulation Control 2 (0x71). Ovo će invertirati preambulu, sinkroniziranu riječ i TX/RX podatke. Kao posljedica toga, podaci bi trebali biti invertirani prilikom pisanja TX podataka ili čitanja RX podataka. Također, riječ za sinkronizaciju se invertira prije upisivanja u registre riječi za sinkronizaciju Si443x.

Riječ za sinkronizaciju

Riječ za sinkronizaciju koju zahtijeva EN-13757-4 je ili 18 čipova za Mode S i Mode R ili 10 čipova za model T. Riječ za sinkronizaciju za Si443x je 1 do 4 bajta. Međutim, budući da sinkronizacijskoj riječi uvijek prethodi preambula, zadnjih šest bitova preambule može se smatrati dijelom sinkronizacijske riječi; tako da je prva sinkronizirajuća riječ dopunjena s tri ponavljanja nule nakon čega slijedi jedan. Riječ za sinkronizaciju se nadopunjuje prije upisivanja u registre Si443x.
Tablica 1. Riječ za sinkronizaciju za način S i način R

EN 13757-4 00 01110110 10010110 binarni
00 76 96 šest
jastučić s (01) x 3 01010100 01110110 10010110 binarni
54 76 96 šest
komplementirati 10101011 10001001 01101001 binarni
AB 89 69 šest

Tablica 2. Riječ za sinkronizaciju za način rada T mjerača na drugo

SINKRONIZIRAJ SINKRONIZIRAJ SINKRONIZIRAJ
RIJEČ RIJEČ RIJEČ
3 2 1
Duljina preambule prijenosa

Minimalna preambula određena je za četiri različita načina rada. Prihvatljivo je imati preambulu dužu od navedenog. Oduzimanje šest čipova za preambulu daje minimalni broj čipova za preambulu Si443x. Implementacija dodaje dva dodatna dijela preambule u svim načinima kratke preambule kako bi se poboljšala detekcija preambule i interoperabilnost. Preambula na Mode S s dugom preambulom je vrlo duga; pa se koristi minimalna preambula. Duljina preambule u grickalicama upisuje se u registar duljine preambule (0x34). Registar duljine preambule određuje preambulu samo nakon prijenosa. Minimalne specifikacije i postavke duljine preambule sažete su u tablici 3.
Tablica 3. Duljina preambule prijenosa

EN-13757-4
minimum
Si443x Preambula
Postavljanje ing
Sinkronizacija
Riječ
Ukupno ekstra
nx (01) čips grickalice čips čips čips čips
Mode S kratka preambula 15 30 8 32 6 38 8
Duga preambula načina S 279 558 138 552 6 558 0
Način T (metar-ostalo) 19 38 10 40 6 46 8
Način rada R 39 78 20 80 6 86 8

Minimalna preambula za prijem određena je registrom kontrole detekcije preambule (0x35). Nakon prijema, broj bitova u sinkroniziranoj riječi mora se oduzeti od specificirane minimalne preambule kako bi se odredila upotrebljiva preambula. Minimalno vrijeme poravnanja prijemnika je 16 čipova ako je AFC omogućen ili 8 čipova ako je AFC onemogućen. Vrijeme namještanja prijemnika također se oduzima od upotrebljive preambule kako bi se odredila minimalna postavka za registar kontrole detekcije preambule.

Vjerojatnost lažne preambule ovisi o postavci registra kontrole detekcije preambule. Kratka postavka od 8 čipova može rezultirati otkrivanjem lažne preambule svakih nekoliko sekundi. Preporučena postavka od 20 čipova čini otkrivanje lažne preambule malo vjerojatnim događajem. Duljine preambule za Mode R i Mode SL dovoljno su dugačke za korištenje preporučene postavke.
Vrlo je malo koristi od toga da preambula otkrije dulje od 20 čipova.
AFC je onemogućen za model S s kratkom preambulom i model T. To smanjuje vrijeme mirovanja prijemnika i omogućuje dulju postavku otkrivanja preambule. Kada je AFC onemogućen, Mode T može koristiti preporučenu postavku od 20 čipova. Postavka od 4 grickalice ili 20 žetona koristi se za model S s kratkom preambulom. To čini vjerojatnost otkrivanja lažne preambule nešto većom za ovaj model.
Tablica 4. Otkrivanje preambule

EN-13757-4
minimum
Sinkronizacija
Riječ
iskoristiv
preambula
RX poravnanje Otkriti
min
Si443x Preambula
Postavka otkrivanja
nx (01) čips čips čips čips čips grickalice čips
Mode S kratka preambula 15 30 6 24 8* 16 4 16
Duga preambula modela S 279 558 6 552 16 536 5 20
Model T (metar-ostalo) 19 38 6 32 8* 24 5 20
Način rada R 39 78 6 72 16 56 5 20
*Bilješka: AFC onemogućen

Prijemnik je konfiguriran da radi s odašiljačem koristeći minimalno specificiranu preambulu. To osigurava da će prijemnik raditi s bilo kojim odašiljačem kompatibilnim s M-busom.
Specifikacija bežičnog M-Bus-a zahtijeva vrlo dugu preambulu za Mod S1 od najmanje 558 čipova. Ovo će trajati oko 17 ms samo za prijenos preambule. Si443x ne zahtijeva tako dugu preambulu i nema koristi od dugačke preambule. Iako je duga preambula označena kao neobavezna za Mode S2, nema razloga za korištenje dugačke preambule sa Si443x. Ako je jednosmjerna komunikacija poželjna, način rada T1 će osigurati kraću preambulu, veću brzinu prijenosa podataka i dulji vijek trajanja baterije. Ako je potrebna dvosmjerna komunikacija korištenjem Mode S2, preporučuje se kratka preambula.
Primijetite da je prag detekcije za model S s dugom preambulom duži od broja preambula prebačenih za model S s kratkom preambulom. To znači da prijamnik Mode S duge preambule neće detektirati preambulu iz kratke preambule Mode S odašiljača. Ovo je neophodno ako prijemnik Mode S duge preambule želi dobiti bilo kakvu korist od duge preambule.
Imajte na umu da će kratka preambula Mode S prijemnik detektirati preambulu i primati pakete i iz kratke preambule Mode S
odašiljač i odašiljač Mode S duge preambule; tako da bi, općenito, čitač brojila trebao koristiti kratku preambulu konfiguraciju prijemnika Mode S.

Kodiranje/dekodiranje

Specifikacija bežičnog M-busa zahtijeva dvije različite metode kodiranja. Manchestersko kodiranje koristi se za Mode S i Mode R. Manchestersko kodiranje se također koristi za vezu "drugi-metar" u modelu T. Model T metar-to-druga veza koristi 3 od 6 kodiranja.
1. Manchester Encoded/Decoding
Manchestersko kodiranje je uobičajeno u RF sustavima kako bi se osigurao robustan oporavak takta i praćenje pomoću jednostavnog i jeftinog modema. Međutim, moderan radio visokih performansi poput Si443x ne treba kodiranje u Manchesteru. Manchestersko kodiranje podržano je prvenstveno zbog kompatibilnosti s postojećim standardima, ali brzina prijenosa podataka za Si443x učinkovito se udvostručuje kada se ne koristi Manchestersko kodiranje.
Si443x podržava Manchester kodiranje i dekodiranje cijelog paketa u hardveru. Nažalost, riječ za sinkronizaciju nije kodirana u Manchesteru. Za riječ za sinkronizaciju namjerno je odabran nevažeći Manchester slijed. To čini Manchester kodiranje nekompatibilnim s većinom postojećih radija, uključujući Si443x. Kao posljedica toga, Manchestersko kodiranje i dekodiranje mora izvoditi MCU. Svaki bajt nekodiranih podataka sastoji se od osam bitova podataka. Koristeći Manchestersko kodiranje, svaki bit podataka se kodira u simbol s dva čipa. Budući da se kodirani podaci moraju zapisati u radio FIFO osam čipova odjednom, jedan grickalica podataka se kodira i zapisuje u FIFO.
Tablica 5. Manchestersko kodiranje

podaci Vola12 0x34 bajtova
Vola1 0x2 0x3 0x4 grickalice
1 10 11 100 binarni
čip 10101001 10100110 10100101 10011010 binarni
FIFO OxA9 OxA6 OxA5 Ox9A šest

Svaki bajt za prijenos prosljeđuje se jedan po jedan bajt funkciji kodiranja bajta. Funkcija kodiranja bajta dvaput će pozvati funkciju grickanja kodiranja, prvo za najznačajniji grickanje, a zatim za najmanje značajan grickanje.
Manchestersko kodiranje u softveru nije teško. Počevši od najznačajnijeg bita, jedan je kodiran kao "01" sekvenca čipa. Nula je kodirana kao sekvenca čipa "10". To se lako može postići korištenjem petlje i pomicanjem dva bita za svaki simbol. Međutim, brže je samo koristiti jednostavnu tablicu za traženje od 16 unosa za svaki grickanje. Funkcija encode Manchester grickanja kodira grickanje podataka, a zatim ga zapisuje u FIFO. Čipovi se invertiraju prije nego što se zapišu u FIFO kako bi se uračunali zahtjevi obrnute preambule.
Prilikom primanja, svaki bajt u FIFO-u sastoji se od osam čipova i dekodira se u jedan grickanje podataka. Funkcija bloka čitanja čita jedan po jedan bajt iz FIFO i poziva funkciju dekodiranja bajta. Čipovi se invertiraju nakon čitanja iz FIFO-a kako bi se uračunali zahtjevi obrnute preambule. Svaki bajt čipova kodiranih u Manchesteru dekodira se u zalogaj podataka. Dekodirano grickanje zapisuje se u RX međuspremnik pomoću funkcije RX međuspremnika za pisanje.
Primijetite da se i kodiranje i dekodiranje izvode jedan po jedan grickanje podataka u hodu. Kodiranje u međuspremnik zahtijevalo bi dodatni međuspremnik dvostruko veći od nekodiranih podataka. Kodiranje i dekodiranje je puno brže od najbrže podržane brzine prijenosa podataka (100 k čipova u sekundi). Budući da Si443x podržava višebajtno čitanje i upisivanje u FIFO, postoje mali troškovi u korištenju samo jednobajtnog čitanja i pisanja. Overhead je oko 10 µs za 100 kodiranih čipova. Prednost je ušteda RAM-a od 512 bajtova.
2. Tri od šest dekodiranja kodiranja
Metoda kodiranja tri od šest specificirana u EN-13757-4 također je implementirana u firmware na MCU. Ovo se kodiranje koristi za način T velike brzine (100 k čipova u sekundi) od brojila do drugog. Model T pruža najkraće vrijeme prijenosa i najduži vijek trajanja baterije za bežični mjerač.
Svaki bajt podataka koji se prenosi podijeljen je u dva grickanja. Najznačajniji grickanje se prvo kodira i prenosi. Opet, ovo je implementirano korištenjem encode byte funkcije koja dvaput poziva funkciju encode nibble.
Svaki zalogaj podataka kodiran je u simbol od šest čipova. Slijed simbola od šest čipova mora biti zapisan u FIFO s 8 čipova.
Tijekom kodiranja, dva bajta podataka se kodiraju kao četiri grickanja. Svaki grickanje je simbol sa 6 žetona. Četiri simbola sa 6 čipova agregirana su kao tri bajta.
Tablica 6. Tri od šest kodiranja

podaci 0x12 0x34 bajtova
Vola1 0x2 0x3 0x4 grickalice
čip 15 16 13 34 oktalni
1101 1110 1011 11100 binarni
FIFO 110100 11100010 11011100 binarni
0x34 OxE2 OxDC šest

U softveru se kodiranje tri od šest implementira pomoću tri ugniježđene funkcije. Funkcija encode byte će dvaput pozvati funkciju encode grickanja. Funkcija grickanja kodiranja koristi tablicu traženja za simbol sa šest čipova i upisuje simbol u funkcije Shift Three of Six. Ova funkcija implementira pomakni registar sa 16 čipova u softveru. Simbol se zapisuje u najmanji značajan bajt registra pomaka. Registar se dvaput pomiče lijevo. To se ponavlja tri puta. Kada je cijeli bajt prisutan u gornjem bajtu registra pomaka, on se invertira i upisuje u FIFO.
Budući da je svaki bajt podataka kodiran kao jedan i pol kodirani bajt, važno je na početku obrisati pomakni registar kako bi prvi kodirani bajt bio točan. Ako je duljina paketa neparan broj, nakon kodiranja svih bajtova, i dalje će ostati jedan grickanje u registru pomaka. To se rješava s poštanskim pismom kako je objašnjeno u sljedećem odjeljku.
Dekodiranje tri od šest kodiranih je obrnuti postupak. Prilikom dekodiranja, tri kodirana bajta se dekodiraju u dva podatkovna bajta. Softverski pomakni registar ponovno se koristi za agregiranje bajtova dekodiranih podataka. Za dekodiranje se koristi tablica inverznog pregleda sa 64 unosa. Ovo koristi manje ciklusa, ali više memorije koda. Pretraživanje odgovarajućeg simbola u tablici za traženje od 16 unosa traje znatno duže.
Postamble
Specifikacija bežičnog M-busa ima posebne zahtjeve za poštansku oznaku ili prikolicu. Za sve načine rada minimalno je dva čipa, a maksimum osam čipova. Budući da je minimalna atomska jedinica za FIFO jedan bajt, za Mode S i Mode R koristi se prikolica s 8 čipova. Mode T postamble ima osam čipova ako je duljina paketa parna ili četiri čipa ako je duljina paketa neparna. Poštanska oznaka s četiri čipa za neparnu duljinu paketa ispunjava zahtjeve da imaju najmanje dva naizmjenična čipa.
Tablica 7. Duljina pošte

Duljina poštarine (čipovi)
min max Provedba slijed čipova
Način S 2 8 8 1010101
Način T 2 8 4 (neparan) 101
8 (čak) 1010101
Način rada R 2 8 8 1010101
Rukovalac paketima

Rukovatelj paketima na Si443x može se koristiti u načinu rada s varijabilnom širinom paketa ili u načinu fiksne širine paketa. Način varijabilne širine paketa zahtijeva bajt duljine paketa nakon sinkronizacijske riječi i neobaveznih bajtova zaglavlja. Nakon prijema, Radio će koristiti bajt duljine za određivanje kraja valjanog paketa. Prilikom prijenosa, radio će umetnuti polje duljine nakon bajtova zaglavlja.
L polje za bežični M-bus protokol ne može se koristiti za polje duljine Si443x. Prvo, polje L nije stvarna duljina paketa. To je broj bajtova korisnog opterećenja sloja veze ne uključujući CRC bajtove ili kodiranje. Drugo, samo L-polje je kodirano korištenjem Manchesterskog kodiranja ili kodiranja Tri od šest za način rada T mjerača prema drugom.
Implementacija koristi rukovatelj paketima u načinu fiksne širine paketa i za prijenos i za prijem. Nakon prijenosa, PHY sloj će pročitati L polje u međuspremniku za prijenos i izračunati broj kodiranih bajtova, uključujući poštansku oznaku. Ukupan broj kodiranih bajtova za prijenos upisuje se u registar duljine paketa (0x3E).
Nakon prijema, prva dva kodirana bajta se dekodiraju, a L-polje se upisuje u međuspremnik za primanje. L-polje se koristi za izračunavanje broja kodiranih bajtova koji se primaju. Broj kodiranih bajtova koji se primaju tada se upisuje u registar duljine paketa (0x3E). Poštamba se odbacuje.
MCU mora dekodirati L-polje, izračunati broj kodiranih bajtova i upisati vrijednost u registar duljine paketa prije nego što se primi najkraća moguća duljina paketa. Najkraće dopušteno L-polje za PHY sloj je 9, što daje 12 nekodiranih bajtova. To daje 18 kodiranih bajtova za model T. Prva dva bajta su već dekodirana. Dakle, registar duljine paketa mora se ažurirati u 16-bajtnom vremenu pri 100 kbps ili 1.28 milisekundi. To nije problem za 8051 koji radi na 20 MIPS.
Broj bajtova koji se primaju ne uključuje poštansku oznaku, osim poštanske oznake s četiri čipa koja se koristi za Mode T pakete s neparnom duljinom paketa. Dakle, primatelj ne zahtijeva poštansku oznaku, osim za pakete neparne duljine Model T. Ova poštanska oznaka je potrebna samo za davanje cijelog broja kodiranih bajtova. Sadržaj pošte je zanemaren; dakle, ako se poštarina ne prenese, četiri čipa buke će se primiti i zanemariti. Budući da je ukupan broj kodiranih bajtova ograničen na 255 (0xFF), implementacija ograničava maksimalno L-polje za različite načine rada.
Tablica 8. Ograničenja veličine paketa

kodirano dekodirano M-Bus
bajtova bajtova L-polje
dec šest dec šest dec šest
Način S 255 FF 127 7 F 110 6E
Način T (metar-ostalo) 255 FF 169 A9 148 94
Način rada R 255 FF 127 7 F 110 6E

Ova ograničenja su obično znatno iznad tipičnog slučaja upotrebe bežičnog mjerača. Duljinu paketa treba držati malom kako bi se postiglo najbolje moguće trajanje baterije.
Osim toga, korisnik može odrediti maksimalno L-polje koje treba primiti (USER_RX_MAX_L_FIELD). Ovo određuje potrebnu veličinu za međuspremnik za primanje (USER_RX_BUFFER_SIZE).
Podržavanje maksimalnog L-polja od 255 zahtijevalo bi međuspremnik za primanje od 290 bajtova i maksimalno 581 Manchester kodirani bajt. Rukovalac paketima bi trebao biti onemogućen i registar duljine paketa se ne bi mogao koristiti u tom slučaju. To je izvedivo, ali je prikladnije koristiti rukovatelj paketima, ako je moguće.

Upotreba FIFO

Si4431 pruža 64-bajtni FIFO za prijenos i primanje. Budući da je broj kodiranih bajtova 255, cijeli kodirani paket možda neće stati u 64-bajtni međuspremnik.
Prijenos
Prilikom prijenosa izračunava se ukupan broj kodiranih bajtova. Ako je ukupan broj kodiranih bajtova, uključujući poštansku oznaku, manji od 64 bajta, cijeli se paket zapisuje u FIFO i omogućen je samo prekid poslanog paketa. Većina kratkih paketa bit će poslana u jednom FIFO prijenosu.
Ako je broj kodiranih bajtova veći od 64, za slanje paketa bit će potrebno više FIFO prijenosa. Prva 64 bajta se upisuju u FIFO. Paket poslan i TX FIFO Gotovo prazan prekidi su omogućeni. Prag TX FIFO Almost Empty postavljen je na 16 bajtova (25%). Nakon svakog IRQ događaja čita se registar statusa 2. Najprije se provjerava bit Packet Sent, a ako paket nije u potpunosti poslan, sljedećih 48 bajtova kodiranih podataka upisuje se u FIFO. To se nastavlja sve dok se svi kodirani bajtovi ne napišu i dok se ne dogodi prekid poslanog paketa.
1. Recepcija
Prilikom prijema, u početku je omogućen samo prekid Sync Word. Nakon primanja sinkronizirajuće riječi, prekid sinkronizirane riječi je onemogućen, a FIFO gotovo puni prekid je omogućen. FIFO gotovo pun prag početno je postavljen na 2 bajta. Prvi FIFO gotovo puni prekid koristi se da se zna kada su primljena dva bajta duljine. Nakon što je duljina primljena, duljina se dekodira i izračunava se broj kodiranih bajtova. Prag RX FIFO gotovo puni se tada postavlja na 48 bajtova. RX FIFO je gotovo pun i prekidi valjanog paketa su omogućeni. Nakon sljedećeg IRQ događaja čita se registar statusa 1. Prvo se provjerava bit Valid Packet, a zatim se provjerava bit FIFO Almost Full. Ako je postavljen samo bit RX FIFO Almost Full, sljedećih 48 bajtova se čita iz FIFO. Ako je postavljen valjani bit paketa, ostatak paketa se čita iz FIFO. MCU prati koliko je bajtova pročitano i prestaje čitati nakon posljednjeg bajta.

Sloj podatkovne veze

Modul sloja podatkovne veze implementira sloj veze sukladan 13757-4:2005. Sloj podatkovne veze (LINK) pruža sučelje između fizičkog sloja (PHY) i sloja aplikacije (AL).
Sloj podatkovne veze obavlja sljedeće funkcije:

  • Pruža funkcije koje prenose podatke između PHY i AL
  • Generira CRC-ove za odlazne poruke
  • Otkriva CRC pogreške u dolaznim porukama
  • Omogućuje fizičko adresiranje
  • Potvrđuje prijenose za dvosmjerne komunikacijske načine
  • Uokviruje bitove podataka
  • Otkriva pogreške u okvirima u dolaznim porukama
Format okvira sloja veze

Bežični format okvira M-Bus koji se koristi u EN 13757-4:2005 izveden je iz formata okvira FT3 (Frame Type 3) iz IEC60870-5-2. Okvir se sastoji od jednog ili više blokova podataka. Svaki blok uključuje 16-bitno CRC polje. Prvi blok je blok fiksne duljine od 12 bajtova koji uključuje L-polje, C-polje, M-polje i A-polje.

  1. L-polje
    L-polje je duljina korisnog opterećenja podataka sloja veze. Ovo ne uključuje samo L-polje ili bilo koji od CRC bajtova. Uključuje L-polje, C-polje, M-polje i A-polje. Oni su dio PHY tereta.
    Budući da je broj kodiranih bajtova ograničen na 255 bajtova, maksimalna podržana vrijednost za M-polje je 110 bajtova za Manchester kodirane podatke i 148 bajtova za Mode T Three-Out-of-Six kodirane podatke.
    Sloj veze odgovoran je za izračunavanje L-polja pri prijenosu. Sloj veze koristit će L-polje na prijemu.
    Imajte na umu da L-polje ne označava duljinu PHY korisnog opterećenja ili broj kodiranih bajtova. Nakon prijenosa, PHY će izračunati duljinu PHY tereta i broj kodiranih bajtova. Nakon prijema, PHY će dekodirati L-polje i izračunati broj bajtova za dekodiranje.
  2. C-polje
    C-polje je polje kontrole okvira. Ovo polje identificira tip okvira i koristi se za primitive usluge razmjene podataka veze. C-polje označava vrstu okvira – POŠALJI, POTVRDI, ZAHTJEV ili ODGOVOR. U slučaju okvira SEND i REQUEST, C-polje pokazuje da li se očekuje POTVRDA ili ODGOVOR.
    Kada koristite osnovnu funkciju Link TX, može se koristiti bilo koja vrijednost C. Kada koristite Link Service Primitives, polje C se popunjava automatski prema EN 13757-4:2005.
  3. M-polje
    M-polje je šifra proizvođača. Proizvođači mogu zatražiti troslovni kod od sljedećeg web adresa: http://www.dlms.com/flag/INDEX.HTM Svaki znak koda od tri slova kodiran je kao pet bitova. 5-bitni kod može se dobiti uzimanjem ASCII koda i oduzimanjem 0x40 (“A”). Tri 5-bitna koda su spojena u 15-bitne. Najznačajniji bit je nula.
  4. A-polje
    Adresno polje je jedinstvena 6-bajtna adresa za svaki uređaj. Jedinstvenu adresu treba dodijeliti proizvođač. Svaki proizvođač je dužan osigurati da svaki uređaj ima jedinstvenu 6-bajtnu adresu. Adresa za okvire za slanje i zahtjeve je samoadresa mjerača ili drugog uređaja. Okviri podataka potvrde i odgovora šalju se pomoću adrese izvornog uređaja.
  5. CI-polje
    CI-polje je zaglavlje aplikacije i specificira vrstu podataka u korisnom učitavanju podataka aplikacije. Dok EN13757-4:2005 specificira ograničen broj vrijednosti, Primitive usluge veze dopuštaju korištenje bilo koje vrijednosti.
  6. CRC
    CRC je naveden u EN13757-4:2005.
    CRC polinom je:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Imajte na umu da se CRC M-Bus izračunava za svaki blok od 16 bajta. Rezultat je da svakih 16 bajtova podataka zahtijeva 18 bajtova za prijenos,
Dodatne informacije

Za dodatne informacije o implementaciji sloja veze, pogledajte “AN452: Vodič za programere bežičnog M-Bus stacka”.

Upravljanje napajanjem

Slika 2 prikazuje vremensku liniju upravljanja napajanjem za mjerač nprample koristeći Mode T1.

MCU bi trebao biti u stanju mirovanja kad god je to moguće radi uštede energije. U ovom exampMCU spava kada radi RTC, kada čeka na pokretanje radio kristala i kada odašilje s FIFO. MCU će se probuditi iz EZRadioPRO IRQ signala spojenog na buđenje Port Match.
Prilikom prijenosa poruka dužih od jednog bloka, MCU se mora probuditi da popuni FIFO (na temelju FIFO gotovo praznog prekida) i zatim se vratiti u stanje mirovanja.
MCU bi trebao biti u stanju mirovanja i radi iz oscilatora male snage ili oscilatora u burstnom načinu rada kada čita s ADC-a. ADC zahtijeva SAR sat.
Kada se ne koristi, EZRadioPRO bi trebao biti u načinu isključivanja sa SDN pin-om na visokom nivou. To zahtijeva ožičenu vezu s MCU. Registri EZ Radio Pro se ne čuvaju u načinu rada za isključenje; pa se EZRadioPro inicijalizira na svakom RTC intervalu. Inicijalizacija radija traje manje od 100 µs i štedi 400 nA. To rezultira uštedom energije od 10 µJ, na temelju intervala od 10 sekundi.
Kristalu EZRadioPRO potrebno je oko 16 ms za POR. Ovo je dovoljno dugo da se izračuna CRC za oko osam blokova. MCU će se vratiti u stanje mirovanja ako dovrši sve CRC-ove prije nego što se kristal stabilizirao. Ako je potrebna enkripcija, ona se također može pokrenuti dok se čeka na kristalnom oscilatoru.
MCU bi trebao raditi na 20 MHz koristeći oscilator male snage za većinu zadataka. Zadaci koji zahtijevaju precizno vremensko ograničenje moraju koristiti precizni oscilator i način mirovanja umjesto stanja mirovanja. RTC pruža dovoljnu rezoluciju za većinu zadataka. Vremenski okvir upravljanja napajanjem za mjerač T2 example aplikacija je prikazana na slici 3.

Implementaciju primopredajnika treba optimizirati za normalan slučaj kada se mjerač probudi, a čitač nije prisutan. Minimalni/maksimalni ACK timeouti su dovoljno dugi da je moguće koristiti C8051F930 RTC i staviti MCU u stanje mirovanja.
Dostupne su opcije izrade za mrežne ili USB čitače koji ne moraju koristiti način mirovanja. Način mirovanja će se koristiti umjesto mirovanja tako da USB i UART mogu prekinuti MCU.

SILICON LABS Bežična M-BUS implementacija softvera AN451-1

Studio za jednostavnost
Pristup MCU i bežičnim alatima, dokumentaciji, softveru, knjižnicama izvornog koda i još mnogo toga jednim klikom. Dostupno za Windows,
Mac i Linux!

IoT portfelj Kvaliteta
IoT portfelj
www.silabs.com/IoT
SW/HW
www.silabs.com/jednostavnost
Kvaliteta
www.silabs.com/kvaliteta
Podrška i zajednica
community.silabs.com

Odricanje
Silicon Labs namjerava kupcima pružiti najnoviju, točnu i detaljnu dokumentaciju svih perifernih uređaja i modula dostupnih implementatorima sustava i softvera koji koriste ili namjeravaju koristiti proizvode Silicon Labs. Podaci o karakteristikama, dostupni moduli i periferija, veličine memorije i memorijske adrese odnose se na svaki pojedini uređaj, a navedeni "Tipični" parametri mogu varirati i razlikuju se u različitim aplikacijama. Primjena prampsve opisane ovdje služe samo u ilustrativne svrhe. Silicon Labs zadržava pravo izmjene bez daljnje obavijesti i ograničenja na informacije o proizvodu, specifikacije i opise ovdje, te ne daje jamstva za točnost ili potpunost uključenih informacija. Silicon Labs neće snositi odgovornost za posljedice korištenja ovdje dostavljenih informacija. Ovaj dokument ne podrazumijeva niti izriče licence autorskih prava koje su ovdje dodijeljene za projektiranje ili proizvodnju bilo kojeg integriranog kruga. Proizvodi nisu dizajnirani niti ovlašteni za korištenje unutar bilo kojeg sustava za održavanje života bez posebnog pismenog pristanka Silicon Labsa. “Sustav za održavanje života” je svaki proizvod ili sustav namijenjen za podršku ili održavanje života i/ili zdravlja, za koji se, ako ne uspije, razumno može očekivati ​​da će rezultirati značajnim ozljedama ili smrću. Proizvodi Silicon Labsa nisu dizajnirani niti odobreni za vojnu primjenu. Proizvodi Silicon Labsa ni pod kojim uvjetima neće se koristiti u oružju za masovno uništenje uključujući (ali ne ograničavajući se na) nuklearno, biološko ili kemijsko oružje ili projektile koji mogu isporučiti takvo oružje.
Informacije o zaštitnim znakovima
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® i logotip Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logotip i njihove kombinacije, „svjetski energetski najprihvatljiviji mikrokontroleri“, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® i drugi su zaštitni znaci ili registrirani zaštitni znakovi Silicon Labsa. ARM, CORTEX, Cortex-M3 i thumbs zaštitni su znakovi ili registrirani zaštitni znakovi ARM Holdingsa. Keil je registrirani zaštitni znak tvrtke ARM Limited. Svi ostali proizvodi ili nazivi robnih marki spomenuti ovdje su zaštitni znakovi njihovih nositelja.Logo SILICON LABS-a

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

Dokumenti / Resursi

SILICON LABS Bežična M-BUS implementacija softvera AN451 [pdf] Korisnički priručnik
SILICON LABS, C8051, MCU i, EZRadioPRO, bežični M-bus, bežični, M-BUS, softver, implementacija, AN451

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *