logo sa SILICON LABS

AN451
WIRELESS M-BUS SOFTWARE IMPLEMENTATION

Pasiuna

Kini nga nota sa aplikasyon naghulagway sa pagpatuman sa Silicon Labs sa Wireless M-Bus gamit ang Silicon Labs C8051 MCU ug EZRadioPRO®. Ang Wireless M-bus usa ka European Standard para sa mga aplikasyon sa pagbasa sa metro gamit ang 868 MHz frequency band.

Stack Layers

Ang Wireless M-Bus naggamit sa 3-layer nga IEC nga modelo, nga usa ka subset sa 7-layer nga OSI nga modelo (tan-awa ang Figure 1).

SILICON LABS Wireless M-BUS Software Implementation AN451Ang Physical (PHY) layer gihubit sa EN 13757-4. Gihubit sa pisikal nga layer kung giunsa ang pag-encode ug pagpasa sa mga bit, ang mga kinaiya sa RF modem (chip rate, preamble, ug pulong nga pag-synchronize), ug mga parameter sa RF (modulation, frequency sa sentro, ug frequency deviation).
Ang PHY layer gipatuman gamit ang kombinasyon sa hardware ug firmware. Ang EZRadioPRO naghimo sa tanan nga RF ug modem function. Ang EZRadioPRO gigamit sa FIFO mode sa packet handler. Ang MbusPhy.c module naghatag ug SPI interface, encoding/decoding, block read/write, ug packet handling ug nagdumala sa transceiver states.
Ang M-Bus Data link layer gipatuman sa MbusLink.c module. Ang interface sa M-Bus Application Programming naglangkob sa mga publikong gimbuhaton nga mahimong tawgon gikan sa layer sa aplikasyon sa main thread. Ang MbusLink module nagpatuman usab sa Data Link Layer. Ang Data link layer mag-format ug mokopya sa datos gikan sa aplikasyon nga TX buffer ngadto sa MbusPhy TX buffer, magdugang sa gikinahanglan nga mga header ug CRCs.
Ang Application layer mismo dili bahin sa M-bus firmware. Ang layer sa aplikasyon naghubit kung giunsa pagporma ang usa ka halapad nga lainlain nga datos alang sa pagpasa. Kadaghanan sa mga metro kinahanglan ra nga magpadala usa o duha nga klase sa datos. Ang pagdugang ug daghang kodigo aron ma-accommodate ang bisan unsang klase sa datos sa metro makadugang sa dili kinahanglan nga code ug gasto sa metro. Mahimong mahimo ang pagpatuman sa usa ka librarya o usa ka ulohan file nga adunay usa ka kompleto nga lista sa mga tipo sa datos. Bisan pa, kadaghanan sa mga kostumer sa pagsukod nahibal-an kung unsang klase sa datos ang kinahanglan nila ipadala ug mahimong magtumong sa sumbanan alang sa mga detalye sa pag-format. Ang usa ka unibersal nga magbabasa o sniffer mahimong mag-implementar sa usa ka kompleto nga hugpong sa mga tipo sa datos sa aplikasyon sa PC GUI. Tungod niini nga mga hinungdan, ang layer sa aplikasyon gipatuman gamit ang example mga aplikasyon alang sa usa ka metro ug magbabasa.

Gikinahanglan nga mga Sumbanan
  1. EN 13757-4
    EN 13757-4
    Sistema sa komunikasyon alang sa mga metro ug hilit nga pagbasa sa mga metro
    Bahin 4: Pagbasa sa wireless meter
    Pagbasa sa radiometer alang sa operasyon sa 868 MHz hangtod 870 MHz SRD band
  2. EN 13757-3
    Sistema sa komunikasyon alang sa mga metro ug hilit nga pagbasa sa mga metro
    Bahin 3: Gipahinungod nga layer sa aplikasyon
  3. IEC 60870-2-1:1992
    Mga kagamitan ug sistema sa telekontrol
    Bahin 5: Mga protocol sa pagpadala
    Seksyon 1: Pamaagi sa pagpadala sa link
  4. IEC 60870-1-1:1990
    Mga kagamitan ug sistema sa telekontrol
    Bahin 5: Mga protocol sa pagpadala
    Seksyon 1: Mga format sa frame sa transmission
Mga kahulugan
  • M-Bus—Ang M-Bus usa ka wired nga sumbanan alang sa pagbasa sa metro sa Europe.
  • Wireless M-Bus—Wireless M-Bus para sa mga aplikasyon sa pagbasa sa metro sa Europe.
  • PHY—Ang Pisikal nga Layer naghubit kung giunsa ang mga bits ug byte sa datos gi-encode ug gipasa.
  • API—Interface sa Programmer sa Application.
  • LINK-Ang Data Link Layer naghubit kung giunsa ang mga bloke ug mga frame gipasa.
  • CRC—Cyclic Redundancy Check.
  • FSK—Frequency Shift Keying.
  • Chip—Pinakagamay nga yunit sa gipasa nga datos. Ang usa ka bit nga data gi-encode isip daghang mga chips.
  • Module—AC code tinubdan .c file.

M-Bus PHY Functional nga Deskripsyon

Preamble Sequence

Ang preamble sequence nga gipiho sa M-bus specification usa ka integer nga numero nga alternating zero ug one. Ang usa gihubit ingon nga mas taas nga frequency, ug ang usa ka zero gihubit nga mas ubos nga frequency.
nx (01)
Ang mga kapilian sa Preamble alang sa Si443x usa ka integer nga gidaghanon sa mga nibbles nga naglangkob sa mga alternating ug mga zero.
nx (1010)
Ang usa ka pasiuna nga adunay usa ka dugang nga nanguna dili usa ka problema, apan, unya, ang pulong sa pag-synchronize ug kargamento mahimong dili masaligan sa usa ka gamay.
Ang solusyon mao ang pagbalit-ad sa tibuok pakete pinaagi sa pag-set sa engine bit sa Modulation Control 2 register (0x71). Kini magbalit-ad sa pasiuna, pulong sa pag-sync, ug datos sa TX/RX. Ingon usa ka sangputanan, ang datos kinahanglan balihon kung isulat ang datos sa TX o pagbasa sa datos sa RX. Usab, ang pulong sa pag-synchronize gibalit-ad sa wala pa magsulat sa mga rehistro sa Si443x Synchronization Word.

Pag-synchronize nga Pulong

Ang pulong nga pag-synchronize nga gikinahanglan sa EN-13757-4 kay 18 ka chips para sa Mode S ug Mode R o 10 ka chips para sa Model T. Ang synchronization nga pulong para sa Si443x kay 1 to 4 bytes. Bisan pa, tungod kay ang pulong sa pag-synchronize kanunay nga giunhan sa pasiuna, ang katapusan nga unom ka tipik sa pasiuna mahimong isipon nga bahin sa pulong nga pag-synchronize; busa, ang unang pulong sa pag-synchronize giputos sa tulo ka pagbalik-balik sa usa ka sero nga gisundan sa usa. Ang pulong sa pag-synchronize gikompleto sa wala pa magsulat sa mga rehistro sa Si443x.
Table 1. Synchronization Word para sa Mode S ug Mode R

EN 13757-4 00 01110110 10010110 binary
00 76 96 hex
pad nga adunay (01) x 3 01010100 01110110 10010110 binary
54 76 96 hex
komplemento 10101011 10001001 01101001 binary
AB 89 69 hex

Talaan 2. Pag-synchronize nga Pulong para sa Mode T Meter ngadto sa Uban

SYNCH SYNCH SYNCH
PULONG PULONG PULONG
3 2 1
Ipadala ang Preamble Length

Ang minimum nga pasiuna gipiho para sa upat ka lain-laing mga operating mode. Gidawat nga adunay usa ka pasiuna nga mas taas kaysa sa gitakda. Ang pag-ubos sa unom ka chips alang sa preamble naghatag sa minimum nga gidaghanon sa mga chips alang sa Si443x preamble. Ang implementasyon nagdugang ug duha ka dugang nga nibbles sa preamble sa tanang mugbo nga preamble mode aron mapalambo ang preamble detection ug interoperability. Ang preamble sa Mode S nga adunay taas nga preamble taas kaayo; busa, ang minimum nga pasiuna gigamit. Ang preamble nga gitas-on sa nibbles gisulat sa Preamble Length (0x34) nga rehistro. Ang rehistro sa gitas-on sa pasiuna nagtino sa pasiuna sa pagpasa lamang. Ang minimum nga espesipikasyon ug preamble length settings gisumada sa Table 3.
Talaan 3. Ipadala ang Preamble Length

EN-13757-4
minimum
Si443x Preamble
Pagbutang ing
Pag-sync
Pulong
Total dugang
nx (01) mga chips nibbles mga chips mga chips mga chips mga chips
Mode S mubo nga pasiuna 15 30 8 32 6 38 8
Mode S taas nga pasiuna 279 558 138 552 6 558 0
Mode T (metro-uban pa) 19 38 10 40 6 46 8
Mode R 39 78 20 80 6 86 8

Ang minimum nga pasiuna sa pagdawat gitino sa Preamble Detection Control nga rehistro (0x35). Sa pagdawat, ang gidaghanon sa mga tipik sa pulong sa pag-sync kinahanglan nga ibawas gikan sa gitakda nga minimum nga pasiuna aron mahibal-an ang magamit nga pasiuna. Ang minimum nga oras sa paghusay sa tigdawat mao ang 16-chips kung ang AFC ma-enable o 8-chips kung ang AFC na-disable. Ang oras sa paghusay sa tigdawat gikuha usab gikan sa magamit nga pasiuna aron mahibal-an ang minimum nga setting alang sa rehistro sa Preamble Detection Control.

Ang posibilidad sa usa ka bakak nga pasiuna nagdepende sa pagpahimutang sa rehistro sa Preamble Detection Control. Ang usa ka mubo nga setting sa 8-chips mahimong moresulta sa usa ka sayup nga preamble nga makit-an matag pipila ka segundo. Ang girekomenda nga setting sa 20chips naghimo sa sayup nga preamble detection nga usa ka dili mahimo nga panghitabo. Ang mga preamble nga gitas-on alang sa Mode R ug Mode SL igo nga taas alang sa girekomenda nga setting nga gamiton.
Adunay gamay kaayo nga kaayohan sa paghimo sa pasiuna nga makit-an ang labi pa sa 20 nga mga chips.
Ang AFC gi-disable para sa Model S nga adunay mubo nga preamble ug Model T. Kini nagpamenos sa oras sa paghusay sa receiver ug nagtugot sa mas taas nga preamble detection setting. Sa AFC disabled, ang Mode T makagamit sa girekomendar nga setting sa 20 chips. Ang usa ka setting sa 4 nibbles o 20 chips gigamit alang sa Model S nga adunay mubo nga preamble. Kini naghimo sa kalagmitan sa usa ka bakak nga preamble detection gamay nga mas taas alang niini nga modelo.
Talaan 4. Preamble Detection

EN-13757-4
minimum
Pag-sync
Pulong
magamit
pasiuna
Paghusay sa RX Detect
min
Si443x Preamble
Pagpahiluna sa Deteksyon
nx (01) mga chips mga chips mga chips mga chips mga chips nibbles mga chips
Mode S mubo nga pasiuna 15 30 6 24 8* 16 4 16
Model S taas nga pasiuna 279 558 6 552 16 536 5 20
Model T (meter-uban pa) 19 38 6 32 8* 24 5 20
Mode R 39 78 6 72 16 56 5 20
*Pahinumdom: Na-disable ang AFC

Ang tigdawat gi-configure aron makig-interoperate sa usa ka transmitter gamit ang labing gamay nga piho nga pasiuna. Kini nagsiguro nga ang tigdawat mag-interoperate sa bisan unsang M-bus-compliant nga transmitter.
Ang espesipikasyon sa Wireless M-Bus nanginahanglan usa ka taas nga preamble alang sa Mode S1 nga labing menos 558 nga mga chips. Magkinahanglan kini og mga 17 ms aron lang mapasa ang preamble. Ang Si443x wala magkinahanglan sa ingon ka taas nga preamble ug wala makabenepisyo sa taas nga preamble. Samtang ang taas nga preamble nahibal-an nga opsyonal alang sa Mode S2, walay rason nga gamiton ang taas nga preamble sa Si443x. Kung gusto ang one-way nga komunikasyon, ang Mode T1 maghatag og mas mubo nga pasiuna, mas taas nga rate sa datos, ug mas taas nga kinabuhi sa baterya. Kung gikinahanglan ang duha ka paagi nga komunikasyon gamit ang Mode S2, usa ka mubo nga preamble ang girekomenda.
Matikdi nga ang detection threshold alang sa Model S nga adunay taas nga preamble mas taas kaysa sa gidaghanon sa preamble nibbles nga gipasa para sa Model S nga adunay mubo nga preamble. Kini nagpasabot nga ang taas nga preamble Mode S receiver dili makamatikod sa usa ka preamble gikan sa usa ka mubo nga preamble Mode S transmitter. Kini gikinahanglan kung ang taas nga preamble Mode S receiver makadawat sa bisan unsa nga kaayohan gikan sa taas nga preamble.
Timan-i nga ang mubo nga preamble Mode S receiver makamatikod sa preamble ug makadawat og mga pakete gikan sa usa ka mubo nga preamble Mode S
transmitter ug usa ka long-preamble Mode S transmitter; busa, sa kinatibuk-an, ang meter reader kinahanglang mogamit sa mubo nga preamble Mode S receiver configuration.

Encoding/Decoding

Ang espesipikasyon sa Wireless M-bus nagkinahanglan og duha ka lain-laing mga pamaagi sa pag-encode. Ang Manchester encoding kay gigamit para sa Mode S ug Mode R. Ang Manchester encoding gigamit usab para sa other-to-meter link sa Model T. Ang Model T meter-to-other link naggamit ug 3 sa 6 ka encodings.
1. Manchester Encoded/Decoding
Ang pag-encode sa Manchester kasagaran sa kasaysayan sa mga sistema sa RF aron mahatagan ang lig-on nga pagbawi sa orasan ug pagsubay gamit ang usa ka yano ug barato nga modem. Bisan pa, ang usa ka moderno nga high-performance nga radyo sama sa Si443x wala magkinahanglan pag-encode sa Manchester. Ang pag-encode sa Manchester labi na nga gisuportahan alang sa pagkaangay sa naa na nga mga sumbanan, apan ang rate sa datos alang sa Si443x epektibo nga doble kung wala gigamit ang pag-encode sa Manchester.
Ang Si443x nagsuporta sa Manchester encoding ug decoding sa tibuok packet sa hardware. Ikasubo, ang pulong nga pag-synchronize dili Manchester nga naka-encode. Usa ka dili balido nga han-ay sa Manchester gituyo nga gipili alang sa pulong nga pag-synchronize. Kini naghimo sa Manchester nga pag-encode nga dili uyon sa kadaghanan nga mga radyo, lakip ang Si443x. Ingon usa ka sangputanan, ang Manchester encoding ug decoding kinahanglan nga himuon sa MCU. Ang matag byte sa wala ma-encode nga datos naglangkob sa walo ka data bits. Gamit ang Manchester encoding, ang matag data bit gi-encode sa duha ka chip nga simbolo. Tungod kay ang na-encode nga datos kinahanglan isulat sa radyo FIFO walo ka chips sa usa ka higayon, usa ka nibble sa data ang gi-encode ug gisulat sa FIFO sa usa ka higayon.
Talaan 5. Manchester Encoding

datos AY12 0x34 bytes
AY1 0x2 0x3 0x4 nibbles
1 10 11 100 binary
chip 10101001 10100110 10100101 10011010 binary
FIFO OxA9 OxA6 OxA5 Ox9A hex

Ang matag byte nga ipasa gipasa usa ka byte matag higayon sa encode byte function. Ang encode byte function motawag sa encode nibble function sa makaduha, una para sa pinaka importante nga nibble ug dayon para sa pinakagamay nga nibble.
Ang pag-encode sa Manchester sa software dili lisud. Sugod gikan sa labing mahinungdanon nga gamay, ang usa gi-encode isip usa ka "01" chip sequence. Ang usa ka zero gi-encode isip usa ka "10" chip sequence. Kini dali nga mahimo gamit ang usa ka loop ug pagbalhin sa duha ka bits alang sa matag simbolo. Bisan pa, mas paspas ang paggamit lang sa usa ka yano nga 16 entry look-up table alang sa matag nibble. Ang pag-encode sa Manchester nibble function nag-encode sa usa ka nibble sa datos dayon isulat kini sa FIFO. Ang mga chips balit-ad sa dili pa mosulat sa FIFO aron i-account ang balit-ad nga preamble nga kinahanglanon.
Kung makadawat, ang matag byte sa FIFO naglangkob sa walo ka mga chips ug gi-decode sa usa ka nibble sa datos. Ang read block function nagbasa sa usa ka byte matag higayon gikan sa FIFO ug nagtawag sa decode byte function. Ang mga chips gibalit-ad human sa pagbasa gikan sa FIFO aron sa pag-asoy sa balit-ad nga preamble nga mga kinahanglanon. Ang matag byte sa Manchester nga gi-encode nga mga chips gi-decode sa usa ka nibble nga datos. Ang decoded nibble gisulat sa RX buffer gamit ang write nibble RX buffer function.
Matikdi nga ang pag-encode ug pag-decode gihimo sa usa ka data nibble sa usa ka higayon sa langaw. Ang pag-encode sa usa ka buffer nanginahanglan usa ka dugang nga buffer nga doble ang gidak-on sa wala ma-encode nga datos. Ang pag-encode ug pag-decode mas paspas kay sa pinakapaspas nga suportadong data rate (100 k chips kada segundo). Tungod kay ang Si443x nagsuporta sa daghang-byte nga pagbasa ug pagsulat sa FIFO, adunay gamay nga overhead sa paggamit lamang sa single-byte nga pagbasa ug pagsulat. Ang overhead mga 10 µs para sa 100 ka na-encode nga chips. Ang kaayohan usa ka pagtipig sa RAM nga 512 bytes.
2. Tulo sa Unom ka Encoding Decoding
Ang Three-out-of-Six nga pamaagi sa pag-encode nga gitakda sa EN-13757-4 gipatuman usab sa firmware sa MCU. Kini nga encoding kay gigamit para sa high-speed (100k chips per second) Mode T gikan sa metro ngadto sa lain. Ang Model T naghatag sa pinakamubo nga transmission time ug pinakataas nga battery life para sa wireless meter.
Ang matag byte sa datos nga ipasa gibahin sa duha ka nibbles. Ang labing hinungdanon nga nibble gi-encode ug gipasa una. Pag-usab, kini gipatuman gamit ang encode byte function nga nagtawag sa encode nibble function kaduha.
Ang matag nibble sa datos gi-encode sa usa ka simbolo nga unom ka chip. Ang han-ay sa unom ka chip nga mga simbolo kinahanglang isulat sa 8chip FIFO.
Atol sa pag-encode, duha ka byte sa datos ang gi-encode isip upat ka nibbles. Ang matag nibble usa ka simbolo nga 6-chip. Upat ka mga simbolo sa 6chip ang giipon isip tulo ka byte.
Talaan 6. Tulo sa Unom ka Encoding

datos 0x12 0x34 bytes
AY1 0x2 0x3 0x4 nibbles
chip 15 16 13 34 octal
1101 1110 1011 11100 binary
FIFO 110100 11100010 11011100 binary
0x34 OxE2 OxDC hex

Sa software, ang tulo-sa-unom nga pag-encode kay gipatuman gamit ang tulo ka nested functions. Ang encode byte function motawag sa encode nibble function kaduha. Ang encode nibble function naggamit ug look-up table para sa six-chip nga simbolo ug isulat ang simbolo sa Shift Three out of Six functions. Kini nga function nagpatuman sa usa ka 16-chip shift register sa software. Ang simbolo gisulat sa pinakagamay nga byte sa shift register. Ang rehistro gibalhin sa wala kaduha. Kini gisubli sa tulo ka higayon. Kung ang usa ka kompleto nga byte anaa sa ibabaw nga byte sa shift register, kini balit-ad ug gisulat sa FIFO.
Tungod kay ang matag byte sa datos gi-encode isip usa ug tunga nga naka-encode nga byte, importante nga hawanan ang shift register sa sinugdanan aron ang unang na-encode nga byte husto. Kung ang gitas-on sa pakete usa ka katingad-an nga numero, pagkahuman sa pag-encode sa tanan nga mga byte, adunay nahabilin nga usa ka nibble sa rehistro sa pagbalhin. Gidumala kini gamit ang postamble sama sa gipatin-aw sa sunod nga seksyon.
Ang pag-decode sa tulo sa unom nga gi-encode mao ang reverse nga pamaagi. Kung nag-decode, ang tulo nga naka-encode nga byte gi-decode sa duha nga mga byte sa datos. Ang software shift register gigamit pag-usab sa pagtipon sa mga byte sa decoded data. Usa ka 64-entry inverse look-up table ang gigamit para sa decoding. Gigamit niini ang mas gamay nga mga siklo apan mas daghang memorya sa code. Ang pagpangita sa usa ka 16-entry look-up table alang sa katugbang nga simbolo nagkinahanglan og mas taas nga panahon.
Postamble
Ang detalye sa Wireless M-bus adunay piho nga mga kinahanglanon alang sa postamble o trailer. Alang sa tanan nga mga mode, ang minimum mao ang duha ka chips, ug ang maximum walo ka chips. Tungod kay ang minimum nga atomic unit alang sa FIFO usa ka byte, usa ka 8-chip trailer ang gigamit para sa Mode S ug Mode R. Ang Mode T postamble walo ka chips kon ang packet length mao ang even o upat ka chips kung ang packet length kay odd. Ang upat ka chip nga postamble alang sa usa ka katingad-an nga gitas-on sa pakete nagtagbo sa mga kinahanglanon nga adunay labing menos duha ka alternating chips.
Talaan 7. Gitas-on sa Postamble

Ang gitas-on sa postamble (chips)
min max Pagpatuman pagkasunod-sunod sa chip
Mode S 2 8 8 1010101
Mode T 2 8 4 (talagsaon) 101
8 (bisan) 1010101
Mode R 2 8 8 1010101
Packet Handler

Ang packet handler sa Si443x mahimong magamit sa usa ka variable nga packet width mode o usa ka fixed packet width mode. Ang baryable packet width mode nanginahanglan ug packet length byte pagkahuman sa synchronization nga pulong ug opsyonal nga header byte. Sa pagdawat, ang Radio mogamit sa gitas-on nga byte aron mahibal-an ang katapusan sa usa ka balido nga pakete. Sa transmission, ang radyo magsal-ot sa gitas-on nga field human sa header bytes.
Ang L field para sa wireless M-bus protocol dili magamit para sa Si443x nga gitas-on nga field. Una, ang L field dili ang aktuwal nga gitas-on sa pakete. Kini ang gidaghanon sa link layer payload bytes nga wala maglakip sa CRC bytes o encoding. Ikaduha, ang L-field mismo gi-encode gamit ang Manchester encoding o Three out of Six encoding para sa Mode T meter ngadto sa lain.
Ang pagpatuman naggamit sa packet handler sa fixed packet width mode para sa transmission ug reception. Sa transmission, ang PHY layer mobasa sa L field sa transmit buffer ug kuwentahon ang gidaghanon sa mga naka-encode nga byte, lakip ang postamble. Ang kinatibuk-ang gidaghanon sa mga naka-encode nga byte nga ipasa gisulat sa Packet Length register (0x3E).
Sa pagdawat, ang unang duha ka na-encode nga byte gi-decode, ug ang L-field gisulat sa receive buffer. Ang L-field gigamit sa pagkalkulo sa gidaghanon sa mga naka-encode nga byte nga madawat. Ang gidaghanon sa mga naka-encode nga byte nga madawat isulat dayon sa Packet Length register (0x3E). Ang postamble gilabay.
Ang MCU kinahanglang mag-decode sa L-field, kuwentahon ang gidaghanon sa mga naka-encode nga byte, ug isulat ang bili sa Packet Length register sa dili pa madawat ang pinakamubo nga posibleng gitas-on sa pakete. Ang pinakamubo nga gitugotan nga L-field para sa layer sa PHY mao ang 9, nga naghatag ug 12 nga wala ma-encode nga byte. Naghatag kini og 18 ka na-encode nga byte para sa Model T. Ang unang duha ka byte na-decode na. Busa, ang rehistro sa Packet Length kinahanglang ma-update sa 16-byte times sa 100 kbps o 1.28 milliseconds. Dili kini problema alang sa usa ka 8051 nga nagdagan sa 20 MIPS.
Ang gidaghanon sa mga byte nga madawat wala maglakip sa postamble, gawas sa upat ka chip nga postamble nga gigamit alang sa Mode T nga mga pakete nga adunay talagsaon nga gitas-on sa pakete. Busa, ang tigdawat wala magkinahanglan ug postamble, gawas sa Model T odd nga gitas-on nga mga pakete. Kini nga postamble gikinahanglan lamang aron makahatag ug integer nga gidaghanon sa mga naka-encode nga byte. Ang sulod sa postamble wala tagda; busa, kung ang postamble dili mapasa, upat ka chips sa kasaba ang madawat ug dili tagdon. Tungod kay ang kinatibuk-ang gidaghanon sa mga naka-encode nga byte limitado sa 255 (0xFF), ang pagpatuman naglimite sa labing taas nga L-field alang sa lain-laing mga mode.
Talaan 8. Mga Limitasyon sa Gidak-on sa Pakete

gi-encode gi-decode M-Bus
bytes bytes L-Natad
dis hex dis hex dis hex
Mode S 255 FF 127 7 F 110 6E
Mode T (metro-uban pa) 255 FF 169 A9 148 94
Mode R 255 FF 127 7 F 110 6E

Kini nga mga limitasyon kasagaran labaw sa kasagaran nga kaso sa paggamit alang sa usa ka wireless meter. Ang gitas-on sa pakete kinahanglang huptan nga gamay aron makuha ang pinakamaayo nga kinabuhi sa baterya.
Dugang pa, ang tiggamit mahimong magpiho sa labing taas nga L-field nga kinahanglan madawat (USER_RX_MAX_L_FIELD). Kini nagtino sa gikinahanglan nga gidak-on alang sa makadawat buffer (USER_RX_BUFFER_SIZE).
Ang pagsuporta sa labing taas nga L-field nga 255 magkinahanglan usa ka makadawat buffer nga 290 ka byte ug labing kataas nga 581 Manchester nga naka-encode nga mga byte. Ang packet handler kinahanglan nga ma-disable ug ang Packet Length nga rehistro dili magamit sa maong kaso. Mahimo kini, apan mas sayon ​​​​ang paggamit sa packet handler, kung mahimo.

Paggamit sa FIFO

Ang Si4431 naghatag ug 64 byte FIFO alang sa pagpasa ug pagdawat. Tungod kay ang gidaghanon sa mga naka-encode nga byte kay 255, ang tibuok nga naka-encode nga packet mahimong dili mohaum sulod sa 64-byte buffer.
Pagpasa
Sa transmission, ang kinatibuk-ang gidaghanon sa mga naka-encode nga byte gikalkulo. Kung ang kinatibuk-ang gidaghanon sa mga naka-encode nga byte, lakip ang postamble, ubos pa sa 64 bytes, ang tibuok packet isulat sa FIFO ug ang packet lang nga gipadala nga interrupt ang ma-enable. Kadaghanan sa mugbo nga mga pakete ipadala sa usa ka pagbalhin sa FIFO.
Kung ang gidaghanon sa mga naka-encode nga byte labaw pa sa 64, daghang mga pagbalhin sa FIFO ang kinahanglan aron ipadala ang pakete. Ang unang 64 ka byte kay gisulat sa FIFO. Ang Packet Sent ug TX FIFO Almost Empty interrupts gi-enable. Ang TX FIFO Almost Empty threshold gitakda sa 16 bytes (25%). Sa matag IRQ nga panghitabo, ang status 2 nga rehistro gibasa. Ang Packet Sent bit gisusi una, ug, kung ang pakete wala pa hingpit nga gipadala, ang sunod nga 48 bytes sa na-encode nga datos isulat sa FIFO. Nagpadayon kini hangtod ang tanan nga na-encode nga mga byte nasulat na ug ang Packet Sent interrupt mahitabo.
1. Pagdawat
Sa pagdawat, sa sinugdan, ang Sync Word interrupt lang ang gipagana. Human madawat ang sync nga pulong, ang sync word interrupt ma-disable ug ang FIFO Almost Full interrupt ma-enable. Ang hapit bug-os nga threshold sa FIFO sa sinugdan gitakda sa 2 bytes. Ang unang FIFO Almost Full interrupt gigamit aron mahibal-an kung ang duha ka gitas-on nga byte nadawat. Kung madawat na ang gitas-on, ma-decode ang gitas-on ug makalkula ang gidaghanon sa mga na-encode nga byte. Ang RX FIFO hapit Full threshold unya gibutang sa 48 bytes. Ang RX FIFO hapit na puno ug ang Valid Packet interrupts gipagana. Sa sunod nga panghitabo sa IRQ, ang status 1 nga rehistro gibasa. Una, ang Valid Packet bit gisusi, ug ang FIFO Almost Full bit gisusi. Kung ang RX FIFO Almost Full bit lang ang gitakda, ang sunod nga 48 bytes basahon gikan sa FIFO. Kung ang balido nga packet bit gitakda, ang nahabilin sa packet basahon gikan sa FIFO. Gibantayan sa MCU kung pila ka byte ang nabasa ug gihunong ang pagbasa pagkahuman sa katapusan nga byte.

Layer sa Pag-link sa Data

Ang data link layer module nagpatuman sa 13757-4:2005 compliant link layer. Ang data link layer (LINK) naghatag ug interface tali sa physical layer (PHY) ug sa application layer (AL).
Ang Data Link Layer naghimo sa mosunod nga mga gimbuhaton:

  • Naghatag ug mga gimbuhaton nga nagbalhin sa datos tali sa PHY ug AL
  • Naghimo og mga CRC alang sa mga outgoing messages
  • Nakamatikod sa mga sayup sa CRC sa umaabot nga mga mensahe
  • Naghatag ug pisikal nga adres
  • Giila ang mga pagbalhin alang sa bidirectional nga mga paagi sa komunikasyon
  • Mga tipik sa datos sa frame
  • Nakamatikod sa mga sayup sa pag-frame sa umaabot nga mga mensahe
Link Layer Frame Format

Ang Wireless M-Bus frame format nga gigamit sa EN 13757-4:2005 kay gikan sa FT3 (Frame Type 3) frame format gikan sa IEC60870-5-2. Ang frame naglangkob sa usa o daghang mga bloke sa datos. Ang matag block naglakip sa usa ka 16-bit nga CRC field. Ang unang bock kay usa ka fixed-length block nga 12 bytes nga naglakip sa L-field, C-field, M-field, ug A-Field.

  1. L-Natad
    Ang L-field mao ang gitas-on sa Link layer data payload. Kini wala maglakip sa L-field mismo o bisan unsang CRC bytes. Naglakip kini sa L-field, C-field, M-field, ug A-Field. Kabahin kini sa PHY payload.
    Tungod kay ang gidaghanon sa mga naka-encode nga byte limitado ngadto sa 255 bytes, ang pinakataas nga gisuportahan nga bili alang sa M-field mao ang 110 bytes alang sa Manchester nga naka-encode nga datos ug 148 nga mga byte alang sa Mode T nga Three-Out-of-Six nga naka-encode nga datos.
    Ang Link layer maoy responsable sa pagkalkula sa L-field sa transmission. Ang link-layer mogamit sa L-field sa pagdawat.
    Timan-i nga ang L-field wala magpakita sa PHY payload length o ang gidaghanon sa mga naka-encode nga byte. Sa pagpasa, kwentahon sa PHY ang gitas-on sa payload sa PHY ug ang gidaghanon sa mga naka-encode nga byte. Sa pagdawat, ang PHY mag-decode sa L-field ug kuwentahon ang gidaghanon sa mga byte nga i-decode.
  2. C-Natad
    Ang C-field mao ang frame control field. Kini nga field nagpaila sa tipo sa frame ug gigamit alang sa link data exchange service primitives. Ang C-field nagpakita sa tipo sa frame – SEND, CONFIRM, REQUEST, o RESPOND. Sa kaso sa SEND ug REQUEST nga mga frame, ang C-field nagpakita kung ang usa ka CONFIRM o RESPOND gipaabut.
    Kung gigamit ang sukaranan nga function sa Link TX, ang bisan unsang kantidad sa C mahimong magamit. Kung gigamit ang Link Service Primitives, ang C nga natad awtomatik nga napuno sumala sa EN 13757-4:2005.
  3. M-Taman
    Ang M-field mao ang code sa tiggama. Ang mga tiggama makahangyo ug tulo ka letra nga kodigo gikan sa mosunod web adres: http://www.dlms.com/flag/INDEX.HTM Ang matag karakter sa tulo ka letra nga code gi-encode isip lima ka bit. Ang 5-bit code mahimong makuha pinaagi sa pagkuha sa ASCII code ug pag-ubos sa 0x40 (“A”). Ang tulo ka 5-bit nga mga code gidugtong aron mahimo ang 15-bits. Ang labing hinungdanon nga bit mao ang zero.
  4. A-Taman
    Ang natad sa adres usa ka talagsaon nga 6-byte nga adres alang sa matag aparato. Ang talagsaon nga adres kinahanglan nga itudlo sa tiggama. Responsibilidad sa matag tiggama ang pagsiguro nga ang matag aparato adunay usa ka talagsaon nga 6-byte nga adres. Ang adres para sa Send and Request frames mao ang self-address sa metro o uban pang device. Ang confirmand response data frames gipadala gamit ang adres sa gigikanan nga device.
  5. CI-Field
    Ang CI-field mao ang header sa aplikasyon ug nagtino sa tipo sa datos sa payload sa datos sa aplikasyon. Samtang ang EN13757-4:2005 nagtino sa usa ka limitado nga gidaghanon sa mga kantidad, ang Link Service Primitives magtugot sa bisan unsang kantidad nga magamit.
  6. CRC
    Ang CRC gipiho sa EN13757-4:2005.
    Ang CRC Polynomial mao ang:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Timan-i nga ang M-Bus CRC gikalkula sa matag 16-byte block. Ang resulta mao nga ang matag 16 ka byte sa datos nagkinahanglan ug 18 ka byte nga mapasa,
Dugang nga Impormasyon

Para sa dugang nga impormasyon bahin sa Link Layer Implementation, tan-awa ang “AN452: Wireless M-Bus Stack Programmers Guide”.

Pagdumala sa Gahum

Ang Figure 2 nagpakita sa timeline sa pagdumala sa kuryente alang sa usa ka metro nga exampgamit ang Mode T1.

Ang MCU kinahanglan naa sa Sleep mode kung mahimo aron makatipig kusog. Niining example, ang MCU natulog kung ang RTC nagdagan, kung naghulat sa pagsugod sa kristal sa radyo, ug kung nagpadala gikan sa FIFO. Ang MCU makamata gikan sa EZRadioPRO IRQ signal nga konektado sa usa ka Port Match wake-up.
Kung magpadala sa mga mensahe nga mas taas pa sa usa ka block, ang MCU kinahanglan nga momata aron pun-on ang FIFO (base sa FIFO nga hapit walay sulod nga interrupt) ug unya mobalik sa pagkatulog.
Ang MCU kinahanglang anaa sa Idle mode nga nagdagan gikan sa ubos nga power oscillator o burst-mode oscillator kung magbasa gikan sa ADC. Ang ADC nagkinahanglan ug SAR nga orasan.
Kung wala gigamit, ang EZRadioPRO kinahanglan nga naa sa mode nga Shutdown nga adunay taas nga gimaneho nga pin sa SDN. Nagkinahanglan kini usa ka hardwired nga koneksyon sa MCU. Ang mga rehistro sa EZ Radio Pro wala gipreserbar sa shutdown mode; busa, ang EZRadioPro gisugdan sa matag agwat sa RTC. Ang pagsugod sa Radyo nagkinahanglan ug ubos pa sa 100 µs ug makatipig ug 400 nA. Nagresulta kini sa 10 µJ nga pagdaginot sa enerhiya, base sa 10 ka segundo nga agwat.
Ang kristal nga EZRadioPRO nagkinahanglan ug mga 16 ms alang sa usa ka POR. Kini igo nga gidugayon aron makalkulo ang CRC sa mga walo ka bloke. Ang MCU mobalik sa pagkatulog kung kini makompleto ang tanan nga mga CRC sa wala pa ang kristal. Kung gikinahanglan ang pag-encrypt, mahimo usab kini magsugod samtang naghulat sa kristal nga oscillator.
Ang MCU kinahanglan nga modagan sa 20 MHz gamit ang low-power oscillator alang sa kadaghanan nga mga buluhaton. Ang mga buluhaton nga nanginahanglan usa ka tukma nga timeout kinahanglan nga mogamit sa tukma nga oscillator ug idle mode imbes sa sleep mode. Ang RTC naghatag og igo nga resolusyon alang sa kadaghanan sa mga buluhaton. Ang timeline sa pagdumala sa kuryente alang sa T2 meter exampAng aplikasyon gipakita sa Figure 3.

Ang pagpatuman sa transceiver kinahanglan nga ma-optimize alang sa normal nga kaso kung ang metro makamata ug wala’y magbasa nga naa. Ang minimum/maximum nga mga timeout sa ACK igo na nga taas aron posible nga gamiton ang C8051F930 RTC ug ibutang ang MCU sa sleep mode.
Ang mga kapilian sa paghimo gihatag alang sa mga mains o USB-powered readers nga dili kinahanglan nga mogamit sa sleep mode. Ang idle mode gamiton imbes nga matulog aron ang USB ug UART mahimong makabalda sa MCU.

SILICON LABS Wireless M-BUS Software Implementation AN451-1

Kasayon ​​nga Studio
Usa ka pag-klik nga pag-access sa MCU ug wireless nga mga himan, dokumentasyon, software, mga librarya sa gigikanan nga code ug uban pa. Anaa alang sa Windows,
Mac ug Linux!

IoT Portfolio Kalidad
IoT Portfolio
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Kalidad
www.silabs.com/quality
Suporta ug Komunidad
community.silabs.com

Disclaimer
Gitinguha sa Silicon Labs nga mahatagan ang mga kostumer sa labing bag-o, tukma, ug lawom nga dokumentasyon sa tanan nga mga peripheral ug module nga magamit alang sa mga tigpatuman sa sistema ug software nga naggamit o nagtinguha nga gamiton ang mga produkto sa Silicon Labs. Ang datos sa pag-ila, anaa nga mga modulo ug mga peripheral, mga gidak-on sa memorya ug mga adres sa panumduman nagtumong sa matag espesipikong device, ug ang "Typical" nga mga parameter nga gihatag mahimo ug magkalahi sa lain-laing mga aplikasyon. Aplikasyon exampAng mga gihulagway dinhi alang lamang sa mga katuyoan sa paghulagway. Ang Silicon Labs adunay katungod sa paghimog mga pagbag-o nga wala’y dugang nga pahibalo ug limitasyon sa impormasyon sa produkto, mga detalye, ug mga paghubit dinhi, ug wala maghatag garantiya sa katukma o pagkakompleto sa gilakip nga kasayuran. Ang Silicon Labs walay tulubagon sa mga sangputanan sa paggamit sa impormasyon nga gihatag dinhi. Kini nga dokumento wala magpasabot o nagpahayag sa mga lisensya sa copyright nga gihatag dinhi sa pagdesinyo o paghimo sa bisan unsang integrated circuits. Ang mga produkto wala gidesinyo o gitugutan nga gamiton sulod sa bisan unsang Life Support System nga walay espesipikong sinulat nga pagtugot sa Silicon Labs. Ang "Sistema sa Pagsuporta sa Kinabuhi" mao ang bisan unsang produkto o sistema nga gituyo aron suportahan o mapadayon ang kinabuhi ug/o kahimsog, nga, kung kini mapakyas, makatarunganon nga gilauman nga moresulta sa daghang personal nga kadaot o kamatayon. Ang mga produkto sa Silicon Labs wala gidesinyo o gitugutan alang sa mga aplikasyon sa militar. Ang mga produkto sa Silicon Labs dili kinahanglan nga gamiton sa mga hinagiban sa dinaghang paglaglag lakip (apan dili limitado sa) nukleyar, biolohikal, o kemikal nga mga hinagiban, o mga misil nga makahimo sa paghatud sa maong mga hinagiban.
Impormasyon sa Trademark
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, ug ang Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro nga logo ug mga kombinasyon niini, "labing kusog nga mga microcontroller sa kalibutan", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, ang Telegesis Logo®, USBXpress®, ug uban pa kay mga marka sa pamatigayon o rehistradong tatak sa Silicon Labs. ARM, CORTEX, Cortex-M3, ug thumbs kay mga marka sa pamatigayon o rehistradong marka sa pamatigayon sa ARM Holdings. Ang Keil kay rehistrado nga marka sa ARM Limited. Ang tanan nga uban pang mga produkto o mga ngalan sa tatak nga gihisgutan dinhi mga tatak sa ilang mga tag-iya.logo sa SILICON LABS

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

Mga Dokumento / Mga Kapanguhaan

SILICON LABS Wireless M-BUS Software Implementation AN451 [pdf] Giya sa Gumagamit
SILICON LABS, C8051, MCU, ug, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Software, Pagpatuman, AN451

Mga pakisayran

Pagbilin ug komento

Ang imong email address dili mamantala. Ang gikinahanglan nga mga natad gimarkahan *