Logo SILICON LABS

AN451
PELAKSANAAN PERISIAN M-BUS WIRELESS

pengenalan

Nota aplikasi ini menerangkan pelaksanaan Silicon Labs bagi Wireless M-Bus menggunakan Silicon Labs C8051 MCU dan EZRadioPRO®. Bas M tanpa wayar ialah Standard Eropah untuk aplikasi pembacaan meter menggunakan jalur frekuensi 868 MHz.

Timbunan Lapisan

M-Bus Tanpa Wayar menggunakan model IEC 3 lapisan, yang merupakan subset daripada model OSI 7 lapisan (lihat Rajah 1).

Pelaksanaan Perisian M-BUS Tanpa Wayar SILICON LABS AN451Lapisan Fizikal (PHY) ditakrifkan dalam EN 13757-4. Lapisan fizikal mentakrifkan cara bit dikodkan dan dihantar, ciri modem RF (kadar cip, mukadimah dan perkataan penyegerakan), dan parameter RF (modulasi, frekuensi tengah dan sisihan frekuensi).
Lapisan PHY dilaksanakan menggunakan gabungan perkakasan dan perisian tegar. EZRadioPRO melaksanakan semua fungsi RF dan modem. EZRadioPRO digunakan dalam mod FIFO dengan pengendali paket. Modul MbusPhy.c menyediakan antara muka SPI, pengekodan/penyahkodan, blok baca/tulis, dan pengendalian paket serta menguruskan keadaan transceiver.
Lapisan pautan Data M-Bus dilaksanakan dalam modul MbusLink.c. Antara muka Pengaturcaraan Aplikasi M-Bus terdiri daripada fungsi awam yang boleh dipanggil dari lapisan aplikasi dalam utas utama. Modul MbusLink juga melaksanakan Lapisan Pautan Data. Lapisan pautan Data akan memformat dan menyalin data daripada penimbal TX aplikasi ke penimbal MbusPhy TX, menambah pengepala dan CRC yang diperlukan.
Lapisan Aplikasi itu sendiri bukan sebahagian daripada perisian tegar M-bus. Lapisan aplikasi mentakrifkan cara pelbagai jenis data diformatkan untuk penghantaran. Kebanyakan meter hanya perlu menghantar satu atau dua jenis data. Menambah sejumlah besar kod untuk menampung apa-apa jenis data pada meter akan menambahkan kod dan kos yang tidak perlu pada meter. Ia mungkin boleh dilaksanakan untuk melaksanakan perpustakaan atau pengepala file dengan senarai lengkap jenis data. Walau bagaimanapun, kebanyakan pelanggan pemeteran mengetahui dengan tepat jenis data yang mereka perlukan untuk menghantar dan boleh merujuk kepada standard untuk butiran pemformatan. Pembaca atau penghidu universal mungkin melaksanakan set lengkap jenis data aplikasi pada GUI PC. Atas sebab ini, lapisan aplikasi dilaksanakan menggunakan example aplikasi untuk meter dan pembaca.

Piawaian yang Diperlukan
  1. EN 13757-4
    EN 13757-4
    Sistem komunikasi untuk meter dan bacaan jarak jauh meter
    Bahagian 4: Bacaan meter wayarles
    Bacaan radiometer untuk operasi dalam jalur SRD 868 MHz hingga 870 MHz
  2. EN 13757-3
    Sistem komunikasi untuk meter dan bacaan jarak jauh meter
    Bahagian 3: Lapisan aplikasi khusus
  3. IEC 60870-2-1:1992
    Peralatan dan sistem telekawal
    Bahagian 5: Protokol penghantaran
    Bahagian 1: Prosedur penghantaran pautan
  4. IEC 60870-1-1:1990
    Peralatan dan sistem telekawal
    Bahagian 5: Protokol penghantaran
    Bahagian 1: Format bingkai penghantaran
Definisi
  • M-Bas—M-Bus ialah standard berwayar untuk bacaan meter di Eropah.
  • M-Bas Tanpa Wayar—M-Bus tanpa wayar untuk aplikasi bacaan meter di Eropah.
  • PHY—Lapisan Fizikal mentakrifkan cara bit dan bait data dikodkan dan dihantar.
  • API—Antara muka Pengaturcara Aplikasi.
  • PAUTAN—Lapisan Pautan Data mentakrifkan cara blok dan bingkai dihantar.
  • CRC—Semakan Lebihan Kitaran.
  • FSK—Kekunci Anjakan Kekerapan.
  • Cip—Unit terkecil data yang dihantar. Satu bit data dikodkan sebagai berbilang cip.
  • Modul—Sumber kod AC .c file.

Penerangan Fungsian M-Bus PHY

Urutan Mukadimah

Jujukan Mukadimah yang ditentukan oleh spesifikasi bas-M ialah nombor integer berselang-seli sifar dan satu. Satu ditakrifkan sebagai frekuensi yang lebih tinggi, dan sifar ditakrifkan sebagai frekuensi yang lebih rendah.
nx (01)
Pilihan Mukadimah untuk Si443x ialah nombor integer gigitan yang terdiri daripada yang berselang-seli dan sifar.
nx (1010)
Mukadimah dengan mukadimah tambahan tidak akan menjadi masalah, tetapi, kemudian, perkataan penyegerakan dan muatan akan tersalah sejajar dengan satu bit.
Penyelesaiannya adalah untuk menyongsangkan keseluruhan paket dengan menetapkan bit enjin dalam daftar Modulation Control 2 (0x71). Ini akan menyongsangkan mukadimah, kata penyegerakan dan data TX/RX. Akibatnya, data harus diterbalikkan apabila menulis data TX atau membaca data RX. Selain itu, perkataan penyegerakan diterbalikkan sebelum menulis ke daftar Word Synchronization Si443x.

Perkataan Penyegerakan

Perkataan penyegerakan yang diperlukan oleh EN-13757-4 ialah sama ada 18 cip untuk Mod S dan Mod R atau 10 cip untuk Model T. Perkataan penyegerakan untuk Si443x ialah 1 hingga 4 bait. Walau bagaimanapun, oleh kerana perkataan penyegerakan sentiasa didahului oleh mukadimah, enam bit terakhir mukadimah boleh dianggap sebagai sebahagian daripada perkataan penyegerakan; jadi, perkataan penyegerakan pertama dilapisi dengan tiga ulangan sifar diikuti dengan satu. Perkataan penyegerakan dilengkapkan sebelum menulis ke daftar Si443x.
Jadual 1. Perkataan Penyegerakan untuk Mod S dan Mod R

EN 13757-4 00 01110110 10010110 binari
00 76 96 heks
pad dengan (01) x 3 01010100 01110110 10010110 binari
54 76 96 heks
pelengkap 10101011 10001001 01101001 binari
AB 89 69 heks

Jadual 2. Perkataan Penyegerakan untuk Mod T Meter kepada Lain

SYNCCH SYNCCH SYNCCH
PERKATAAN PERKATAAN PERKATAAN
3 2 1
Hantar Panjang Mukadimah

Mukadimah minimum ditentukan untuk empat mod pengendalian yang berbeza. Ia boleh diterima untuk mempunyai mukadimah lebih lama daripada yang ditentukan. Menolak enam cip untuk mukadimah memberikan bilangan minimum cip untuk mukadimah Si443x. Pelaksanaannya menambah dua cebisan tambahan mukadimah dalam semua mod mukadimah pendek untuk meningkatkan pengesanan mukadimah dan saling kendali. Mukadimah Mod S dengan mukadimah panjang sangat panjang; jadi, mukadimah minimum digunakan. Panjang mukadimah dalam nibbles ditulis pada daftar Mukadimah Panjang (0x34). Daftar panjang mukadimah menentukan mukadimah semasa penghantaran sahaja. Spesifikasi minimum dan tetapan panjang mukadimah diringkaskan dalam Jadual 3.
Jadual 3. Hantar Panjang Mukadimah

EN-13757-4
minimum
Mukadimah Si443x
Menetapkan ing
Segerakkan
Perkataan
Jumlah tambahan
nx (01) kerepek gigitan kerepek kerepek kerepek kerepek
Mukadimah ringkas Mod S 15 30 8 32 6 38 8
Mukadimah panjang Mod S 279 558 138 552 6 558 0
Mod T (meter-lain) 19 38 10 40 6 46 8
Mod R 39 78 20 80 6 86 8

Mukadimah minimum untuk penerimaan ditentukan oleh daftar Kawalan Pengesanan Mukadimah (0x35). Selepas penerimaan, bilangan bit dalam perkataan penyegerakan mesti ditolak daripada mukadimah minimum yang ditentukan untuk menentukan mukadimah yang boleh digunakan. Masa penyelesaian minimum penerima ialah 16 cip jika AFC didayakan atau 8 cip jika AFC dilumpuhkan. Masa penyelesaian penerima juga ditolak daripada mukadimah yang boleh digunakan untuk menentukan tetapan minimum untuk daftar Kawalan Pengesanan Mukadimah.

Kebarangkalian mukadimah palsu bergantung pada penetapan daftar Kawalan Pengesanan Mukadimah. Tetapan pendek 8-cip boleh menyebabkan mukadimah palsu dikesan setiap beberapa saat. Tetapan 20chips yang disyorkan menjadikan pengesanan mukadimah palsu sebagai peristiwa yang tidak mungkin. Panjang mukadimah untuk Mod R dan Mod SL adalah cukup panjang untuk tetapan yang disyorkan untuk digunakan.
Terdapat sedikit faedah untuk membuat mukadimah mengesan lebih daripada 20 cip.
AFC dilumpuhkan untuk Model S dengan mukadimah pendek dan Model T. Ini mengurangkan masa penyelesaian penerima dan membenarkan tetapan pengesanan mukadimah yang lebih lama. Dengan AFC dilumpuhkan, Mod T boleh menggunakan tetapan 20 cip yang disyorkan. Tetapan 4 gigitan atau 20 cip digunakan untuk Model S dengan mukadimah pendek. Ini menjadikan kebarangkalian pengesanan mukadimah palsu sedikit lebih tinggi untuk model ini.
Jadual 4. Pengesanan Mukadimah

EN-13757-4
minimum
Segerakkan
Perkataan
boleh guna
mukadimah
Penyelesaian RX Kesan
min
Mukadimah Si443x
Tetapan Pengesanan
nx (01) kerepek kerepek kerepek kerepek kerepek gigitan kerepek
Mukadimah ringkas Mod S 15 30 6 24 8* 16 4 16
Mukadimah panjang Model S 279 558 6 552 16 536 5 20
Model T (meter-lain) 19 38 6 32 8* 24 5 20
Mod R 39 78 6 72 16 56 5 20
*Nota: AFC dilumpuhkan

Penerima dikonfigurasikan untuk saling beroperasi dengan pemancar menggunakan mukadimah yang ditetapkan minimum. Ini memastikan penerima akan saling beroperasi dengan mana-mana pemancar yang mematuhi bas M.
Spesifikasi Wireless M-Bus memerlukan mukadimah yang sangat panjang untuk Mod S1 sekurang-kurangnya 558 cip. Ini akan mengambil masa kira-kira 17 ms hanya untuk menghantar mukadimah. Si443x tidak memerlukan mukadimah yang begitu panjang dan tidak mendapat manfaat daripada mukadimah yang panjang. Walaupun mukadimah panjang dicatatkan sebagai pilihan untuk Mod S2, tidak ada sebab untuk menggunakan mukadimah panjang dengan Si443x. Jika komunikasi sehala dikehendaki, Mod T1 akan memberikan mukadimah yang lebih pendek, kadar data yang lebih tinggi dan hayat bateri yang lebih lama. Jika komunikasi dua hala menggunakan Mod S2 diperlukan, mukadimah ringkas disyorkan.
Perhatikan bahawa ambang pengesanan untuk Model S dengan mukadimah panjang adalah lebih panjang daripada bilangan camilan mukadimah yang dihantar untuk Model S dengan mukadimah pendek. Ini bermakna penerima Mod S mukadimah panjang tidak akan mengesan mukadimah daripada pemancar Mod S mukadimah pendek. Ini adalah perlu jika penerima Mod S mukadimah panjang menerima sebarang faedah daripada mukadimah panjang.
Ambil perhatian bahawa penerima Mod S mukadimah pendek akan mengesan mukaddimah dan menerima paket daripada kedua-dua mukadimah pendek Mod S
pemancar dan pemancar Mod S mukadimah panjang; jadi, secara amnya, pembaca meter harus menggunakan konfigurasi penerima Mod S mukadimah pendek.

Pengekodan/Penyahkodan

Spesifikasi Wireless M-bus memerlukan dua kaedah pengekodan yang berbeza. Pengekodan Manchester digunakan untuk Mod S dan Mod R. Pengekodan Manchester juga digunakan untuk pautan lain-ke-meter dalam Model T. Pautan meter-ke-lain Model T menggunakan 3 daripada 6 pengekodan.
1. Manchester Dikodkan/Penyahkod
Pengekodan Manchester adalah perkara biasa dari segi sejarah dalam sistem RF untuk menyediakan pemulihan jam yang mantap dan penjejakan menggunakan modem yang mudah dan murah. Walau bagaimanapun, radio berprestasi tinggi moden seperti Si443x tidak memerlukan pengekodan Manchester. Pengekodan Manchester disokong terutamanya untuk keserasian dengan piawaian sedia ada, tetapi kadar data untuk Si443x secara berkesan digandakan apabila tidak menggunakan pengekodan Manchester.
Si443x menyokong pengekodan dan penyahkodan Manchester bagi keseluruhan paket dalam perkakasan. Malangnya, perkataan penyegerakan tidak dikodkan oleh Manchester. Urutan Manchester yang tidak sah telah dipilih dengan sengaja untuk perkataan penyegerakan. Ini menjadikan pengekodan Manchester tidak serasi dengan kebanyakan radio sedia ada, termasuk Si443x. Akibatnya, pengekodan dan penyahkodan Manchester mesti dilakukan oleh MCU. Setiap bait pada data yang tidak dikodkan terdiri daripada lapan bit data. Menggunakan pengekodan Manchester, setiap bit data dikodkan ke dalam simbol dua cip. Memandangkan data yang dikodkan mesti ditulis ke radio FIFO lapan cip pada satu masa, satu cebisan data dikodkan dan ditulis kepada FIFO pada satu masa.
Jadual 5. Pengekodan Manchester

data lembu12 0x34 bait
lembu1 0x2 0x3 0x4 gigitan
1 10 11 100 binari
cip 10101001 10100110 10100101 10011010 binari
FIFO OxA9 OxA6 OxA5 Ox9A heks

Setiap bait yang akan dihantar dihantar satu bait pada satu masa ke fungsi bait pengekodan. Fungsi bait pengekodan akan memanggil fungsi nibble encode dua kali, pertama untuk nibble yang paling ketara dan kemudian untuk nibble yang paling tidak ketara.
Pengekodan Manchester dalam perisian tidak sukar. Bermula dari bit yang paling ketara, satu dikodkan sebagai jujukan cip "01". Sifar dikodkan sebagai jujukan cip "10". Ini boleh dicapai dengan mudah menggunakan gelung dan mengalihkan dua bit untuk setiap simbol. Walau bagaimanapun, adalah lebih pantas untuk hanya menggunakan jadual carian 16 entri yang mudah untuk setiap gigitan. Fungsi nibble Manchester encode mengekodkan secebis data kemudian menulisnya ke FIFO. Cip diterbalikkan sebelum menulis kepada FIFO untuk mengambil kira keperluan mukadimah terbalik.
Apabila menerima, setiap bait dalam FIFO terdiri daripada lapan cip dan dinyahkodkan kepada satu cebisan data. Fungsi blok baca membaca satu bait pada satu masa daripada FIFO dan memanggil fungsi bait nyahkod. Cip diterbalikkan selepas membaca dari FIFO untuk mengambil kira keperluan mukadimah terbalik. Setiap bait cip yang dikodkan Manchester dinyahkodkan menjadi secebis data. Camilan yang dinyahkod ditulis pada penimbal RX menggunakan fungsi penimbal RX nibble tulis.
Perhatikan bahawa kedua-dua pengekodan dan penyahkodan dilakukan satu gigitan data pada satu masa dengan cepat. Pengekodan kepada penimbal memerlukan penimbal tambahan dua kali ganda saiz data yang tidak dikodkan. Pengekodan dan penyahkodan adalah lebih pantas daripada kadar data yang disokong terpantas (100 k cip sesaat). Memandangkan Si443x menyokong bacaan berbilang bait dan menulis kepada FIFO, terdapat overhed kecil dalam menggunakan hanya membaca dan menulis satu bait. Overhed adalah kira-kira 10 µs untuk 100 cip yang dikodkan. Manfaatnya ialah penjimatan RAM sebanyak 512 bait.
2. Tiga Daripada Enam Pengekodan Penyahkodan
Kaedah pengekodan Three-out-of-Six yang dinyatakan dalam EN-13757-4 juga dilaksanakan dalam perisian tegar pada MCU. Pengekodan ini digunakan untuk Mod T berkelajuan tinggi (100 k sesaat) dari meter ke yang lain. Model T menyediakan masa penghantaran terpendek dan hayat bateri paling lama untuk meter wayarles.
Setiap bait data yang akan dihantar dibahagikan kepada dua nibbles. Gigitan yang paling ketara dikodkan dan dihantar terlebih dahulu. Sekali lagi, ini dilaksanakan menggunakan fungsi bait pengekodan yang memanggil fungsi nibble pengekodan dua kali.
Setiap cebisan data dikodkan ke dalam simbol enam cip. Urutan simbol enam cip mesti ditulis pada FIFO 8 cip.
Semasa pengekodan, dua bait data dikodkan sebagai empat gigitan. Setiap gigitan ialah simbol 6 cip. Empat simbol 6chip diagregatkan sebagai tiga bait.
Jadual 6. Tiga Daripada Enam Pengekodan

data 0x12 0x34 bait
lembu1 0x2 0x3 0x4 gigitan
cip 15 16 13 34 oktal
1101 1110 1011 11100 binari
FIFO 110100 11100010 11011100 binari
0x34 OxE2 OxDC heks

Dalam perisian, pengekodan tiga daripada enam dilaksanakan menggunakan tiga fungsi bersarang. Fungsi encode byte akan memanggil fungsi nibble encode dua kali. Fungsi nibble encode menggunakan jadual carian untuk simbol enam cip dan menulis simbol pada fungsi Shift Three daripada Enam. Fungsi ini melaksanakan daftar anjakan 16-cip dalam perisian. Simbol ditulis pada bait paling tidak ketara bagi daftar anjakan. Daftar dialih ke kiri dua kali. Ini diulang tiga kali. Apabila bait lengkap hadir dalam bait atas daftar anjakan, ia diterbalikkan dan ditulis kepada FIFO.
Oleh kerana setiap bait data dikodkan sebagai satu setengah bait yang dikodkan, adalah penting untuk mengosongkan daftar anjakan pada mulanya supaya bait yang dikodkan pertama adalah betul. Jika panjang paket ialah nombor ganjil, selepas mengekod semua bait, masih ada satu gigitan yang tinggal dalam daftar anjakan. Ini dikendalikan dengan postamble seperti yang dijelaskan dalam bahagian seterusnya.
Menyahkod tiga daripada enam yang dikodkan adalah prosedur terbalik. Apabila menyahkod, tiga bait yang dikodkan dinyahkodkan kepada dua bait data. Daftar anjakan perisian sekali lagi digunakan untuk mengagregat bait data yang dinyahkod. Jadual carian songsang 64-entri digunakan untuk penyahkodan. Ini menggunakan lebih sedikit kitaran tetapi lebih banyak memori kod. Mencari jadual carian 16 entri untuk simbol yang sepadan mengambil masa yang lebih lama.
Postamble
Spesifikasi Wireless M-bus mempunyai keperluan khusus untuk postamble atau treler. Untuk semua mod, minimum ialah dua cip, dan maksimum ialah lapan cip. Memandangkan unit atom minimum untuk FIFO ialah satu bait, treler 8 cip digunakan untuk Mod S dan Mod R. Postamble Mod T ialah lapan cip jika panjang paket genap atau empat cip jika panjang paket adalah ganjil. Postamble empat cip untuk panjang paket ganjil memenuhi keperluan untuk mempunyai sekurang-kurangnya dua cip berselang-seli.
Jadual 7. Panjang Postamble

Panjang Postamble (cip)
min maks Perlaksanaan urutan cip
Mod S 2 8 8 1010101
Mod T 2 8 4 (ganjil) 101
8 (malah) 1010101
Mod R 2 8 8 1010101
Pengendali Paket

Pengendali paket pada Si443x boleh digunakan dalam mod lebar paket berubah atau mod lebar paket tetap. Mod lebar paket berubah memerlukan bait panjang paket selepas perkataan penyegerakan dan bait pengepala pilihan. Selepas penerimaan, Radio akan menggunakan bait panjang untuk menentukan penghujung paket yang sah. Semasa penghantaran, radio akan memasukkan medan panjang selepas bait pengepala.
Medan L untuk protokol bas-M wayarles tidak boleh digunakan untuk medan panjang Si443x. Pertama, medan L bukanlah panjang paket sebenar. Ia ialah bilangan bait muatan lapisan pautan tidak termasuk bait CRC atau pengekodan. Kedua, medan L itu sendiri dikodkan menggunakan pengekodan Manchester atau pengekodan Tiga daripada Enam untuk meter Mod T kepada yang lain.
Pelaksanaan menggunakan pengendali paket dalam mod lebar paket tetap untuk kedua-dua penghantaran dan penerimaan. Selepas penghantaran, lapisan PHY akan membaca medan L dalam penimbal penghantaran dan mengira bilangan bait yang dikodkan, termasuk postamble. Jumlah bilangan bait yang dikodkan untuk dihantar ditulis ke daftar Panjang Paket (0x3E).
Selepas penerimaan, dua bait yang dikodkan pertama dinyahkod, dan medan L ditulis kepada penimbal terima. Medan L digunakan untuk mengira bilangan bait yang dikodkan untuk diterima. Bilangan bait yang dikodkan untuk diterima kemudiannya ditulis ke daftar Panjang Paket (0x3E). Postamble dibuang.
MCU mesti menyahkod medan L, mengira bilangan bait yang dikodkan, dan menulis nilai pada daftar Panjang Paket sebelum panjang paket terpendek yang mungkin diterima. Medan L terpendek yang dibenarkan untuk lapisan PHY ialah 9, memberikan 12 bait tidak dikodkan. Ini memberikan 18 bait yang dikodkan untuk Model T. Dua bait pertama telah pun dinyahkodkan. Oleh itu, daftar Panjang paket mesti dikemas kini dalam masa 16-bait pada 100 kbps atau 1.28 milisaat. Ini tiada masalah untuk 8051 yang berjalan pada 20 MIPS.
Bilangan bait yang akan diterima tidak termasuk postamble, kecuali postamble empat cip yang digunakan untuk paket Mod T dengan panjang paket ganjil. Oleh itu, penerima tidak memerlukan postamble, kecuali untuk paket panjang ganjil Model T. Postamble ini hanya diperlukan untuk memberikan nombor integer bait yang dikodkan. Kandungan postamble diabaikan; jadi, jika postamble tidak dihantar, empat cip bunyi akan diterima dan diabaikan. Oleh kerana jumlah bilangan bait yang dikodkan dihadkan kepada 255 (0xFF), pelaksanaan mengehadkan medan L maksimum untuk mod yang berbeza.
Jadual 8. Had Saiz Paket

dikodkan dinyahkod M-Bas
bait bait L-Lapangan
dec heks dec heks dec heks
Mod S 255 FF 127 7 F 110 6E
Mod T (meter-lain) 255 FF 169 A9 148 94
Mod R 255 FF 127 7 F 110 6E

Had ini biasanya jauh melebihi bekas penggunaan biasa untuk meter wayarles. Panjang paket hendaklah dikekalkan kecil untuk mendapatkan hayat bateri yang terbaik.
Di samping itu, pengguna boleh menentukan medan L maksimum yang perlu diterima (USER_RX_MAX_L_FIELD). Ini menentukan saiz yang diperlukan untuk penimbal terima (USER_RX_BUFFER_SIZE).
Menyokong medan L maksimum sebanyak 255 memerlukan penimbal penerimaan sebanyak 290 bait dan maksimum 581 bait dikodkan Manchester. Pengendali paket perlu dilumpuhkan dan daftar Panjang Paket tidak boleh digunakan dalam kes itu. Ini boleh dilaksanakan, tetapi lebih mudah untuk menggunakan pengendali paket, jika boleh.

Penggunaan FIFO

Si4431 menyediakan FIFO 64 bait untuk menghantar dan menerima. Oleh kerana bilangan bait yang dikodkan ialah 255, keseluruhan paket yang dikodkan mungkin tidak muat dalam penimbal 64 bait.
Penularan
Semasa penghantaran, jumlah bilangan bait yang dikodkan dikira. Jika jumlah bilangan bait yang dikodkan, termasuk postamble, adalah kurang daripada 64 bait, keseluruhan paket ditulis kepada FIFO dan hanya paket yang dihantar gangguan didayakan. Kebanyakan paket pendek akan dihantar dalam satu pemindahan FIFO.
Jika bilangan bait yang dikodkan lebih daripada 64, berbilang pemindahan FIFO diperlukan untuk menghantar paket. 64 bait pertama ditulis kepada FIFO. Gangguan Packet Sent dan TX FIFO Almost Empty didayakan. Ambang TX FIFO Almost Empty ditetapkan kepada 16 bait (25%). Pada setiap acara IRQ, daftar status 2 dibaca. Bit Packet Sent ditandakan dahulu, dan, jika paket belum dihantar sepenuhnya, 48 bait seterusnya data yang dikodkan ditulis kepada FIFO. Ini berterusan sehingga semua bait yang dikodkan telah ditulis dan gangguan Packet Sent berlaku.
1. Penerimaan
Pada penerimaan, pada mulanya, hanya Sync Word interrupt didayakan. Selepas menerima perkataan penyegerakan, sampukan perkataan penyegerakan dinyahdayakan dan sampukan FIFO Hampir Penuh didayakan. FIFO hampir ambang penuh pada mulanya ditetapkan kepada 2 bait. Gangguan Hampir Penuh FIFO pertama digunakan untuk mengetahui apabila dua bait panjang telah diterima. Setelah panjang diterima, panjang dinyahkod dan bilangan bait yang dikodkan dikira. Ambang hampir Penuh RX FIFO kemudiannya ditetapkan kepada 48 bait. RX FIFO hampir penuh dan gangguan Paket Sah didayakan. Selepas acara IRQ seterusnya, daftar status 1 dibaca. Mula-mula, bit Paket Sah diperiksa, dan kemudian bit FIFO Hampir Penuh disemak. Jika hanya bit RX FIFO Hampir Penuh ditetapkan, 48 bait seterusnya dibaca daripada FIFO. Jika bit paket yang sah ditetapkan, baki paket dibaca daripada FIFO. MCU menjejaki bilangan bait yang telah dibaca dan berhenti membaca selepas bait terakhir.

Lapisan Pautan Data

Modul lapisan pautan data melaksanakan lapisan pautan patuh 13757-4:2005. Lapisan pautan data (LINK) menyediakan antara muka antara lapisan fizikal (PHY) dan lapisan aplikasi (AL).
Lapisan Pautan Data melaksanakan fungsi berikut:

  • Menyediakan fungsi yang memindahkan data antara PHY dan AL
  • Menjana CRC untuk mesej keluar
  • Mengesan ralat CRC dalam mesej masuk
  • Menyediakan pengalamatan fizikal
  • Mengakui pemindahan untuk mod komunikasi dua hala
  • Bingkai bit data
  • Mengesan ralat pembingkaian dalam mesej masuk
Format Bingkai Lapisan Pautan

Format bingkai M-Bus Tanpa Wayar yang digunakan dalam EN 13757-4:2005 diperoleh daripada format bingkai FT3 (Jenis Bingkai 3) daripada IEC60870-5-2. Bingkai terdiri daripada satu atau lebih blok data. Setiap blok termasuk medan CRC 16-bit. Bock pertama ialah blok panjang tetap 12 bait yang merangkumi medan-L, medan-C, medan-M dan Medan-A.

  1. L-Lapangan
    Medan L ialah panjang muatan data lapisan Pautan. Ini tidak termasuk medan-L itu sendiri atau mana-mana bait CRC. Ia termasuk medan-L, medan-C, medan-M dan Medan-A. Ini adalah sebahagian daripada muatan PHY.
    Oleh kerana bilangan bait yang dikodkan dihadkan kepada 255 bait, nilai maksimum yang disokong untuk medan M ialah 110 bait untuk data yang dikodkan Manchester dan 148 bait untuk Mod T Tiga Daripada Enam data yang dikodkan.
    Lapisan Pautan bertanggungjawab untuk mengira medan L pada penghantaran. Lapisan pautan akan menggunakan medan L pada penerimaan.
    Perhatikan medan L tidak menunjukkan panjang muatan PHY atau bilangan bait yang dikodkan. Selepas penghantaran, PHY akan mengira panjang muatan PHY dan bilangan bait yang dikodkan. Selepas penerimaan, PHY akan menyahkod medan L dan mengira bilangan bait untuk dinyahkod.
  2. C-Field
    Medan C ialah medan kawalan bingkai. Medan ini mengenal pasti jenis bingkai dan digunakan untuk primitif perkhidmatan pertukaran data pautan. Medan C menunjukkan jenis bingkai – HANTAR, SAHKAN, MINTA atau RESPOND. Dalam kes bingkai SEND dan REQUEST, medan C menunjukkan sama ada SAHKAN atau RESPOND dijangka.
    Apabila menggunakan fungsi Pautan TX asas, sebarang nilai C boleh digunakan. Apabila menggunakan Primitif Perkhidmatan Pautan, medan C diisi secara automatik mengikut EN 13757-4:2005.
  3. M-Field
    Medan M ialah kod pengeluar. Pengilang boleh meminta kod tiga huruf daripada yang berikut web alamat: http://www.dlms.com/flag/INDEX.HTM Setiap aksara kod tiga huruf dikodkan sebagai lima bit. Kod 5-bit boleh didapati dengan mengambil kod ASCII dan menolak 0x40 (“A”). Tiga kod 5-bit digabungkan untuk membuat 15-bit. Bit yang paling ketara ialah sifar.
  4. A-Field
    Medan alamat ialah alamat 6-bait yang unik untuk setiap peranti. Alamat unik harus diberikan oleh pengilang. Adalah menjadi tanggungjawab setiap pengeluar untuk memastikan bahawa setiap peranti mempunyai alamat 6-bait yang unik. Alamat untuk bingkai Hantar dan Minta ialah alamat diri meter atau peranti lain. Bingkai data pengesahan dan respons dihantar menggunakan alamat peranti asal.
  5. Bidang CI
    Medan CI ialah pengepala aplikasi dan mengkhususkan jenis data dalam muatan data aplikasi. Walaupun EN13757-4:2005 menentukan bilangan nilai yang terhad, Primitif Perkhidmatan Pautan akan membenarkan sebarang nilai digunakan.
  6. CRC
    CRC dinyatakan dalam EN13757-4:2005.
    Polinomial CRC ialah:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    Ambil perhatian bahawa M-Bus CRC dikira pada setiap blok 16-bait. Hasilnya ialah setiap 16 bait data memerlukan 18 bait untuk dihantar,
Maklumat Tambahan

Untuk mendapatkan maklumat tambahan tentang Pelaksanaan Lapisan Pautan, lihat "AN452: Panduan Pengaturcara Tindanan M-Bus Tanpa Wayar".

Pengurusan Kuasa

Rajah 2 menunjukkan garis masa pengurusan kuasa untuk bekas meterample menggunakan Mod T1.

MCU hendaklah dalam mod Tidur apabila boleh untuk menjimatkan tenaga. Dalam bekas iniampOleh itu, MCU sedang tidur semasa RTC sedang berjalan, semasa menunggu pada permulaan kristal radio, dan semasa menghantar dari FIFO. MCU akan bangun daripada isyarat EZRadioPRO IRQ yang disambungkan kepada bangun Port Match.
Apabila menghantar mesej lebih lama daripada satu blok, MCU mesti bangun untuk mengisi FIFO (berdasarkan gangguan hampir kosong FIFO) dan kemudian tidur semula.
MCU hendaklah dalam mod Melahu berjalan dari pengayun kuasa rendah atau pengayun mod pecah apabila membaca daripada ADC. ADC memerlukan jam SAR.
Apabila tidak digunakan, EZRadioPRO hendaklah dalam mod Matikan dengan pin SDN dipacu tinggi. Ini memerlukan sambungan berwayar keras ke MCU. Daftar EZ Radio Pro tidak disimpan dalam mod tutup; jadi, EZRadioPro dimulakan pada setiap selang RTC. Memulakan Radio mengambil masa kurang daripada 100 µs dan menjimatkan 400 nA. Ini menghasilkan penjimatan tenaga 10 µJ, berdasarkan selang 10 saat.
Kristal EZRadioPRO mengambil masa kira-kira 16 ms untuk POR. Ini cukup panjang untuk mengira CRC untuk kira-kira lapan blok. MCU akan kembali tidur jika ia melengkapkan semua CRC sebelum kristal menjadi stabil. Jika penyulitan diperlukan, ia juga boleh dimulakan semasa menunggu pada pengayun kristal.
MCU harus berjalan pada 20 MHz menggunakan pengayun kuasa rendah untuk kebanyakan tugas. Tugasan yang memerlukan tamat masa yang tepat mesti menggunakan pengayun ketepatan dan mod melahu dan bukannya mod tidur. RTC menyediakan resolusi yang mencukupi untuk kebanyakan tugas. Garis masa pengurusan kuasa untuk meter T2 exampaplikasi ditunjukkan dalam Rajah 3.

Pelaksanaan transceiver harus dioptimumkan untuk kes biasa apabila meter bangun dan tiada pembaca hadir. Tamat masa ACK minimum/maksimum adalah cukup lama supaya boleh menggunakan C8051F930 RTC dan meletakkan MCU ke dalam mod tidur.
Pilihan binaan disediakan untuk sesalur atau pembaca berkuasa USB yang tidak perlu menggunakan mod tidur. Mod melahu akan digunakan dan bukannya tidur supaya USB dan UART boleh mengganggu MCU.

Pelaksanaan Perisian M-BUS Tanpa Wayar SILICON LABS AN451-1

Studio Kesederhanaan
Akses satu klik kepada MCU dan alatan wayarles, dokumentasi, perisian, perpustakaan kod sumber & banyak lagi. Tersedia untuk Windows,
Mac dan Linux!

Portfolio IoT Kualiti
Portfolio IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
Kualiti
www.silabs.com/quality
Sokongan dan Komuniti
community.silabs.com

Penafian
Silicon Labs berhasrat untuk menyediakan pelanggan dengan dokumentasi terkini, tepat dan mendalam bagi semua peranti dan modul yang tersedia untuk pelaksana sistem dan perisian yang menggunakan atau berhasrat untuk menggunakan produk Silicon Labs. Data pencirian, modul dan peranti yang tersedia, saiz memori dan alamat memori merujuk kepada setiap peranti tertentu, dan parameter "Lazim" yang disediakan boleh dan berbeza dalam aplikasi yang berbeza. Permohonan cthampyang diterangkan di sini adalah untuk tujuan ilustrasi sahaja. Silicon Labs berhak untuk membuat perubahan tanpa notis lanjut dan had kepada maklumat produk, spesifikasi dan penerangan di sini, dan tidak memberikan jaminan tentang ketepatan atau kesempurnaan maklumat yang disertakan. Silicon Labs tidak akan bertanggungjawab ke atas akibat penggunaan maklumat yang dibekalkan di sini. Dokumen ini tidak membayangkan atau menyatakan lesen hak cipta yang diberikan di bawah ini untuk mereka bentuk atau mengada-adakan sebarang litar bersepadu. Produk tidak direka bentuk atau dibenarkan untuk digunakan dalam mana-mana Sistem Sokongan Hayat tanpa kebenaran bertulis khusus daripada Silicon Labs. “Sistem Sokongan Kehidupan” ialah sebarang produk atau sistem yang bertujuan untuk menyokong atau mengekalkan kehidupan dan/atau kesihatan, yang, jika gagal, boleh dijangka secara munasabah mengakibatkan kecederaan peribadi atau kematian yang ketara. Produk Silicon Labs tidak direka bentuk atau dibenarkan untuk aplikasi ketenteraan. Produk Silicon Labs tidak boleh digunakan dalam apa jua keadaan dalam senjata pemusnah termasuk (tetapi tidak terhad kepada) senjata nuklear, biologi atau kimia, atau peluru berpandu yang mampu menghantar senjata tersebut.
Maklumat Cap Dagangan
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® dan logo Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logo dan gabungannya, "mikropengawal paling mesra tenaga di dunia", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress®, dan lain-lain ialah tanda dagangan atau tanda dagangan berdaftar Silicon Labs. ARM, CORTEX, Cortex-M3 dan ibu jari ialah tanda dagangan atau tanda dagangan berdaftar ARM Holdings. Keil ialah tanda dagangan berdaftar ARM Limited. Semua produk atau nama jenama lain yang disebut di sini adalah tanda dagangan pemegang masing-masing.Logo SILICON LABS

Makmal Silikon Inc.
400 Barat Cesar Chavez
Austin, TX 78701
USA
http://www.silabs.com

Dokumen / Sumber

Pelaksanaan Perisian M-BUS Tanpa Wayar SILICON LABS AN451 [pdf] Panduan Pengguna
SILICON LABS, C8051, MCU, dan, EZRadioPRO, Wireless M-bas, Wireless, M-BUS, Perisian, Pelaksanaan, AN451

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *