AN451
HARI GABEKO M-BUS SOFTWARE EZARTZEA
Sarrera
Aplikazio-ohar honek Silicon Labs Wireless M-Bus-en inplementazioa deskribatzen du Silicon Labs C8051 MCU eta EZRadioPRO® erabiliz. Haririk gabeko M-busa 868 MHz-ko maiztasun-banda erabiltzen duten kontagailuak irakurtzeko aplikazioetarako Europako estandarra da.
Geruzak pilatzea
Haririk gabeko M-Bus-ek 3 geruzako IEC eredua erabiltzen du, hau da, 7 geruzako OSI ereduaren azpimultzo bat (ikus 1. irudia).
Geruza fisikoa (PHY) EN 13757-4 arauan definituta dago. Geruza fisikoak bitak nola kodetzen eta transmititzen diren definitzen du, RF modemaren ezaugarriak (txip-abiadura, hitzaurrea eta sinkronizazio-hitza) eta RF parametroak (modulazioa, erdiko maiztasuna eta maiztasunaren desbideratzea).
PHY geruza hardware eta firmware konbinazio bat erabiliz inplementatzen da. EZRadioPRO-k RF eta modem funtzio guztiak betetzen ditu. EZRadioPRO FIFO moduan erabiltzen da paketeen kudeatzailearekin. MbusPhy.c moduluak SPI interfazea, kodeketa/deskodeketa, bloke-irakurketa/idazketa eta paketeen kudeaketa eskaintzen ditu eta transceptor-egoerak kudeatzen ditu.
M-Bus Data link-geruza MbusLink.c moduluan inplementatzen da. M-Bus aplikazioak programatzeko interfazeak hari nagusiko aplikazio geruzatik dei daitezkeen funtzio publikoek osatzen dute. MbusLink moduluak Datu Lotura Geruza ere inplementatzen du. Datu-lotura geruzak aplikazioaren TX bufferretik datuak formateatu eta kopiatuko ditu MbusPhy TX bufferera, beharrezko goiburuak eta CRCak gehituz.
Aplikazio-geruza bera ez da M-bus firmwarearen parte. Aplikazio-geruzak hainbat datu nola formateatu behar diren definitzen du transmisiorako. Neurgailu gehienek datu mota bat edo bi baino ez dituzte transmititu behar. Kode kopuru handi bat gehitzeak kontagailura edozein motatako datuak sartzeko beharrezkoa ez den kodea eta kostua gehituko lioke kontagailuari. Liburutegi bat edo goiburu bat ezartzea bideragarria izan daiteke file datu-moten zerrenda zehatz batekin. Hala ere, neurketa-bezero gehienek zehatz-mehatz dakite zein motatako datuak transmititu behar dituzten eta formateatzeko xehetasunak estandarra jo dezakete. Irakurle edo sniffer unibertsal batek aplikazioen datu-mota multzo oso bat ezar dezake PC GUI-n. Arrazoi horiengatik, aplikazio-geruza example neurgailu eta irakurgailurako aplikazioak.
Beharrezko Arauak
- EN 13757-4
EN 13757-4
Kontagailuetarako komunikazio-sistema eta kontagailuen urrutiko irakurketa
4. zatia: Haririk gabeko neurgailuaren irakurketa
Erradiometroaren irakurketa 868 MHz eta 870 MHz SRD bandan funtzionatzeko - EN 13757-3
Kontagailuetarako komunikazio-sistema eta kontagailuen urrutiko irakurketa
3. zatia: Aplikazio-geruza dedikatua - IEC 60870-2-1:1992
Telekontroleko ekipoak eta sistemak
5. zatia: Transmisio-protokoloak
1. atala: Lotura transmititzeko prozedura - IEC 60870-1-1:1990
Telekontroleko ekipoak eta sistemak
5. zatia: Transmisio-protokoloak
1. atala: Transmisioko fotograma formatuak
Definizioak
- M-Bus-M-Bus Europan kontagailuak irakurtzeko kablezko estandarra da.
- Haririk gabeko M-Bus—Haririk gabeko M-Bus kontagailuak irakurtzeko aplikazioetarako Europan.
- FHY—Geruza fisikoak datu-bitak eta byteak nola kodetzen eta transmititzen diren definitzen du.
- API-Aplikazio-programatzaileen interfazea.
- LOTURA—Data Link Layer blokeak eta fotogramak nola transmititzen diren definitzen du.
- CRC-Erredundantzia Ziklikoaren Egiaztapena.
- FSK—Maiztasun-aldaketa teklatzea.
- Txipa-Igorritako datuen unitate txikiena. Datu-bit bat hainbat txip gisa kodetzen da.
- Modulua—AC kodearen iturria .c file.
M-Bus PHY Deskribapen Funtzionala
Hitzaurrean sekuentzia
M-busen zehaztapenak zehaztutako Hitzaurrearen sekuentzia zeroak eta batak txandakatzen dituen zenbaki oso bat da. Bata maiztasun handiagoa bezala definitzen da eta zero bat maiztasun baxua bezala definitzen da.
nx (01)
Si443x-ren Hitzaurrearen aukerak bat eta zero txandakatuz osatutako nibble-kopuru oso bat da.
nx (1010)
Aurreaurreko gehigarri bat duen hitzaurrea ez litzateke arazorik izango, baina, orduan, sinkronizazio hitza eta karga karga bit batez oker lerrokatuko lirateke.
Irtenbidea pakete osoa alderantzikatzea da Modulation Control 2 erregistroan (0x71) motorra bit ezarriz. Honek hitzaurrea, sinkronizazio hitza eta TX/RX datuak alderantzikatuko ditu. Ondorioz, datuak alderantzikatu behar dira TX datuak idaztean edo RX datuak irakurtzean. Gainera, sinkronizazio hitza alderantzikatu egiten da Si443x Synchronization Word erregistroetan idatzi aurretik.
Sinkronizazio Hitza
EN-13757-4-k eskatzen duen sinkronizazio-hitza 18 txip da S eta R modurako edo 10 txip T eredurako. Si443x-rako sinkronizazio hitza 1 eta 4 byte da. Dena den, sinkronizazio-hitza beti hitzaurrearen aurretik dagoenez, hitzaurrearen azken sei bitak sinkronizazio-hitzaren parte har daitezke; beraz, lehen sinkronizazio-hitza zero baten hiru errepikapenez beteta dago eta ondoren bat. Sinkronizazio hitza Si443x erregistroetan idatzi aurretik osatzen da.
1. taula. Sinkronizazio hitza S modurako eta R modurako
EN 13757-4 | 00 | 01110110 | 10010110 | bitarra |
00 | 76 | 96 | hex | |
padarekin (01) x 3 | 01010100 | 01110110 | 10010110 | bitarra |
54 | 76 | 96 | hex | |
osagarri | 10101011 | 10001001 | 01101001 | bitarra |
AB | 89 | 69 | hex |
2. taula. Sinkronizazio hitza T moduko neurgailurako Besterako
SINKINTZA | SINKINTZA | SINKINTZA |
HITZA | HITZA | HITZA |
3 | 2 | 1 |
Igorri hitzaurrearen luzera
Gutxieneko hitzaurrea lau funtzionamendu modu desberdinetarako zehazten da. Onargarria da hitzaurrea zehaztutakoa baino luzeagoa izatea. Hitzaurreari sei txip kenduz gero, Si443x hitzaurrerako gutxieneko txip kopurua ematen da. Inplementazioak hitzaurre laburren modu guztietan bi apurketa gehitzen ditu hitzaurrearen detekzioa eta elkarreragingarritasuna hobetzeko. Hitzaurre luzea duen S moduko hitzaurrea oso luzea da; beraz, gutxieneko hitzaurrea erabiltzen da. Hitzaurrearen luzera nibbles-en Preamble Length (0x34) erregistroan idazten da. Hitzaurrearen luzera erregistroak transmisioan soilik zehazten du hitzaurrea. Gutxieneko zehaztapenak eta hitzaurrearen luzera ezarpenak 3. taulan laburbiltzen dira.
3. Taula. Transmititu Hitzaurrearen Luzera
EN-13757-4 gutxienekoa |
Si443x Hitzaurrea Ezartzea |
Sinkronizatu Hitza |
Guztira | gehigarria | |||
nx (01) | txipak | pizkadak | txipak | txipak | txipak | txipak | |
Mode S hitzaurre laburra | 15 | 30 | 8 | 32 | 6 | 38 | 8 |
Mode S hitzaurre luzea | 279 | 558 | 138 | 552 | 6 | 558 | 0 |
T modua (neurgailua-beste) | 19 | 38 | 10 | 40 | 6 | 46 | 8 |
R modua | 39 | 78 | 20 | 80 | 6 | 86 | 8 |
Harrerarako gutxieneko hitzaurrea Preamble Detection Control erregistroak (0x35) zehazten du. Jasotakoan, sinkronizazio hitzaren bit kopurua kendu behar da zehaztutako gutxieneko hitzaurretik hitzaurre erabilgarria zehazteko. Hargailuaren gutxieneko finkapen-denbora 16 txip da AFC gaituta badago edo 8 txip AFC desgaituta badago. Hartzailea finkatzeko denbora ere kentzen da erabilgarri den hitzaurretik, Hitzaurrearen Detekzio Kontrolaren erregistrorako gutxieneko ezarpena zehazteko.
Hitzaurre faltsu baten probabilitatea Hitzaurrearen Detekzio Kontrol erregistroaren ezarpenaren araberakoa da. 8 txip-en ezarpen labur batek segundo gutxitan hitzaurre faltsu bat detekta dezake. 20 txip-en ezarpen gomendatuak hitzaurre faltsuak hautematea gertakizun nekez bihurtzen du. Mode R eta Mode SL-ren hitzaurreak nahikoa luzeak dira gomendatutako ezarpena erabiltzeko.
Oso onura txikia da hitzaurreak 20 txip baino luzeagoak detektatzeko.
AFC desgaituta dago hitzaurre labur batekin S modelorako eta T eredurako. Honek hargailua finkatzeko denbora murrizten du eta hitzaurrea detektatzeko ezarpen luzeagoa ahalbidetzen du. AFC desgaituta dagoenez, T moduak 20 txip-en gomendatutako ezarpena erabil dezake. 4 nibble edo 20 txip-en ezarpena erabiltzen da S Modelorako, hitzaurre labur batekin. Honek hitzaurre faltsu bat detektatzeko probabilitatea apur bat handiagoa da eredu honetarako.
4. taula. Hitzaurrearen detekzioa
EN-13757-4 gutxienekoa |
Sinkronizatu Hitza |
erabilgarri hitzaurrea |
RX Konponketa | Detektatu min |
Si443x Hitzaurrea Detekzio ezarpena |
|||
nx (01) | txipak | txipak | txipak | txipak | txipak | pizkadak | txipak | |
Mode S hitzaurre laburra | 15 | 30 | 6 | 24 | 8* | 16 | 4 | 16 |
S ereduko hitzaurre luzea | 279 | 558 | 6 | 552 | 16 | 536 | 5 | 20 |
T eredua (metroa-bestea) | 19 | 38 | 6 | 32 | 8* | 24 | 5 | 20 |
R modua | 39 | 78 | 6 | 72 | 16 | 56 | 5 | 20 |
*Oharra: AFC desgaituta dago |
Hartzailea transmisore batekin elkarreragintzeko konfiguratuta dago zehaztutako gutxieneko hitzaurrea erabiliz. Horrek bermatzen du hartzaileak M-bus-a betetzen duen edozein transmisorerekin elkarreragin egingo duela.
Haririk gabeko M-Bus zehaztapenak gutxienez 1 txip dituen S558 modurako hitzaurre luzea behar du. Honek 17 ms inguru beharko ditu hitzaurrea transmititzeko. Si443x-ek ez du halako hitzaurre luzerik behar eta ez du onurarik ateratzen hitzaurre luzeari. Hitzaurre luzea S2 modurako aukerakoa dela adierazi arren, ez dago hitzaurre luze bat erabiltzeko arrazoirik Si443x-ekin. Norabide bakarreko komunikazioa nahi bada, T1 moduak hitzaurre laburragoa, datu-tasa handiagoa eta bateriaren iraupen luzeagoa emango du. S2 modua erabiliz bi norabideko komunikazioa beharrezkoa bada, hitzaurre labur bat gomendatzen da.
Kontuan izan hitzaurre luzea duen S ereduaren detekzio-atalasea hitzaurre labur batekin S modelorako transmititzen den hitzaurre-kopurua baino luzeagoa dela. Honek esan nahi du hitzaurre luzea Modu S hargailuak ez duela hitzaurrerik detektatuko Modu S igorle laburretik. Hau beharrezkoa da hitzaurre luzearen Modu S hartzaileak hitzaurre luzearen onurarik jaso nahi badu.
Kontuan izan hitzaurre laburra Modu S hargailuak hitzaurrea detektatuko duela eta paketeak jasoko dituela hitzaurre laburra S Modutik.
transmisorea eta hitzaurre luzeko Mode S igorlea; beraz, oro har, kontagailu-irakurleak hitzaurre laburra Modu S hargailuaren konfigurazioa erabili beharko luke.
Kodetzea/Deskodetzea
Haririk gabeko M-busaren zehaztapenak bi kodetze metodo desberdin behar ditu. Manchester kodeketa S modurako eta R modurako erabiltzen da. Manchester kodeketa T ereduko beste metrorako esteketarako ere erabiltzen da. T ereduko metrorako beste loturak 3tik 6 kodeketa erabiltzen ditu.
1. Manchester Kodetua/Deskodetzea
Manchester kodeketa ohikoa da historikoki RF sistemetan erlojuaren berreskuratze eta jarraipena sendoa emateko modem sinple eta merke baten bidez. Hala ere, Si443x bezalako errendimendu handiko irrati moderno batek ez du Manchester kodetzerik behar. Manchester kodeketa lehendik dauden estandarrekin bateragarri izateko onartzen da batez ere, baina Si443x-ren datu-tasa eraginkortasunez bikoiztu egiten da Manchester kodeketa erabiltzen ez denean.
Si443x-ek pakete osoaren Manchester kodetzea eta deskodetzea onartzen du hardwarean. Zoritxarrez, sinkronizazio hitza ez da Manchester kodetuta. Manchesterren sekuentzia baliogabea nahita aukeratu da sinkronizazio-hitzarako. Horrek Manchesterren kodeketa lehendik dauden irrati gehienekin bateraezina da, Si443x barne. Ondorioz, Manchesterren kodeketa eta deskodeketa MCUk egin behar ditu. Kodetu gabeko datuen byte bakoitzak zortzi datu-bit ditu. Manchester kodeketa erabiliz, datu-bit bakoitza bi txip-ikur batean kodetzen da. Kodetutako datuak FIFO irratian zortzi txip aldi berean idatzi behar direnez, datu-pikaketa bat kodetu eta FIFOra idazten da aldi berean.
5. taula. Manchesterren kodeketa
datuak | Ox12 | 0x34 | byteak | ||
Ox1 | 0x2 | 0x3 | 0x4 | pizkadak | |
1 | 10 | 11 | 100 | bitarra | |
txipa | 10101001 | 10100110 | 10100101 | 10011010 | bitarra |
FIFO | OxA9 | OxA6 | OxA5 | Ox9A | hex |
Transmititu beharreko byte bakoitza byte bana pasatzen da kodeketa byte funtziora. Kodetze byte funtzioak birritan deituko dio kodeketa nibble funtzioari, lehenik eta behin esanguratsuenari eta gero esanguratsuenari.
Manchesterren softwarean kodetzea ez da zaila. Bit esanguratsuenetik hasita, bat "01" txip-sekuentzia gisa kodetzen da. Zero bat "10" txip-sekuentzia gisa kodetzen da. Hau erraz lor daiteke begizta bat erabiliz eta ikur bakoitzeko bi bit desplazatuz. Hala eta guztiz ere, azkarragoa da 16 sarrerako bilaketa-taula soil bat erabiltzea nibble bakoitzeko. Manchester nibble funtzioak kodetzen du datu-pizketak eta gero FIFOra idazten du. Txipak alderantzikatu egiten dira FIFOra idatzi aurretik, alderantzizko hitzaurrearen eskakizunak kontuan hartzeko.
Jasotzean, FIFOko byte bakoitza zortzi txipz osatuta dago eta datu-pikaketa batean deskodetzen da. Irakurketa-blokearen funtzioak byte bat irakurtzen du FIFOtik eta deskodetze-funtzioari deitzen dio. Txipak alderantzikatu egiten dira FIFOtik irakurri ondoren, alderantzizko hitzaurrearen eskakizunak kontuan hartzeko. Manchester kodetutako txip-en byte bakoitza datu-pikaketa batean deskodetzen da. Deskodetutako nibble-a RX bufferean idazten da idazteko nibble RX buffer funtzioa erabiliz.
Kontuan izan kodetua eta deskodetzea datu-pikaketa bat aldi berean egiten dela hegan. Buffer batean kodetzeak kodetu gabeko datuen tamainaren bikoitza den buffer gehigarri bat beharko luke. Kodetzea eta deskodetzea onartzen den datu-tasa azkarrena baino askoz azkarragoa da (100 k segundoko txip). Si443x-ek FIFO-n byte anitzeko irakurketak eta idazketak onartzen dituenez, gainkostu txiki bat dago byte bakarreko irakurketak eta idazketak erabiltzeak. Gaina 10 µs ingurukoa da kodetutako 100 txipentzat. Onura 512 byteko RAM aurrezpena da.
2. Seitik hiru kodeketa deskodetzea
EN-13757-4-n zehaztutako Hiru-tik sei kodetze-metodoa ere MCU-ko firmwarean inplementatzen da. Kodetze hau abiadura handiko (100 k segundoko) T modurako erabiltzen da metro batetik bestera. T ereduak transmisio denbora laburrena eta bateriaren iraupen luzeena eskaintzen ditu haririk gabeko neurgailuarentzat.
Igorri beharreko datuen byte bakoitza bi nibbletan banatzen da. Nibble esanguratsuena kodetu eta transmititzen da lehenik. Berriz ere, hau kodetzeko nibble funtzioa bi aldiz deitzen duen encode byte funtzioa erabiliz inplementatzen da.
Datu mordo bakoitza sei txip-ikur batean kodetzen da. Sei txip-ikurren sekuentzia 8 txip FIFOan idatzi behar da.
Kodetzean, bi byte datuak lau nibble gisa kodetzen dira. Nibble bakoitza 6 txip-ikur bat da. Lau 6 chip ikurrak hiru byte gisa biltzen dira.
6. taula. Seitik hiru kodeketa
datuak | 0x12 | 0x34 | byteak | ||||
Ox1 | 0x2 | 0x3 | 0x4 | pizkadak | |||
txipa | 15 | 16 | 13 | 34 | zortzikoa | ||
1101 | 1110 | 1011 | 11100 | bitarra | |||
FIFO | 110100 | 11100010 | 11011100 | bitarra | |||
0x34 | OxE2 | OxDC | hex |
Softwarean, seitik hiru kodeketa hiru funtzio habiaratuz inplementatzen da. Encode byte funtzioak kodeketa nibble funtzioari deituko dio bi aldiz. Kodetzeko nibble funtzioak bilaketa-taula bat erabiltzen du sei txip-ikurretarako eta ikurra idazten du Shift Three of Six funtzioetan. Funtzio honek 16 txip-erregistroa ezartzen du softwarean. Ikurra desplazamendu-erregistroko byte esanguratsu gutxienean idazten da. Erregistroa bi aldiz mugitzen da ezkerrera. Hau hiru aldiz errepikatzen da. Desplazamendu-erregistroaren goiko bytean byte oso bat dagoenean, alderantzikatu eta FIFOra idazten da.
Datuen byte bakoitza kodetutako byte eta erdi gisa kodetzen denez, garrantzitsua da desplazamendu-erregistroa hasieran garbitzea, kodetutako lehen bytea zuzena izan dadin. Paketearen luzera zenbaki bakoitia bada, byte guztiak kodetu ondoren, oraindik nibble bat geratuko da desplazamendu-erregistroan. Postanbularekin kudeatzen da hurrengo atalean azaltzen den moduan.
Kodetutako seitik hiru deskodetzea alderantzizko prozedura da. Deskodetzean, kodetutako hiru byte bi datu-bytetan deskodetzen dira. Software desplazamendu-erregistroa berriro erabiltzen da deskodetutako datuen byteak gehitzeko. Deskodetzeko 64 sarrerako alderantzizko bilaketa-taula erabiltzen da. Honek ziklo gutxiago erabiltzen ditu baina kode-memoria gehiago. Dagokion ikurra bilatzeko 16 sarrerako taula batean bilatzea dezente luzeagoa da.
Postanbula
Haririk gabeko M-busaren zehaztapenak eskakizun zehatzak ditu posta-anbularako edo trailerrako. Modu guztietarako, gutxienez bi txip dira, eta gehienez zortzi txip. FIFOrako gutxieneko unitate atomikoa byte bat denez, 8 txip-trailer bat erabiltzen da S modurako eta R modurako. T moduko postanbula zortzi txip da paketearen luzera bikoitia bada edo lau txip paketearen luzera bakoitia bada. Pakete-luzera bakoiti baterako lau txip-postanbulak gutxienez txandakako bi txip edukitzeko baldintzak betetzen ditu.
7. taula. Postanblearen luzera
Postamblearen luzera (txipak) | |||||
min | gehienez | Ezarpena | txip-sekuentzia | ||
S modua | 2 | 8 | 8 | 1010101 | |
T modua | 2 | 8 | 4 | (bakoitia) | 101 |
8 | (nahiz) | 1010101 | |||
R modua | 2 | 8 | 8 | 1010101 |
Pakete kudeatzailea
Si443x-eko pakete-kudeatzailea paketeen zabalera aldagarri moduan edo paketeen zabalera finko moduan erabil daiteke. Pakete-zabalera aldakorreko moduak pakete-luzera byte bat behar du sinkronizazio hitzaren eta aukerako goiburuko byteen ondoren. Jasotakoan, Irratiak luzera bytea erabiliko du baliozko pakete baten amaiera zehazteko. Transmisioan, irratiak luzera eremua txertatuko du goiburuko byten ondoren.
Haririk gabeko M-bus protokoloaren L eremua ezin da erabili Si443x luzera eremurako. Lehenik eta behin, L eremua ez da paketearen benetako luzera. Esteka-geruzaren karga-byte kopurua da, CRC byteak edo kodeketak barne hartu gabe. Bigarrenik, L-eremua bera kodetzen da Manchester kodeketa edo Seitik Hiru kodeketa erabiliz T moduko neurgailurako.
Inplementazioak paketeen kudeatzailea erabiltzen du pakete-zabalera finko moduan transmisiorako eta harrerarako. Transmisioan, PHY geruzak L eremua irakurriko du transmisio-buferrean eta kodetutako byte kopurua kalkulatuko du, posta-anbula barne. Igorri beharreko kodetutako byte kopuru osoa Packet Length erregistroan (0x3E) idazten da.
Jasotzean, kodetutako lehenengo bi byteak deskodetzen dira eta L eremua jasotzeko bufferean idazten da. L eremua jaso beharreko kodetutako byte kopurua kalkulatzeko erabiltzen da. Jaso beharreko kodetutako byte kopurua Packet Length erregistroan (0x3E) idazten da. Postanbula baztertu egiten da.
MCUak L-eremua deskodetu behar du, kodetutako byte kopurua kalkulatu eta balioa Packet Length erregistroan idatzi behar du paketeen luzera ahalik eta laburrena jaso baino lehen. PHY geruzaren L-eremurik laburrena 9 da, kodetu gabeko 12 byte ematen ditu. Honek 18 kodetutako byte ematen ditu T eredurako. Lehen bi byteak dagoeneko deskodetuta daude. Horrela, paketearen Luzera erregistroa 16 byteko aldiz eguneratu behar da 100 kbps edo 1.28 milisegundotan. Hau ez da arazorik 8051 MIPS-n dabilen 20 batentzat.
Jaso beharreko byte-kopuruak ez du posta-ankulua barne hartzen, pakete-luzera bakoitia duten T moduko paketeetarako erabiltzen den lau txip-en postanbula izan ezik. Beraz, hartzaileak ez du posta-anbularik behar, T ereduko luzera bakoitietako paketeetan izan ezik. Postamble hau kodetutako byte kopuru oso bat emateko bakarrik behar da. Postanbularen edukia ez da aintzat hartzen; beraz, postanbula transmititzen ez bada, lau zarata txip jasoko dira eta ez ikusi egingo dira. Kodetutako byte kopuru osoa 255 (0xFF) mugatuta dagoenez, inplementazioak L-eremu maximoa mugatzen du modu desberdinetarako.
8. taula. Paketeen tamainaren mugak
kodetuta | deskodetuta | M-Bus | ||||
byteak | byteak | L-Eremua | ||||
abendu | hex | abendu | hex | abendu | hex | |
S modua | 255 | FF | 127 | 7 F | 110 | 6E |
T modua (neurgailua-beste) | 255 | FF | 169 | A9 | 148 | 94 |
R modua | 255 | FF | 127 | 7 F | 110 | 6E |
Muga hauek normalean haririk gabeko neurgailu baten ohiko erabilera-kasuaren gainetik daude. Paketearen luzera txikia izan behar da bateriaren iraupen onena lortzeko.
Gainera, erabiltzaileak jaso behar den gehienezko L eremua zehaztu dezake (USER_RX_MAX_L_FIELD). Honek jasotzeko buffer-erako beharrezko tamaina zehazten du (USER_RX_BUFFER_SIZE).
Gehienez 255 L-eremua onartzeak 290 byteko eta gehienez 581 Manchester kodetutako byteko jasotzeko buffer bat beharko luke. Pakete-kudeatzailea desgaitu beharko litzateke eta Paketearen Luzera erregistroa ezin izango litzateke erabili kasu horretan. Hau bideragarria da, baina erosoagoa da pakete-kudeatzailea erabiltzea, ahal bada.
FIFO erabilera
Si4431-k 64 byteko FIFO bat eskaintzen du transmititzeko eta jasotzeko. Kodetutako byte kopurua 255 denez, baliteke kodetutako pakete oso bat ez egotea 64 byteko bufferean.
Transmisio
Transmisioan, kodetutako byte kopuru osoa kalkulatzen da. Kodetutako byte-kopuru osoa, posta-anbula barne, 64 byte baino txikiagoa bada, pakete osoa FIFOn idazten da eta bidalitako paketearen etenaldia soilik gaituta dago. Pakete labur gehienak FIFO transferentzia batean bidaliko dira.
Kodetutako byte kopurua 64 baino handiagoa bada, hainbat FIFO transferentzia beharko dira paketea bidaltzeko. Lehenengo 64 byteak FIFOn idazten dira. Bidalitako paketea eta TX FIFO ia hutsik etenaldiak gaituta daude. TX FIFO Ia Hutsaren atalasea 16 byte-n (% 25) ezarri da. IRQ gertaera bakoitzean, egoera 2 erregistroa irakurtzen da. Pakete bidalitako bit-a egiaztatzen da lehenik, eta, paketea guztiz bidali ez bada, hurrengo 48 byte kodetutako datuen FIFOra idazten dira. Honek kodetutako byte guztiak idatzi eta Pakete bidalitako etenaldia gertatu arte jarraitzen du.
1. Harrera
Harreran, hasiera batean, Sync Word etenaldia soilik gaituta dago. Sinkronizazio hitza jaso ondoren, sinkronizazio hitzaren etenaldia desgaitu egiten da eta FIFO ia beteta etenaldia gaituta dago. FIFO ia atalase osoa 2 byte-n ezartzen da hasieran. Lehenengo FIFO ia osoa etenaldia luzera bi byteak noiz jaso diren jakiteko erabiltzen da. Luzera jaso ondoren, luzera deskodetzen da eta kodetutako byte kopurua kalkulatzen da. RX FIFO ia osoa atalasea 48 byteko ezartzen da. RX FIFO ia beteta dago eta Valid Packet etenaldiak gaituta daude. Hurrengo IRQ gertaeran, egoera 1 erregistroa irakurtzen da. Lehenik eta behin, Valid Packet bit-a egiaztatzen da, eta gero FIFO Almost Full bit-a egiaztatzen da. RX FIFO Ia Osoa bit bakarra ezartzen bada, hurrengo 48 byteak FIFOtik irakurtzen dira. Baliozko paketearen bita ezartzen bada, paketearen gainerakoa FIFOtik irakurtzen da. MCU-k zenbat byte irakurri diren kontrolatzen du eta azken bytearen ondoren irakurtzeari uzten dio.
Datuen esteka geruza
Datu-lotura-geruzaren moduluak 13757-4:2005-a betetzen duen esteka-geruza inplementatzen du. Datu-lotura-geruzak (LINK) geruza fisikoaren (PHY) eta aplikazio-geruzaren (AL) arteko interfaze bat eskaintzen du.
Datu-lotura geruzak funtzio hauek betetzen ditu:
- PHY eta AL arteko datuak transferitzeko funtzioak eskaintzen ditu
- Irteerako mezuetarako CRCak sortzen ditu
- Sarrerako mezuetan CRC akatsak hautematen ditu
- Helbide fisikoa eskaintzen du
- Norabide biko komunikazio moduetarako transferentziak onartzen ditu
- Markoak datu-bitak
- Sarrerako mezuetan enkoadratzeko akatsak hautematen ditu
Esteka geruzaren marko formatua
EN 13757-4:2005ean erabiltzen den Haririk gabeko M-Bus fotograma formatua IEC3-3-60870 FT5 (Frame Type 2) fotograma formatutik eratorria da. Markoa datu-bloke batek edo gehiagok osatzen dute. Bloke bakoitzak 16 biteko CRC eremu bat dauka. Lehenengo bock-a 12 byteko luzera finkoko bloke bat da, L-eremua, C-eremua, M-eremua eta A-eremua barne hartzen dituena.
- L-Eremua
L eremua Esteka geruzaren datu-kargaren luzera da. Honek ez du L-eremua bera edo CRC byteren bat barne hartzen. L-eremua, C-eremua, M-eremua eta A-eremua barne hartzen ditu. Hauek PHY kargaren zati dira.
Kodetutako byte-kopurua 255 bytera mugatuta dagoenez, M-eremurako onartzen den gehienezko balioa 110 byte da Manchester kodetutako datuentzat eta 148 byte T moduko hiru-seitik sei kodetutako datuentzat.
Link geruza transmisioan L-eremua kalkulatzeaz arduratzen da. Lotura-geruzak L eremua erabiliko du harreran.
Kontuan izan L eremuak ez duela adierazten PHY kargaren luzera edo kodetutako byte kopurua. Transmisioan, PHYk PHY kargaren luzera eta kodetutako byte kopurua kalkulatuko ditu. Jasotakoan, PHYk L eremua deskodetuko du eta deskodetu beharreko byte kopurua kalkulatuko du. - C-Eremua
C-eremua fotograma kontrolatzeko eremua da. Eremu honek fotograma mota identifikatzen du eta esteka datu-truke zerbitzu primitiboetarako erabiltzen da. C-eremuak marko mota adierazten du: BIDALI, BAIEZTU, ESKATU edo ERANTZUN. BIDALI eta ESKATU fotogramen kasuan, C eremuak CONFIRM edo RESPOND espero den adierazten du.
Link TX oinarrizko funtzioa erabiltzean, C-ren edozein balio erabil daiteke. Link Service Primitives erabiltzean, C eremua automatikoki betetzen da EN 13757-4:2005 arauaren arabera. - M-Eremua
M eremua fabrikatzailearen kodea da. Fabrikatzaileek hiru hizkiko kodea eska diezaiokete ondorengoei web helbidea: http://www.dlms.com/flag/INDEX.HTM Hiru letrako kodearen karaktere bakoitza bost bit gisa kodetzen da. 5 biteko kodea ASCII kodea hartuz eta 0x40 ("A") kenduz lor daiteke. 5 biteko hiru kodeak kateatzen dira 15 biteko. Bit esanguratsuena zero da. - A-Eremua
Helbide-eremua 6 byteko helbide esklusiboa da gailu bakoitzarentzat. Helbide esklusiboa fabrikatzaileak esleitu behar du. Fabrikatzaile bakoitzaren ardura da gailu bakoitzak 6 byteko helbide bakarra duela ziurtatzea. Bidali eta Eskatu fotogramen helbidea neurgailuaren edo beste gailu baten autohelbidea da. Berrespen- eta erantzun-datuen fotogramak jatorrizko gailuaren helbidea erabiliz bidaltzen dira. - CI-Eremua
CI-eremua aplikazioaren goiburua da eta aplikazioaren datu-kargako datu-mota zehazten du. EN13757-4:2005 balio kopuru mugatu bat zehazten duen arren, Link Service Primitives-ek edozein balio erabiltzea ahalbidetuko du. - CRC
CRC EN13757-4:2005ean zehazten da.
CRC polinomioa hau da:
X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
Kontuan izan M-Bus CRC 16 byteko bloke bakoitzean kalkulatzen dela. Ondorioz, 16 byteko datu bakoitzak 18 byte transmititu behar ditu.
Informazio gehigarria
Lotura-geruzaren inplementazioari buruzko informazio gehiago lortzeko, ikusi "AN452: Haririk gabeko M-Bus Stack Programatzaileen Gida".
Potentzia kudeaketa
2. irudiak kontagailu baten energia kudeatzeko denbora-lerroa erakusten du, adibidezample T1 modua erabiliz.
MCUak lo moduan egon behar du ahal den guztietan energia aurrezteko. Adib honetanample, MCU lotan dago RTC martxan dagoenean, irrati-kristalaren abiaraztean zain dagoenean eta FIFOtik transmititzean. MCU Port Match esnatze batera konektatuta dagoen EZRadioPRO IRQ seinaletik esnatuko da.
Bloke bat baino luzeagoak diren mezuak igortzean, MCUak esnatu behar du FIFO betetzeko (FIFO etenaldi ia hutsean oinarrituta) eta gero lotara itzuli.
MCUak Inaktibo moduan egon beharko luke potentzia baxuko osziladoretik edo leherketa moduko osziladoretik ADCtik irakurtzerakoan. ADCak SAR erlojua behar du.
Erabiltzen ez denean, EZRadioPRO itzali moduan egon beharko litzateke SDN pina altua dela. Honek MCU-ra kable bidezko konexioa behar du. EZ Radio Pro erregistroak ez dira itzaltzeko moduan gordetzen; beraz, EZRadioPro hasieratzen da RTC tarte bakoitzean. Irratia hasteak 100 µs baino gutxiago behar ditu eta 400 nA kontserbatzen ditu. Honek 10 µJ-ko energia aurrezpena lortzen du, 10 segundoko tartean oinarrituta.
EZRadioPRO kristalak 16 ms inguru behar ditu POR baterako. Hau nahikoa luzea da CRC zortzi bloke inguru kalkulatzeko. MCU lotara itzuliko da CRC guztiak osatzen baditu kristala egonkortu aurretik. Enkriptatzea beharrezkoa bada, kristalezko osziladorean itxaron bitartean abiarazi daiteke.
MCUak 20 MHz-n exekutatu beharko luke potentzia baxuko osziladorea erabiliz zeregin gehienetarako. Denbora-muga zehatza behar duten zereginek doitasun-osziladorea eta inaktibo modua erabili behar dituzte lo moduaren ordez. RTC-k nahikoa bereizmen eskaintzen du zeregin gehienetarako. T2 kontagailuaren potentzia kudeatzeko kronograma adibidezample aplikazioa 3. irudian ageri da.
Transceptoraren ezarpena kasu normaletarako optimizatu behar da neurgailua esnatzen denean eta irakurlerik ez dagoenean. ACK gutxieneko/gehieneko denbora-muga nahiko luzea da, C8051F930 RTC erabili eta MCU lo moduan jarri ahal izateko.
Eraikitzeko aukerak lo modua erabili behar ez duten sare elektrikoetarako edo USB bidezko irakurgailuetarako eskaintzen dira. Inaktibo modua lo egin beharrean erabiliko da USB eta UART-ek MCUa eten dezaten.
Simplicity Studio
Klik bakarreko sarbidea MCUrako eta haririk gabeko tresnetarako, dokumentaziorako, softwarerako, iturburu-kodeko liburutegietarako eta abar. Windows-erako eskuragarri,
Mac eta Linux!
![]() |
![]() |
![]() |
![]() |
IoT zorroa www.silabs.com/IoT |
SW/HW www.silabs.com/simplicity |
Kalitatea www.silabs.com/quality |
Laguntza eta Komunitatea community.silabs.com |
Erantzukizuna
Silicon Labs-ek Silicon Labs produktuak erabiltzen dituzten edo erabiltzeko asmoa duten sistema eta software inplementatzaileentzako eskuragarri dauden periferiko eta modulu guztien dokumentazio berriena, zehatza eta sakona eskaini nahi die bezeroei. Karakterizazio-datuek, eskuragarri dauden moduluak eta periferikoak, memoria-tamainak eta memoria-helbideak gailu zehatz bakoitzari dagozkio, eta eskaintzen diren parametro "ohikoak" aplikazio ezberdinetan alda daitezke eta aldatu egiten dira. Aplikazioa adibidezampHemen deskribatzen diren liburuak helburu ilustratiboetarako soilik dira. Silicon Labs-ek beretzat gordetzen du produktuaren informazio, zehaztapen eta deskribapenetan aldaketa gehiago abisatu gabe eta mugarik gabe egiteko eskubidea, eta ez du sartzen den informazioaren zehaztasunari edo osotasunari buruzko bermerik ematen. Silicon Labs-ek ez du erantzukizunik izango hemen emandako informazioaren erabileraren ondorioengatik. Dokumentu honek ez du inplikatzen edo adierazten zirkuitu integraturik diseinatzeko edo fabrikatzeko emandako copyright lizentziarik. Produktuak ez daude diseinatuta edo baimenduta Silicon Labs-en berariazko idatzizko baimenik gabe inongo Bizitza Euskarri Sistemaren barruan erabiltzeko. "Bizi-euskarri-sistema" bizitzari eta/edo osasunari eusteko edo eusteko xedea duen edozein produktu edo sistema da, eta, huts egiten badu, kalte pertsonal garrantzitsuak edo heriotza eragingo duela uste daiteke. Silicon Labs produktuak ez daude aplikazio militarretarako diseinatuta edo baimenduta. Silicon Labs-eko produktuak ez dira inolaz ere erabili suntsipen masiboko armetan (baina ez bakarrik) arma nuklear, biologiko edo kimikoetan, edo arma horiek emateko gai diren misiletan.
Markaren informazioa
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® eta Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logotipoa eta horien konbinazioak, "munduko mikrokontrolagailu energetikoenak", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® eta beste batzuk Silicon Labs-en marka komertzialak edo erregistratuak dira. ARM, CORTEX, Cortex-M3 eta thumbs ARM Holdings-en marka komertzialak edo erregistratuak dira. Keil ARM Limited-en marka erregistratua da. Hemen aipatzen diren gainerako produktu edo marka-izen guztiak dagozkien jabeen marka komertzialak dira.
Silicon Laboratories Inc.
400 Mendebaldeko Cesar Chavez
Austin, TX 78701
AEB
http://www.silabs.com
Dokumentuak / Baliabideak
![]() |
SILICON LABS Haririk gabeko M-BUS softwarearen ezarpena AN451 [pdfErabiltzailearen gida SILICON LABS, C8051, MCU eta, EZRadioPRO, Haririk gabeko M-bus, Haririk gabeko, M-BUS, Softwarea, Inplementazioa, AN451 |