AN451
IMPLEMENTASI SOFTWARE M-BUS NIRKABEL
Pambuka
Cathetan aplikasi iki nggambarake implementasi Silicon Labs Wireless M-Bus nggunakake Silicon Labs C8051 MCU lan EZRadioPRO®. Wireless M-bus minangka Standar Eropa kanggo aplikasi maca meter nggunakake pita frekuensi 868 MHz.
Tumpukan Lapisan
M-Bus nirkabel nggunakake model IEC 3-lapisan, yaiku subset saka model OSI 7-lapisan (pirsani Gambar 1).
Lapisan Fisik (PHY) ditetepake ing EN 13757-4. Lapisan fisik nemtokake cara bit dikode lan dikirim, karakteristik modem RF (tingkat chip, preamble, lan tembung sinkronisasi), lan paramèter RF (modulasi, frekuensi tengah, lan panyimpangan frekuensi).
Lapisan PHY diimplementasikake nggunakake kombinasi hardware lan firmware. EZRadioPRO nindakake kabeh fungsi RF lan modem. EZRadioPRO digunakake ing mode FIFO kanthi panangan paket. Modul MbusPhy.c nyedhiyakake antarmuka SPI, enkoding / dekoding, blok maca / nulis, lan nangani paket lan ngatur negara transceiver.
Lapisan link M-Bus Data dileksanakake ing modul MbusLink.c. Antarmuka Pemrograman Aplikasi M-Bus kasusun saka fungsi umum sing bisa diarani saka lapisan aplikasi ing utas utama. Modul MbusLink uga ngleksanakake Data Link Layer. Lapisan link Data bakal ngowahi format lan nyalin data saka buffer TX aplikasi menyang buffer MbusPhy TX, nambahake header lan CRC sing dibutuhake.
Lapisan Aplikasi dhewe ora bagean saka perangkat kukuh M-bus. Lapisan aplikasi nemtokake carane macem-macem data bakal diformat kanggo transmisi. Umume meter mung kudu ngirim siji utawa rong jinis data. Nambahake kode sing akeh kanggo nampung data apa wae menyang meter bakal nambah kode lan biaya sing ora perlu kanggo meter kasebut. Sampeyan bisa uga bisa ngetrapake perpustakaan utawa header file kanthi dhaptar lengkap jinis data. Nanging, umume pelanggan pangukuran ngerti persis jinis data apa sing kudu dikirim lan bisa ngrujuk menyang standar kanggo rincian format. A maca universal utawa sniffer bisa ngleksanakake pesawat lengkap jinis data aplikasi ing GUI PC. Kanggo alasan kasebut, lapisan aplikasi diimplementasikake nggunakake example aplikasi kanggo meter lan maca.
Standar sing dibutuhake
- EN 13757-4
EN 13757-4
Sistem komunikasi kanggo meter lan maca remot meter
Part 4: Waca meter nirkabel
Waca radiometer kanggo operasi ing pita SRD 868 MHz nganti 870 MHz - EN 13757-3
Sistem komunikasi kanggo meter lan maca remot meter
Part 3: Lapisan aplikasi khusus - IEC 60870-2-1:1992
Peralatan lan sistem telekontrol
Bagean 5: Protokol transmisi
Bagean 1: Prosedur transmisi link - IEC 60870-1-1:1990
Peralatan lan sistem telekontrol
Bagean 5: Protokol transmisi
Bagean 1: Format pigura transmisi
Definisi
- M-Bus—M-Bus minangka standar kabel kanggo maca meter ing Eropa.
- M-Bus Nirkabel—M-Bus nirkabel kanggo aplikasi maca meter ing Eropa.
- PHY— Physical Layer nemtokake cara bit lan byte data dikode lan dikirim.
- API—Antarmuka Programmer Aplikasi.
- LINK-Data Link Layer nemtokake cara pamblokiran lan pigura ditularake.
- CRC—Siklik Redundansi Priksa.
- FSK—Frekuensi Shift Keying.
- Chip—Unit paling cilik saka data sing dikirim. Siji bit data dienkode minangka pirang-pirang chip.
- Modul—Sumber kode AC .c file.
Deskripsi Fungsional M-Bus PHY
Urutan Pambuka
Urutan Preamble sing ditemtokake dening spesifikasi M-bus yaiku nomer integer sing gantian nol lan siji. Siji ditetepake minangka frekuensi sing luwih dhuwur, lan nol ditetepake minangka frekuensi sing luwih murah.
nx (01)
Pilihan Preamble kanggo Si443x minangka nomer integer saka nibbles sing dumadi saka gantian lan nul.
nx (1010)
A preamble karo liyane anjog siji ora bakal dadi masalah, nanging, banjur, tembung sinkronisasi lan payload bakal misaligned dening siji dicokot.
Solusi kasebut yaiku ngowahi kabeh paket kanthi nyetel bit mesin ing register Modulation Control 2 (0x71). Iki bakal ngowahi preamble, tembung sink, lan data TX/RX. Akibaté, data kudu dibalik nalika nulis data TX utawa maca data RX. Uga, tembung sinkronisasi diwalik sadurunge nulis menyang registrasi Tembung Sinkronisasi Si443x.
Tembung Sinkronisasi
Tembung sinkronisasi sing dibutuhake dening EN-13757-4 yaiku 18 chip kanggo Mode S lan Mode R utawa 10 chip kanggo Model T. Tembung sinkronisasi kanggo Si443x yaiku 1 nganti 4 bait. Nanging, amarga tembung sinkronisasi tansah didhisiki dening pambuka, enem bit pungkasan saka pambuka bisa dianggep minangka bagéan saka tembung sinkronisasi; dadi, tembung sinkronisasi pisanan wis empuk dening telung repetitions saka nul ngiring dening siji. Tembung sinkronisasi dijangkepi sadurunge nulis menyang register Si443x.
Tabel 1. Tembung Sinkronisasi kanggo Mode S lan Mode R
EN 13757-4 | 00 | 01110110 | 10010110 | binar |
00 | 76 | 96 | hex | |
pad karo (01) x 3 | 01010100 | 01110110 | 10010110 | binar |
54 | 76 | 96 | hex | |
nglengkapi | 10101011 | 10001001 | 01101001 | binar |
AB | 89 | 69 | hex |
Tabel 2. Tembung Sinkronisasi kanggo Mode T Meter menyang Liyane
SYNCH | SYNCH | SYNCH |
TEMBUNG | TEMBUNG | TEMBUNG |
3 | 2 | 1 |
Ngirim Preamble Length
Preamble minimal ditemtokake kanggo patang mode operasi sing beda. Ditrima yen preamble luwih dawa tinimbang sing ditemtokake. Ngurangi enem Kripik kanggo preamble menehi jumlah minimal Kripik kanggo preamble Si443x. Implementasine nambahake rong preamble ekstra ing kabeh mode preamble singkat kanggo nambah deteksi lan interoperabilitas preamble. Preamble ing Mode S karo preamble dawa banget dawa; dadi, preamble minimal digunakake. Dawane preamble ing nibbles ditulis ing register Preamble Length (0x34). Register dawa preamble nemtokake preamble nalika transmisi mung. Spesifikasi minimal lan setelan dawa preamble diringkes ing Tabel 3.
Tabel 3. Transmit Preamble Length
EN-13757-4 minimal |
Si443x Pambuka Set ing |
Sinkronisasi Tembung |
Total | ekstra | |||
nx (01) | kripik | nibbles | kripik | kripik | kripik | kripik | |
Mode S pambuka singkat | 15 | 30 | 8 | 32 | 6 | 38 | 8 |
Mode S preamble dawa | 279 | 558 | 138 | 552 | 6 | 558 | 0 |
Mode T (meter-liyane) | 19 | 38 | 10 | 40 | 6 | 46 | 8 |
Mode R | 39 | 78 | 20 | 80 | 6 | 86 | 8 |
Preamble minimal kanggo resepsi ditemtokake dening register Preamble Detection Control (0x35). Sawise ditampa, jumlah bit ing tembung sinkronisasi kudu dikurangi saka preamble minimal sing ditemtokake kanggo nemtokake preamble sing bisa digunakake. Wektu penyelesaian minimal panrima yaiku 16-chip yen AFC diaktifake utawa 8-chip yen AFC dipateni. Wektu netepake panrima uga dikurangi saka preamble sing bisa digunakake kanggo nemtokake setelan minimal kanggo ndhaptar Preamble Detection Control.
Kemungkinan preamble palsu gumantung ing setelan saka ndhaftar Preamble Detection Control. Setelan singkat 8-Kripik bisa nyebabake preamble palsu dideteksi saben sawetara detik. Setelan 20chips sing disaranake ndadekake deteksi preamble palsu minangka acara sing ora mungkin. Dawane preamble kanggo Mode R lan Mode SL cukup dawa kanggo setelan sing disaranake kanggo digunakake.
Ana sethithik banget entuk manfaat kanggo nggawe preamble ndeteksi luwih saka 20 Kripik.
AFC dipatèni kanggo Model S karo preamble singkat lan Model T. Iki nyuda wektu panrima panrima lan ngidini setelan deteksi preamble maneh. Kanthi AFC dipatèni, Mode T bisa nggunakake setelan dianjurake 20 Kripik. Setelan 4 nibbles utawa 20 Kripik digunakake kanggo Model S karo preamble singkat. Iki ndadekake kemungkinan deteksi preamble palsu rada luwih dhuwur kanggo model iki.
Tabel 4. Deteksi Pambuka
EN-13757-4 minimal |
Sinkronisasi Tembung |
bisa digunakake pambuka |
RX Setel | Ndeteksi min |
Si443x Pambuka Setelan Deteksi |
|||
nx (01) | kripik | kripik | kripik | kripik | kripik | nibbles | kripik | |
Mode S pambuka singkat | 15 | 30 | 6 | 24 | 8* | 16 | 4 | 16 |
Model S preamble dawa | 279 | 558 | 6 | 552 | 16 | 536 | 5 | 20 |
Model T (meter-liyane) | 19 | 38 | 6 | 32 | 8* | 24 | 5 | 20 |
Mode R | 39 | 78 | 6 | 72 | 16 | 56 | 5 | 20 |
* Cathetan: AFC dipatèni |
Panrima dikonfigurasi kanggo interoperate karo pemancar nggunakake preamble sing ditemtokake minimal. Iki njamin panrima bakal interoperate karo sembarang pemancar M-bus-cecek.
Spesifikasi Wireless M-Bus mbutuhake preamble sing dawa banget kanggo Mode S1 paling sethithik 558 chip. Iki bakal mbutuhake udakara 17 ms mung kanggo ngirim preamble. Si443x ora mbutuhake preamble dawa lan ora entuk manfaat saka preamble dawa. Nalika preamble dawa kacathet minangka opsional kanggo Mode S2, ora ana alesan kanggo nggunakake preamble dawa karo Si443x. Yen dikarepake komunikasi siji-arah, Mode T1 bakal nyedhiyakake preamble sing luwih cendhek, tingkat data sing luwih dhuwur, lan umur baterei sing luwih dawa. Yen komunikasi rong arah nggunakake Mode S2 dibutuhake, preamble singkat dianjurake.
Elinga yen ambang deteksi kanggo Model S kanthi preamble dawa luwih dawa tinimbang jumlah preamble nibbles sing ditularake kanggo Model S kanthi preamble cendhak. Iki tegese panrima Mode S preamble dawa ora bakal ndeteksi preamble saka pemancar Mode S preamble cendhak. Iki perlu yen panrima Mode S preamble dawa kanggo nampa keuntungan saka preamble dawa.
Elinga yen panrima Mode S singkat bakal ndeteksi preamble lan nampa paket saka loro Preamble Mode S.
pemancar lan pemancar Mode S dawa-preamble; dadi, umume, maca meter kudu nggunakake konfigurasi panrima Mode S preamble singkat.
Encoding / Decoding
Spesifikasi Wireless M-bus mbutuhake rong cara enkoding sing beda. Encoding Manchester digunakake kanggo Mode S lan Mode R. Encoding Manchester uga digunakake kanggo link liyane-kanggo-meter ing Model T. Link meter-ka-liyane Model T nggunakake 3 saka 6 enkoding.
1. Manchester Encoded / Dekoding
Enkoding Manchester umume historis ing sistem RF kanggo nyedhiyakake pemulihan jam lan pelacakan jam kanthi nggunakake modem sing prasaja lan murah. Nanging, radio kinerja dhuwur modern kaya Si443x ora mbutuhake enkoding Manchester. Enkoding Manchester didhukung utamane kanggo kompatibilitas karo standar sing ana, nanging tingkat data kanggo Si443x kanthi efektif tikel kaping pindho nalika ora nggunakake enkoding Manchester.
Si443x ndhukung enkoding Manchester lan dekoding kabeh paket ing hardware. Sayange, tembung sinkronisasi ora dikode Manchester. Urutan Manchester sing ora bener sengaja dipilih kanggo tembung sinkronisasi. Iki ndadekake Manchester enkoding ora kompatibel karo paling radio ana, kalebu Si443x. Akibaté, enkoding lan dekoding Manchester kudu ditindakake dening MCU. Saben bait ing data sing ora dikodekan dumadi saka wolung bit data. Nggunakake enkoding Manchester, saben bit data dienkode dadi simbol loro-chip. Wiwit data sing dienkode kudu ditulis menyang radio FIFO wolung chip sekaligus, siji nibble data dienkode lan ditulis menyang FIFO sekaligus.
Tabel 5. Manchester Enkoding
data | Sapi12 | 0x34 | bita | ||
Sapi1 | 0x2 | 0x3 | 0x4 | nibbles | |
1 | 10 | 11 | 100 | binar | |
chip | 10101001 | 10100110 | 10100101 | 10011010 | binar |
FIFO | OxA9 | OxA6 | OxA5 | Lembu9A | hex |
Saben bait sing bakal dikirim dilewati siji-sijine menyang fungsi encode byte. Fungsi encode byte bakal nelpon fungsi nibble encode kaping pindho, pisanan kanggo nibble paling penting lan banjur kanggo nibble paling ora signifikan.
Enkoding Manchester ing piranti lunak ora angel. Miwiti saka bit paling pinunjul, siji dienkode minangka "01" urutan chip. A nul dienkode minangka "10" urutan chip. Iki bisa gampang ditindakake kanthi nggunakake daur ulang lan ngganti rong bit kanggo saben simbol. Nanging, iku luwih cepet mung nggunakake prasaja 16 entri katon-up Tabel kanggo saben nibble. Encode Manchester nibble fungsi ngode nibble data banjur nulis menyang FIFO. Kripik kasebut dibalik sadurunge nulis menyang FIFO kanggo nyathet syarat pambuka sing dibalik.
Nalika nampa, saben bait ing FIFO kasusun saka wolung Kripik lan decoded menyang siji nibble data. Fungsi pamblokiran maca maca siji bait saka FIFO lan nelpon fungsi decode bait. Kripik sing kuwalik sawise maca saka FIFO kanggo akun syarat preamble kuwalik. Saben bait saka Kripik sing dienkode Manchester didekode dadi nibble data. The nibble decoded ditulis menyang RX buffer nggunakake nulis nibble RX fungsi buffer.
Elinga yen loro dienkode lan dekoding dileksanakake siji nibble data ing wektu ing fly. Encoding menyang buffer mbutuhake buffer tambahan kaping pindho ukuran data sing ora dikode. Encoding lan dekoding luwih cepet tinimbang tingkat data sing paling cepet sing didhukung (100 k chip per detik). Wiwit Si443x ndhukung kaping-byte maca lan nulis kanggo FIFO, ana nduwur sirah cilik ing nggunakake mung siji-bait maca lan nulis. Overhead kira-kira 10 µs kanggo 100 chip sing dienkode. Keuntungan kasebut yaiku tabungan RAM 512 bait.
2. Telung Saka Enem Enkode Dekoding
Cara enkoding Three-out-of-Six sing ditemtokake ing EN-13757-4 uga dileksanakake ing perangkat kukuh ing MCU. Enkoding iki digunakake kanggo mode T kacepetan dhuwur (100 k per detik) saka meter menyang liyane. Model T nyedhiyakake wektu transmisi paling cendhak lan umur baterei paling dawa kanggo meter nirkabel.
Saben bait data sing bakal dikirim dipérang dadi rong nibbles. Nibble sing paling penting dienkode lan dikirim dhisik. Maneh, iki dileksanakake nggunakake fungsi encode byte sing nelpon fungsi nibble encode kaping pindho.
Saben nibble data dienkode menyang simbol enem-chip. Urutan simbol enem chip kudu ditulis menyang FIFO 8chip.
Sajrone enkoding, rong bita data dienkode dadi papat nibbles. Saben nibble minangka simbol 6-chip. Four simbol 6chip dikumpulake minangka telung bait.
Tabel 6. Telu Saka Enem Enkode
data | 0x12 | 0x34 | bita | ||||
Sapi1 | 0x2 | 0x3 | 0x4 | nibbles | |||
chip | 15 | 16 | 13 | 34 | oktal | ||
1101 | 1110 | 1011 | 11100 | binar | |||
FIFO | 110100 | 11100010 | 11011100 | binar | |||
0x34 | OxE2 | OxDC | hex |
Ing piranti lunak, enkoding telu-saka-enem dileksanakake nggunakake telung fungsi nested. Fungsi encode byte bakal nelpon fungsi nibble encode kaping pindho. Fungsi nibble encode nggunakake Tabel dipikir-munggah kanggo simbol enem-chip lan nulis simbol kanggo Shift Tiga saking Six fungsi. Fungsi iki ngleksanakake register shift 16-chip ing piranti lunak. Simbol kasebut ditulis menyang byte paling ora signifikan saka register shift. Register dipindhah ngiwa kaping pindho. Iki diulang kaping telu. Nalika bait lengkap ana ing bait ndhuwur register shift, iku kuwalik lan ditulis menyang FIFO.
Wiwit saben bait data dienkode minangka siji lan setengah bait dienkode, iku penting kanggo mbusak register shift pisanan supaya bait pisanan dienkode bener. Yen dawa paket minangka nomer ganjil, sawise ngodhe kabeh bita, isih ana siji nibble sing ditinggalake ing register shift. Iki ditangani nganggo postamble kaya sing diterangake ing bagean sabanjure.
Dekoding telu saka enem dienkode minangka prosedur mbalikke. Nalika dekoding, telung bait sing dienkode didekode dadi rong bita data. Register shift piranti lunak digunakake maneh kanggo nglumpukake bita data decoded. Tabel inverse look-up 64-entri digunakake kanggo dekoding. Iki nggunakake luwih sithik siklus nanging luwih akeh memori kode. Nelusuri 16-entri katon-up Tabel kanggo simbol cocog njupuk banget maneh.
Postamble
Spesifikasi Wireless M-bus nduweni syarat khusus kanggo postamble utawa trailer. Kanggo kabeh mode, minimal loro Kripik, lan maksimum wolung Kripik. Wiwit unit atom minimal kanggo FIFO siji bait, trailer 8-chip digunakake kanggo Mode S lan Mode R. Mode T postamble wolung Kripik yen dawa paket malah utawa papat Kripik yen dawa paket aneh. Postamble papat-chip kanggo dawa paket aneh meets syarat duwe paling loro Kripik gantian.
Tabel 7. Panjang Postamble
Panjang Postamble (chip) | |||||
min | maks | Implementasine | urutan chip | ||
Mode S | 2 | 8 | 8 | 1010101 | |
Mode T | 2 | 8 | 4 | (aneh) | 101 |
8 | (malah) | 1010101 | |||
Mode R | 2 | 8 | 8 | 1010101 |
Paket Handler
Handler paket ing Si443x bisa digunakake ing mode jembar paket variabel utawa mode jembar paket tetep. Mode jembar paket variabel mbutuhake byte dawa paket sawise tembung sinkronisasi lan bait header opsional. Sawise ditampa, Radio bakal nggunakake bait dawa kanggo nemtokake pungkasan paket sing bener. Nalika transmisi, radio bakal nglebokake kolom dawa sawise bait header.
Lapangan L kanggo protokol M-bus nirkabel ora bisa digunakake kanggo lapangan dawa Si443x. Pisanan, kolom L dudu dawa paket sing nyata. Iki minangka jumlah bait payload lapisan link sing ora kalebu bita CRC utawa enkoding. Sareh, ing L -field dhewe dienkode nggunakake salah siji Manchester enkoding utawa Telu metu Enem enkoding kanggo Mode T meter kanggo liyane.
Implementasine nggunakake handler paket ing mode jembar paket tetep kanggo transmisi lan resepsi. Sawise transmisi, lapisan PHY bakal maca kolom L ing buffer ngirim lan ngetung jumlah byte sing dienkode, kalebu postamble. Jumlah total byte sing dienkode sing bakal dikirim ditulis menyang register Packet Length (0x3E).
Sawise reception, loro bait dienkode pisanan decoded, lan L-lapangan ditulis menyang buffer nampa. L-lapangan digunakake kanggo ngetung jumlah bita dienkode bakal ditampa. Jumlah bita sing dienkode sing bakal ditampa banjur ditulis menyang register Packet Length (0x3E). Postamble dibuwang.
MCU kudu decode kolom-L, ngetung jumlah bita sing dienkode, lan nulis nilai kasebut ing daftar Panjang Paket sadurunge dawa paket sing paling cendhak ditampa. Lapangan L paling cendhak sing diidini kanggo lapisan PHY yaiku 9, menehi 12 bita sing ora dikode. Iki menehi 18 bita dienkode kanggo Model T. Rong bait pisanan wis decoded. Mangkono, register Length paket kudu dianyari ing kaping 16-bait ing 100 kbps utawa 1.28 milliseconds. Iki ora masalah kanggo 8051 mlaku ing 20 MIPS.
Jumlah bita sing bakal ditampa ora kalebu postamble, kajaba kanggo papat-chip postamble digunakake kanggo paket Mode T karo dawa paket aneh. Mangkono, panrima ora mbutuhake postamble a, kajaba kanggo Model T paket dawa aneh. Postamble iki mung perlu kanggo menehi nomer integer bita dienkode. Isi postamble ora digatekake; dadi, yen postamble ora ditularaké, papat Kripik gangguan bakal ditampa lan digatèkaké. Wiwit jumlah total bait sing dienkode diwatesi kanggo 255 (0xFF), implementasine mbatesi lapangan L maksimum kanggo macem-macem mode.
Tabel 8. Watesan Ukuran Paket
dienkode | decoded | M-Bus | ||||
bita | bita | L-Lapangan | ||||
dec | hex | dec | hex | dec | hex | |
Mode S | 255 | FF | 127 | 7 F | 110 | 6E |
Mode T (meter-liyane) | 255 | FF | 169 | A9 | 148 | 94 |
Mode R | 255 | FF | 127 | 7 F | 110 | 6E |
Watesan iki biasane luwih dhuwur tinimbang kasus panggunaan umum kanggo meter nirkabel. Dawane paket kudu dijaga cilik kanggo entuk umur baterei sing paling apik.
Kajaba iku, pangguna bisa nemtokake lapangan L maksimum sing kudu ditampa (USER_RX_MAX_L_FIELD). Iki nemtokake ukuran sing dibutuhake kanggo buffer nampa (USER_RX_BUFFER_SIZE).
Ndhukung maksimum L-lapangan 255 mbutuhake buffer nampa 290 bait lan maksimum 581 Manchester dienkode bait. Pengendali paket kudu dipateni lan daftar Panjang Paket ora bisa digunakake ing kasus kasebut. Iki bisa ditindakake, nanging luwih trep nggunakake panangan paket, yen bisa.
Panggunaan FIFO
Si4431 nyedhiyakake FIFO bita 64 kanggo ngirim lan nampa. Amarga jumlah bait sing dienkode yaiku 255, kabeh paket sing dienkode bisa uga ora pas ing buffer 64-bait.
Transmisi
Nalika transmisi, jumlah total byte sing dienkode diitung. Yen jumlah total bait sing dienkode, kalebu postamble, kurang saka 64 bait, kabeh paket ditulis menyang FIFO lan mung interupsi sing dikirim paket sing diaktifake. Paling paket singkat bakal dikirim ing siji transfer FIFO.
Yen jumlah byte sing dienkode luwih saka 64, sawetara transfer FIFO bakal dibutuhake kanggo ngirim paket kasebut. 64 byte pisanan ditulis menyang FIFO. Packet Sent lan TX FIFO Interrupts Meh Kosong diaktifake. Ambang TX FIFO Meh Kosong disetel dadi 16 bita (25%). Ing saben acara IRQ, status 2 register diwaca. Bit Packet Sent dicenthang dhisik, lan, yen paket kasebut durung dikirim kanthi lengkap, sabanjure 48 byte data sing dienkode ditulis menyang FIFO. Iki terus nganti kabeh bait sing dienkode wis ditulis lan interrupt Packet Sent ana.
1. Resepsi
Ing resepsi, wiwitane mung interrupt Word Sync sing diaktifake. Sawise nampa tembung sinkronisasi, interrupt tembung sinkronisasi dipateni lan interrupt FIFO Almost Full diaktifake. Ambang FIFO meh kebak wiwitane disetel dadi 2 bita. Pisanan FIFO meh Full interrupt digunakake kanggo ngerti nalika loro bita dawa wis ditampa. Sawise dawa wis ditampa, dawa decoded lan jumlah bita dienkode diwilang. Ambang RX FIFO meh Full banjur disetel dadi 48 bita. RX FIFO meh kebak lan interrupts Paket Valid diaktifake. Sawise acara IRQ sabanjure, status 1 register diwaca. Pisanan, bit Paket Valid wis dicenthang, lan banjur FIFO meh Full bit dicenthang. Yen mung RX FIFO Meh Full bit disetel, sabanjuré 48 bait diwaca saka FIFO. Yen bit paket sing bener disetel, sisa paket diwaca saka FIFO. MCU nglacak jumlah bait sing wis diwaca lan mandheg maca sawise bait pungkasan.
Lapisan Link Data
Modul lapisan link data ngetrapake lapisan link sing cocog karo 13757-4:2005. Lapisan link data (LINK) nyedhiyakake antarmuka antarane lapisan fisik (PHY) lan lapisan aplikasi (AL).
Lapisan Data Link nindakake fungsi ing ngisor iki:
- Nyedhiyani fungsi sing nransfer data antarane PHY lan AL
- Ngasilake CRC kanggo pesen metu
- Ndeteksi kesalahan CRC ing pesen sing mlebu
- Nyedhiyakake alamat fisik
- Ngakoni transfer kanggo mode komunikasi bidirectional
- Bingkai data bit
- Ndeteksi kesalahan framing ing pesen sing mlebu
Link Layer Frame Format
Format pigura M-Bus Nirkabel sing digunakake ing EN 13757-4:2005 asale saka format bingkai FT3 (Tipe Bingkai 3) saka IEC60870-5-2. Pigura kasusun saka siji utawa luwih pamblokiran data. Saben blok kalebu kolom CRC 16-bit. Bock pisanan minangka blok kanthi dawa tetep 12 bita sing kalebu lapangan L, lapangan C, lapangan M, lan Bidang A.
- L-Lapangan
L-lapangan punika dawa payload data lapisan Link. Iki ora kalebu lapangan L dhewe utawa bait CRC. Iku kalebu L-field, C-field, M-field, lan A-Field. Iki minangka bagean saka muatan PHY.
Amarga jumlah bait sing dienkode diwatesi kanggo 255 bait, nilai maksimum sing didhukung kanggo lapangan M yaiku 110 bita kanggo data sing dienkode Manchester lan 148 bita kanggo data sing dienkode Mode T Three-Out-of-Six.
Lapisan Link tanggung jawab kanggo ngitung lapangan L ing transmisi. Link-lapisan bakal nggunakake L-lapangan ing reception.
Wigati L-lapangan ora nuduhake dawa mbayari PHY utawa nomer bita dienkode. Sawise transmisi, PHY bakal ngetung dawa muatan PHY lan jumlah byte sing dienkode. Sawise nampa, PHY bakal decode lapangan L lan ngetung jumlah bita kanggo decode. - Lapangan C
C-field minangka kolom kontrol pigura. Kolom iki ngenali jinis pigura lan digunakake kanggo primitif layanan exchange data link. Kolom C nuduhake jinis pigura - KIRIM, KONFIRMASI, REQUEST, utawa RESPOND. Ing kasus KIRIM lan REQUEST pigura, C-bidang nuduhake apa KONFIRMASI utawa RESPOND samesthine.
Nalika nggunakake fungsi Link TX dhasar, sembarang nilai C bisa digunakake. Nalika nggunakake Link Service Primitives, kolom C diisi kanthi otomatis miturut EN 13757-4:2005. - M-Lapangan
M-lapangan minangka kode pabrikan. Produsen bisa njaluk kode telung huruf saka ing ngisor iki web alamat: http://www.dlms.com/flag/INDEX.HTM Saben karakter kode telung huruf dienkode dadi limang bit. Kode 5-bit bisa dipikolehi kanthi njupuk kode ASCII lan nyuda 0x40 ("A"). Telu kode 5-bit digabung dadi 15-bit. Bit sing paling penting yaiku nol. - A-Lapangan
Kolom alamat minangka alamat 6-bait sing unik kanggo saben piranti. Alamat unik kudu diwenehake dening pabrikan. Tanggung jawab saben pabrikan kanggo mesthekake yen saben piranti duwe alamat 6-bait sing unik. Alamat kanggo Kirim lan Panjaluk pigura minangka alamat dhewe saka meter utawa piranti liyane. Bingkai data konfirmasi lan tanggapan dikirim nggunakake alamat piranti asale. - CI-Bidang
Kolom CI minangka header aplikasi lan nemtokake jinis data ing muatan data aplikasi. Nalika EN13757-4: 2005 nemtokake jumlah winates saka nilai, Link Service Primitives bakal ngidini sembarang nilai digunakake. - CRC
CRC ditemtokake ing EN13757-4:2005.
Polinomial CRC yaiku:
X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
Elinga yen CRC M-Bus diwilang ing saben blok 16-bait. Asilé yaiku saben 16 bita data mbutuhake 18 bita kanggo dikirim,
Informasi Tambahan
Kanggo informasi tambahan babagan Implementasi Layer Link, deleng "AN452: Wireless M-Bus Stack Programmers Guide".
Manajemen daya
Gambar 2 nuduhake timeline manajemen daya kanggo ex meterample nggunakake Mode T1.
MCU kudu ing mode Turu yen bisa kanggo ngirit energi. Ing mantan ikiample, MCU turu nalika RTC mlaku, nalika nunggu ing kristal radio wiwitan, lan nalika ngirim saka FIFO. MCU bakal tangi saka sinyal EZRadioPRO IRQ sing disambungake menyang wake-up Port Match.
Nalika ngirim pesen luwih saka siji blok, MCU kudu tangi kanggo ngisi FIFO (adhedhasar FIFO interrupt meh kosong) banjur turu maneh.
MCU kudu ing mode Idle mlaku saka osilator daya kurang utawa osilator burst-mode nalika maca saka ADC. ADC mbutuhake jam SAR.
Yen ora digunakake, EZRadioPRO kudu ana ing mode Mati kanthi pin SDN didorong dhuwur. Iki mbutuhake sambungan hardwired menyang MCU. Register EZ Radio Pro ora disimpen ing mode mati; dadi, EZRadioPro wis initialized ing saben interval RTC. Miwiti Radio mbutuhake kurang saka 100 µs lan ngirit 400 nA. Iki nyebabake penghematan energi 10 µJ, adhedhasar interval 10 detik.
Kristal EZRadioPRO mbutuhake udakara 16 ms kanggo POR. Iki cukup suwe kanggo ngetung CRC kira-kira wolung blok. MCU bakal turu maneh yen ngrampungake kabeh CRC sadurunge kristal wis stabil. Yen enkripsi dibutuhake, uga bisa diwiwiti nalika nunggu ing osilator kristal.
MCU kudu mlaku ing 20 MHz nggunakake osilator kurang daya kanggo paling tugas. Tugas sing mbutuhake wektu entek sing tepat kudu nggunakake osilator presisi lan mode nganggur tinimbang mode turu. RTC nyedhiyakake resolusi sing cukup kanggo umume tugas. Garis wektu manajemen daya kanggo T2 meter exampAplikasi ditampilake ing Gambar 3.
Implementasi transceiver kudu dioptimalake kanggo kasus normal nalika meter tangi lan ora ana sing maca. Minimal / wektu entek ACK maksimum cukup dawa supaya bisa nggunakake C8051F930 RTC lan sijine MCU menyang mode turu.
Opsi mbangun diwenehake kanggo pamaca listrik utawa USB sing ora perlu nggunakake mode turu. Mode nganggur bakal digunakake tinimbang turu supaya USB lan UART bisa ngganggu MCU.
Studio Kesederhanaan
Akses siji-klik menyang MCU lan piranti nirkabel, dokumentasi, piranti lunak, perpustakaan kode sumber & liya-liyane. Kasedhiya kanggo Windows,
Mac lan Linux!
![]() |
![]() |
![]() |
![]() |
Portofolio IoT www.silabs.com/IoT |
SW/HW www.silabs.com/simplicity |
Kualitas www.silabs.com/quality |
Dhukungan lan Komunitas community.silabs.com |
Penafian
Silicon Labs arep menehi dokumentasi paling anyar, akurat, lan jero kanggo kabeh periferal lan modul sing kasedhiya kanggo para pelaksana sistem lan piranti lunak sing nggunakake utawa arep nggunakake produk Silicon Labs. Data karakterisasi, modul lan peripheral sing kasedhiya, ukuran memori lan alamat memori nuduhake saben piranti tartamtu, lan paramèter "Khas" sing kasedhiya bisa beda-beda ing macem-macem aplikasi. Aplikasi exampsing diterangake ing kene mung kanggo ilustrasi. Silicon Labs nduweni hak kanggo nggawe owah-owahan tanpa kabar luwih lanjut lan watesan kanggo informasi produk, spesifikasi, lan katrangan ing kene, lan ora menehi jaminan babagan akurasi utawa kelengkapan informasi sing kalebu. Silicon Labs ora duwe tanggung jawab kanggo akibat saka panggunaan informasi sing diwenehake ing kene. Dokumen iki ora nyatakake utawa nyatakake lisensi hak cipta sing diwenehake ing kene kanggo ngrancang utawa nggawe sirkuit terpadu. Produk kasebut ora dirancang utawa sah kanggo digunakake ing Sistem Dhukungan Urip tanpa idin tinulis khusus saka Silicon Labs. "Sistem Dhukungan Urip" yaiku produk utawa sistem sing dimaksudake kanggo ndhukung utawa nylametake urip lan/utawa kesehatan, sing, yen gagal, bisa uga bisa nyebabake ciloko utawa pati pribadi sing signifikan. Produk Silicon Labs ora dirancang utawa sah kanggo aplikasi militer. Produk Silicon Labs ora bakal digunakake ing gaman pemusnah massal kalebu (nanging ora winates ing) senjata nuklir, biologi, utawa kimia, utawa misil sing bisa ngirim senjata kasebut.
Informasi merek dagang
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, lan logo Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logo lan kombinasi, "mikrokontroler paling ramah energi ing donya", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress®, lan liya-liyane iku merek dagang utawa merek dagang kadhaptar saka Silicon Labs. ARM, CORTEX, Cortex-M3, lan jempol iku merek dagang utawa merek dagang kadhaptar saka ARM Holdings. Keil minangka merek dagang kadhaptar saka ARM Limited. Kabeh produk utawa jeneng merek liyane sing kasebut ing kene minangka merek dagang saka sing duwe.
Silicon Laboratories Inc. Sajarah rega saham
400 Kulon Cesar Chavez
Austin, TX 78701
USA
http://www.silabs.com
Dokumen / Sumber Daya
![]() |
SILICON LABS Wireless M-BUS Implementasi Perangkat Lunak AN451 [pdf] Pandhuan pangguna SILICON LABS, C8051, MCU, lan, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Software, Implementasi, AN451 |