Logoja e SILICON LABS

AN451
ZBATIMI I SOFTUREVE M-BUS WIRELESS

Hyrje

Ky shënim aplikacioni përshkruan zbatimin e Silicon Labs të Wireless M-Bus duke përdorur një Silicon Labs C8051 MCU dhe EZRadioPRO®. Wireless M-bus është një standard evropian për aplikacionet e leximit të njehsorëve që përdorin brezin e frekuencës 868 MHz.

Stack Layers

Wireless M-Bus përdor modelin IEC me 3 shtresa, i cili është një nëngrup i modelit OSI me 7 shtresa (shih Figurën 1).

SILICON LABS Wireless M-BUS Implementation Software AN451Shtresa fizike (PHY) është përcaktuar në EN 13757-4. Shtresa fizike përcakton se si kodohen dhe transmetohen bitet, karakteristikat e modemit RF (shkalla e çipit, preambula dhe fjala e sinkronizimit) dhe parametrat RF (modulimi, frekuenca qendrore dhe devijimi i frekuencës).
Shtresa PHY zbatohet duke përdorur një kombinim të harduerit dhe firmuerit. EZRadioPRO kryen të gjitha funksionet e RF dhe modemit. EZRadioPRO përdoret në modalitetin FIFO me mbajtësin e paketave. Moduli MbusPhy.c ofron ndërfaqen SPI, kodimin/dekodimin, bllokimin e leximit/shkrimit dhe trajtimin e paketave dhe menaxhon gjendjet e transmetuesit.
Shtresa e lidhjes M-Bus Data zbatohet në modulin MbusLink.c. Ndërfaqja e programimit të aplikacionit M-Bus përbëhet nga funksione publike që mund të thirren nga shtresa e aplikacionit në fillin kryesor. Moduli MbusLink zbaton gjithashtu shtresën e lidhjes së të dhënave. Shtresa e lidhjes së të dhënave do të formatojë dhe kopjojë të dhënat nga buferi i aplikacionit TX në buferin MbusPhy TX, duke shtuar titujt dhe CRC-të e kërkuara.
Vetë shtresa e aplikacionit nuk është pjesë e firmuerit M-bus. Shtresa e aplikacionit përcakton se si një shumëllojshmëri e gjerë e të dhënave duhet të formatohen për transmetim. Shumica e njehsorëve duhet të transmetojnë vetëm një ose dy lloje të dhënash. Shtimi i një sasie të madhe kodi për të akomoduar çdo lloj të dhënash në njehsor do t'i shtonte njehsorit kod dhe kosto të panevojshme. Mund të jetë e mundur të zbatohet një bibliotekë ose një kokë file me një listë shteruese të llojeve të të dhënave. Megjithatë, shumica e klientëve matës e dinë saktësisht se çfarë lloj të dhënash duhet të transmetojnë dhe mund t'i referohen standardit për detajet e formatimit. Një lexues universal ose sniffer mund të zbatojë një grup të plotë të llojeve të të dhënave të aplikacionit në GUI të PC. Për këto arsye, shtresa e aplikacionit zbatohet duke përdorur p.shampLe aplikacionet për një metër dhe lexues.

Standardet e kërkuara
  1. EN 13757-4
    EN 13757-4
    Sistemi i komunikimit për njehsorët dhe leximi në distancë i njehsorëve
    Pjesa 4: Leximi i njehsorit pa tela
    Leximi i radiometrit për funksionim në brezin SRD 868 MHz deri në 870 MHz
  2. EN 13757-3
    Sistemi i komunikimit për njehsorët dhe leximi në distancë i njehsorëve
    Pjesa 3: Shtresa e dedikuar e aplikimit
  3. IEC 60870-2-1:1992
    Pajisjet dhe sistemet e telekontrollit
    Pjesa 5: Protokollet e transmetimit
    Seksioni 1: Procedura e transmetimit të lidhjes
  4. IEC 60870-1-1:1990
    Pajisjet dhe sistemet e telekontrollit
    Pjesa 5: Protokollet e transmetimit
    Seksioni 1: Formatet e kornizës së transmetimit
Përkufizimet
  • Autobus M-M-Bus është një standard me kabllo për leximin e njehsorëve në Evropë.
  • M-Bus me valë—M-Bus pa tela për aplikime për leximin e njehsorëve në Evropë.
  • PHY— Shtresa fizike përcakton se si kodohen dhe transmetohen bitet dhe bajtet e të dhënave.
  • API-Ndërfaqja e programuesit të aplikacionit.
  • LINK -Shtresa e lidhjes së të dhënave përcakton se si transmetohen blloqet dhe kornizat.
  • CRC-Kontrolli ciklik i tepricës.
  • FSK-Tastja e zhvendosjes së frekuencës.
  • Çip-Njësia më e vogël e të dhënave të transmetuara. Një bit i të dhënave është i koduar si çipa të shumtë.
  • Moduli -Burimi i kodit AC .c file.

M-Bus PHY Përshkrimi funksional

Sekuenca e preambulës

Sekuenca e Preambulës e specifikuar nga specifikimi i autobusit M është një numër i plotë që alternon zero dhe njëshe. Një përkufizohet si frekuencë më e lartë, dhe një zero përcaktohet si frekuencë më e ulët.
nx (01)
Opsionet e Preambulës për Si443x janë një numër i plotë gërmimesh i përbërë nga një dhe zero të alternuara.
nx (1010)
Një preambulë me një parathënie shtesë nuk do të ishte problem, por, atëherë, fjala e sinkronizimit dhe ngarkesa e dobishme do të jenë të gabuara për një bit.
Zgjidhja është të përmbysni të gjithë paketën duke vendosur bitin e motorit në regjistrin Modulation Control 2 (0x71). Kjo do të përmbysë preambulën, fjalën sinkronizuese dhe të dhënat TX/RX. Si pasojë, të dhënat duhet të përmbysen kur shkruani të dhënat TX ose lexoni të dhënat RX. Gjithashtu, fjala e sinkronizimit përmbyset përpara se të shkruhet në regjistrat e Word Synchronization Si443x.

Fjala e sinkronizimit

Fjala e sinkronizimit e kërkuar nga EN-13757-4 është ose 18 çipa për Mode S dhe Mode R ose 10 çipa për Modelin T. Fjala e sinkronizimit për Si443x është 1 deri në 4 bajt. Megjithatë, meqenëse fjalës së sinkronizimit gjithmonë paraprihet nga parathënia, gjashtë pjesët e fundit të parathënies mund të konsiderohen pjesë e fjalës së sinkronizimit; Pra, fjala e parë e sinkronizimit plotësohet nga tre përsëritje të një zero të ndjekur nga një. Fjala e sinkronizimit plotësohet përpara se të shkruhet në regjistrat Si443x.
Tabela 1. Fjala e sinkronizimit për modalitetin S dhe modalitetin R

EN 13757-4 00 01110110 10010110 binare
00 76 96 magji
jastëk me (01) x 3 01010100 01110110 10010110 binare
54 76 96 magji
plotësojnë 10101011 10001001 01101001 binare
AB 89 69 magji

Tabela 2. Fjala e sinkronizimit për modalitetin T Meter në Tjetër

SINKORONI SINKORONI SINKORONI
FJALA FJALA FJALA
3 2 1
Gjatësia e preambulës së transmetimit

Parathënia minimale është specifikuar për katër mënyra të ndryshme funksionimi. Është e pranueshme që të ketë një preambulë më të gjatë se sa është specifikuar. Zbritja e gjashtë çipave për preambulën jep numrin minimal të çipave për preambulën Si443x. Zbatimi shton dy pika shtesë të preambulës në të gjitha mënyrat e preambulës së shkurtër për të përmirësuar zbulimin dhe ndërveprueshmërinë e parathënies. Preambula në modalitetin S me një parathënie të gjatë është shumë e gjatë; pra, përdoret preambula minimale. Gjatësia e preambulës në thithka shkruhet në regjistrin e gjatësisë së preambulës (0x34). Regjistri i gjatësisë së preambulës përcakton preambulën vetëm pas transmetimit. Specifikimi minimal dhe parametrat e gjatësisë së preambulës janë përmbledhur në Tabelën 3.
Tabela 3. Gjatësia e preambulës së transmetimit

EN-13757-4
minimale
Si443x Parathënie
Vendosja
Sinkronizimi
fjalë
Gjithsej shtesë
nx (01) patate të skuqura thithka patate të skuqura patate të skuqura patate të skuqura patate të skuqura
Mode S parathënie e shkurtër 15 30 8 32 6 38 8
Preambula e gjatë e modalitetit S 279 558 138 552 6 558 0
Modaliteti T (metër-tjetër) 19 38 10 40 6 46 8
Modaliteti R 39 78 20 80 6 86 8

Preambula minimale për marrjen përcaktohet nga regjistri i Kontrollit të Zbulimit të Preambulës (0x35). Pas marrjes, numri i biteve në fjalën sinkronizuese duhet të zbritet nga preambula minimale e specifikuar për të përcaktuar preambulën e përdorshme. Koha minimale e rregullimit të marrësit është 16 çipa nëse AFC është aktivizuar ose 8 çipa nëse AFC është çaktivizuar. Koha e rregullimit të marrësit zbritet gjithashtu nga preambula e përdorshme për të përcaktuar cilësimin minimal për regjistrin e Kontrollit të Zbulimit të Preambulës.

Probabiliteti i një preambule të rreme varet nga vendosja e regjistrit të kontrollit të zbulimit të preambulës. Një cilësim i shkurtër me 8 çipa mund të rezultojë në zbulimin e një preambule të rreme çdo disa sekonda. Cilësimi i rekomanduar i 20 çipave e bën zbulimin e preambulës së rreme një ngjarje të pamundur. Gjatësitë e preambulës për Mode R dhe Mode SL janë mjaftueshëm të gjata për të përdorur cilësimin e rekomanduar.
Ka shumë pak përfitim për ta bërë preambulën të zbulojë më shumë se 20 çipa.
AFC është çaktivizuar për Modelin S me një preambulë të shkurtër dhe Modelin T. Kjo redukton kohën e rregullimit të marrësit dhe lejon një cilësim më të gjatë të zbulimit të parathënies. Me AFC të çaktivizuar, Modaliteti T mund të përdorë cilësimin e rekomanduar prej 20 çipash. Për Modelin S me një parathënie të shkurtër përdoret një cilësim prej 4 thithkash ose 20 çipash. Kjo e bën pak më të lartë probabilitetin e zbulimit të preambulës së rreme për këtë model.
Tabela 4. Zbulimi i Preambulës

EN-13757-4
minimale
Sinkronizimi
fjalë
të përdorshme
parathënie
Zgjidhja e RX Zbuloni
min
Si443x Parathënie
Vendosja e Detektimit
nx (01) patate të skuqura patate të skuqura patate të skuqura patate të skuqura patate të skuqura thithka patate të skuqura
Mode S parathënie e shkurtër 15 30 6 24 8* 16 4 16
Preambula e gjatë e modelit S 279 558 6 552 16 536 5 20
Modeli T (metër-tjetër) 19 38 6 32 8* 24 5 20
Modaliteti R 39 78 6 72 16 56 5 20
*Shënim: AFC është çaktivizuar

Marrësi është konfiguruar që të ndërveprojë me një transmetues duke përdorur preambulën minimale të specifikuar. Kjo siguron që marrësi të ndërveprojë me çdo transmetues në përputhje me autobusin M.
Specifikimi Wireless M-Bus kërkon një preambulë shumë të gjatë për Mode S1 prej të paktën 558 çipa. Kjo do të marrë rreth 17 ms vetëm për të transmetuar preambulën. Si443x nuk kërkon një preambulë kaq të gjatë dhe nuk përfiton nga preambula e gjatë. Ndërsa preambula e gjatë shënohet si opsionale për Mode S2, nuk ka asnjë arsye për të përdorur një preambulë të gjatë me Si443x. Nëse dëshironi komunikim njëkahësh, Mode T1 do të sigurojë një preambulë më të shkurtër, shpejtësi më të lartë të të dhënave dhe jetëgjatësi më të gjatë të baterisë. Nëse kërkohet komunikim i dyanshëm duke përdorur modalitetin S2, rekomandohet një parathënie e shkurtër.
Vini re se pragu i zbulimit për Modelin S me një preambulë të gjatë është më i gjatë se numri i gërmimeve të preambulës që transmetohen për Modelin S me një parathënie të shkurtër. Kjo do të thotë se marrësi i preambulës së gjatë Mode S nuk do të zbulojë një preambulë nga një transmetues i shkurtër i preambulës Mode S. Kjo është e nevojshme nëse marrësi i preambulës së gjatë Mode S do të marrë ndonjë përfitim nga preambula e gjatë.
Vini re se marrësi i preambulës së shkurtër Mode S do të zbulojë preambulën dhe do të marrë pako nga të dyja një preambulë e shkurtër Mode S
transmetues dhe një transmetues me preambulë të gjatë Mode S; Pra, në përgjithësi, lexuesi i njehsorit duhet të përdorë konfigurimin e marrësit të preambulës së shkurtër Mode S.

Enkodimi/Dekodimi

Specifikimi Wireless M-bus kërkon dy metoda të ndryshme kodimi. Kodimi Manchester përdoret për modalitetin S dhe modalitetin R. Kodimi i Mançesterit përdoret gjithashtu për lidhjen "tjetër-me-metër" në Modelin T. Lidhja "Modeli T" e njehsorit përdor 3 nga 6 kodime.
1. Mançester i koduar/dekoduar
Kodimi i Mançesterit është historikisht i zakonshëm në sistemet RF për të siguruar rikuperim dhe gjurmim të fortë të orës duke përdorur një modem të thjeshtë dhe të lirë. Sidoqoftë, një radio moderne me performancë të lartë si Si443x nuk ka nevojë për kodim Manchester. Kodimi i Mançesterit mbështetet kryesisht për pajtueshmërinë me standardet ekzistuese, por shkalla e të dhënave për Si443x në mënyrë efektive dyfishohet kur nuk përdoret kodimi i Mançesterit.
Si443x mbështet kodimin dhe dekodimin e Mançesterit të të gjithë paketës në harduer. Fatkeqësisht, fjala e sinkronizimit nuk është e koduar në Mançester. Një sekuencë e pavlefshme Manchester u zgjodh qëllimisht për fjalën e sinkronizimit. Kjo e bën kodimin e Manchesterit të papajtueshëm me shumicën e radiove ekzistuese, duke përfshirë Si443x. Si pasojë, kodimi dhe dekodimi i Mançesterit duhet të kryhen nga MCU. Çdo bajt në të dhënat e pakoduara përbëhet nga tetë bit të dhënash. Duke përdorur kodimin Manchester, çdo bit i të dhënave kodohet në një simbol me dy çipa. Meqenëse të dhënat e koduara duhet të shkruhen në radio FIFO tetë çipa në të njëjtën kohë, një grimcë e të dhënave kodohet dhe shkruhet në FIFO në të njëjtën kohë.
Tabela 5. Kodimi i Mançesterit

të dhëna Ox12 0x34 byte
Ox1 0x2 0x3 0x4 thithka
1 10 11 100 binare
çip 10101001 10100110 10100101 10011010 binare
FIFO OxA9 OxA6 OxA5 Ox9A magji

Çdo bajt që do të transmetohet i kalohet një bajt në një kohë në funksionin e kodimit të bajtit. Funksioni i byte-it të kodimit do të thërrasë dy herë funksionin e gërmimit të kodimit, fillimisht për thithjen më të rëndësishme dhe më pas për atë më pak të rëndësishme.
Kodimi i Mançesterit në softuer nuk është i vështirë. Duke u nisur nga biti më domethënës, njëri është i koduar si një sekuencë çipi "01". Një zero është e koduar si një sekuencë çipi "10". Kjo mund të realizohet lehtësisht duke përdorur një lak dhe duke zhvendosur dy bit për çdo simbol. Sidoqoftë, është më e shpejtë të përdorni një tabelë të thjeshtë kërkimi me 16 hyrje për çdo gërvishtje. Funksioni i kodimit të Mançesterit të thithjes kodon një grimcë të dhënash dhe më pas i shkruan ato në FIFO. Çipat përmbysen përpara se t'i shkruani FIFO-s për të llogaritur kërkesat e preambulës së përmbysur.
Gjatë marrjes, çdo bajt në FIFO përbëhet nga tetë çipa dhe deshifrohet në një grimcë të dhënash. Funksioni i bllokut të leximit lexon një bajt në një kohë nga FIFO dhe thërret funksionin e bajtit të dekodimit. Çipat përmbysen pas leximit nga FIFO për të llogaritur kërkesat e preambulës së përmbysur. Çdo bajt i çipave të koduar në Mançester deshifrohet në një grumbull të dhënash. Thithja e dekoduar shkruhet në tampon RX duke përdorur funksionin e buferit të shkrimit RX.
Vini re se si kodimi ashtu edhe dekodimi kryhen një gërshetim të dhënash në një moment në fluturim. Kodimi në një tampon do të kërkonte një bufer shtesë dyfishi i madhësisë së të dhënave të pakoduara. Kodimi dhe dekodimi është shumë më i shpejtë se shpejtësia më e shpejtë e të dhënave të mbështetur (100 k patate të skuqura për sekondë). Meqenëse Si443x mbështet lexime dhe shkrime të shumëfishta në FIFO, ka një shpenzim të vogël në përdorimin e leximeve dhe shkrimeve vetëm me një bajt. Kostoja e sipërme është rreth 10 µs për 100 çipa të koduar. Përfitimi është një kursim RAM prej 512 bajt.
2. Tre nga gjashtë dekodimi kodues
Metoda e kodimit Tre nga Gjashtë e specifikuar në EN-13757-4 zbatohet gjithashtu në firmware në MCU. Ky kodim përdoret për modalitetin T me shpejtësi të lartë (100 k çipa në sekondë) nga njehsori në tjetrin. Modeli T siguron kohën më të shkurtër të transmetimit dhe jetëgjatësinë më të gjatë të baterisë për një njehsor me valë.
Çdo bajt i të dhënave që do të transmetohet ndahet në dy gërvishtje. Thithja më e rëndësishme kodohet dhe transmetohet së pari. Përsëri, kjo zbatohet duke përdorur një funksion të byte-it të kodimit që thërret dy herë funksionin e enkodimit.
Çdo grimcë e të dhënave është e koduar në një simbol me gjashtë çipa. Sekuenca e simboleve me gjashtë çipa duhet të shkruhet në FIFO me 8 çipa.
Gjatë kodimit, dy bajt të dhënash kodohen si katër thikë. Çdo grimcë është një simbol me 6 çipa. Katër simbole me 6 çipa grumbullohen si tre bajt.
Tabela 6. Tre nga gjashtë kodim

të dhëna 0x12 0x34 byte
Ox1 0x2 0x3 0x4 thithka
çip 15 16 13 34 oktal
1101 1110 1011 11100 binare
FIFO 110100 11100010 11011100 binare
0x34 OxE2 OxDC magji

Në softuer, kodimi tre nga gjashtë zbatohet duke përdorur tre funksione të ndërthurura. Funksioni i byte-it të kodimit do të thërrasë dy herë funksionin e enkodimit. Funksioni i encode nibble përdor një tabelë kërkimi për simbolin me gjashtë çipa dhe e shkruan simbolin në funksionet Shift Tre nga gjashtë. Ky funksion zbaton një regjistër ndërrimi me 16 çipa në softuer. Simboli shkruhet në bajtin më pak të rëndësishëm të regjistrit të zhvendosjes. Regjistri zhvendoset dy herë majtas. Kjo përsëritet tre herë. Kur një bajt i plotë është i pranishëm në bajtin e sipërm të regjistrit të zhvendosjes, ai përmbyset dhe shkruhet në FIFO.
Meqenëse çdo bajt i të dhënave është i koduar si një bajt e gjysmë të koduar, është e rëndësishme që fillimisht të pastrohet regjistri i zhvendosjes në mënyrë që bajt i parë i koduar të jetë i saktë. Nëse gjatësia e paketës është një numër tek, pas kodimit të të gjithë bajteve, do të mbetet ende një gërvishtje në regjistrin e zhvendosjes. Kjo trajtohet me postamble siç shpjegohet në seksionin vijues.
Dekodimi i tre nga gjashtë të koduar është procedura e kundërt. Gjatë dekodimit, tre bajt të koduar deshifrohen në dy bajtë të dhënash. Regjistri i zhvendosjes së softuerit përdoret përsëri për të grumbulluar bajt të të dhënave të dekoduara. Një tabelë kërkimi e kundërt me 64 hyrje përdoret për dekodim. Kjo përdor më pak cikle, por më shumë memorie kodi. Kërkimi i një tabele kërkimi me 16 hyrje për simbolin përkatës zgjat shumë më tepër.
Postamble
Specifikimi Wireless M-bus ka kërkesa specifike për postamble ose rimorkio. Për të gjitha mënyrat, minimumi është dy çipa, dhe maksimumi është tetë çipa. Meqenëse njësia minimale atomike për FIFO është një bajt, përdoret një rimorkio me 8 çipa për Mode S dhe Mode R. Mode T postamble është tetë çipa nëse gjatësia e paketës është çift ose katër çipa nëse gjatësia e paketës është tek. Postamble me katër çipa për një gjatësi të çuditshme pakete plotëson kërkesat për të patur të paktën dy çipa të alternuar.
Tabela 7. Gjatësia e postamblesë

Gjatësia e postës (patate të skuqura)
min maksimumi Zbatimi sekuenca e çipit
Modaliteti S 2 8 8 1010101
Modaliteti T 2 8 4 (i rastësishëm) 101
8 (madje) 1010101
Modaliteti R 2 8 8 1010101
Trajtuesi i paketave

Trajtuesi i paketave në Si443x mund të përdoret në një modalitet me gjerësi të ndryshueshme të paketës ose në një modalitet me gjerësi fikse të paketës. Modaliteti i gjerësisë së paketës së ndryshueshme kërkon një bajt të gjatësisë së paketës pas fjalës së sinkronizimit dhe bajt opsional të kokës. Pas marrjes, radio do të përdorë bajtin e gjatësisë për të përcaktuar fundin e një pakete të vlefshme. Në transmetim, radio do të fusë fushën e gjatësisë pas bajteve të kokës.
Fusha L për protokollin M-bus wireless nuk mund të përdoret për fushën e gjatësisë Si443x. Së pari, fusha L nuk është gjatësia aktuale e paketës. Është numri i bajteve të ngarkesës së ngarkesës së shtresës së lidhjes, pa përfshirë bajtet CRC ose kodimin. Së dyti, vetë fusha L është e koduar duke përdorur kodimin e Mançesterit ose kodimin Tre nga gjashtë për matësin e modalitetit T në një tjetër.
Implementimi përdor mbajtësin e paketave në modalitetin e gjerësisë fikse të paketës si për transmetimin ashtu edhe për marrjen. Pas transmetimit, shtresa PHY do të lexojë fushën L në buferin e transmetimit dhe do të llogarisë numrin e bajteve të koduara, duke përfshirë postamblenë. Numri i përgjithshëm i bajteve të koduara që do të transmetohen shkruhet në regjistrin e gjatësisë së paketës (0x3E).
Pas marrjes, dy bajtët e parë të koduar deshifrohen dhe fusha L shkruhet në buferin e marrjes. Fusha L përdoret për të llogaritur numrin e bajteve të koduara që do të merren. Numri i bajtëve të koduar që do të merren më pas shkruhet në regjistrin e Gjatësisë së Paketës (0x3E). Postambula është hedhur poshtë.
MCU duhet të dekodojë fushën L, të llogarisë numrin e bajteve të koduara dhe të shkruajë vlerën në regjistrin e gjatësisë së paketës përpara se të merret gjatësia më e shkurtër e mundshme e paketës. Fusha L më e shkurtër e lejuar për shtresën PHY është 9, duke dhënë 12 bajt të pakoduar. Kjo jep 18 bajtë të koduar për Modelin T. Dy bajtët e parë tashmë janë deshifruar. Kështu, regjistri i gjatësisë së paketës duhet të përditësohet në 16 bajt herë në 100 kbps ose 1.28 milisekonda. Ky nuk është problem për një 8051 që funksionon me 20 MIPS.
Numri i bajteve që do të merren nuk përfshin postamble, me përjashtim të postamblesë me katër çipa të përdorur për paketat Mode T me një gjatësi teke pakete. Kështu, marrësi nuk kërkon një postamble, me përjashtim të paketave të modelit T me gjatësi teke. Ky postamble nevojitet vetëm për të dhënë një numër të plotë bajtësh të koduar. Përmbajtja e postamblesë është injoruar; kështu, nëse postamble nuk transmetohet, katër çipa zhurme do të merren dhe do të injorohen. Meqenëse numri i përgjithshëm i bajteve të koduara është i kufizuar në 255 (0xFF), zbatimi kufizon fushën maksimale L për mënyra të ndryshme.
Tabela 8. Kufijtë e madhësisë së paketës

të koduara të deshifruara M-Autobus
byte byte L-Fusha
dhjetor magji dhjetor magji dhjetor magji
Modaliteti S 255 FF 127 7 F 110 6E
Modaliteti T (metër-tjetër) 255 FF 169 A9 148 94
Modaliteti R 255 FF 127 7 F 110 6E

Këto kufizime janë zakonisht shumë më të larta se rasti tipik i përdorimit për një njehsor me valë. Gjatësia e paketës duhet të mbahet e vogël për të marrë jetëgjatësinë më të mirë të mundshme të baterisë.
Përveç kësaj, përdoruesi mund të specifikojë fushën maksimale L që duhet të merret (USER_RX_MAX_L_FIELD). Kjo përcakton madhësinë e kërkuar për buferin e marrjes (USER_RX_BUFFER_SIZE).
Mbështetja e një maksimumi të fushës L prej 255 do të kërkonte një bufer pranimi prej 290 bajte dhe një maksimum prej 581 bajte të koduar nga Manchester. Trajtuesi i paketave do të duhej të çaktivizohej dhe regjistri i gjatësisë së paketës nuk mund të përdoret në atë rast. Kjo është e realizueshme, por është më i përshtatshëm për të përdorur mbajtësin e paketave, nëse është e mundur.

Përdorimi i FIFO

Si4431 ofron një FIFO 64 bajt për transmetim dhe marrjen. Meqenëse numri i bajtëve të koduar është 255, një paketë e tërë e koduar mund të mos përshtatet brenda buferit prej 64 bajtësh.
Transmetim
Gjatë transmetimit, llogaritet numri i përgjithshëm i bajteve të koduara. Nëse numri i përgjithshëm i bajteve të koduara, duke përfshirë postamble, është më pak se 64 bajt, e gjithë paketa shkruhet në FIFO dhe aktivizohet vetëm ndërprerja e paketës së dërguar. Shumica e paketave të shkurtra do të dërgohen në një transferim FIFO.
Nëse numri i bajtëve të koduar është më i madh se 64, do të kërkohen transferime të shumta FIFO për të dërguar paketën. 64 bajtët e parë shkruhen në FIFO. Aktivizohen ndërprerjet "Paketa e dërguar" dhe "TX FIFO Pothuajse bosh". Pragu i TX FIFO Pothuajse i zbrazët është vendosur në 16 bajt (25%). Në çdo ngjarje IRQ, lexohet regjistri i statusit 2. Së pari kontrollohet biti i dërguar i paketës dhe, nëse paketa nuk është dërguar plotësisht, 48 bajt të tjerë të të dhënave të koduara shkruhen në FIFO. Kjo vazhdon derisa të shkruhen të gjithë bajtët e koduar dhe të ndodhë ndërprerja e dërgimit të paketës.
1. Pritja
Në pritje, fillimisht, aktivizohet vetëm ndërprerja e Sync Word. Pas marrjes së fjalës së sinkronizimit, ndërprerja e fjalës së sinkronizimit çaktivizohet dhe ndërprerja FIFO Pothuajse e plotë është aktivizuar. Pragu pothuajse i plotë i FIFO fillimisht është vendosur në 2 bajt. Ndërprerja e parë FIFO Pothuajse e plotë përdoret për të ditur se kur janë marrë dy bajtë me gjatësi. Pasi të jetë marrë gjatësia, gjatësia deshifrohet dhe llogaritet numri i bajteve të koduara. Pragu pothuajse i plotë i RX FIFO vendoset më pas në 48 bajt. RX FIFO është pothuajse i plotë dhe ndërprerjet e paketave të vlefshme janë aktivizuar. Pas ngjarjes së radhës IRQ, lexohet regjistri i statusit 1. Së pari, kontrollohet biti Valid Packet dhe më pas kontrollohet biti FIFO Almost Full. Nëse vendoset vetëm biti RX FIFO Pothuajse i plotë, 48 bajtët e ardhshëm lexohen nga FIFO. Nëse vendoset biti i vlefshëm i paketës, pjesa e mbetur e paketës lexohet nga FIFO. MCU mban gjurmët se sa bajt janë lexuar dhe ndalon leximin pas bajtit të fundit.

Shtresa e Lidhjes së të Dhënave

Moduli i shtresës së lidhjes së të dhënave zbaton një shtresë lidhjeje në përputhje me 13757-4:2005. Shtresa e lidhjes së të dhënave (LINK) siguron një ndërfaqe midis shtresës fizike (PHY) dhe shtresës së aplikacionit (AL).
Shtresa e lidhjes së të dhënave kryen funksionet e mëposhtme:

  • Ofron funksione që transferojnë të dhëna midis PHY dhe AL
  • Gjeneron CRC për mesazhet dalëse
  • Zbulon gabimet CRC në mesazhet hyrëse
  • Ofron adresimin fizik
  • Pranon transferimet për mënyrat e komunikimit me dy drejtime
  • Korniza bit të të dhënave
  • Zbulon gabimet e inkuadrimit në mesazhet hyrëse
Formati i kornizës së shtresës së lidhjes

Formati i kornizës Wireless M-Bus i përdorur në EN 13757-4:2005 rrjedh nga formati i kornizës FT3 (Lloji i kornizës 3) nga IEC60870-5-2. Korniza përbëhet nga një ose më shumë blloqe të dhënash. Çdo bllok përfshin një fushë CRC 16-bit. Boku i parë është një bllok me gjatësi fikse prej 12 bajtesh që përfshin fushën L, fushën C, fushën M dhe fushën A.

  1. L-Fusha
    Fusha L është gjatësia e ngarkesës së të dhënave të shtresës Link. Kjo nuk përfshin vetë fushën L ose ndonjë nga bajtet CRC. Ai përfshin fushën L, C-fushën, M-fushën dhe A-fushën. Këto janë pjesë e ngarkesës PHY.
    Për shkak se numri i bajteve të koduara është i kufizuar në 255 bajt, vlera maksimale e mbështetur për fushën M është 110 bajtë për të dhënat e koduara në Mançester dhe 148 bajtë për të dhënat e koduara Mode T Tre nga gjashtë.
    Shtresa Link është përgjegjëse për llogaritjen e fushës L në transmetim. Shtresa e lidhjes do të përdorë fushën L në pritje.
    Vini re se fusha L nuk tregon gjatësinë e ngarkesës PHY ose numrin e bajteve të koduara. Pas transmetimit, PHY do të llogarisë gjatësinë e ngarkesës PHY dhe numrin e bajteve të koduara. Pas marrjes, PHY do të deshifrojë fushën L dhe do të llogarisë numrin e bajteve për dekodim.
  2. C-Fusha
    Fusha C është fusha e kontrollit të kornizës. Kjo fushë identifikon llojin e kornizës dhe përdoret për primitivet e shërbimit të shkëmbimit të të dhënave të lidhjes. Fusha C tregon llojin e kornizës - DËRGO, KONFIRM, KËRKESË ose PËRGJIGJE. Në rastin e kornizave SEND dhe KËRKONI, fusha C tregon nëse pritet një KONFIRM ose PËRGJIGJE.
    Kur përdorni funksionin bazë Link TX, çdo vlerë e C mund të përdoret. Kur përdorni Link Service Primitives, fusha C plotësohet automatikisht sipas EN 13757-4:2005.
  3. M-Fusha
    Fusha M është kodi i prodhuesit. Prodhuesit mund të kërkojnë një kod me tre shkronja nga sa vijon web adresa: http://www.dlms.com/flag/INDEX.HTM Çdo karakter i kodit me tre shkronja është i koduar si pesë bit. Kodi 5-bit mund të merret duke marrë kodin ASCII dhe duke zbritur 0x40 ("A"). Tre kodet 5-bitësh janë bashkuar për të bërë 15-bit. Biti më i rëndësishëm është zero.
  4. A-Fusha
    Fusha e adresës është një adresë unike 6-bajtë për çdo pajisje. Adresa unike duhet të caktohet nga prodhuesi. Është përgjegjësi e çdo prodhuesi të sigurojë që çdo pajisje të ketë një adresë unike 6-bajtë. Adresa për kornizat Dërgo dhe Kërkesë është vetë-adresa e njehsorit ose pajisjes tjetër. Kornizat e të dhënave të konfirmimit dhe përgjigjes dërgohen duke përdorur adresën e pajisjes fillestare.
  5. CI-Fusha
    Fusha CI është kreu i aplikacionit dhe specifikon llojin e të dhënave në ngarkesën e të dhënave të aplikacionit. Ndërsa EN13757-4:2005 specifikon një numër të kufizuar vlerash, Primitivët e Shërbimit Link do të lejojnë përdorimin e çdo vlere.
  6. KDF
    CRC është specifikuar në EN13757-4:2005.
    Polinomi CRC është:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Vini re se M-Bus CRC llogaritet mbi çdo bllok 16 bajt. Rezultati është se çdo 16 bajt të dhënash kërkojnë 18 bajt për t'u transmetuar,
Informacion Shtesë

Për informacion shtesë rreth zbatimit të shtresës së lidhjes, shihni “AN452: Udhëzuesi i programuesve të stivës së M-Bus me valë”.

Menaxhimi i Energjisë

Figura 2 tregon afatin kohor të menaxhimit të energjisë për një njehsor p.shampduke përdorur modalitetin T1.

MCU duhet të jetë në modalitetin e fjetjes sa herë që është e mundur për të kursyer energji. Në këtë ishampKështu, MCU është duke fjetur kur RTC është në punë, kur pret në fillimin e kristalit të radios dhe kur transmeton nga FIFO. MCU do të zgjohet nga sinjali EZRadioPRO IRQ i lidhur me një zgjim Port Match.
Kur transmetoni mesazhe më të gjata se një bllok, MCU duhet të zgjohet për të mbushur FIFO (bazuar në ndërprerjen pothuajse bosh FIFO) dhe më pas të kthehet në gjumë.
MCU duhet të jetë në modalitetin e punës që funksionon nga oshilatori me fuqi të ulët ose oshilatori i modalitetit të shpërthimit kur lexon nga ADC. ADC kërkon një orë SAR.
Kur nuk përdoret, EZRadioPRO duhet të jetë në modalitetin e mbylljes me pinin SDN të drejtuar lart. Kjo kërkon një lidhje me kabllo me MCU. Regjistrat EZ Radio Pro nuk ruhen në modalitetin e mbylljes; Pra, EZRadioPro inicializohet në çdo interval RTC. Inicializimi i radios kërkon më pak se 100 µs dhe kursen 400 nA. Kjo rezulton në një kursim energjie prej 10 µJ, bazuar në një interval prej 10 sekondash.
Kristali EZRadioPRO merr rreth 16 ms për një POR. Kjo është e mjaftueshme për të llogaritur CRC për rreth tetë blloqe. MCU do të kthehet në gjumë nëse përfundon të gjitha CRC-të përpara se kristali të stabilizohet. Nëse kërkohet enkriptim, ai gjithashtu mund të fillohet gjatë pritjes në oshilatorin kristal.
MCU duhet të funksionojë në 20 MHz duke përdorur oshilatorin me fuqi të ulët për shumicën e detyrave. Detyrat që kërkojnë një afat kohor të saktë duhet të përdorin oshilatorin e saktë dhe modalitetin boshe në vend të modalitetit të fjetjes. RTC ofron rezolucion të mjaftueshëm për shumicën e detyrave. Afati kohor i menaxhimit të energjisë për matësin T2 exampAplikimi është paraqitur në Figurën 3.

Implementimi i transmetuesit duhet të optimizohet për rastin normal kur njehsori zgjohet dhe nuk ka lexues të pranishëm. Afatet minimale/maksimale të ACK janë mjaftueshëm të gjata në mënyrë që të jetë e mundur të përdoret C8051F930 RTC dhe të vendoset MCU në modalitetin e fjetjes.
Opsionet e ndërtimit ofrohen për lexuesit me energji elektrike ose USB që nuk kanë nevojë të përdorin modalitetin e fjetjes. Modaliteti i papunë do të përdoret në vend të gjumit në mënyrë që USB dhe UART të mund të ndërpresin MCU.

SILICON LABS Wireless M-BUS Implementation Software AN451-1

Studio e Thjeshtësisë
Qasje me një klikim në MCU dhe mjetet me valë, dokumentacionin, softuerin, bibliotekat e kodit burimor dhe më shumë. Në dispozicion për Windows,
Mac dhe Linux!

Portofoli IoT Cilësia
Portofoli IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Cilësia
www.silabs.com/quality
Mbështetje dhe Komunitet
Community.silabs.com

Mohim përgjegjësie
Silicon Labs synon t'u sigurojë klientëve dokumentacionin më të fundit, të saktë dhe të thelluar të të gjitha pajisjeve periferike dhe moduleve të disponueshme për zbatuesit e sistemit dhe softuerit që përdorin ose synojnë të përdorin produktet e Silicon Labs. Të dhënat e karakteristikave, modulet dhe pajisjet periferike të disponueshme, madhësitë e memories dhe adresat e memories i referohen çdo pajisjeje specifike dhe parametrat "tipikë" të ofruar mund dhe ndryshojnë në aplikacione të ndryshme. Aplikimi p.shampato të përshkruara këtu janë vetëm për qëllime ilustruese. Silicon Labs rezervon të drejtën për të bërë ndryshime pa njoftim dhe kufizime të mëtejshme në informacionin e produktit, specifikimet dhe përshkrimet këtu, dhe nuk jep garanci për saktësinë ose plotësinë e informacionit të përfshirë. Silicon Labs nuk do të ketë asnjë përgjegjësi për pasojat e përdorimit të informacionit të dhënë këtu. Ky dokument nuk nënkupton ose shpreh licencat e të drejtave të autorit të dhëna më poshtë për të projektuar ose fabrikuar ndonjë qark të integruar. Produktet nuk janë të dizajnuara ose të autorizuara për t'u përdorur brenda ndonjë sistemi të mbështetjes së jetës pa pëlqimin specifik me shkrim të Silicon Labs. Një "Sistemi i Mbështetjes së Jetës" është çdo produkt ose sistem që synon të mbështesë ose mbështesë jetën dhe/ose shëndetin, i cili, nëse dështon, mund të pritet në mënyrë të arsyeshme të rezultojë në lëndime të rëndësishme personale ose vdekje. Produktet e Silicon Labs nuk janë të dizajnuara ose të autorizuara për aplikime ushtarake. Produktet e Silicon Labs në asnjë rrethanë nuk do të përdoren në armë të shkatërrimit në masë, duke përfshirë (por pa u kufizuar në) armët bërthamore, biologjike ose kimike, ose raketa të afta për të dhënë armë të tilla.
Informacioni i markës tregtare
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® dhe logoja e Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, logo Energy Micro dhe kombinimet e tyre, “mikrokontrolluesit më miqësorë me energjinë në botë”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® dhe të tjera janë marka tregtare ose marka të regjistruara të Silicon Labs. ARM, CORTEX, Cortex-M3 dhe gishtat e mëdhenj janë marka tregtare ose marka të regjistruara të ARM Holdings. Keil është një markë tregtare e regjistruar e ARM Limited. Të gjitha produktet e tjera ose emrat e markave të përmendura këtu janë marka tregtare të mbajtësve të tyre përkatës.Logoja e SILICON LABS

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

Dokumentet / Burimet

SILICON LABS Wireless M-BUS Implementation Software AN451 [pdfUdhëzuesi i përdoruesit
SILICON LABS, C8051, MCU, dhe, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Software, Implementation, AN451

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *