SILICON LABS logo

AN451
TRÅDLØS M-BUS SOFTWARE IMPLEMENTERING

Indledning

Denne applikationsnote beskriver Silicon Labs implementering af Wireless M-Bus ved hjælp af en Silicon Labs C8051 MCU og EZRadioPRO®. Wireless M-bus er en europæisk standard for måleraflæsningsapplikationer, der bruger 868 MHz frekvensbåndet.

Stak lag

Wireless M-Bus bruger 3-lags IEC-modellen, som er en delmængde af 7-lags OSI-modellen (se figur 1).

SILICON LABS Trådløs M-BUS-softwareimplementering AN451Det fysiske (PHY) lag er defineret i EN 13757-4. Det fysiske lag definerer, hvordan bits kodes og transmitteres, RF-modemets karakteristika (chiphastighed, præambel og synkroniseringsord) og RF-parametre (modulation, centerfrekvens og frekvensafvigelse).
PHY-laget implementeres ved hjælp af en kombination af hardware og firmware. EZRadioPRO udfører alle RF- og modemfunktioner. EZRadioPRO bruges i FIFO-tilstand med pakkehåndteringen. MbusPhy.c-modulet leverer SPI-interface, kodning/dekodning, bloklæse/skrive- og pakkehåndtering og styrer transceivertilstandene.
M-Bus Data linklaget er implementeret i MbusLink.c modulet. M-Bus applikationsprogrammeringsgrænsefladen består af offentlige funktioner, der kan kaldes fra applikationslaget i hovedtråden. MbusLink-modulet implementerer også Data Link Layer. Datalinklaget vil formatere og kopiere data fra applikationens TX-buffer til MbusPhy TX-bufferen og tilføje de nødvendige overskrifter og CRC'er.
Selve applikationslaget er ikke en del af M-bus-firmwaren. Applikationslaget definerer, hvordan en lang række data skal formateres til transmission. De fleste målere behøver kun at overføre en eller to typer data. Tilføjelse af en stor mængde kode for at rumme enhver form for data til måleren ville tilføje unødvendig kode og omkostninger til måleren. Det kan være muligt at implementere et bibliotek eller en header file med en udtømmende liste over datatyper. De fleste målerkunder ved dog præcis, hvilken slags data de skal overføre og kan henvise til standarden for formateringsdetaljer. En universel læser eller sniffer kan implementere et komplet sæt applikationsdatatyper på pc'ens GUI. Af disse grunde implementeres applikationslaget ved hjælp af example applikationer til en måler og læser.

Påkrævede standarder
  1. EN 13757-4
    EN 13757-4
    Kommunikationssystem til målere og fjernaflæsning af målere
    Del 4: Trådløs måleraflæsning
    Radiometeraflæsning til drift i 868 MHz til 870 MHz SRD-båndet
  2. EN 13757-3
    Kommunikationssystem til målere og fjernaflæsning af målere
    Del 3: Dedikeret applikationslag
  3. IEC 60870-2-1:1992
    Fjernstyringsudstyr og systemer
    Del 5: Transmissionsprotokoller
    Afsnit 1: Link transmissionsprocedure
  4. IEC 60870-1-1:1990
    Fjernstyringsudstyr og systemer
    Del 5: Transmissionsprotokoller
    Afsnit 1: Transmissionsrammeformater
Definitioner
  • M-bus—M-Bus er en kablet standard for måleraflæsning i Europa.
  • Trådløs M-bus—Trådløs M-Bus til måleraflæsningsapplikationer i Europa.
  • PHY— Physical Layer definerer, hvordan databits og bytes kodes og transmitteres.
  • API—Application Programmer interface.
  • LINK-Data Link Layer definerer, hvordan blokke og rammer transmitteres.
  • CRC—Cyklisk redundanskontrol.
  • FSK—Indtastning af frekvensskift.
  • Chip—Den mindste enhed af overførte data. En databit er kodet som flere chips.
  • modul—AC-kodekilde .c file.

M-Bus PHY Funktionsbeskrivelse

Præambelsekvens

Præambelsekvensen specificeret af M-bus-specifikationen er et heltal, der skiftevis nuller og ettaller. En et er defineret som den højere frekvens, og et nul er defineret som den lavere frekvens.
nx (01)
Indledningsmulighederne for Si443x er et helt antal nibbles, der består af skiftende enere og nuller.
nx (1010)
En præamble med en ekstra ledende ville ikke være et problem, men så ville synkroniseringsordet og nyttelasten være forkert justeret med en bit.
Løsningen er at invertere hele pakken ved at indstille motorbitten i Modulation Control 2-registret (0x71). Dette inverterer præamblen, synkroniseringsordet og TX/RX-data. Som en konsekvens bør dataene vendes om, når TX-dataene skrives eller RX-dataene læses. Synkroniseringsordet inverteres også, før det skrives til Si443x Synchronization Word-registre.

Synkroniseringsord

Synkroniseringsordet, der kræves af EN-13757-4, er enten 18 chips til Mode S og Mode R eller 10 chips til Model T. Synkroniseringsordet for Si443x er 1 til 4 bytes. Men eftersom synkroniseringsordet altid er indledt med præamblen, kan de sidste seks bits af præamblen betragtes som en del af synkroniseringsordet; så det første synkroniseringsord er polstret med tre gentagelser af et nul efterfulgt af et et. Synkroniseringsordet suppleres før skrivning til Si443x-registrene.
Tabel 1. Synkroniseringsord for Mode S og Mode R

EN 13757-4 00 01110110 10010110 binær
00 76 96 Hex
pude med (01) x 3 01010100 01110110 10010110 binær
54 76 96 Hex
komplement 10101011 10001001 01101001 binær
AB 89 69 Hex

Tabel 2. Synkroniseringsord for Mode T Meter til Andet

SYNK SYNK SYNK
ORD ORD ORD
3 2 1
Sende præambellængde

Den mindste præamble er specificeret for fire forskellige driftstilstande. Det er acceptabelt at have en præamble længere end specificeret. At trække seks chips fra for preamblen giver det mindste antal chips for Si443x-præamblen. Implementeringen tilføjer to ekstra nibbles af præamblen i alle korte præamble-tilstande for at forbedre præambledetektion og interoperabilitet. Præamblen på Mode S med en lang præambel er meget lang; så minimumspræamblen bruges. Præambellængden i nibbles skrives til præambellængderegistret (0x34). Præambellængderegistret bestemmer kun præamblen ved transmission. Indstillingerne for minimumsspecifikation og præambellængde er opsummeret i tabel 3.
Tabel 3. Sende præambellængde

EN-13757-4
minimum
Si443x præamble
Sæt ing
Synkroniser
Ord
Total ekstra
nx (01) chips nipper chips chips chips chips
Mode S kort præamble 15 30 8 32 6 38 8
Mode S lang præambel 279 558 138 552 6 558 0
Mode T (meter-anden) 19 38 10 40 6 46 8
Mode R 39 78 20 80 6 86 8

Den mindste præamble for modtagelse bestemmes af præambledetektionskontrolregisteret (0x35). Ved modtagelse skal antallet af bit i synkroniseringsordet trækkes fra den specificerede minimum-præamble for at bestemme den brugbare præamble. Modtagerens minimumsindstillingstid er 16-chips, hvis AFC er aktiveret, eller 8-chips, hvis AFC er deaktiveret. Modtagerindstillingstiden trækkes også fra den anvendelige præamble for at bestemme minimumsindstillingen for præambledetektionskontrolregisteret.

Sandsynligheden for en falsk præamble afhænger af indstillingen af ​​præambledetektionskontrolregisteret. En kort indstilling af 8-chips kan resultere i, at en falsk præamble detekteres med få sekunders mellemrum. Den anbefalede indstilling på 20chips gør registrering af falsk præamble til en usandsynlig hændelse. Præambellængderne for Mode R og Mode SL er tilstrækkelig lange til, at den anbefalede indstilling kan bruges.
Der er meget lidt fordel ved at få præamblen til at detektere længere end 20 chips.
AFC'en er deaktiveret for Model S med en kort præamble og Model T. Dette reducerer modtagerens indstillingstid og tillader en længere præambeldetekteringsindstilling. Med AFC deaktiveret kan Mode T bruge den anbefalede indstilling på 20 chips. En indstilling på 4 nibbles eller 20 chips bruges til Model S med en kort præamble. Dette gør sandsynligheden for en falsk præamble-detektion lidt højere for denne model.
Tabel 4. Præambeldetektion

EN-13757-4
minimum
Synkroniser
Ord
brugbar
præambel
RX-afregning Opdage
min
Si443x præamble
Registreringsindstilling
nx (01) chips chips chips chips chips nipper chips
Mode S kort præamble 15 30 6 24 8* 16 4 16
Model S lang præamble 279 558 6 552 16 536 5 20
Model T (meter-anden) 19 38 6 32 8* 24 5 20
Mode R 39 78 6 72 16 56 5 20
*Note: AFC deaktiveret

Modtageren er konfigureret til at fungere sammen med en sender ved brug af den minimum specificerede præambel. Dette sikrer, at modtageren vil fungere sammen med enhver M-bus-kompatibel sender.
Wireless M-Bus-specifikationen kræver en meget lang præamble for Mode S1 på mindst 558 chips. Dette vil tage omkring 17 ms bare at sende præamblen. Si443x kræver ikke så lang en præamble og nyder ikke godt af den lange præamble. Mens den lange præamble er noteret som valgfri for Mode S2, er der ingen grund til at bruge en lang præamble med Si443x. Hvis envejskommunikation ønskes, vil Mode T1 give en kortere præamble, højere datahastighed og længere batterilevetid. Hvis tovejskommunikation ved hjælp af Mode S2 er påkrævet, anbefales en kort præamble.
Bemærk, at detektionstærsklen for Model S med en lang præamble er længere end antallet af præamble-nibbles, der sendes for Model S med en kort præamble. Dette betyder, at den lange præambel Mode S-modtager ikke vil detektere en præambel fra en kort præamble Mode S-sender. Dette er nødvendigt, hvis den lange præambel Mode S-modtager skal have nogen fordele af den lange præambel.
Bemærk, at den korte præamble Mode S-modtager vil registrere præamblen og modtage pakker fra både en kort præamble Mode S
sender og en lang præambel Mode S-sender; så generelt bør måleraflæseren bruge den korte præambel Mode S-modtagerkonfiguration.

Indkodning/afkodning

Wireless M-bus-specifikationen kræver to forskellige kodningsmetoder. Manchester-kodning bruges til Mode S og Mode R. Manchester-kodning bruges også til andet-til-meter-linket i Model T. Model T meter-to-other-linket bruger 3 ud af 6 kodninger.
1. Manchester kodet/afkodning
Manchester-kodning er almindelig historisk i RF-systemer for at give robust urgendannelse og sporing ved hjælp af et simpelt og billigt modem. En moderne højtydende radio som Si443x behøver dog ikke Manchester-kodning. Manchester-kodning understøttes primært af hensyn til kompatibilitet med eksisterende standarder, men datahastigheden for Si443x fordobles effektivt, når der ikke bruges Manchester-kodning.
Si443x understøtter Manchester-kodning og afkodning af hele pakken i hardware. Synkroniseringsordet er desværre ikke Manchester-kodet. En ugyldig Manchester-sekvens blev med vilje valgt til synkroniseringsordet. Dette gør Manchester-kodning inkompatibel med de fleste eksisterende radioer, inklusive Si443x. Som en konsekvens skal Manchester-kodningen og afkodningen udføres af MCU'en. Hver byte på ukodede data består af otte databit. Ved at bruge Manchester-kodning kodes hver databit til et to-chip symbol. Da de kodede data skal skrives til radio-FIFO'en otte chips ad gangen, kodes og skrives en nibble data til FIFO'en ad gangen.
Tabel 5. Manchester-kodning

data Ox12 0x34 bytes
Ox1 0x2 0x3 0x4 nipper
1 10 11 100 binær
chip 10101001 10100110 10100101 10011010 binær
FIFO OxA9 OxA6 OxA5 Ox9A Hex

Hver byte, der skal transmitteres, sendes en byte ad gangen til encode byte-funktionen. Encode byte-funktionen kalder encode nibble-funktionen to gange, først for den mest signifikante nibble og derefter for den mindst signifikante nibble.
Manchester-kodning i software er ikke svært. Startende fra den mest signifikante bit, er den ene kodet som en "01" chipsekvens. Et nul er kodet som en "10" chip-sekvens. Dette kan nemt opnås ved at bruge en loop og skifte to-bit for hvert symbol. Det er dog hurtigere blot at bruge en simpel opslagstabel med 16 indgange for hver nibble. Encode Manchester nibble-funktionen koder en nibble af data og skriver det derefter til FIFO. Chipsene inverteres, før de skrives til FIFO'en for at tage højde for kravene til inverteret præamble.
Ved modtagelse består hver byte i FIFO'en af ​​otte chips og er afkodet til en nibble af data. Læseblokfunktionen læser en byte ad gangen fra FIFO'en og kalder afkodningsbytefunktionen. Chipsene inverteres efter læsning fra FIFO'en for at tage højde for kravene til inverteret præamble. Hver byte af Manchester-kodede chips afkodes til en nibble af data. Den afkodede nibble skrives til RX-bufferen ved hjælp af skrive nibble RX-bufferfunktionen.
Bemærk, at både indkodet og afkodning udføres én datanibble ad gangen i farten. Kodning til en buffer vil kræve en ekstra buffer dobbelt så stor som de ukodede data. Kodning og afkodning er meget hurtigere end den hurtigste understøttede datahastighed (100 k chips pr. sekund). Da Si443x understøtter multiple-byte læsning og skrivning til FIFO, er der en lille overhead ved kun at bruge enkelt-byte læsning og skrivning. Overhead er ca. 10 µs for 100 kodede chips. Fordelen er en RAM-besparelse på 512 bytes.
2. Tre ud af seks kodningsafkodning
Tre-ud-af-seks-kodningsmetoden specificeret i EN-13757-4 er også implementeret i firmwaren på MCU'en. Denne kodning bruges til højhastigheds (100 k chips pr. sekund) Mode T fra meter til anden. Model T giver den korteste transmissionstid og den længste batterilevetid for en trådløs måler.
Hver byte af data, der skal transmitteres, er opdelt i to nibbles. Den mest betydningsfulde nibble kodes og transmitteres først. Igen er dette implementeret ved hjælp af en encode byte-funktion, der kalder encode nibble-funktionen to gange.
Hver nibble af data er kodet til et seks-chip symbol. Sekvensen af ​​seks-chip symboler skal skrives til 8-chip FIFO.
Under kodning kodes to bytes data som fire nibbles. Hver nibble er et 6-chip symbol. Fire 6-chip symboler er samlet som tre bytes.
Tabel 6. Tre ud af seks kodning

data 0x12 0x34 bytes
Ox1 0x2 0x3 0x4 nipper
chip 15 16 13 34 oktal
1101 1110 1011 11100 binær
FIFO 110100 11100010 11011100 binær
0x34 OxE2 OxDC Hex

I software er tre-ud-af-seks-kodningen implementeret ved hjælp af tre indlejrede funktioner. Encode byte-funktionen kalder encode nibble-funktionen to gange. Encode nibble-funktionen bruger en opslagstabel for seks-chip-symbolet og skriver symbolet til Shift Tre ud af seks funktioner. Denne funktion implementerer et 16-chip skifteregister i software. Symbolet skrives til den mindst signifikante byte i skifteregisteret. Registeret flyttes til venstre to gange. Dette gentages tre gange. Når en komplet byte er til stede i den øvre byte af skifteregisteret, inverteres den og skrives til FIFO'en.
Da hver byte af data er kodet som halvanden kodet byte, er det vigtigt at rydde skifteregisteret indledningsvis, så den første kodede byte er korrekt. Hvis pakkelængden er et ulige tal, vil der efter indkodning af alle bytes stadig være en nibble tilbage i skifteregisteret. Dette håndteres med postamblet som forklaret i næste afsnit.
Afkodning af de tre ud af seks kodede er den omvendte procedure. Ved afkodning afkodes tre kodede bytes til to databytes. Softwareskiftregisteret bruges igen til at aggregere bytes af afkodede data. En 64-indgange omvendt opslagstabel bruges til afkodning. Dette bruger færre cyklusser, men mere kodehukommelse. At søge i en opslagstabel med 16 poster efter det tilsvarende symbol tager betydeligt længere tid.
Postamble
Wireless M-bus-specifikationen har specifikke krav til postamblen eller traileren. For alle modes er minimum to chips, og maksimum er otte chips. Da den mindste atomare enhed for FIFO'en er en byte, bruges en 8-chip trailer til Mode S og Mode R. Mode T postamble er otte chips, hvis pakkelængden er lige, eller fire chips, hvis pakkelængden er ulige. Fire-chip postamble for en ulige pakkelængde opfylder kravene til at have mindst to alternerende chips.
Tabel 7. Stængelængde

Postamble-længde (chips)
min max Implementering chip sekvens
Mode S 2 8 8 1010101
Mode T 2 8 4 (ulige) 101
8 (også selvom) 1010101
Mode R 2 8 8 1010101
Pakkebehandler

Pakkehåndteringen på Si443x kan bruges i en tilstand med variabel pakkebredde eller en tilstand med fast pakkebredde. Den variable pakkebreddetilstand kræver en pakkelængdebyte efter synkroniseringsordet og valgfri headerbytes. Ved modtagelse vil radioen bruge længdebyten til at bestemme slutningen af ​​en gyldig pakke. Ved transmission vil radioen indsætte længdefeltet efter header-bytes.
L-feltet for den trådløse M-bus-protokol kan ikke bruges til Si443x-længdefeltet. For det første er L-feltet ikke den faktiske pakkelængde. Det er antallet af linklags nyttelastbytes, der ikke inkluderer CRC-bytes eller kodning. For det andet kodes selve L-feltet ved at bruge enten Manchester-kodning eller Tre ud af seks-kodning for Mode T meter til anden.
Implementeringen bruger pakkehåndteringen i tilstanden med fast pakkebredde til både transmission og modtagelse. Ved transmission vil PHY-laget læse L-feltet i sendebufferen og beregne antallet af kodede bytes, inklusive postamble. Det samlede antal kodede bytes, der skal transmitteres, skrives til pakkelængderegistret (0x3E).
Ved modtagelse afkodes de første to kodede bytes, og L-feltet skrives til modtagebufferen. L-feltet bruges til at beregne antallet af kodede bytes, der skal modtages. Antallet af kodede bytes, der skal modtages, skrives derefter til pakkelængderegistret (0x3E). Postsedlen kasseres.
MCU'en skal afkode L-feltet, beregne antallet af kodede bytes og skrive værdien til pakkelængderegistret, før den kortest mulige pakkelængde er modtaget. Det korteste tilladte L-felt for PHY-laget er 9, hvilket giver 12 ukodede bytes. Dette giver 18 kodede bytes for Model T. De første to bytes er allerede afkodet. Pakkelængderegistret skal således opdateres på 16-byte gange ved 100 kbps eller 1.28 millisekunder. Dette er ikke noget problem for en 8051, der kører med 20 MIPS.
Antallet af bytes, der skal modtages, inkluderer ikke postamble, bortset fra fire-chip postamble, der bruges til Mode T-pakker med en ulige pakkelængde. Således kræver modtageren ikke en postamble, bortset fra Model T-pakker med ulige længde. Denne postamble er kun nødvendig for at give et heltal af kodede bytes. Indholdet af postamblet ignoreres; så hvis postamblet ikke transmitteres, vil fire chips med støj blive modtaget og ignoreret. Da det samlede antal kodede bytes er begrænset til 255 (0xFF), begrænser implementeringen det maksimale L-felt for de forskellige tilstande.
Tabel 8. Pakkestørrelsesgrænser

kodet afkodet M-bus
bytes bytes L-felt
dec Hex dec Hex dec Hex
Mode S 255 FF 127 7 F 110 6E
Mode T (meter-anden) 255 FF 169 A9 148 94
Mode R 255 FF 127 7 F 110 6E

Disse grænser er normalt et godt stykke over det typiske brugstilfælde for en trådløs måler. Pakkelængden bør holdes lille for at få den bedst mulige batterilevetid.
Derudover kan brugeren angive det maksimale L-felt, der skal modtages (USER_RX_MAX_L_FIELD). Dette bestemmer den nødvendige størrelse for modtagebufferen (USER_RX_BUFFER_SIZE).
Understøttelse af et maksimalt L-felt på 255 ville kræve en modtagebuffer på 290 bytes og et maksimum på 581 Manchester-kodede bytes. Pakkebehandleren skulle deaktiveres, og pakkelængderegistret kunne ikke bruges i det tilfælde. Dette er muligt, men det er mere praktisk at bruge pakkehåndteringen, hvis det er muligt.

FIFO-brug

Si4431 giver en 64 byte FIFO til transmission og modtagelse. Da antallet af kodede bytes er 255, kan en hel kodet pakke muligvis ikke passe ind i 64-byte bufferen.
Smitte
Ved transmission beregnes det samlede antal kodede bytes. Hvis det samlede antal kodede bytes, inklusive postamblet, er mindre end 64 bytes, skrives hele pakken til FIFO'en, og kun den afsendte pakkeafbrydelse er aktiveret. De fleste korte pakker vil blive sendt i én FIFO-overførsel.
Hvis antallet af kodede bytes er større end 64, kræves der flere FIFO-overførsler for at sende pakken. De første 64 bytes skrives til FIFO'en. Pakke sendt og TX FIFO Næsten tomme afbrydelser er aktiveret. Tærsklen for TX FIFO Næsten tom er sat til 16 bytes (25%). Ved hver IRQ-hændelse læses status 2-registret. Pakke Sendt bit kontrolleres først, og hvis pakken ikke er blevet fuldstændigt sendt, skrives de næste 48 bytes af kodede data til FIFO'en. Dette fortsætter, indtil alle kodede bytes er blevet skrevet, og Packet Sendt-afbrydelsen opstår.
1. Reception
Ved modtagelse er det i første omgang kun Sync Word-afbrydelsen, der er aktiveret. Efter modtagelse af synkroniseringsordet er synkroniseringsordsafbrydelsen deaktiveret, og FIFO Næsten fuld afbrydelse er aktiveret. FIFO næsten fuld tærskelværdi er oprindeligt sat til 2 bytes. Den første FIFO Almost Full interrupt bruges til at vide, hvornår de to længdebytes er blevet modtaget. Når længden er modtaget, afkodes længden, og antallet af kodede bytes beregnes. RX FIFO næsten fuld tærskelværdien sættes derefter til 48 bytes. RX FIFO'en er næsten fuld, og Valid Packet interrupts er aktiveret. Ved næste IRQ-hændelse læses status 1-registret. Først kontrolleres den gyldige pakkebit, og derefter tjekkes FIFO-bitten næsten fuld. Hvis kun RX FIFO Næsten fuld bit er indstillet, læses de næste 48 bytes fra FIFO'en. Hvis den gyldige pakkebit er indstillet, læses resten af ​​pakken fra FIFO'en. MCU'en holder styr på, hvor mange bytes der er blevet læst og stopper med at læse efter den sidste byte.

Datalinklag

Datalink-lagmodulet implementerer et 13757-4:2005-kompatibelt linklag. Datalinklaget (LINK) giver en grænseflade mellem det fysiske lag (PHY) og applikationslaget (AL).
Datalink-laget udfører følgende funktioner:

  • Giver funktioner, der overfører data mellem PHY og AL
  • Genererer CRC'er til udgående beskeder
  • Registrerer CRC-fejl i indgående meddelelser
  • Giver fysisk adressering
  • Anerkender overførsler til tovejskommunikationstilstande
  • Rammer databits
  • Registrerer rammefejl i indgående meddelelser
Link Layer Frame Format

Det trådløse M-Bus-rammeformat, der bruges i EN 13757-4:2005, er afledt af FT3 (Frame Type 3)-rammeformatet fra IEC60870-5-2. Rammen består af en eller flere datablokke. Hver blok indeholder et 16-bit CRC-felt. Den første blok er en blok med fast længde på 12 bytes, der inkluderer L-feltet, C-feltet, M-feltet og A-feltet.

  1. L-felt
    L-feltet er længden af ​​linklagets datanyttelast. Dette inkluderer ikke selve L-feltet eller nogen af ​​CRC-bytes. Det inkluderer L-feltet, C-feltet, M-feltet og A-feltet. Disse er en del af PHY-nyttelasten.
    Fordi antallet af kodede bytes er begrænset til 255 bytes, er den maksimalt understøttede værdi for M-feltet 110 bytes for Manchester-kodede data og 148 bytes for Mode T tre-ud-af-seks-kodede data.
    Linklaget er ansvarlig for at beregne L-feltet ved transmission. Link-laget vil bruge L-feltet ved modtagelse.
    Bemærk, at L-feltet ikke angiver PHY-nyttelastlængden eller antallet af kodede bytes. Ved transmission vil PHY beregne PHY nyttelastlængden og antallet af kodede bytes. Ved modtagelse vil PHY afkode L-feltet og beregne antallet af bytes, der skal afkodes.
  2. C-felt
    C-feltet er rammekontrolfeltet. Dette felt identificerer rammetypen og bruges til linkdataudvekslingstjenestens primitiver. C-feltet angiver rammetypen – SEND, BEKRÆFT, ANMODNING eller SVAR. I tilfælde af SEND- og REQUEST-rammer angiver C-feltet, om der forventes en CONFIRM eller RESPOND.
    Når du bruger den grundlæggende Link TX-funktion, kan enhver værdi af C bruges. Når du bruger Link Service Primitives, udfyldes C-feltet automatisk i henhold til EN 13757-4:2005.
  3. M-felt
    M-feltet er producentens kode. Producenter kan anmode om en kode på tre bogstaver fra følgende web adresse: http://www.dlms.com/flag/INDEX.HTM Hvert tegn i koden på tre bogstaver er kodet som fem bit. 5-bit-koden kan opnås ved at tage ASCII-koden og trække 0x40 ("A") fra. De tre 5-bit koder er sammenkædet til 15-bit. Den mest signifikante bit er nul.
  4. A-felt
    Adressefeltet er en unik 6-byte adresse for hver enhed. Den unikke adresse bør tildeles af producenten. Det er hver producents ansvar at sikre, at hver enhed har en unik 6-byte adresse. Adressen for Send og Request frames er målerens eller anden enheds selvadresse. Bekræftelsesvarsdatarammerne sendes ved at bruge adressen på den oprindelige enhed.
  5. CI-felt
    CI-feltet er applikationsoverskriften og specificerer typen af ​​data i applikationsdataens nyttelast. Mens EN13757-4:2005 specificerer et begrænset antal værdier, vil Link Service Primitives tillade, at enhver værdi bruges.
  6. CRC
    CRC er specificeret i EN13757-4:2005.
    CRC-polynomiet er:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Bemærk, at M-Bus CRC beregnes over hver 16-byte blok. Resultatet er, at hver 16 bytes data kræver 18 bytes for at blive transmitteret,
Yderligere oplysninger

Se "AN452: Wireless M-Bus Stack Programmers Guide" for yderligere oplysninger om Link Layer-implementeringen.

Strømstyring

Figur 2 viser strømstyringens tidslinje for en måler f.eksampved at bruge tilstanden T1.

MCU'en skal være i dvaletilstand, når det er muligt for at spare energi. I dette example, MCU'en sover, når RTC'en kører, når den venter på opstart af radiokrystal, og når den sender fra FIFO'en. MCU'en vågner op fra EZRadioPRO IRQ-signalet, der er tilsluttet en Port Match-vågning.
Når der sendes meddelelser, der er længere end én blok, skal MCU'en vågne op for at fylde FIFO'en (baseret på FIFO'en næsten tomme afbrydelse) og derefter gå tilbage til dvale.
MCU'en skal være i inaktiv tilstand og køre fra laveffektoscillatoren eller burst-mode oscillatoren, når den læser fra ADC'en. ADC'en kræver et SAR-ur.
Når den ikke er i brug, skal EZRadioPRO være i Shutdown-tilstand med SDN-stiften drevet højt. Dette kræver en fastkablet forbindelse til MCU'en. EZ Radio Pro-registrene bevares ikke i nedlukningstilstand; så EZRadioPro initialiseres på hvert RTC-interval. Initialisering af radioen tager mindre end 100 µs og sparer 400 nA. Dette resulterer i en energibesparelse på 10 µJ baseret på et 10-sekunders interval.
EZRadioPRO-krystallen tager omkring 16 ms for en POR. Dette er langt nok til at beregne CRC for omkring otte blokke. MCU'en går tilbage i dvale, hvis den fuldfører alle CRC'er, før krystallen er stabiliseret. Hvis kryptering er påkrævet, kan den også startes, mens du venter på krystaloscillatoren.
MCU'en skal køre ved 20 MHz ved hjælp af laveffektoscillatoren til de fleste opgaver. Opgaver, der kræver en præcis timeout, skal bruge præcisionsoscillator og inaktiv tilstand i stedet for dvaletilstand. RTC giver nok opløsning til de fleste opgaver. Strømstyringens tidslinje for T2-måleren exampapplikationen er vist i figur 3.

Transceiverimplementeringen bør være optimeret til det normale tilfælde, når måleren vågner, og der ikke er nogen læser til stede. Minimum/maksimum ACK timeouts er tilstrækkelig lange, så det er muligt at bruge C8051F930 RTC og sætte MCU'en i dvaletilstand.
Opbygningsmuligheder er tilvejebragt for net- eller USB-forsynede læsere, der ikke behøver at bruge dvaletilstand. Inaktiv tilstand vil blive brugt i stedet for dvale, så USB og UART kan afbryde MCU'en.

SILICON LABS Trådløs M-BUS-softwareimplementering AN451-1

Simplicity Studio
Et-klik adgang til MCU og trådløse værktøjer, dokumentation, software, kildekodebiblioteker og mere. Tilgængelig til Windows,
Mac og Linux!

IoT-portefølje Kvalitet
IoT-portefølje
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Kvalitet
www.silabs.com/quality
Støtte og fællesskab
community.silabs.com

Ansvarsfraskrivelse
Silicon Labs har til hensigt at give kunderne den seneste, nøjagtige og dybdegående dokumentation af alle perifere enheder og moduler, der er tilgængelige for system- og softwareimplementere, der bruger eller har til hensigt at bruge Silicon Labs-produkterne. Karakteriseringsdata, tilgængelige moduler og ydre enheder, hukommelsesstørrelser og hukommelsesadresser refererer til hver specifik enhed, og de "typiske" parametre, der leveres, kan og varierer i forskellige applikationer. Ansøgning exampDe heri beskrevne er kun til illustrative formål. Silicon Labs forbeholder sig retten til at foretage ændringer uden yderligere varsel og begrænsning til produktinformation, specifikationer og beskrivelser heri, og giver ingen garantier for nøjagtigheden eller fuldstændigheden af ​​de inkluderede oplysninger. Silicon Labs påtager sig intet ansvar for konsekvenserne af brugen af ​​oplysningerne heri. Dette dokument antyder eller udtrykker ikke ophavsretslicenser givet nedenfor til at designe eller fremstille integrerede kredsløb. Produkterne er ikke designet eller godkendt til at blive brugt i noget Life Support System uden specifikt skriftligt samtykke fra Silicon Labs. Et "Livsstøttesystem" er ethvert produkt eller system beregnet til at understøtte eller opretholde liv og/eller sundhed, som, hvis det fejler, med rimelighed kan forventes at resultere i betydelig personskade eller død. Silicon Labs produkter er ikke designet eller godkendt til militære applikationer. Silicon Labs-produkter må under ingen omstændigheder bruges i masseødelæggelsesvåben, herunder (men ikke begrænset til) nukleare, biologiske eller kemiske våben eller missiler, der er i stand til at levere sådanne våben.
Varemærkeoplysninger
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® og Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro-logoet og kombinationer deraf, "verdens mest energivenlige mikrocontrollere", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® og andre er varemærker eller registrerede varemærker tilhørende Silicon Labs. ARM, CORTEX, Cortex-M3 og thumbs er varemærker eller registrerede varemærker tilhørende ARM Holdings. Keil er et registreret varemærke tilhørende ARM Limited. Alle andre produkter eller mærkenavne nævnt heri er varemærker tilhørende deres respektive indehavere.SILICON LABS logo

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

Dokumenter/ressourcer

SILICON LABS Trådløs M-BUS-softwareimplementering AN451 [pdfBrugervejledning
SILICON LABS, C8051, MCU og, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Software, Implementation, AN451

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *