logo SILICON LABS

AN451
WIRELESS M-BUS SOFTWARE IMPLEMENTASI

Bubuka

Catetan aplikasi ieu ngajelaskeun palaksanaan Silicon Labs Wireless M-Bus nganggo Silicon Labs C8051 MCU sareng EZRadioPRO®. Wireless M-bus nyaéta Standar Éropa pikeun aplikasi maca méteran nganggo pita frékuénsi 868 MHz.

Tumpukan Lapisan

Wireless M-Bus ngagunakeun modél IEC 3-lapisan, anu mangrupa sawaréh ti modél OSI 7-lapisan (tingali Gambar 1).

SILICON LABS Wireless M-BUS Software Palaksanaan AN451Lapisan Fisik (PHY) ditetepkeun dina EN 13757-4. Lapisan fisik ngahartikeun kumaha bit-bit disandikeun sareng dikirimkeun, karakteristik modem RF (laju chip, mukadimah, sareng kecap sinkronisasi), sareng parameter RF (modulasi, frekuensi pusat, sareng simpangan frekuensi).
Lapisan PHY dilaksanakeun nganggo kombinasi hardware sareng firmware. EZRadioPRO ngalaksanakeun sadaya fungsi RF sareng modem. EZRadioPRO dipaké dina modeu FIFO jeung pakét Handler. The MbusPhy.c modul nyadiakeun panganteur SPI, encoding / decoding, blok baca / nulis, sarta penanganan pakét sarta ngatur nagara transceiver.
Lapisan link M-Bus Data dilaksanakeun dina modul MbusLink.c. Antarbeungeut Programming Aplikasi M-Bus diwangun ku fungsi umum anu tiasa disebat tina lapisan aplikasi dina utas utama. Modul MbusLink ogé nerapkeun Lapisan Patalina Data. Lapisan tautan Data bakal pormat sareng nyalin data tina panyangga aplikasi TX ka panyangga MbusPhy TX, nambihan header sareng CRC anu diperyogikeun.
Lapisan Aplikasi sorangan teu bagian tina firmware M-beus. Lapisan aplikasi ngahartikeun kumaha rupa-rupa data bakal diformat pikeun pangiriman. Kaseueuran meter ngan ukur kedah ngirimkeun hiji atanapi dua jinis data. Nambahkeun jumlah kode anu ageung pikeun nampung data naon waé kana méteran bakal nambihan kode anu teu dipikabutuh sareng biaya kana méteran. Bisa jadi meujeuhna pikeun nerapkeun perpustakaan atawa lulugu file kalawan daptar lengkep tipe data. Nanging, seuseueurna palanggan pangukuran terang persis jinis data anu kedah dikirimkeun sareng tiasa ngarujuk kana standar pikeun detil pormat. Pamaca universal atanapi sniffer tiasa nerapkeun set lengkep jinis data aplikasi dina GUI PC. Kusabab ieu, lapisan aplikasi dilaksanakeun nganggo example aplikasi pikeun méter sarta maca.

Standar Diperlukeun
  1. EN 13757-4
    EN 13757-4
    Sistem komunikasi pikeun méter sareng bacaan jarak jauh méter
    Bagian 4: Readout méter nirkabel
    Bacaan radiometer pikeun operasi dina pita 868 MHz ka 870 MHz SRD
  2. EN 13757-3
    Sistem komunikasi pikeun méter sareng bacaan jarak jauh méter
    Bagian 3: Lapisan aplikasi khusus
  3. IEC 60870-2-1:1992
    Alat sareng sistem telekontrol
    Bagian 5: Protokol pangiriman
    Bagian 1: Prosedur pangiriman link
  4. IEC 60870-1-1:1990
    Alat sareng sistem telekontrol
    Bagian 5: Protokol pangiriman
    Bagéan 1: Format pigura transmisi
Watesan
  • M-Beus—M-Bus mangrupikeun standar kabel pikeun maca méter di Éropa.
  • Wireless M-Beus—M-Bus nirkabel pikeun aplikasi maca méter di Éropa.
  • PHY— Physical Layer netepkeun kumaha bit sareng bait data disandikeun sareng dikirimkeun.
  • API—Antarbeungeut Programmer Aplikasi.
  • LINK-Lapisan Patalina Data ngahartikeun kumaha blok sareng pigura dikirimkeun.
  • CRC—Cék Redundansi Siklik.
  • FSK—Frékuénsi Shift Keying.
  • Chip—Unit pangleutikna data dikirimkeun. Hiji bit data disandikeun salaku sababaraha chip.
  • Modul—Sumber kode AC .c file.

M-Bus PHY Fungsional Katerangan

Runtuyan Mukadimah

Runtuyan Mukadimah dieusian ku spésifikasi M-beus mangrupa angka integer bolak nol jeung hiji. Hiji diartikeun frékuénsi luhur, sarta enol diartikeun frékuénsi handap.
nx (01)
Pilihan Mukadimah pikeun Si443x mangrupa jumlah integer tina nibbles diwangun ku alik jeung nol.
nx (1010)
A preamble kalawan hiji tambahan ngarah moal jadi masalah, tapi, lajeng, kecap sinkronisasi jeung payload bakal misaligned ku hiji bit.
Solusina nyaéta ngabalikeun sadayana pakét ku netepkeun bit mesin dina register Modulation Control 2 (0x71). Ieu bakal ngabalikeun bubuka, kecap singkronisasi, sareng data TX/RX. Salaku konsekuensi, data kudu inverted nalika nulis data TX atawa maca data RX. Ogé, kecap sinkronisasi dibalikkeun sateuacan nyerat kana register Si443x Synchronization Word.

Kecap Sinkronisasi

Kecap sinkronisasi diperlukeun ku EN-13757-4 boh 18 chip pikeun Mode S jeung Mode R atawa 10 chip pikeun Modél T. Kecap sinkronisasi pikeun Si443x nyaeta 1 ka 4 bait. Sanajan kitu, ku sabab kecap sinkronisasi sok dipiheulaan ku bubuka, genep bit panungtungan tina bubuka bisa dianggap bagian tina kecap sinkronisasi; janten, kecap sinkronisasi munggaran ieu padded ku tilu pangulangan enol hiji dituturkeun ku hiji. Kecap sinkronisasi ieu complemented saméméh nulis ka registers Si443x.
Tabél 1. Kecap Sinkronisasi pikeun Mode S jeung Mode R

EN 13757-4 00 01110110 10010110 binér
00 76 96 hex
pad kalayan (01) x 3 01010100 01110110 10010110 binér
54 76 96 hex
pelengkap 10101011 10001001 01101001 binér
AB 89 69 hex

meja 2. Sinkronisasi Kecap pikeun Mode T Méter ka lianna

SYNCH SYNCH SYNCH
KECAP KECAP KECAP
3 2 1
Nepikeun Preamble Length

Mukadimah minimum dieusian pikeun opat modus operasi béda. Ieu bisa ditarima mun boga mukadimah leuwih panjang batan dieusian. Ngurangan genep chip pikeun mukadimah masihan jumlah minimum chip pikeun mukadimah Si443x. Implementasina nambihan dua nibbles tambahan tina mukadimah dina sadaya mode mukadimah pondok pikeun ningkatkeun deteksi mukadimah sareng interoperabilitas. Mukadimah dina Mode S kalawan mukadimah panjang pisan panjang; janten, bubuka minimum dipaké. Panjang mukadimah dina nibbles ditulis kana daftar Preamble Length (0x34). Daptar preamble panjang nangtukeun preamble kana pangiriman wungkul. Spésifikasi minimum sareng setélan panjang muka diringkeskeun dina Tabél 3.
Tabél 3. Nepikeun Panjangna Mukadimah

EN-13757-4
minimum
Si443x Mukadimah
Set ing
Singkronkeun
Kecap
Total tambahan
nx (01) kiripik nibbles kiripik kiripik kiripik kiripik
Mode S bubuka pondok 15 30 8 32 6 38 8
Modél S bubuka panjang 279 558 138 552 6 558 0
Mode T (méteran-lain) 19 38 10 40 6 46 8
Modeu R 39 78 20 80 6 86 8

Preamble minimum pikeun panarimaan ditangtukeun ku Preamble Detection Control register (0x35). Saatos nampi, jumlah bit dina kecap singkronisasi kedah dikurangan tina preamble minimum anu ditangtukeun pikeun nangtukeun preamble anu tiasa dianggo. Waktu netepkeun minimum panarima nyaéta 16-chip lamun AFC diaktipkeun atawa 8-chip lamun AFC ditumpurkeun. Waktos netepkeun panarima ogé dikurangan tina preamble anu tiasa dianggo pikeun nangtukeun setélan minimum pikeun daptar Preamble Detection Control.

Kamungkinan preamble palsu gumantung kana setelan tina daptar Preamble Deteksi Control. Setélan pondok tina 8-chip tiasa nyababkeun preamble palsu anu dideteksi unggal sababaraha detik. Setélan 20chips anu disarankeun ngajadikeun deteksi mukadimah palsu mangrupikeun kajadian anu teu mungkin. Panjang preamble pikeun Mode R jeung Mode SL cukup panjang pikeun setelan dianjurkeun pikeun dipaké.
Aya saeutik pisan kauntungan pikeun muka mukadimah ngadeteksi leuwih panjang batan 20 chip.
AFC ditumpurkeun pikeun Modél S kalawan preamble pondok tur Modél T. Ieu ngurangan panarima settling waktos tur ngidinan setelan deteksi preamble panjang. Kalayan AFC ditumpurkeun, Mode T tiasa nganggo setélan anu disarankeun 20 chip. Setelan 4 nibbles atawa 20 chip dipaké pikeun Modél S kalawan preamble pondok. Hal ieu ngajadikeun kamungkinan deteksi preamble palsu rada luhur pikeun modél ieu.
Tabél 4. Deteksi Mukadimah

EN-13757-4
minimum
Singkronkeun
Kecap
bisa dipaké
bubuka
RX Setting Deteksi
min
Si443x Mukadimah
Pangaturan Detéksi
nx (01) kiripik kiripik kiripik kiripik kiripik nibbles kiripik
Mode S bubuka pondok 15 30 6 24 8* 16 4 16
Modél S bubuka panjang 279 558 6 552 16 536 5 20
Model T (méteran-lain) 19 38 6 32 8* 24 5 20
Modeu R 39 78 6 72 16 56 5 20
*Catetan: AFC ditumpurkeun

Panarima dikonpigurasikeun pikeun interoperate sareng pamancar ngagunakeun preamble minimum anu ditangtukeun. Ieu ensures panarima bakal interoperate kalayan sagala pamancar M-bus-patuh.
Spésifikasi Wireless M-Bus merlukeun preamble anu panjang pisan pikeun Mode S1 sahenteuna 558 chip. Ieu bakal butuh ngeunaan 17 mdet ngan pikeun ngirimkeun mukadimah. Si443x henteu meryogikeun preamble anu panjang sareng henteu nguntungkeun tina preamble anu panjang. Samentara preamble panjang kacatet salaku pilihan pikeun Mode S2, teu aya alesan pikeun ngagunakeun preamble panjang sareng Si443x. Lamun komunikasi hiji arah dihoyongkeun, Mode T1 bakal nyadiakeun preamble pondok, laju data luhur, jeung umur batre leuwih panjang. Lamun komunikasi dua arah ngagunakeun Mode S2 diperlukeun, a preamble pondok dianjurkeun.
Perhatikeun yén bangbarung deteksi pikeun Modél S kalawan mukadimah panjang leuwih panjang batan jumlah preamble nibbles dikirimkeun pikeun Modél S kalawan preamble pondok. Ieu ngandung harti yén preamble panjang Mode S panarima moal ngadeteksi preamble tina hiji preamble pondok mode S pamancar. Ieu dipikabutuh lamun preamble panjang Mode S panarima pikeun nampa sagala kauntungan tina preamble panjang.
Catet yén panampi Mode S mukadimah pondok bakal ngadeteksi mukadimah sareng nampi pakét ti duanana mukamuka pondok Mode S.
pamancar sareng pamancar Mode S anu panjang-preamble; janten, sacara umum, maca méteran kedah nganggo preamble pondok Mode S konfigurasi panarima.

Encoding / Decoding

Spésifikasi Wireless M-bus merlukeun dua métode encoding béda. Encoding Manchester dianggo pikeun Mode S sareng Mode R. Encoding Manchester ogé dianggo pikeun tautan anu sanés-ka-méteran dina Modél T. Link Modél T meter-ka-lianna nganggo 3 tina 6 encodings.
1. Manchester disandikeun / Decoding
Encoding Manchester geus ilahar sajarahna dina sistem RF nyadiakeun recovery jam kuat tur tracking ngagunakeun modem basajan tur murah. Nanging, radio berprestasi tinggi modern sapertos Si443x henteu peryogi encoding Manchester. Encoding Manchester dirojong utamina pikeun kasaluyuan sareng standar anu tos aya, tapi laju data pikeun Si443x sacara efektif dua kali nalika henteu nganggo encoding Manchester.
The Si443x ngarojong Manchester encoding jeung decoding sakabéh pakét dina hardware. Hanjakal, kecap sinkronisasi teu Manchester disandikeun. Runtuyan Manchester anu teu sah ngahaja dipilih pikeun kecap singkronisasi. Hal ieu ngajadikeun Manchester encoding teu cocog sareng paling radio aya, kaasup Si443x. Akibatna, encoding sareng decoding Manchester kedah dilakukeun ku MCU. Unggal bait dina data unencoded diwangun ku dalapan bit data. Ngagunakeun Manchester encoding, unggal bit data disandikeun kana simbol dua-chip. Kusabab data anu disandi kudu ditulis kana radio FIFO dalapan chip dina hiji waktu, hiji nibble data disandikeun sarta ditulis ka FIFO dina hiji waktu.
meja 5. Manchester Encoding

data Sapi12 0x34 bait
Sapi1 0x2 0x3 0x4 nibbles
1 10 11 100 binér
chip 10101001 10100110 10100101 10011010 binér
FIFO OxA9 OxA6 OxA5 Oks9A hex

Unggal bait anu dikirimkeun disalurkeun hiji bait sakaligus kana fungsi bait encode. Fungsi bait encode bakal nelepon fungsi nibble encode dua kali, kahiji pikeun nibble paling signifikan lajeng pikeun nibble sahenteuna signifikan.
Manchester encoding dina software teu hese. Mimitian ti bit paling signifikan, hiji disandikeun salaku "01" runtuyan chip. A enol disandikeun salaku "10" runtuyan chip. Ieu bisa gampang dilakonan maké loop sarta shifting dua-bit pikeun tiap simbol. Sanajan kitu, éta leuwih gancang ngan ngagunakeun basajan 16 Éntri katingal-up tabel pikeun tiap nibble. Fungsi nibble Manchester encode ngodekeun hiji nibble data teras nyerat ka FIFO. Chip dibalikkeun sateuacan nyerat ka FIFO pikeun ngitung syarat mukadimah anu dibalikkeun.
Nalika narima, unggal bait dina FIFO diwangun ku dalapan chip sarta decoded kana hiji nibble data. Fungsi blok dibaca maca hiji bait dina hiji waktu ti FIFO jeung nelepon fungsi decode bait. The chip anu inverted sanggeus maca tina FIFO pikeun akun pikeun sarat preamble inverted. Unggal bait tina chip Manchester disandikeun ieu decoded kana nibble data. The nibble decoded ditulis ka RX panyangga ngagunakeun nulis nibble RX fungsi panyangga.
Perhatikeun yén duanana disandikeun jeung decoding dipigawé hiji nibble data dina hiji waktu on laleur. Encoding kana panyangga bakal merlukeun panyangga tambahan dua kali ukuran tina data unencoded. Encoding sareng decoding langkung gancang tibatan laju data anu dirojong panggancangna (100 k chip per detik). Kusabab Si443x ngarojong sababaraha-bait maca jeung nulis ka FIFO, aya hiji overhead leutik dina ngagunakeun ngan single-bait maca jeung nulis. Overheadna sakitar 10 µs pikeun 100 chip disandikeun. Kauntungannana nyaéta tabungan RAM 512 bait.
2. Tilu Out of Genep Encoding Decoding
Metodeu encoding Three-out-of-Six anu ditetepkeun dina EN-13757-4 ogé dilaksanakeun dina firmware dina MCU. Encoding ieu dipaké pikeun-speed tinggi (100 k chip per detik) Mode T ti méter ka séjén. Model T nyayogikeun waktos pangiriman anu paling pondok sareng umur batre pangpanjangna pikeun méter nirkabel.
Unggal bait data anu dikirimkeun dibagi jadi dua nibbles. Nibble anu paling penting disandikeun sareng dikirimkeun heula. Sakali deui, ieu dilaksanakeun nganggo fungsi bait encode anu nyauran fungsi nibble encode dua kali.
Unggal nibble data disandikeun kana simbol genep chip. Runtuyan lambang genep chip kudu ditulis kana 8chip FIFO.
Salila encoding, dua bait data disandikeun jadi opat nibbles. Unggal nibble mangrupakeun simbol 6-chip. Opat lambang 6chip aggregated jadi tilu bait.
meja 6. Tilu Out of Genep Encoding

data 0x12 0x34 bait
Sapi1 0x2 0x3 0x4 nibbles
chip 15 16 13 34 oktal
1101 1110 1011 11100 binér
FIFO 110100 11100010 11011100 binér
0x34 OxE2 OxDC hex

Dina parangkat lunak, tilu-ka-genep encoding dilaksanakeun nganggo tilu fungsi anu disarangkeun. Fungsi encode byte bakal nelepon fungsi nibble encode dua kali. Fungsi nibble encode ngagunakeun tabel katingal-up pikeun simbol genep chip jeung nulis simbol kana Shift Tilu kaluar genep fungsi. Pungsi ieu implements a 16-chip shift register dina software. Lambang ditulis kana bait sahenteuna signifikan tina register shift. Register digeser ka kénca dua kali. Ieu diulang tilu kali. Lamun bait lengkep hadir dina bait luhur register shift, éta inverted sarta ditulis ka FIFO.
Kusabab unggal bait data disandikeun salaku hiji satengah bait disandikeun, hal anu penting pikeun mupus register shift mimitina supados bait munggaran disandikeun bener. Upami panjang pakét mangrupikeun angka ganjil, saatos ngodekeun sadaya bait, masih bakal aya hiji nibble anu tinggaleun dina register shift. Ieu diatur ku postamble sakumaha dipedar dina bagian salajengna.
Decoding tilu kaluar genep disandikeun nyaéta prosedur sabalikna. Nalika decoding, tilu bait disandikeun didekodekeun kana dua bait data. Register shift software dipaké deui pikeun ngumpulkeun bait data decoded. A 64-entry inverse look-up tabel dipaké pikeun decoding. Ieu ngagunakeun pangsaeutikna siklus tapi leuwih kode memori. Pilarian 16-Éntri katingal-up tabel pikeun simbol pakait nyokot considerably leuwih lila.
Postamble
Spésifikasi Wireless M-beus boga syarat husus pikeun postamble atawa trailer. Pikeun sakabéh modus, minimum nyaéta dua chip, sarta maksimum nyaéta dalapan chip. Kusabab unit atom minimum pikeun FIFO hiji bait, hiji trailer 8-chip dipaké pikeun Mode S jeung Mode R. Mode T postamble dalapan chip lamun panjangna pakét genap atawa opat chip lamun panjang pakét téh ganjil. Opat-chip postamble pikeun panjang pakét ganjil minuhan sarat ngabogaan sahenteuna dua chip bolak-balik.
meja 7. Panjang Postamble

Panjang Postamble (chip)
min max Palaksanaan runtuyan chip
Modeu S 2 8 8 1010101
Modeu T 2 8 4 (aneh) 101
8 (malah) 1010101
Modeu R 2 8 8 1010101
Pakét Handler

The pakét Handler on Si443x bisa dipaké dina mode rubak pakét variabel atawa mode rubak pakét tetep. Mode rubak pakét variabel merlukeun bait panjang pakét saatos kecap sinkronisasi sareng bait header opsional. Kana panarimaan, Radio bakal ngagunakeun bait panjang pikeun nangtukeun tungtung pakét valid. Dina pangiriman, radio bakal nyelapkeun widang panjang sanggeus bait lulugu.
Widang L pikeun protokol M-beus nirkabel teu bisa dipaké pikeun widang panjang Si443x. Kahiji, widang L sanes panjang pakét sabenerna. Ieu mangrupikeun jumlah bait payload lapisan tautan teu kalebet bait CRC atanapi encoding. Bréh, L -widang sorangan disandikeun ngagunakeun boh Manchester encoding atawa Tilu kaluar Genep encoding pikeun Mode T méteran ka séjén.
Palaksanaan ngagunakeun pakét Handler dina mode rubak pakét tetep pikeun duanana pangiriman jeung panarimaan. Saatos pangiriman, lapisan PHY bakal maca widang L dina panyangga ngirimkeun sareng ngitung jumlah bait anu disandikeun, kalebet postamble. Jumlah total bait disandikeun pikeun dikirimkeun ditulis kana Packet Length register (0x3E).
Kana panarimaan, kahiji dua bait disandikeun decoded, sarta L-widang ditulis kana panyangga narima. L-widang dipaké pikeun ngitung jumlah bait disandikeun pikeun narima. Jumlah bait disandikeun pikeun narima lajeng ditulis kana Packet Length register (0x3E). Postamble dipiceun.
MCU kudu decode widang L, ngitung jumlah bait disandikeun, jeung nulis nilai ka Packet Length register saméméh panjang pakét shortest mungkin geus narima. The shortest diidinan L-widang pikeun lapisan PHY nyaeta 9, mere 12 bait unencoded. Ieu méré 18 bait disandikeun pikeun Modél T. Dua bait munggaran geus decoded. Ku kituna, register pakét Panjang kudu diropéa dina 16-bait kali dina 100 kbps atawa 1.28 milliseconds. Ieu aya masalah pikeun 8051 ngajalankeun di 20 MIPS.
Jumlah bait pikeun nampa teu kaasup postamble nu, iwal ti opat-chip postamble dipaké pikeun pakét Mode T kalayan panjang pakét ganjil. Ku kituna, panarima teu merlukeun postamble a, iwal model T pakét panjang ganjil. Postamble ieu diperlukeun ngan pikeun masihan jumlah integer bait disandikeun. Eusi postamble teu dipalire; janten, lamun postamble teu dikirimkeun, bakal opat chip of noise nampi tur dipaliré. Kusabab jumlah total bait disandikeun dugi ka 255 (0xFF), palaksanaan watesan maksimum L-widang pikeun modus béda.
meja 8. Watesan Ukuran pakét

disandikeun dikodekeun M-Beus
bait bait L-Lapang
Désémber hex Désémber hex Désémber hex
Modeu S 255 FF 127 7 F 110 6E
Mode T (méteran-lain) 255 FF 169 A9 148 94
Modeu R 255 FF 127 7 F 110 6E

Watesan ieu biasana saluhureun kasus pamakean umum pikeun méter nirkabel. Panjang pakét kedah dijaga leutik pikeun kéngingkeun umur batre anu pangsaéna.
Sajaba ti éta, pamaké bisa nangtukeun maksimum L-widang nu kudu narima (USER_RX_MAX_L_FIELD). Ieu nangtukeun ukuran diperlukeun pikeun panyangga narima (USER_RX_BUFFER_SIZE).
Ngarojong maksimum L-widang 255 merlukeun pa panyangga nampi 290 bait sarta maksimum 581 Manchester disandikeun bait. Panangan pakét kedah ditumpurkeun sareng ngadaptar Packet Length teu tiasa dianggo dina kasus éta. Ieu meujeuhna, tapi leuwih merenah ngagunakeun pakét Handler, lamun mungkin.

Pamakéan FIFO

Si4431 nyayogikeun FIFO bait 64 pikeun ngirim sareng nampi. Kusabab jumlah bait anu disandikeun nyaéta 255, sakabéh pakét anu disandikeun tiasa henteu pas dina panyangga 64-bait.
Pangiriman
Dina pangiriman, jumlah total bait disandikeun diitung. Lamun jumlah total bait disandikeun, kaasup postamble nu, kirang ti 64 bait, sakabéh pakét ditulis ka FIFO sarta ngan pakét dikirim interrupts diaktipkeun. Paling pakét pondok bakal dikirim dina hiji mindahkeun FIFO.
Lamun jumlah bait disandikeun leuwih gede ti 64, sababaraha mindahkeun FIFO bakal diperlukeun pikeun ngirim pakét. 64 bait munggaran ditulis ka FIFO. Packet Sent na TX FIFO Interrupts Ampir Kosong diaktipkeun. Ambang TX FIFO Ampir Kosong disetel ka 16 bait (25%). Kana unggal acara IRQ, status 2 register dibaca. Bit Packet Sent diparios heula, sareng, upami pakét henteu acan dikirimkeun lengkep, 48 bait data anu disandikeun salajengna diserat ka FIFO. Ieu dituluykeun nepi ka sadaya bait disandi geus ditulis jeung Packet Sent ngaganggu lumangsung.
1. Resepsi
Dina panarimaan, mimitina, ngan Sync Kecap interrupt diaktipkeun. Saatos nampi kecap singkronisasi, interupsi kecap singkronisasi ditumpurkeun sareng interupsi FIFO Almost Full diaktipkeun. The FIFO ambang ampir pinuh mimitina disetel ka 2 bait. The FIFO Ampir Full interrupt munggaran dipaké pikeun nyaho lamun dua bait panjang geus narima. Sakali panjangna parantos ditampi, panjangna didekodekeun sareng jumlah bait anu disandikeun diitung. RX FIFO ampir ambang pinuh lajeng disetel ka 48 bait. RX FIFO ampir pinuh sareng interrupts Packet Valid diaktipkeun. Kana acara IRQ salajengna, status 1 register dibaca. Kahiji, bit Packet Sah dipariksa, lajeng FIFO ampir pinuh bit dipariksa. Lamun ngan RX FIFO bit Ampir Full diatur, salajengna 48 bait dibaca tina FIFO. Lamun bit pakét valid diatur, sésana pakét dibaca tina FIFO. MCU ngalacak sabaraha bait anu dibaca sareng ngeureunkeun maca saatos bait terakhir.

Lapisan Patalina Data

Modul lapisan link data implements a 13757-4:2005 lapisan link patuh. Lapisan tautan data (LINK) nyayogikeun antarmuka antara lapisan fisik (PHY) sareng lapisan aplikasi (AL).
Lapisan Patalina Data ngalaksanakeun fungsi ieu:

  • Nyadiakeun pungsi nu mindahkeun data antara PHY jeung AL
  • Ngahasilkeun CRC pikeun pesen kaluar
  • Ngadeteksi kasalahan CRC dina seratan asup
  • Nyadiakeun alamat fisik
  • Ngaku transfer pikeun modeu komunikasi dua arah
  • Pigura bit data
  • Ngadeteksi kasalahan framing dina pesen asup
Link Lapisan Frame Format

Format pigura M-Bus Nirkabel anu digunakeun dina EN 13757-4:2005 diturunkeun tina format pigura FT3 (Tipe 3) ti IEC60870-5-2. Pigura diwangun ku hiji atawa leuwih blok data. Unggal blok ngawengku widang CRC 16-bit. Bock munggaran nyaéta blok panjang tetep 12 bait anu kalebet L-field, C-field, M-field, sareng A-Field.

  1. L-Lapang
    L-widang nyaeta panjang payload data lapisan Link. Ieu teu kaasup L-widang sorangan atawa salah sahiji bait CRC. Éta kalebet L-field, C-field, M-field, sareng A-Field. Ieu bagian tina payload PHY.
    Kusabab jumlah bait disandikeun dugi ka 255 bait, nilai maksimum nu dirojong pikeun M-widang 110 bait pikeun Manchester data disandikeun jeung 148 bait pikeun Mode T Tilu-Out-of-Genep data disandi.
    Lapisan Patalina jawab ngitung L-widang on transmisi. Link-lapisan bakal ngagunakeun L-widang on panarimaan.
    Catetan dina L-widang teu nunjukkeun panjang payload PHY atawa jumlah bait disandikeun. Saatos pangiriman, PHY bakal ngitung panjang payload PHY sareng jumlah bait anu disandikeun. Kana panarimaan, PHY bakal decode L-widang jeung ngitung jumlah bait ka decode.
  2. C-Lapang
    C-widang nyaéta widang kontrol pigura. Widang ieu ngaidentipikasi jinis pigura sareng dianggo pikeun primitif jasa pertukaran data link. Widang-C nunjukkeun jinis pigura - KIRIM, KONFIRMASI, REQUEST, atanapi RESPOND. Dina kasus KIRIM sareng REQUEST pigura, C-widang nunjukkeun naha konpirmasi atanapi RESPOND diperkirakeun.
    Lamun ngagunakeun fungsi Patalina TX dasar, sagala nilai C bisa dipaké. Nalika nganggo Link Service Primitives, médan C dieusi sacara otomatis dumasar kana EN 13757-4:2005.
  3. M-Lapang
    M-widang nyaéta kode produsén urang. Pabrikan tiasa nyuhunkeun kode tilu-hurup ti handap web alamat: http://www.dlms.com/flag/INDEX.HTM Unggal karakter kode tilu-hurup disandikeun jadi lima bit. Kodeu 5-bit tiasa dicandak ku cara nyandak kode ASCII sareng ngirangan 0x40 ("A"). Tilu kodeu 5-bit dihijikeun jadi 15-bit. Bit anu paling penting nyaéta nol.
  4. A-Lapang
    Widang alamat mangrupikeun alamat 6-bait unik pikeun unggal alat. Alamat unik kedah ditugaskeun ku produsén. Éta tanggung jawab unggal produsén pikeun mastikeun yén unggal alat gaduh alamat 6-bait anu unik. Alamat pikeun Kirim sareng Paménta pigura nyaéta alamat-diri meteran atanapi alat sanés. Bingkai data konfirmasi sareng réspon dikirim nganggo alamat alat anu asalna.
  5. CI-Widang
    CI-widang teh lulugu aplikasi tur specifics tipe data dina payload data aplikasi. Nalika EN13757-4:2005 netepkeun sajumlah nilai anu kawates, Link Service Primitives bakal ngijinkeun nilai naon waé pikeun dianggo.
  6. CRC
    CRC ditetepkeun dina EN13757-4:2005.
    Polinomial CRC nyaéta:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Catet yén M-Bus CRC diitung dina unggal blok 16-bait. Hasilna nyaéta unggal 16 bait data merlukeun 18 bait pikeun dikirimkeun,
Inpormasi Tambahan

Pikeun émbaran tambahan ngeunaan Palaksanaan Link Layer, tingali "AN452: Wireless M-Bus Stack Programmer Guide".

Manajemén kakuatan

angka 2 nembongkeun timeline manajemén kakuatan pikeun méteran example ngagunakeun Mode T1.

MCU kedah dina mode Saré sabisana pikeun ngahémat énergi. Dina ex ieuample, MCU saré nalika RTC dijalankeun, nalika ngantosan on kristal radio ngamimitian-up, sarta nalika ngirimkeun ti FIFO. MCU bakal hudang tina sinyal EZRadioPRO IRQ disambungkeun ka Port Match hudang-up.
Nalika ngirimkeun pesen anu langkung panjang ti hiji blok, MCU kedah hudang pikeun ngeusian FIFO (dumasar kana interupsi ampir kosong FIFO) teras bobo deui.
MCU kedah dina mode Idle ngajalankeun ti osilator kakuatan low atanapi burst-mode osilator nalika maca tina ADC. ADC merlukeun jam SAR.
Nalika henteu dianggo, EZRadioPRO kedah dina modeu Pareum sareng pin SDN disetir luhur. Ieu merlukeun sambungan hardwired ka MCU. The EZ Radio Pro registers teu dilestarikan dina mode shutdown; janten, EZRadioPro ieu initialized on unggal interval RTC. Inisialisasi Radio butuh kirang ti 100 µs sareng ngahemat 400 nA. Ieu ngahasilkeun 10 µJ hemat energi, dumasar kana interval 10 detik.
Kristal EZRadioPRO butuh sakitar 16 mdet pikeun POR. Ieu cukup panjang pikeun ngitung CRC sakitar dalapan blok. MCU bakal bobo deui upami ngalengkepan sadayana CRC sateuacan kristalna stabil. Upami enkripsi diperyogikeun, éta ogé tiasa ngamimitian bari ngantosan dina osilator kristal.
MCU kedah dijalankeun dina 20 MHz nganggo osilator kakuatan-rendah pikeun kalolobaan tugas. Tugas-tugas anu meryogikeun waktos seep anu tepat kedah nganggo osilator presisi sareng mode dianggurkeun tinimbang mode sare. RTC nyayogikeun résolusi anu cukup pikeun kalolobaan tugas. Garis waktos manajemén kakuatan pikeun T2 méteran exampaplikasi ieu ditémbongkeun dina Gambar 3.

Palaksanaan transceiver kedah dioptimalkeun pikeun kasus normal nalika méteran bangun sareng teu aya pamaca anu hadir. Minimum / maksimum ACK timeouts cukup panjang sahingga kasebut nyaéta dimungkinkeun pikeun ngagunakeun C8051F930 RTC tur nempatkeun MCU kana mode sare.
Pilihan ngawangun disayogikeun pikeun mains atanapi pamaca anu dikuatkeun USB anu henteu kedah nganggo mode sare. Modeu dianggurkeun bakal dianggo tibatan bobo supados USB sareng UART tiasa ngaganggu MCU.

SILICON Labs Wireless M-BUS Software Palaksanaan AN451-1

Kesederhanaan Studio
Aksés hiji-klik ka MCU sareng alat nirkabel, dokuméntasi, parangkat lunak, perpustakaan kode sumber & seueur deui. Sadia pikeun Windows,
Mac jeung Linux!

Portopolio IoT Kualitas
Portopolio IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Kualitas
www.silabs.com/quality
Rojongan jeung Komunitas
community.silabs.com

Bantahan
Silicon Labs intends nyadiakeun konsumén jeung dokuméntasi panganyarna, akurat, tur teleb sadaya périferal jeung modul sadia pikeun sistem jeung software implementers ngagunakeun atawa intending ngagunakeun produk Silicon Labs. data characterization, modul sadia tur périferal, ukuran memori sareng alamat memori nujul kana unggal alat husus, sarta parameter "Hal" disadiakeun bisa jeung ulah rupa-rupa dina aplikasi béda. Aplikasi exampAnu dijelaskeun di dieu ngan ukur pikeun tujuan ilustrasi. Silicon Labs boga hak nyieun parobahan tanpa aya bewara salajengna jeung watesan kana informasi produk, spésifikasi, jeung déskripsi di dieu, sarta teu masihan jaminan ka akurasi atawa completeness tina informasi kaasup. Silicon Labs moal boga liability pikeun konsékuansi tina pamakéan inpormasi disadiakeun di dieu. Dokumén ieu henteu nunjukkeun atanapi nganyatakeun lisénsi hak cipta anu dipasihkeun di handap ieu pikeun ngarancang atanapi ngararancang sirkuit terpadu. Produk teu dirancang atawa otorisasi pikeun dipaké dina sagala Sistim Rojongan Kahirupan tanpa idin tinulis husus ti Silicon Labs. "Sistem Dukungan Kahirupan" mangrupikeun produk atanapi sistem anu dimaksudkeun pikeun ngadukung atanapi ngadukung kahirupan sareng/atanapi kasehatan, anu, upami gagal, tiasa diperkirakeun nyababkeun cilaka pribadi atanapi maot anu signifikan. Produk Silicon Labs teu dirancang atawa otorisasi pikeun aplikasi militér. Produk Silicon Labs dina kaayaan naon waé henteu tiasa dianggo dina pakarang pemusnah massal kalebet (tapi henteu diwatesan ku) pakarang nuklir, biologis, atanapi kimiawi, atanapi misil anu tiasa nganteurkeun senjata sapertos kitu.
Émbaran dagang
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, jeung logo Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logo sareng kombinasina, "mikrokontroler paling ramah énergi di dunya", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress®, sareng anu sanésna mangrupikeun mérek dagang atanapi mérek dagang kadaptar ti Silicon Labs. ARM, CORTEX, Cortex-M3, sareng jempol mangrupikeun mérek dagang atanapi mérek dagang kadaptar ti ARM Holdings. Keil mangrupakeun mérek dagang kadaptar ti ARM Limited. Sadaya produk atanapi nami merek sanés anu disebatkeun di dieu mangrupikeun mérek dagang ti anu gaduhna.logo SILICON LABS

Silicon Laboratories Nyarita.
400 Kulon Cesar Chavez
Austin, TX 78701
AS
http://www.silabs.com

Dokumén / Sumberdaya

SILICON LABS Wireless M-BUS Software Palaksanaan AN451 [pdf] Pituduh pamaké
SILICON LABS, C8051, MCU, jeung, EZRadioPRO, Wireless M-beus, Wireless, M-BUS, Software, Palaksanaan, AN451

Rujukan

Ninggalkeun komentar

alamat surélék anjeun moal diterbitkeun. Widang diperlukeun ditandaan *