SILICON LABS logotips

AN451
BEZVADU M-BUS PROGRAMMATŪRAS IEVIEŠANA

Ievads

Šajā lietojumprogrammas piezīmē ir aprakstīta Wireless M-Bus ieviešana Silicon Labs, izmantojot Silicon Labs C8051 MCU un EZRadioPRO®. Bezvadu M-bus ir Eiropas standarts mērierīču nolasīšanai, izmantojot 868 MHz frekvenču joslu.

Sakraut slāņus

Bezvadu M-Bus izmanto 3 slāņu IEC modeli, kas ir 7 slāņu OSI modeļa apakškopa (sk. 1. attēlu).

SILICON LABS bezvadu M-BUS programmatūras ieviešana AN451Fiziskais (PHY) slānis ir definēts EN 13757-4. Fiziskais slānis nosaka, kā biti tiek kodēti un pārraidīti, RF modema raksturlielumi (mikroshēmas ātrums, preambula un sinhronizācijas vārds) un RF parametri (modulācija, centrālā frekvence un frekvences novirze).
PHY slānis tiek ieviests, izmantojot aparatūras un programmaparatūras kombināciju. EZRadioPRO veic visas RF un modema funkcijas. EZRadioPRO tiek izmantots FIFO režīmā ar pakešu apstrādātāju. MbusPhy.c modulis nodrošina SPI interfeisu, kodēšanu/dekodēšanu, bloku lasīšanu/rakstīšanu un pakešu apstrādi un pārvalda raiduztvērēja stāvokļus.
M-Bus datu saites slānis ir ieviests MbusLink.c modulī. M-Bus lietojumprogrammu saskarne sastāv no publiskām funkcijām, kuras var izsaukt no lietojumprogrammas slāņa galvenajā pavedienā. MbusLink modulis ievieš arī datu saites slāni. Datu saites slānis formatēs un kopēs datus no lietojumprogrammas TX bufera uz MbusPhy TX buferi, pievienojot vajadzīgās galvenes un CRC.
Pats lietojumprogrammas slānis nav daļa no M-bus programmaparatūras. Lietojumprogrammas slānis nosaka, kā pārsūtīšanai jāformatē dažādi dati. Lielākajai daļai skaitītāju ir jāpārraida tikai viena vai divu veidu dati. Liela koda daudzuma pievienošana, lai skaitītājā ievietotu jebkāda veida datus, skaitītājam pievienotu nevajadzīgu kodu un izmaksas. Varētu būt iespējams ieviest bibliotēku vai galveni file ar izsmeļošu datu tipu sarakstu. Tomēr lielākā daļa mērīšanas klientu precīzi zina, kāda veida dati viņiem ir jāpārraida, un var atsaukties uz standartu formatēšanas detaļām. Universāls lasītājs vai sniffer var ieviest pilnu lietojumprogrammu datu tipu komplektu datora GUI. Šo iemeslu dēļ lietojumprogrammas slānis tiek ieviests, izmantojot piemample aplikācijas skaitītājam un lasītājam.

Nepieciešamie standarti
  1. EN 13757-4
    EN 13757-4
    Sakaru sistēma skaitītājiem un skaitītāju attālināta nolasīšana
    4. daļa: Bezvadu skaitītāja rādījums
    Radiometra rādījums darbam 868 MHz līdz 870 MHz SRD joslā
  2. EN 13757-3
    Sakaru sistēma skaitītājiem un skaitītāju attālināta nolasīšana
    3. daļa. Īpašs pielietojuma slānis
  3. IEC 60870-2-1:1992
    Televadības iekārtas un sistēmas
    5. daļa: Pārraides protokoli
    1. sadaļa: Saites pārsūtīšanas procedūra
  4. IEC 60870-1-1:1990
    Televadības iekārtas un sistēmas
    5. daļa: Pārraides protokoli
    1. sadaļa. Pārraides kadru formāti
Definīcijas
  • M-buss —M-Bus ir vadu standarts skaitītāju nolasīšanai Eiropā.
  • Bezvadu M-Bus— Bezvadu M-Bus skaitītāju nolasīšanas lietojumiem Eiropā.
  • PHY— Fiziskais slānis nosaka, kā tiek kodēti un pārsūtīti datu biti un baiti.
  • API —Lietojumprogrammu programmētāja saskarne.
  • SAITE —Datu saites slānis nosaka, kā tiek pārraidīti bloki un kadri.
  • CRC —Cikliskā atlaišanas pārbaude.
  • FSK —Frekvences maiņas taustiņu ievadīšana.
  • čips —Mazākā pārsūtīto datu vienība. Viens datu bits tiek kodēts kā vairākas mikroshēmas.
  • modulis —Maiņstrāvas koda avots .c file.

M-Bus PHY Funkcionālais apraksts

Preambulas secība

M-bus specifikācijā norādītā preambulas secība ir vesels skaitlis, kas mijas ar nullēm un vieniniekiem. Viens tiek definēts kā augstāka frekvence, un nulle ir definēta kā zemākā frekvence.
nx (01)
Si443x preambulas opcijas ir vesels skaitļu skaits, kas sastāv no mainīgiem vieniniekiem un nullēm.
nx (1010)
Preambula ar papildu ievadu neradītu problēmas, taču tad sinhronizācijas vārds un slodze tiktu novirzīti par vienu bitu.
Risinājums ir apgriezt visu paketi, iestatot motora bitu Modulation Control 2 reģistrā (0x71). Tas apvērsīs preambulu, sinhronizācijas vārdu un TX/RX datus. Tā rezultātā, rakstot TX datus vai lasot RX datus, dati ir jāapgriež. Arī sinhronizācijas vārds tiek apgriezts pirms rakstīšanas Si443x sinhronizācijas vārdu reģistros.

Sinhronizācijas Word

Sinhronizācijas vārds, ko pieprasa EN-13757-4, ir vai nu 18 mikroshēmas S un Mode R vai 10 mikroshēmas modelim T. Si443x sinhronizācijas vārds ir 1 līdz 4 baiti. Tomēr, tā kā pirms sinhronizācijas vārda vienmēr ir preambula, pēdējos sešus preambulas bitus var uzskatīt par daļu no sinhronizācijas vārda; tātad pirmais sinhronizācijas vārds tiek papildināts ar trīs nulles atkārtojumiem, kam seko viens. Sinhronizācijas vārds tiek papildināts pirms rakstīšanas Si443x reģistros.
1. tabula. Sinhronizācijas vārds režīmam S un režīmam R

EN 13757-4 00 01110110 10010110 binārs
00 76 96 hex
paliktnis ar (01) x 3 01010100 01110110 10010110 binārs
54 76 96 hex
papildināt 10101011 10001001 01101001 binārs
AB 89 69 hex

2. tabula. Režīma T mērītāja sinhronizācijas vārds ar citu

SINHH SINHH SINHH
VĀRDS VĀRDS VĀRDS
3 2 1
Pārraides preambulas garums

Minimālā preambula ir noteikta četriem dažādiem darbības režīmiem. Ir pieņemams, ka preambula ir garāka par norādīto. Atņemot sešas mikroshēmas preambulai, tiek iegūts minimālais mikroshēmu skaits Si443x preambulai. Īstenošana pievieno divus papildu preambulas elementus visos īsās preambulas režīmos, lai uzlabotu preambulas noteikšanu un savietojamību. Mode S preambula ar garu preambulu ir ļoti gara; tātad tiek izmantota minimālā preambula. Preambulas garums nibbles tiek ierakstīts preambulas garuma (0x34) reģistrā. Preambulas garuma reģistrs nosaka preambulu tikai pārraides laikā. Minimālās specifikācijas un preambulas garuma iestatījumi ir apkopoti 3. tabulā.
3. tabula. Pārraides preambulas garums

EN-13757-4
minimums
Si443x preambula
Iestatīt ing
Sinhronizēt
Vārds
Kopā papildus
nx (01) čipsi nibbles čipsi čipsi čipsi čipsi
Mode S īsa preambula 15 30 8 32 6 38 8
Mode S garā preambula 279 558 138 552 6 558 0
T režīms (skaitītājs-cits) 19 38 10 40 6 46 8
Režīms R 39 78 20 80 6 86 8

Minimālo uztveršanas preambulu nosaka preambulas noteikšanas kontroles reģistrs (0x35). Saņemot, sinhronizācijas vārda bitu skaits ir jāatņem no noteiktās minimālās preambulas, lai noteiktu izmantojamo preambulu. Uztvērēja minimālais iestatīšanas laiks ir 16 mikroshēmas, ja ir iespējots AFC, vai 8 mikroshēmas, ja AFC ir atspējota. Uztvērēja iestatīšanas laiks tiek arī atņemts no izmantojamās preambulas, lai noteiktu preambulas noteikšanas kontroles reģistra minimālo iestatījumu.

Nepatiesas preambulas iespējamība ir atkarīga no preambulas noteikšanas kontroles reģistra iestatījuma. Īss 8 mikroshēmu iestatījums var izraisīt nepatiesu preambulu, kas tiek atklāta ik pēc dažām sekundēm. Ieteicamais iestatījums 20 mikroshēmas padara viltus preambulas noteikšanu par maz ticamu notikumu. Mode R un Mode SL preambulas garumi ir pietiekami gari, lai varētu izmantot ieteicamo iestatījumu.
Ir ļoti maz priekšrocību, ja preambula nosaka ilgāk par 20 mikroshēmām.
AFC ir atspējots S modelim ar īsu preambulu un modelim T. Tas samazina uztvērēja iestatīšanas laiku un ļauj izmantot garāku preambulas noteikšanas iestatījumu. Ja AFC ir atspējots, režīms T var izmantot ieteicamo iestatījumu 20 mikroshēmas. Model S ar īsu preambulu tiek izmantots iestatījums 4 nibbles vai 20 mikroshēmas. Tas šim modelim palielina viltus preambulas noteikšanas iespējamību.
4. tabula. Preambulas noteikšana

EN-13757-4
minimums
Sinhronizēt
Vārds
lietojams
preambula
RX nokārtošana Atklāt
min
Si443x preambula
Noteikšanas iestatīšana
nx (01) čipsi čipsi čipsi čipsi čipsi nibbles čipsi
Mode S īsa preambula 15 30 6 24 8* 16 4 16
Modeļa S garā preambula 279 558 6 552 16 536 5 20
T modelis (skaitītājs-cits) 19 38 6 32 8* 24 5 20
Režīms R 39 78 6 72 16 56 5 20
*Piezīme: AFC ir atspējota

Uztvērējs ir konfigurēts, lai sadarbotos ar raidītāju, izmantojot minimālo norādīto preambulu. Tas nodrošina, ka uztvērējs sadarbosies ar jebkuru M-bus saderīgu raidītāju.
Wireless M-Bus specifikācijai ir nepieciešama ļoti gara preambula režīmam S1 ar vismaz 558 mikroshēmām. Tas prasīs apmēram 17 ms, lai pārsūtītu tikai preambulu. Si443x neprasa tik garu preambulu un negūst labumu no garās preambulas. Lai gan ir atzīmēts, ka režīmam S2 garā preambula nav obligāta, nav iemesla izmantot garo preambulu ar Si443x. Ja ir vēlama vienvirziena saziņa, režīms T1 nodrošinās īsāku preambulu, lielāku datu pārraides ātrumu un ilgāku akumulatora darbības laiku. Ja ir nepieciešama divvirzienu saziņa, izmantojot režīmu S2, ieteicams īsu ievadu.
Ņemiet vērā, ka noteikšanas slieksnis S modelim ar garu preambulu ir garāks nekā S modelim ar īsu preambulu pārraidīto preambulas nibbles skaitu. Tas nozīmē, ka garās preambulas Mode S uztvērējs neatklās preambulu no īsās preambulas Mode S raidītāja. Tas ir nepieciešams, lai garās preambulas režīma S uztvērējs saņemtu kādu labumu no garās preambulas.
Ņemiet vērā, ka īsās preambulas režīma S uztvērējs noteiks preambulu un saņems paketes gan no īsās preambulas režīma S.
raidītājs un garās preambulas Mode S raidītājs; tātad parasti skaitītāja lasītājam ir jāizmanto īsā preambulas Mode S uztvērēja konfigurācija.

Kodēšana/dekodēšana

Wireless M-bus specifikācijai ir nepieciešamas divas dažādas kodēšanas metodes. Mančestras kodējums tiek izmantots režīmā S un režīmā R. Mančestras kodējums tiek izmantots arī T modeļa saitei no cita līdz skaitītājam. T modeļa saitei no mērītāja uz otru tiek izmantoti 3 no 6 kodējumiem.
1. Mančestras kodēšana/dekodēšana
Mančestras kodējums vēsturiski ir izplatīts RF sistēmās, lai nodrošinātu spēcīgu pulksteņa atkopšanu un izsekošanu, izmantojot vienkāršu un lētu modemu. Tomēr modernam augstas veiktspējas radio, piemēram, Si443x, nav nepieciešams Mančestras kodējums. Mančestras kodējums galvenokārt tiek atbalstīts, lai nodrošinātu saderību ar esošajiem standartiem, taču Si443x datu pārraides ātrums tiek faktiski dubultots, ja netiek izmantots Mančestras kodējums.
Si443x atbalsta Mančestras kodējumu un visas paketes dekodēšanu aparatūrā. Diemžēl sinhronizācijas vārds nav Mančestras kodēts. Sinhronizācijas vārdam tika apzināti izvēlēta nederīga Mančestras secība. Tas padara Mančestras kodējumu nesaderīgu ar lielāko daļu esošo radio, tostarp Si443x. Tā rezultātā Mančestras kodēšana un dekodēšana jāveic MCU. Katrs nekodētu datu baits sastāv no astoņiem datu bitiem. Izmantojot Mančestras kodējumu, katrs datu bits tiek kodēts divu mikroshēmu simbolā. Tā kā kodētie dati ir jāieraksta radio FIFO astoņas mikroshēmas vienlaikus, viens datu gabals tiek kodēts un ierakstīts FIFO vienlaikus.
5. tabula. Mančestras kodējums

datus Ox12 0x34 baiti
Ox1 0x2 0x3 0x4 nibbles
1 10 11 100 binārs
mikroshēma 10101001 10100110 10100101 10011010 binārs
FIFO OxA9 OxA6 OxA5 Ox9A hex

Katrs pārsūtāmais baits tiek nodots pa vienam baitam kodēšanas baitu funkcijai. Kodēšanas baitu funkcija divreiz izsauks šifrēšanas funkciju, vispirms visnozīmīgākajai nibblei un pēc tam vismazāk nozīmīgajai nibblei.
Mančestras kodēšana programmatūrā nav grūta. Sākot no nozīmīgākā bita, viens tiek kodēts kā “01” mikroshēmu secība. Nulle tiek kodēta kā “10” mikroshēmu secība. To var viegli paveikt, izmantojot cilpu un mainot divus bitus katram simbolam. Tomēr ātrāk ir izmantot vienkāršu 16 ierakstu uzmeklēšanas tabulu katram nibble. Kodēšanas Mančestras nibble funkcija kodē datu nibble un pēc tam ieraksta to FIFO. Mikroshēmas tiek apgrieztas pirms rakstīšanas FIFO, lai ņemtu vērā apgrieztās preambulas prasības.
Saņemot, katrs FIFO baits sastāv no astoņām mikroshēmām un tiek dekodēts vienā datu niblā. Lasīšanas bloka funkcija nolasa vienu baitu no FIFO un izsauc dekodēšanas baitu funkciju. Mikroshēmas tiek apgrieztas pēc nolasīšanas no FIFO, lai ņemtu vērā apgrieztās preambulas prasības. Katrs Mančestras kodēto mikroshēmu baits tiek dekodēts datu gabalā. Dekodētais nibble tiek ierakstīts RX buferī, izmantojot rakstīšanas nibble RX bufera funkciju.
Ņemiet vērā, ka gan kodēšana, gan dekodēšana tiek veikta pa vienam datu kopumam. Kodēšanai buferī būtu nepieciešams papildu buferis, kas divreiz pārsniedz nekodēto datu apjomu. Kodēšana un dekodēšana ir daudz ātrāka par ātrāko atbalstīto datu pārraides ātrumu (100 443 mikroshēmu sekundē). Tā kā Si10x atbalsta vairāku baitu lasīšanu un rakstīšanu FIFO, ir neliela papildu slodze, izmantojot tikai viena baita lasīšanu un rakstīšanu. Pieskaitāmās izmaksas ir aptuveni 100 µs 512 kodētiem mikroshēmām. Ieguvums ir XNUMX baitu RAM ietaupījums.
2. Trīs no sešiem kodēšanas dekodēšanas
Kodēšanas metode Trīs no sešiem, kas norādīta EN-13757-4, ir ieviesta arī MCU programmaparatūrā. Šis kodējums tiek izmantots ātrdarbīgam (100 k mikroshēmu sekundē) T režīmam no skaitītāja uz citu. Modelis T nodrošina īsāko pārraides laiku un ilgāko akumulatora darbības laiku bezvadu mērītājam.
Katrs pārsūtāmo datu baits ir sadalīts divās daļās. Nozīmīgākais nibble tiek kodēts un nosūtīts vispirms. Atkal, tas tiek īstenots, izmantojot kodēšanas baitu funkciju, kas divreiz izsauc kodēšanas nibble funkciju.
Katrs datu gabals tiek iekodēts sešu mikroshēmu simbolā. Sešu mikroshēmu simbolu secība jāieraksta FIFO 8 mikroshēmā.
Kodēšanas laikā divi baiti datu tiek kodēti kā četri nibbles. Katrs knibs ir 6 žetonu simbols. Četri 6 mikroshēmu simboli tiek apkopoti kā trīs baiti.
6. tabula. Trīs no sešiem kodējums

datus 0x12 0x34 baiti
Ox1 0x2 0x3 0x4 nibbles
mikroshēma 15 16 13 34 oktāls
1101 1110 1011 11100 binārs
FIFO 110100 11100010 11011100 binārs
0x34 OxE2 OxDC hex

Programmatūrā trīs no sešiem kodējums tiek ieviests, izmantojot trīs ligzdotas funkcijas. Kodēšanas baitu funkcija divreiz izsauks šifrēšanas funkciju. Kodēšanas nibble funkcija izmanto sešu mikroshēmu simbola uzmeklēšanas tabulu un raksta simbolu funkcijās Shift Three of Six. Šī funkcija programmatūrā ievieš 16 mikroshēmu maiņu reģistru. Simbols ir ierakstīts maiņu reģistra vismazāk nozīmīgajā baitā. Reģistrs tiek pārvietots pa kreisi divas reizes. To atkārto trīs reizes. Kad maiņu reģistra augšējā baitā ir pilns baits, tas tiek apgriezts un ierakstīts FIFO.
Tā kā katrs datu baits tiek kodēts kā pusotrs kodēts baits, ir svarīgi sākotnēji notīrīt maiņu reģistru, lai pirmais kodētais baits būtu pareizs. Ja paketes garums ir nepāra skaitlis, pēc visu baitu kodēšanas maiņu reģistrā joprojām paliks viens nibble. Tas tiek apstrādāts ar pasta zīmogu, kā paskaidrots nākamajā sadaļā.
Trīs no sešiem kodētajiem kodiem ir apgriezta procedūra. Dekodējot, trīs kodētie baiti tiek dekodēti divos datu baitos. Programmatūras maiņu reģistrs atkal tiek izmantots, lai apkopotu dekodēto datu baitus. Dekodēšanai tiek izmantota 64 ierakstu apgrieztās uzmeklēšanas tabula. Tas izmanto mazāk ciklu, bet vairāk koda atmiņas. Atbilstošā simbola meklēšana 16 ierakstu uzmeklēšanas tabulā prasa ievērojami ilgāku laiku.
Postambula
Wireless M-bus specifikācijā ir noteiktas īpašas prasības pasta sūtījumam vai piekabei. Visiem režīmiem minimālais ir divas mikroshēmas, bet maksimālais ir astoņas mikroshēmas. Tā kā FIFO minimālā atomu vienība ir viens baits, režīmā S un režīmā R tiek izmantots 8 mikroshēmu treileris. Mode T postambula ir astoņas mikroshēmas, ja paketes garums ir pāra, vai četras mikroshēmas, ja paketes garums ir nepāra. Četru mikroshēmu postambula nepāra paketes garumam atbilst prasībām, kas paredz vismaz divas mainīgas mikroshēmas.
7. tabula. Postambulas garums

Postambulas garums (mikroshēmas)
min maks Īstenošana mikroshēmu secība
S režīms 2 8 8 1010101
T režīms 2 8 4 (nepāra) 101
8 (pat) 1010101
Režīms R 2 8 8 1010101
Pakešu apstrādātājs

Si443x pakešu apstrādātāju var izmantot mainīga pakešu platuma režīmā vai fiksēta pakešu platuma režīmā. Mainīga pakešu platuma režīmā ir nepieciešams paketes garuma baits aiz sinhronizācijas vārda un papildu galvenes baiti. Saņemot radio, radio izmantos garuma baitu, lai noteiktu derīgas paketes beigas. Pārraides laikā radio ievietos garuma lauku aiz galvenes baitiem.
Bezvadu M-bus protokola L lauku nevar izmantot Si443x garuma laukam. Pirmkārt, lauks L nav faktiskais paketes garums. Tas ir saites slāņa derīgās slodzes baitu skaits, neskaitot CRC baitus vai kodējumu. Otrkārt, pats L lauks tiek kodēts, izmantojot Mančestras kodējumu vai Trīs no sešiem kodējumu T režīma mērierīcei uz citu.
Īstenošana izmanto pakešu apstrādātāju fiksēta pakešu platuma režīmā gan pārraidei, gan saņemšanai. Pārsūtīšanas laikā PHY slānis nolasīs L lauku pārraides buferī un aprēķinās kodēto baitu skaitu, ieskaitot postambulu. Kopējais pārsūtāmo kodēto baitu skaits tiek ierakstīts Packet Length reģistrā (0x3E).
Saņemot, pirmie divi kodētie baiti tiek dekodēti, un L-lauks tiek ierakstīts saņemšanas buferī. L-lauks tiek izmantots, lai aprēķinātu saņemamo kodēto baitu skaitu. Pēc tam saņemamo kodēto baitu skaits tiek ierakstīts Packet Length reģistrā (0x3E). Pasta zīmogs tiek izmests.
MCU ir jāatšifrē L lauks, jāaprēķina kodēto baitu skaits un jāieraksta vērtība Packet Length reģistrā, pirms ir saņemts īsākais iespējamais paketes garums. Īsākais pieļaujamais L lauks PHY slānim ir 9, kas dod 12 nekodētus baitus. Tas dod 18 kodētus baitus modelim T. Pirmie divi baiti jau ir atkodēti. Tādējādi pakešu garuma reģistrs ir jāatjaunina 16 baitu laikā ar ātrumu 100 kbps vai 1.28 milisekundes. Tā nav problēma 8051, kas darbojas ar 20 MIPS.
Saņemamo baitu skaits neietver pastambulu, izņemot četru mikroshēmu postambulu, ko izmanto T režīma paketēm ar nepāra paketes garumu. Tādējādi uztvērējam nav nepieciešama pastambula, izņemot T modeļa nepāra garuma paketes. Šī pasta ambula ir nepieciešama tikai, lai iegūtu veselu kodēto baitu skaitu. Pasta sūtījuma saturs tiek ignorēts; tātad, ja pastambula netiek pārsūtīta, tiks saņemti un ignorēti četri trokšņa mikroshēmi. Tā kā kopējais kodēto baitu skaits ir ierobežots līdz 255 (0xFF), ieviešana ierobežo maksimālo L-lauku dažādiem režīmiem.
8. tabula. Pakešu lieluma ierobežojumi

kodēti dekodēts M-buss
baiti baiti L-lauks
dec hex dec hex dec hex
S režīms 255 FF 127 7 F 110 6E
T režīms (skaitītājs-cits) 255 FF 169 A9 148 94
Režīms R 255 FF 127 7 F 110 6E

Šie ierobežojumi parasti ievērojami pārsniedz bezvadu skaitītāja parasto lietošanas gadījumu. Pakešu garumam jābūt mazam, lai nodrošinātu vislabāko iespējamo akumulatora darbības laiku.
Turklāt lietotājs var norādīt maksimālo L-lauku, kas jāsaņem (USER_RX_MAX_L_FIELD). Tas nosaka nepieciešamo lielumu saņemšanas buferim (USER_RX_BUFFER_SIZE).
Lai atbalstītu maksimālo L-lauku 255, būtu nepieciešams 290 baitu saņemšanas buferis un ne vairāk kā 581 Mančestras kodētais baits. Pakešu apstrādātājs ir jāatspējo, un tādā gadījumā nevar izmantot reģistru Pakešu garums. Tas ir iespējams, taču, ja iespējams, ērtāk ir izmantot pakešu apstrādātāju.

FIFO lietošana

Si4431 nodrošina 64 baitu FIFO pārraidei un saņemšanai. Tā kā kodēto baitu skaits ir 255, visa kodētā pakete var neietilpst 64 baitu buferī.
Pārnešana
Pārsūtīšanas laikā tiek aprēķināts kopējais kodēto baitu skaits. Ja kopējais kodēto baitu skaits, ieskaitot postambulu, ir mazāks par 64 baitiem, visa pakete tiek ierakstīta FIFO un tiek iespējots tikai paketes nosūtītais pārtraukums. Lielākā daļa īso pakešu tiks nosūtītas vienā FIFO pārsūtījumā.
Ja kodēto baitu skaits ir lielāks par 64, lai nosūtītu paketi, būs jāveic vairāki FIFO pārsūtījumi. Pirmie 64 baiti tiek ierakstīti FIFO. Ir iespējoti pakešu nosūtītie un TX FIFO gandrīz tukši pārtraukumi. TX FIFO gandrīz tukšs slieksnis ir iestatīts uz 16 baiti (25%). Pēc katra IRQ notikuma tiek nolasīts 2. statusa reģistrs. Vispirms tiek pārbaudīts nosūtītās paketes bits, un, ja pakete nav pilnībā nosūtīta, nākamie 48 baiti kodēto datu tiek ierakstīti FIFO. Tas turpinās, līdz ir ierakstīti visi kodētie baiti un notiek pakešu nosūtītās pārrāvums.
1. Uzņemšana
Sākotnēji saņemšanas brīdī ir iespējots tikai Sync Word pārtraukums. Pēc sinhronizācijas vārda saņemšanas sinhronizācijas vārda pārtraukums tiek atspējots un ir iespējots FIFO gandrīz pilns pārtraukums. FIFO gandrīz pilnais slieksnis sākotnēji ir iestatīts uz 2 baitiem. Pirmais FIFO gandrīz pilns pārtraukums tiek izmantots, lai uzzinātu, kad ir saņemti divi baiti. Kad garums ir saņemts, garums tiek dekodēts un tiek aprēķināts kodēto baitu skaits. Pēc tam RX FIFO gandrīz pilna slieksnis tiek iestatīts uz 48 baiti. RX FIFO ir gandrīz pilns, un ir iespējoti derīgie pakešu pārtraukumi. Pēc nākamā IRQ notikuma tiek nolasīts statusa 1 reģistrs. Vispirms tiek pārbaudīts derīgās paketes bits un pēc tam tiek pārbaudīts FIFO gandrīz pilns bits. Ja ir iestatīts tikai RX FIFO gandrīz pilns bits, nākamie 48 baiti tiek nolasīti no FIFO. Ja ir iestatīts derīgais paketes bits, atlikušā paketes daļa tiek nolasīta no FIFO. MCU seko līdzi nolasīto baitu skaitam un pārtrauc lasīšanu pēc pēdējā baita.

Datu saites slānis

Datu saites slāņa modulis ievieš 13757-4:2005 saderīgu saites slāni. Datu saites slānis (LINK) nodrošina saskarni starp fizisko slāni (PHY) un lietojumprogrammas slāni (AL).
Datu saites slānis veic šādas funkcijas:

  • Nodrošina funkcijas, kas pārsūta datus starp PHY un AL
  • Ģenerē CRC izejošajiem ziņojumiem
  • Atklāj CRC kļūdas ienākošajos ziņojumos
  • Nodrošina fizisko adresāciju
  • Apstiprina pārsūtīšanu divvirzienu sakaru režīmiem
  • Kadru datu biti
  • Atklāj kadrēšanas kļūdas ienākošajos ziņojumos
Saites slāņa rāmja formāts

Bezvadu M-Bus rāmja formāts, kas tiek izmantots standartā EN 13757-4:2005, ir atvasināts no FT3 (3. kadra tipa) rāmja formāta no IEC60870-5-2. Rāmis sastāv no viena vai vairākiem datu blokiem. Katrs bloks ietver 16 bitu CRC lauku. Pirmais bloks ir fiksēta garuma 12 baitu bloks, kas ietver L lauku, C lauku, M lauku un A lauku.

  1. L-lauks
    L-lauks ir saites slāņa datu derīgās slodzes garums. Tas neietver pašu L lauku vai nevienu no CRC baitiem. Tas ietver L-lauku, C-lauku, M-lauku un A-lauku. Tie ir daļa no PHY lietderīgās slodzes.
    Tā kā kodēto baitu skaits ir ierobežots līdz 255 baitiem, maksimālā atbalstītā vērtība M laukam ir 110 baiti Mančestras kodētajiem datiem un 148 baiti T režīmā kodētiem datiem trīs no sešiem.
    Saites slānis ir atbildīgs par pārraides L lauka aprēķināšanu. Saites slānis uztveršanas laikā izmantos L veida lauku.
    Ņemiet vērā, ka L lauks nenorāda PHY derīgās slodzes garumu vai kodēto baitu skaitu. Pārsūtīšanas laikā PHY aprēķinās PHY derīgās slodzes garumu un kodēto baitu skaitu. Pēc saņemšanas PHY atšifrēs L-lauku un aprēķinās atšifrējamo baitu skaitu.
  2. C lauks
    C lauks ir kadra vadības lauks. Šis lauks identificē rāmja veidu un tiek izmantots saites datu apmaiņas pakalpojuma primitīvām. C lauks norāda kadra veidu – SŪTĪT, APSTIPRINĀT, PIEPRASĪT vai ATBILDĒT. SEND un REQUEST kadru gadījumā C lauks norāda, vai ir sagaidāms CONFIRM vai RESPOND.
    Izmantojot pamata funkciju Link TX, var izmantot jebkuru C vērtību. Izmantojot Link Service primitives, C lauks tiek aizpildīts automātiski saskaņā ar EN 13757-4:2005.
  3. M-lauks
    M lauks ir ražotāja kods. Ražotāji var pieprasīt trīs burtu kodu no tālāk norādītajiem web adrese: http://www.dlms.com/flag/INDEX.HTM Katra trīsburtu koda rakstzīme ir kodēta kā pieci biti. 5 bitu kodu var iegūt, ņemot ASCII kodu un atņemot 0x40 (“A”). Trīs 5 bitu kodi ir savienoti, lai izveidotu 15 bitus. Nozīmīgākais bits ir nulle.
  4. A-lauks
    Adreses lauks ir unikāla 6 baitu adrese katrai ierīcei. Unikālā adrese ir jāpiešķir ražotājam. Katrs ražotājs ir atbildīgs par to, lai katrai ierīcei būtu unikāla 6 baitu adrese. Sūtīšanas un pieprasījuma rāmju adrese ir skaitītāja vai citas ierīces pašadrese. Apstiprinājuma un atbildes datu rāmji tiek nosūtīti, izmantojot izcelsmes ierīces adresi.
  5. CI lauks
    CI lauks ir lietojumprogrammas galvene, un tas nosaka datu veidu lietojumprogrammas datu kravā. Lai gan standartā EN13757-4:2005 ir norādīts ierobežots vērtību skaits, Link Service primitives atļaus izmantot jebkuru vērtību.
  6. CRC
    CRC ir norādīts EN13757-4:2005.
    CRC polinoms ir:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Ņemiet vērā, ka M-Bus CRC tiek aprēķināts katram 16 baitu blokam. Rezultātā katriem 16 datu baitiem ir nepieciešami 18 baiti,
Papildinformācija

Papildinformāciju par saites slāņa ieviešanu skatiet sadaļā “AN452: Wireless M-Bus Stack Programmers Guide”.

Enerģijas pārvaldība

2. attēlā parādīts enerģijas pārvaldības laika grafiks skaitītājam, piemēramampizmantojot režīmu T1.

MCU, kad vien iespējams, ir jābūt miega režīmā, lai taupītu enerģiju. Šajā bijušajāample, MCU guļ, kad darbojas RTC, gaidot radio kristāla palaišanu un pārraidot no FIFO. MCU pamodīsies no EZRadioPRO IRQ signāla, kas savienots ar Port Match modinātāju.
Pārraidot ziņojumus, kas ir garāki par vienu bloku, MCU ir jāpamostas, lai aizpildītu FIFO (pamatojoties uz FIFO gandrīz tukšo pārtraukumu), un pēc tam jāatgriežas miega režīmā.
Nolasot no ADC, MCU ir jābūt dīkstāves režīmā, kas darbojas no mazjaudas oscilatora vai sērijveida režīma oscilatora. ADC ir nepieciešams SAR pulkstenis.
Kad EZRadioPRO netiek lietots, tam ir jābūt izslēgšanas režīmā ar augstu SDN tapu. Tam nepieciešams vadu savienojums ar MCU. EZ Radio Pro reģistri netiek saglabāti izslēgšanas režīmā; tāpēc EZRadioPro tiek inicializēts katrā RTC intervālā. Radio inicializācija prasa mazāk nekā 100 µs un ietaupa 400 nA. Tas nodrošina 10 µJ enerģijas ietaupījumu, pamatojoties uz 10 sekunžu intervālu.
EZRadioPRO kristāls POR aizņem apmēram 16 ms. Tas ir pietiekami ilgs laiks, lai aprēķinātu CRC apmēram astoņiem blokiem. MCU atgriezīsies miega režīmā, ja tas pabeigs visus CRC, pirms kristāls ir stabilizējies. Ja ir nepieciešama šifrēšana, to var arī palaist, gaidot uz kristāla oscilatora.
Lielākajai daļai uzdevumu MCU jādarbojas ar 20 MHz, izmantojot mazjaudas oscilatoru. Uzdevumiem, kuriem nepieciešams precīzs taimauts, miega režīma vietā ir jāizmanto precīzs oscilators un dīkstāves režīms. RTC nodrošina pietiekamu izšķirtspēju lielākajai daļai uzdevumu. Enerģijas pārvaldības laika grafiks T2 skaitītājam, piemamplietojumprogramma ir parādīta 3. attēlā.

Raiduztvērēja ieviešana ir jāoptimizē parastajam gadījumam, kad skaitītājs pamostas un nav lasītāja. Minimālais/maksimālais ACK taimauts ir pietiekami garš, lai varētu izmantot C8051F930 RTC un MCU pārslēgt miega režīmā.
Būvēšanas opcijas ir paredzētas lasītājiem, kas darbojas no tīkla vai USB barošanas un kuriem nav nepieciešams izmantot miega režīmu. Miega vietā tiks izmantots dīkstāves režīms, lai USB un UART varētu pārtraukt MCU.

SILICON LABS bezvadu M-BUS programmatūras ieviešana AN451-1

Vienkāršības studija
Viena klikšķa piekļuve MCU un bezvadu rīkiem, dokumentācijai, programmatūrai, pirmkoda bibliotēkām un citam. Pieejams operētājsistēmai Windows,
Mac un Linux!

IoT portfelis Kvalitāte
IoT portfelis
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Kvalitāte
www.silabs.com/quality
Atbalsts un kopiena
Community.silabs.com

Atruna
Silicon Labs plāno nodrošināt klientiem jaunāko, precīzu un padziļinātu dokumentāciju par visām perifērijas ierīcēm un moduļiem, kas pieejami sistēmu un programmatūras ieviesējiem, kuri izmanto vai plāno izmantot Silicon Labs produktus. Raksturojumu dati, pieejamie moduļi un perifērijas ierīces, atmiņas izmēri un atmiņas adreses attiecas uz katru konkrēto ierīci, un sniegtie “tipiskie” parametri dažādās lietojumprogrammās var atšķirties un atšķiras. Pieteikums, piemampšeit aprakstītie ir paredzēti tikai ilustratīviem nolūkiem. Silicon Labs patur tiesības veikt izmaiņas bez turpmāka brīdinājuma un produkta informācijas, specifikāciju un aprakstu ierobežojumiem, kā arī nesniedz garantijas par iekļautās informācijas precizitāti vai pilnīgumu. Silicon Labs neuzņemas atbildību par šeit sniegtās informācijas izmantošanas sekām. Šis dokuments nenozīmē vai neizsaka autortiesību licences, kas saskaņā ar šo ir piešķirtas, lai izstrādātu vai izgatavotu jebkādas integrālās shēmas. Produkti nav izstrādāti vai atļauti lietošanai nevienā dzīvības atbalsta sistēmā bez īpašas rakstiskas Silicon Labs piekrišanas. “Dzīvības atbalsta sistēma” ir jebkurš produkts vai sistēma, kas paredzēta dzīvības un/vai veselības uzturēšanai vai uzturēšanai, un, ja tā neizdodas, var pamatoti sagaidīt nopietnus miesas bojājumus vai nāvi. Silicon Labs produkti nav izstrādāti vai apstiprināti militārām vajadzībām. Silicon Labs produktus nekādā gadījumā nedrīkst izmantot masu iznīcināšanas ieročos, tostarp (bet ne tikai) kodolieročos, bioloģiskajos vai ķīmiskajos ieročos, vai raķetēs, ar kurām var nogādāt šādus ieročus.
Preču zīmes informācija
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® un Silicon Labs logotips®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logotips un to kombinācijas, “enerģijai draudzīgākie mikrokontrolleri pasaulē”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® un citi ir Silicon Labs preču zīmes vai reģistrētas preču zīmes. ARM, CORTEX, Cortex-M3 un thumbs ir ARM Holdings preču zīmes vai reģistrētas preču zīmes. Keil ir ARM Limited reģistrēta preču zīme. Visi pārējie šeit minētie produkti vai zīmolu nosaukumi ir to attiecīgo īpašnieku preču zīmes.SILICON LABS logotips

Silicon Laboratories Inc.
400 Rietumu Cēzars Čavess
Ostina, Teksasa 78701
ASV
http://www.silabs.com

Dokumenti / Resursi

SILICON LABS bezvadu M-BUS programmatūras ieviešana AN451 [pdfLietotāja rokasgrāmata
SILICON LABS, C8051, MCU un, EZRadioPRO, bezvadu M-kopne, bezvadu, M-BUS, programmatūra, ieviešana, AN451

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *