AN451
SİMSİZ M-BUS PROQRAMININ TƏTBİQİ
Giriş
Bu proqram qeydi Silicon Labs C8051 MCU və EZRadioPRO® istifadə edərək Wireless M-Bus-un Silicon Labs tətbiqini təsvir edir. Simsiz M-avtobus 868 MHz tezlik diapazonundan istifadə edərək sayğac oxumaq proqramları üçün Avropa Standartıdır.
Stack Lays
Simsiz M-Bus 3 qatlı OSI modelinin alt dəsti olan 7 qatlı IEC modelindən istifadə edir (Şəkil 1-ə baxın).
Fiziki (PHY) təbəqə EN 13757-4-də müəyyən edilmişdir. Fiziki səviyyə bitlərin necə kodlaşdırıldığını və ötürülməsini, RF modemin xüsusiyyətlərini (çip sürəti, preambula və sinxronizasiya sözü) və RF parametrlərini (modulyasiya, mərkəz tezliyi və tezlik sapması) müəyyən edir.
PHY qatı aparat və proqram təminatının birləşməsindən istifadə etməklə həyata keçirilir. EZRadioPRO bütün RF və modem funksiyalarını yerinə yetirir. EZRadioPRO paket işləyicisi ilə FIFO rejimində istifadə olunur. MbusPhy.c modulu SPI interfeysi, kodlaşdırma/deşifrə, blokun oxunması/yazılması və paketlərin idarə edilməsini təmin edir və ötürücü vəziyyətlərini idarə edir.
M-Bus Data link təbəqəsi MbusLink.c modulunda həyata keçirilir. M-Bus Tətbiq Proqramlaşdırma interfeysi əsas ipdəki tətbiq səviyyəsindən çağırıla bilən ictimai funksiyalardan ibarətdir. MbusLink modulu həmçinin Data Link Layer-i həyata keçirir. Məlumat bağlantısı təbəqəsi tələb olunan başlıqları və CRC-ləri əlavə edərək, tətbiqin TX buferindən məlumatları MbusPhy TX buferinə formatlaşdıracaq və köçürür.
Tətbiq qatının özü M-avtobus mikroproqramının bir hissəsi deyil. Tətbiq səviyyəsi müxtəlif məlumatların ötürülməsi üçün necə formatlaşdırılacağını müəyyənləşdirir. Əksər sayğacların yalnız bir və ya iki növ məlumat ötürməsi lazımdır. Sayğaca istənilən növ məlumatı yerləşdirmək üçün böyük miqdarda kodun əlavə edilməsi sayğaca lazımsız kod və xərc əlavə edərdi. Kitabxana və ya başlıq tətbiq etmək mümkün ola bilər file məlumat növlərinin tam siyahısı ilə. Bununla belə, ölçmə müştərilərinin əksəriyyəti nə cür məlumat ötürməli olduqlarını dəqiq bilirlər və formatlaşdırma detalları üçün standarta müraciət edə bilərlər. Universal oxucu və ya sniffer PC GUI-də proqram məlumat növlərinin tam dəstini həyata keçirə bilər. Bu səbəblərə görə tətbiq təbəqəsi ex istifadə edərək həyata keçirilirampsayğac və oxuyucu üçün proqramlar.
Tələb olunan Standartlar
- EN 13757-4
EN 13757-4
Sayğaclar üçün rabitə sistemi və sayğacların məsafədən oxunması
4-cü hissə: Simsiz sayğacın oxunuşu
868 MHz-dən 870 MHz SRD diapazonunda işləmək üçün radiometrin oxunması - EN 13757-3
Sayğaclar üçün rabitə sistemi və sayğacların məsafədən oxunması
3-cü hissə: Xüsusi tətbiq təbəqəsi - IEC 60870-2-1:1992
Telenəzarət avadanlığı və sistemləri
Hissə 5: Ötürmə protokolları
Bölmə 1: Linkin ötürülməsi proseduru - IEC 60870-1-1:1990
Telenəzarət avadanlığı və sistemləri
Hissə 5: Ötürmə protokolları
Bölmə 1: Transmissiya çərçivə formatları
Təriflər
- M-AvtobusM-Bus Avropada sayğac oxumaq üçün simli standartdır.
- Simsiz M-Bus—Avropada sayğac oxuma proqramları üçün simsiz M-Bus.
- PHY—Fiziki Layer verilənlərin bit və baytlarının necə kodlaşdırıldığını və ötürüldüyünü müəyyən edir.
- API—Tətbiq Proqramçısı interfeysi.
- LINK—Data Link Layer blokların və çərçivələrin necə ötürüldüyünü müəyyən edir.
- CRC-Dövrlü artıqlığın yoxlanılması.
- FSK -Tezliyin dəyişdirilməsi.
- Çip -Köçürülən məlumatların ən kiçik vahidi. Bir məlumat biti çoxlu çip kimi kodlanır.
- Modul -AC kodu mənbəyi .c file.
M-Bus PHY Funksional Təsvir
Preambula ardıcıllığı
M-avtobus spesifikasiyası ilə müəyyən edilmiş Preambula ardıcıllığı sıfırları və birləri dəyişən tam ədəddir. Bir daha yüksək tezlik, sıfır isə aşağı tezlik kimi müəyyən edilir.
nx (01)
Si443x üçün Preambula variantları bir-birini əvəz edən və sıfırlardan ibarət olan tam ədəd nibblesdir.
nx (1010)
Əlavə aparıcısı olan preambula problem yaratmayacaq, lakin sinxronizasiya sözü və faydalı yük bir bit ilə yanlış uyğunlaşdırılacaq.
Həll yolu, Modulation Control 2 registrində (0x71) mühərrik bitini təyin etməklə bütün paketi tərsinə çevirməkdir. Bu, preambula, sinxron söz və TX/RX məlumatını tərsinə çevirəcək. Nəticədə, TX məlumatlarını yazarkən və ya RX məlumatlarını oxuyarkən məlumatlar ters çevrilməlidir. Həmçinin, sinxronizasiya sözü Si443x Sinxronizasiya Word registrlərinə yazmadan əvvəl tərsinə çevrilir.
Sinxronizasiya Word
EN-13757-4 tərəfindən tələb olunan sinxronizasiya sözü S və Mode R üçün ya 18 çip, ya da Model T üçün 10 çipdir. Si443x üçün sinxronizasiya sözü 1 ilə 4 baytdır. Bununla belə, sinxronizasiya sözü həmişə preambuladan əvvəl olduğu üçün preambulanın son altı biti sinxronizasiya sözünün bir hissəsi sayıla bilər; belə ki, ilk sinxronizasiya sözü sıfırın üç təkrarı və ardınca bir ilə doldurulur. Sinxronizasiya sözü Si443x registrlərinə yazılmazdan əvvəl tamamlanır.
Cədvəl 1. S rejimi və R rejimi üçün sinxronizasiya sözü
EN 13757-4 | 00 | 01110110 | 10010110 | ikili |
00 | 76 | 96 | hex | |
(01) x 3 olan yastıq | 01010100 | 01110110 | 10010110 | ikili |
54 | 76 | 96 | hex | |
tamamlayır | 10101011 | 10001001 | 01101001 | ikili |
AB | 89 | 69 | hex |
Cədvəl 2. Mode T Meter üçün Sinxronizasiya Sözünün Digərinə
SYNCH | SYNCH | SYNCH |
SÖZ | SÖZ | SÖZ |
3 | 2 | 1 |
Transmit Preambula Uzunluğu
Minimum preambula dörd müxtəlif iş rejimi üçün müəyyən edilmişdir. Preambulanın göstəriləndən daha uzun olması məqbuldur. Preambula üçün altı çipi çıxmaq Si443x preambula üçün minimum çip sayını verir. Tətbiq preambulanın aşkar edilməsini və qarşılıqlı fəaliyyət qabiliyyətini yaxşılaşdırmaq üçün bütün qısa preambula rejimlərində iki əlavə preambula əlavə edir. Uzun preambula ilə Mode S-də preambula çox uzundur; belə ki, minimum preambula istifadə olunur. Preambulanın nibbles ilə uzunluğu Preambulanın uzunluğu (0x34) registrinə yazılır. Preambula uzunluğu reyestrində preambula yalnız ötürülmə zamanı müəyyən edilir. Minimum spesifikasiya və preambula uzunluğu parametrləri Cədvəl 3-də ümumiləşdirilmişdir.
Cədvəl 3. Transmit Preambula Uzunluğu
EN-13757-4 minimum |
Si443x Preambula Quraşdırma |
Sinxronizasiya Söz |
Cəmi | əlavə | |||
nx (01) | çiplər | dişləyir | çiplər | çiplər | çiplər | çiplər | |
Mode S qısa preambula | 15 | 30 | 8 | 32 | 6 | 38 | 8 |
Mode S uzun preambula | 279 | 558 | 138 | 552 | 6 | 558 | 0 |
Rejim T (metr-digər) | 19 | 38 | 10 | 40 | 6 | 46 | 8 |
Rejim R | 39 | 78 | 20 | 80 | 6 | 86 | 8 |
Qəbul üçün minimum preambula Preambulanın Aşkarlanmasına Nəzarət reyestri (0x35) ilə müəyyən edilir. Qəbul edildikdə, istifadə edilə bilən preambula müəyyən etmək üçün sinxron sözdəki bitlərin sayı müəyyən edilmiş minimum preambuladan çıxılmalıdır. AFC aktivdirsə qəbuledicinin minimum yerləşdirmə vaxtı 16 çip və ya AFC deaktivdirsə 8 çipdir. Preambulanın Aşkarlanmasına Nəzarət registrinin minimum parametrini müəyyən etmək üçün qəbuledicinin yerləşdirilməsi vaxtı da istifadə edilə bilən preambuladan çıxarılır.
Yanlış preambula ehtimalı Preambulanın Aşkarlanmasına Nəzarət registrinin qurulmasından asılıdır. 8 çipdən ibarət qısa bir təyinat bir neçə saniyədən bir yalançı preambulanın aşkarlanması ilə nəticələnə bilər. Tövsiyə olunan 20 çip parametri yanlış preambula aşkarlanmasını qeyri-mümkün bir hadisə edir. Mode R və Mode SL üçün preambula uzunluqları tövsiyə olunan parametrin istifadə edilməsi üçün kifayət qədər uzundur.
Preambulanın 20 çipdən daha uzun müddət aşkarlanmasının çox az faydası var.
Qısa preambula və Model T Model S üçün AFC deaktiv edilib. Bu, qəbuledicinin yerləşdirilməsi vaxtını azaldır və daha uzun preambula aşkarlama parametrinə icazə verir. AFC söndürüldükdə, T rejimi tövsiyə olunan 20 çip parametrindən istifadə edə bilər. Qısa preambula ilə Model S üçün 4 nibbles və ya 20 çipdən ibarət parametr istifadə olunur. Bu, bu model üçün yanlış preambulanın aşkarlanması ehtimalını bir qədər yüksək edir.
Cədvəl 4. Preambulanın aşkarlanması
EN-13757-4 minimum |
Sinxronizasiya Söz |
istifadəyə yararlı preambula |
RX Yerləşdirmə | Aşkar et min |
Si443x Preambula Algılama Ayarı |
|||
nx (01) | çiplər | çiplər | çiplər | çiplər | çiplər | dişləyir | çiplər | |
Mode S qısa preambula | 15 | 30 | 6 | 24 | 8* | 16 | 4 | 16 |
Model S uzun preambula | 279 | 558 | 6 | 552 | 16 | 536 | 5 | 20 |
Model T (metr-digər) | 19 | 38 | 6 | 32 | 8* | 24 | 5 | 20 |
Rejim R | 39 | 78 | 6 | 72 | 16 | 56 | 5 | 20 |
*Qeyd: AFC əlil |
Qəbuledici minimum müəyyən edilmiş preambuladan istifadə edərək ötürücü ilə işləmək üçün konfiqurasiya edilmişdir. Bu, qəbuledicinin hər hansı M avtobusuna uyğun verici ilə işləməsini təmin edir.
Wireless M-Bus spesifikasiyası ən azı 1 çipdən ibarət Mode S558 üçün çox uzun preambula tələb edir. Bu, sadəcə preambulanı ötürmək üçün təxminən 17 ms çəkəcək. Si443x belə uzun preambula tələb etmir və uzun preambuladan faydalanmır. Uzun preambula Mode S2 üçün isteğe bağlı olaraq qeyd edilsə də, Si443x ilə uzun preambuladan istifadə etmək üçün heç bir səbəb yoxdur. Əgər birtərəfli rabitə istənirsə, T1 rejimi daha qısa preambula, daha yüksək məlumat sürəti və daha uzun batareya ömrü təmin edəcək. Mode S2 istifadə edərək ikitərəfli rabitə tələb olunarsa, qısa bir preambula tövsiyə olunur.
Diqqət yetirin ki, uzun preambula ilə Model S üçün aşkarlama həddi qısa preambula ilə Model S üçün ötürülən preambula nibbles sayından daha uzundur. Bu o deməkdir ki, uzun preambula Mode S qəbuledicisi qısa preambula Mode S ötürücüsünün preambulasını aşkar etməyəcək. Uzun preambula Mode S qəbuledicisi uzun preambuladan hər hansı bir fayda əldə etmək üçün bu lazımdır.
Qeyd edək ki, qısa preambula Mode S qəbuledicisi preambulanı aşkar edəcək və həm qısa preambula Mode S-dən paketləri qəbul edəcək.
ötürücü və uzun preambula Mode S ötürücü; belə ki, ümumiyyətlə, sayğac oxuyucusu qısa preambula Mode S qəbuledici konfiqurasiyasından istifadə etməlidir.
Kodlaşdırma/deşifrə
Wireless M-bus spesifikasiyası iki fərqli kodlaşdırma metodunu tələb edir. Mançester kodlaşdırması Mode S və Mode R üçün istifadə olunur. Mançester kodlaşdırması Model T-də digər-metr bağlantısı üçün də istifadə olunur. Model T metr-digər keçid 3 kodlaşdırmadan 6-dən istifadə edir.
1. Manchester Encoded/Decoding
Mançester kodlaşdırması tarixən RF sistemlərində sadə və ucuz modemdən istifadə edərək möhkəm saat bərpası və izləmə təmin etmək üçün geniş yayılmışdır. Bununla belə, Si443x kimi müasir yüksək performanslı radionun Mançester kodlaşdırmasına ehtiyacı yoxdur. Mançester kodlaşdırması ilk növbədə mövcud standartlarla uyğunluq üçün dəstəklənir, lakin Si443x üçün məlumat sürəti Mançester kodlaşdırmasından istifadə etmədikdə effektiv şəkildə ikiqat artır.
Si443x, bütün paketin aparatda Manchester kodlamasını və deşifrəsini dəstəkləyir. Təəssüf ki, sinxronizasiya sözü Mançesterdə kodlaşdırılmayıb. Sinxronizasiya sözü üçün yanlış Mançester ardıcıllığı qəsdən seçilib. Bu, Mançester kodlamasını Si443x daxil olmaqla, əksər mövcud radiolarla uyğunsuz edir. Nəticədə, Mançester kodlaşdırması və dekodlanması MCU tərəfindən həyata keçirilməlidir. Kodlanmamış verilənlərin hər baytı səkkiz verilənlər bitindən ibarətdir. Mançester kodlaşdırmasından istifadə edərək, hər bir məlumat biti iki çip simvoluna kodlanır. Şifrələnmiş məlumatlar bir anda səkkiz çiplə FIFO radiosuna yazılmalı olduğundan, bir nibble məlumat kodlaşdırılır və FIFO-ya yazılır.
Cədvəl 5. Mançester kodlaşdırması
data | Ox12 | 0x34 | bayt | ||
Ox1 | 0x2 | 0x3 | 0x4 | dişləyir | |
1 | 10 | 11 | 100 | ikili | |
çip | 10101001 | 10100110 | 10100101 | 10011010 | ikili |
FİFO | OxA9 | OxA6 | OxA5 | Ox9A | hex |
Ötürüləcək hər bir bayt kodlaşdırma bayt funksiyasına bir bayt ötürülür. Encode byte funksiyası kodlaşdırma funksiyasını iki dəfə çağıracaq, əvvəlcə ən əhəmiyyətli dişləmə, sonra isə ən az əhəmiyyətli nibble üçün.
Proqram təminatında Mançester kodlaşdırması çətin deyil. Ən əhəmiyyətli bitdən başlayaraq biri “01” çip ardıcıllığı kimi kodlanır. Sıfır "10" çip ardıcıllığı kimi kodlanır. Bu, bir döngə və hər bir simvol üçün iki bitin dəyişdirilməsi ilə asanlıqla həyata keçirilə bilər. Bununla belə, hər nibble üçün sadə 16 girişli axtarış cədvəlindən istifadə etmək daha sürətlidir. Encode Manchester nibble funksiyası verilənlərin nibblesını kodlayır, sonra onu FIFO-ya yazır. Ters çevrilmiş preambula tələblərini nəzərə almaq üçün FIFO-ya yazmadan əvvəl çiplər çevrilir.
Qəbul edərkən, FIFO-da hər bayt səkkiz çipdən ibarətdir və bir nibble məlumatına çevrilir. Oxuma bloku funksiyası FIFO-dan bir bayt oxuyur və deşifrə bayt funksiyasını çağırır. FİFO-dan oxunduqdan sonra çiplər ters çevrilmiş preambula tələblərini nəzərə almaq üçün çevrilir. Mançesterdə kodlanmış çiplərin hər bir baytı verilənlərin nibblesına çevrilir. Şifrədən çıxarılan nibble RX buferinə yazma nibble RX bufer funksiyasından istifadə edərək yazılır.
Diqqət yetirin ki, həm kodlaşdırılmış, həm də dekodlaşdırma tez bir zamanda bir məlumat dişləməsi həyata keçirilir. Buferə kodlaşdırma kodlaşdırılmamış məlumatdan iki dəfə böyük olan əlavə bufer tələb edəcək. Kodlaşdırma və dekodlaşdırma dəstəklənən ən sürətli məlumat sürətindən (saniyədə 100 k çip) çox daha sürətlidir. Si443x çox baytlıq oxunuşları və FIFO-ya yazmağı dəstəklədiyi üçün yalnız bir baytlıq oxumaq və yazmaqdan istifadə etmək üçün kiçik bir yük var. 10 kodlanmış çip üçün yerüstü xərc təxminən 100 µs təşkil edir. Fayda 512 bayt RAM qənaətidir.
2. Altıdan Üç Kodlaşdırma Deşifrəsi
EN-13757-4-də göstərilən Altıdan Üç kodlaşdırma metodu MCU-da proqram təminatında da həyata keçirilir. Bu kodlaşdırma sayğacdan digərinə yüksək sürətli (saniyədə 100 k çip) Mode T üçün istifadə olunur. Model T simsiz sayğac üçün ən qısa ötürmə müddətini və ən uzun batareya ömrünü təmin edir.
Ötürüləcək məlumatların hər bir baytı iki nibble bölünür. Ən əhəmiyyətli dişləmə əvvəlcə kodlanır və ötürülür. Yenə də bu, kodlaşdırma bayt funksiyasından istifadə etməklə həyata keçirilir ki, bu da kodlaşdırma nibble funksiyasını iki dəfə çağırır.
Hər bir məlumat nibble altı çip simvolu ilə kodlanır. Altı çipli simvolların ardıcıllığı 8 çipli FIFO-ya yazılmalıdır.
Kodlaşdırma zamanı iki bayt məlumat dörd nibble kimi kodlanır. Hər dişləmə 6 çip simvoludur. Dörd 6 çip simvolu üç bayt olaraq toplanır.
Cədvəl 6. Altı kodlaşdırmadan üçü
data | 0x12 | 0x34 | bayt | ||||
Ox1 | 0x2 | 0x3 | 0x4 | dişləyir | |||
çip | 15 | 16 | 13 | 34 | səkkizlik | ||
1101 | 1110 | 1011 | 11100 | ikili | |||
FİFO | 110100 | 11100010 | 11011100 | ikili | |||
0x34 | OxE2 | OxDC | hex |
Proqram təminatında altıdan üçü kodlaşdırma üç yuvalanmış funksiyadan istifadə etməklə həyata keçirilir. Encode byte funksiyası kodlaşdırma nibble funksiyasını iki dəfə çağıracaq. Encode nibble funksiyası altı çipli simvol üçün axtarış cədvəlindən istifadə edir və simvolu Altı funksiyadan Üçünü Shift-ə yazır. Bu funksiya proqram təminatında 16 çipli sürüşmə registrini həyata keçirir. Simvol sürüşmə registrinin ən az əhəmiyyətli baytına yazılır. Reyestr iki dəfə sola sürüşdürülür. Bu üç dəfə təkrarlanır. Tam bayt keçid registrinin yuxarı baytında olduqda, o, çevrilir və FIFO-ya yazılır.
Məlumatın hər baytı bir yarım kodlanmış bayt kimi kodlandığından, birinci kodlaşdırılmış baytın düzgün olması üçün ilkin olaraq sürüşmə registrini təmizləmək vacibdir. Əgər paket uzunluğu tək ədəddirsə, bütün baytları kodlaşdırdıqdan sonra shift registrində hələ də bir nibble qalacaq. Bu, növbəti hissədə izah edildiyi kimi, poçt daşıyıcısı ilə idarə olunur.
Kodlanmış altıdan üçünün şifrəsini açmaq tərs prosedurdur. Şifrəni açarkən, üç kodlanmış bayt iki məlumat baytına deşifrə edilir. Proqram keçid registrindən yenidən deşifrə olunmuş məlumatların baytlarını toplamaq üçün istifadə olunur. Şifrənin açılması üçün 64 girişli tərs axtarış cədvəlindən istifadə olunur. Bu, daha az dövrə, lakin daha çox kod yaddaşından istifadə edir. Müvafiq simvol üçün 16 girişli axtarış cədvəlində axtarış xeyli uzun çəkir.
Poçt qutusu
Simsiz M-avtobus spesifikasiyası poçt daşıyıcısı və ya qoşqu üçün xüsusi tələblərə malikdir. Bütün rejimlər üçün minimum iki çip, maksimum isə səkkiz çipdir. FIFO üçün minimum atom vahidi bir bayt olduğundan, Mode S və Mode R üçün 8 çipli treyler istifadə olunur. Mode T poçtu paket uzunluğu cüt olduqda səkkiz çip və ya paket uzunluğu tək olduqda dörd çipdir. Tək paket uzunluğu üçün dörd çipli poçt qutusu ən azı iki alternativ çipin olması tələblərinə cavab verir.
Cədvəl 7. Poçt göndərişinin uzunluğu
Poçt uzunluğu (çiplər) | |||||
min | maks | İcra | çip ardıcıllığı | ||
Rejim S | 2 | 8 | 8 | 1010101 | |
Rejim T | 2 | 8 | 4 | (tək) | 101 |
8 | (hətta) | 1010101 | |||
Rejim R | 2 | 8 | 8 | 1010101 |
Paket İşləyicisi
Si443x-də paket işləyicisi dəyişən paket eni rejimində və ya sabit paket eni rejimində istifadə edilə bilər. Dəyişən paket eni rejimi sinxronizasiya sözündən və əlavə başlıq baytından sonra paket uzunluğu baytı tələb edir. Qəbul edildikdən sonra Radio etibarlı paketin sonunu müəyyən etmək üçün uzunluq baytından istifadə edəcək. Ötürülmə zamanı radio başlıq baytlarından sonra uzunluq sahəsini daxil edəcək.
Simsiz M-bus protokolu üçün L sahəsi Si443x uzunluğu sahəsi üçün istifadə edilə bilməz. Birincisi, L sahəsi faktiki paket uzunluğu deyil. Bu, CRC baytları və ya kodlaşdırma daxil edilməyən keçid qatının faydalı yük baytlarının sayıdır. İkincisi, L sahəsinin özü ya Mançester kodlaşdırmasından, ya da Mode T metr üçün Altıdan Üçdən digərinə kodlaşdırmadan istifadə etməklə kodlanır.
Tətbiq həm ötürmə, həm də qəbul üçün sabit paket eni rejimində paket işləyicisindən istifadə edir. Ötürüldükdən sonra PHY təbəqəsi ötürmə buferindəki L sahəsini oxuyacaq və poçt göndərişi də daxil olmaqla kodlanmış baytların sayını hesablayacaq. Ötürüləcək kodlaşdırılmış baytların ümumi sayı Paket Uzunluğu registrinə (0x3E) yazılır.
Qəbul edildikdən sonra ilk iki kodlanmış bayt deşifrə edilir və L sahəsi qəbuledici buferə yazılır. L-sahəsi qəbul ediləcək kodlanmış baytların sayını hesablamaq üçün istifadə olunur. Qəbul ediləcək kodlaşdırılmış baytların sayı daha sonra Paket Uzunluğu registrinə (0x3E) yazılır. Poçt qutusu atılır.
MCU mümkün olan ən qısa paket uzunluğu qəbul edilməzdən əvvəl L sahəsinin şifrəsini açmalı, kodlanmış baytların sayını hesablamalı və dəyəri Paket Uzunluğu reyestrinə yazmalıdır. PHY təbəqəsi üçün icazə verilən ən qısa L-sahəsi 9-dur və 12 kodlanmamış bayt verir. Bu, Model T üçün 18 kodlanmış bayt verir. İlk iki bayt artıq deşifrə olunub. Beləliklə, paket uzunluğu registrini 16 bayt dəfə 100 kbps və ya 1.28 millisaniyədə yeniləmək lazımdır. 8051 MIPS sürətində işləyən 20 üçün bu problem deyil.
Qəbul ediləcək baytların sayına tək paket uzunluğuna malik Mode T paketləri üçün istifadə edilən dörd çipli poçt daşıyıcısı istisna olmaqla, göndəriş daxil deyil. Beləliklə, qəbuledici, Model T tək uzunluqlu paketlər istisna olmaqla, poçt göndərişini tələb etmir. Bu poçt göndərişi yalnız kodlanmış baytların tam sayını vermək üçün lazımdır. Poçt göndərişinin məzmunu nəzərə alınmır; belə ki, poçt göndərişi ötürülməzsə, dörd çip səs-küy qəbul ediləcək və nəzərə alınmayacaq. Kodlanmış baytların ümumi sayı 255 (0xFF) ilə məhdudlaşdığından, icra müxtəlif rejimlər üçün maksimum L sahəsini məhdudlaşdırır.
Cədvəl 8. Paket Ölçüsü Limitləri
kodlanmış | deşifrə olunub | M-Avtobus | ||||
bayt | bayt | L sahəsi | ||||
dekabr | hex | dekabr | hex | dekabr | hex | |
Rejim S | 255 | FF | 127 | 7 F | 110 | 6E |
Rejim T (metr-digər) | 255 | FF | 169 | A9 | 148 | 94 |
Rejim R | 255 | FF | 127 | 7 F | 110 | 6E |
Bu məhdudiyyətlər adətən simsiz sayğac üçün tipik istifadə vəziyyətindən xeyli yuxarıdır. Mümkün olan ən yaxşı batareya ömrünü əldə etmək üçün paket uzunluğu kiçik saxlanılmalıdır.
Bundan əlavə, istifadəçi qəbul edilməli olan maksimum L sahəsini təyin edə bilər (USER_RX_MAX_L_FIELD). Bu, qəbul buferi üçün tələb olunan ölçüsü müəyyən edir (USER_RX_BUFFER_SIZE).
Maksimum 255 L sahəsini dəstəkləmək üçün 290 bayt qəbul buferi və maksimum 581 Mançester kodlu bayt tələb olunur. Paket işləyicisi söndürülməlidir və bu halda Paket Uzunluğu registrindən istifadə edilə bilməz. Bu mümkündür, lakin mümkünsə, paket işləyicisindən istifadə etmək daha rahatdır.
FIFO İstifadəsi
Si4431 ötürmə və qəbul üçün 64 baytlıq FIFO təmin edir. Kodlanmış baytların sayı 255 olduğundan, bütün kodlanmış paket 64 baytlıq buferə sığmaya bilər.
Keçmə
Ötürülmə zamanı kodlanmış baytların ümumi sayı hesablanır. Əgər poçt göndərişi də daxil olmaqla, kodlaşdırılmış baytların ümumi sayı 64 baytdan azdırsa, bütün paket FİFO-ya yazılır və yalnız paket göndərilən kəsilmə aktivləşdirilir. Əksər qısa paketlər bir FIFO transferində göndəriləcək.
Kodlanmış baytların sayı 64-dən çox olarsa, paketi göndərmək üçün çoxlu FIFO köçürmələri tələb olunacaq. İlk 64 bayt FIFO-ya yazılır. Göndərilən Paket və TX FIFO Demək olar ki, Boş fasilələr aktivləşdirilib. TX FIFO Demək olar ki, boş həddi 16 bayta (25%) təyin edilib. Hər IRQ hadisəsindən sonra status 2 reyestri oxunur. Əvvəlcə Packet Sent biti yoxlanılır və əgər paket tam göndərilməyibsə, növbəti 48 bayt kodlaşdırılmış məlumat FIFO-ya yazılır. Bu, bütün kodlanmış baytlar yazılana və Paket Göndərilən kəsilmə baş verənə qədər davam edir.
1. Qəbul
Qəbul zamanı, ilkin olaraq, yalnız Sync Word kəsilməsi aktivləşdirilir. Sinxronizasiya sözünü qəbul etdikdən sonra sinxronizasiya sözünün kəsilməsi deaktiv edilir və FIFO Demək olar ki, Tam kəsilməsi aktivləşdirilir. FIFO-nun demək olar ki, tam həddi əvvəlcə 2 bayta təyin edilmişdir. İlk FIFO Demək olar ki, Tam kəsmə iki uzunluqlu baytın nə vaxt alındığını bilmək üçün istifadə olunur. Uzunluq qəbul edildikdən sonra uzunluq deşifrə edilir və kodlanmış baytların sayı hesablanır. RX FIFO demək olar ki, Tam həddi daha sonra 48 bayta təyin edilir. RX FIFO demək olar ki, doludur və Etibarlı Paket fasilələri işə salınıb. Növbəti IRQ hadisəsi zamanı status 1 reyestri oxunur. Əvvəlcə Valid Paket biti yoxlanılır, sonra isə FIFO Demək olar ki, Tam bit yoxlanılır. Yalnız RX FIFO Demək olar ki, tam biti təyin edilərsə, növbəti 48 bayt FIFO-dan oxunur. Etibarlı paket biti təyin edilərsə, paketin qalan hissəsi FIFO-dan oxunur. MCU neçə baytın oxunduğunu izləyir və son baytdan sonra oxumağı dayandırır.
Məlumat bağlantısı qatı
Məlumat bağlantısı səviyyəsi modulu 13757-4:2005 uyğun keçid qatını həyata keçirir. Məlumat bağlantısı səviyyəsi (LINK) fiziki səviyyə (PHY) və tətbiq səviyyəsi (AL) arasında interfeys təmin edir.
Data Link Layer aşağıdakı funksiyaları yerinə yetirir:
- PHY və AL arasında məlumat ötürən funksiyaları təmin edir
- Gedən mesajlar üçün CRC-lər yaradır
- Daxil olan mesajlarda CRC xətalarını aşkar edir
- Fiziki ünvanlama təmin edir
- İki istiqamətli rabitə rejimləri üçün köçürmələri qəbul edir
- Məlumat bitlərini çərçivələr
- Daxil olan mesajlarda çərçivə səhvlərini aşkar edir
Link Layer Frame Format
EN 13757-4:2005-də istifadə olunan Wireless M-Bus çərçivə formatı IEC3-3-60870-dən FT5 (Çərçivə Tipi 2) çərçivə formatından götürülüb. Çərçivə bir və ya bir neçə məlumat blokundan ibarətdir. Hər bloka 16 bitlik CRC sahəsi daxildir. Birinci blok L sahəsini, C sahəsini, M sahəsini və A sahəsini əhatə edən 12 baytlıq sabit uzunluqlu blokdur.
- L sahəsi
L sahəsi Link qatının məlumat yükünün uzunluğudur. Bura L sahəsinin özü və ya CRC baytlarının hər hansı biri daxil deyil. Buraya L sahəsi, C sahəsi, M sahəsi və A sahəsi daxildir. Bunlar PHY yükünün bir hissəsidir.
Şifrələnmiş baytların sayı 255 baytla məhdudlaşdığından, M-sahəsi üçün dəstəklənən maksimum dəyər Mançester kodlu məlumat üçün 110 bayt və T Modu üçün Üç-Out-of-Altı kodlanmış məlumat üçün 148 baytdır.
Link qatı ötürülmə zamanı L sahəsinin hesablanmasına cavabdehdir. Bağlantı qatı qəbulda L sahəsini istifadə edəcək.
Qeyd edək ki, L sahəsi PHY yükünün uzunluğunu və ya kodlanmış baytların sayını göstərmir. Ötürüldükdən sonra PHY PHY faydalı yükün uzunluğunu və kodlanmış baytların sayını hesablayacaq. Qəbul edildikdən sonra PHY L-sahəsini deşifrə edəcək və deşifrə olunacaq baytların sayını hesablayacaq. - C sahəsi
C sahəsi çərçivəyə nəzarət sahəsidir. Bu sahə çərçivə tipini müəyyən edir və keçid məlumat mübadiləsi xidmətinin primitivləri üçün istifadə olunur. C-sahəsi çərçivə tipini göstərir - GÖNDƏR, TƏSDİQ, SORĞU və ya CAVAB VER. GÖNDƏR və REQUEST çərçivələri vəziyyətində, C sahəsi TƏSDİQ və ya CAVAB VERME-nin gözlənildiyini göstərir.
Əsas Link TX funksiyasından istifadə edərkən C-nin istənilən dəyərindən istifadə edilə bilər. Link Service Primitives istifadə edərkən, C sahəsi EN 13757-4:2005-ə uyğun olaraq avtomatik olaraq doldurulur. - M-Sahə
M-sahəsi istehsalçının kodudur. İstehsalçılar aşağıdakılardan üç hərfli kod tələb edə bilərlər web ünvan: http://www.dlms.com/flag/INDEX.HTM Üç hərfli kodun hər simvolu beş bit kimi kodlanır. 5 bitlik kodu ASCII kodunu götürərək 0x40 (“A”) çıxarmaqla əldə etmək olar. Üç 5 bitlik kod 15 bit etmək üçün birləşdirilir. Ən əhəmiyyətli bit sıfırdır. - A-Sahə
Ünvan sahəsi hər bir cihaz üçün unikal 6 baytlıq ünvandır. Unikal ünvan istehsalçı tərəfindən təyin edilməlidir. Hər bir cihazın unikal 6 baytlıq ünvana malik olmasını təmin etmək hər bir istehsalçının məsuliyyətidir. Göndər və Sorğu çərçivələrinin ünvanı sayğacın və ya digər cihazın özünün ünvanıdır. Təsdiq və cavab məlumat çərçivələri mənşəli cihazın ünvanından istifadə etməklə göndərilir. - CI sahəsi
CI-sahəsi proqram başlığıdır və proqram məlumat yükündəki məlumatların növünü göstərir. EN13757-4:2005 məhdud sayda dəyərləri müəyyən etsə də, Link Xidməti Primitivləri istənilən dəyərin istifadəsinə icazə verəcək. - CRC
CRC EN13757-4:2005-də müəyyən edilmişdir.
CRC Polinomu:
X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
Qeyd edək ki, M-Bus CRC hər 16 baytlıq blok üzrə hesablanır. Nəticə budur ki, hər 16 bayt məlumat ötürülməsi üçün 18 bayt tələb olunur,
Əlavə məlumat
Bağlantı Layerinin Tətbiqi haqqında əlavə məlumat üçün “AN452: Simsiz M-Bus Stack Proqramçıları Bələdçisi”nə baxın.
Güc İdarəetmə
Şəkil 2, məsələn, sayğac üçün enerji idarəetmə qrafikini göstərirampT1 rejimindən istifadə edin.
MCU enerjiyə qənaət etmək üçün mümkün olduqda Yuxu rejimində olmalıdır. Bu keçmişdəample, RTC işləyərkən, radio kristalının işə salınmasını gözləyərkən və FIFO-dan ötürmə zamanı MCU yuxuda olur. MCU Port Match oyanmasına qoşulmuş EZRadioPRO IRQ siqnalından oyanacaq.
Bir blokdan uzun mesajlar ötürərkən, MCU FIFO-nu doldurmaq üçün oyanmalıdır (FIFO demək olar ki, boş fasiləyə əsasən) və sonra yenidən yuxuya getməlidir.
MCU ADC-dən oxuyarkən aşağı güclü osilatordan və ya partlama rejimli osilatordan işləyən Boş rejimdə olmalıdır. ADC SAR saatı tələb edir.
İstifadə edilmədikdə, EZRadioPRO SDN pininin yüksək idarə olunması ilə bağlanma rejimində olmalıdır. Bunun üçün MCU-ya kabel bağlantısı tələb olunur. EZ Radio Pro registrləri bağlanma rejimində saxlanılmır; beləliklə, EZRadioPro hər bir RTC intervalında işə salınır. Radionun işə salınması 100 µs-dən az vaxt aparır və 400 nA-ya qənaət edir. Bu, 10 saniyəlik interval əsasında 10 µJ enerji qənaəti ilə nəticələnir.
EZRadioPRO kristalı POR üçün təxminən 16 ms çəkir. Bu, təxminən səkkiz blok üçün CRC-ni hesablamaq üçün kifayət qədər uzundur. MCU, kristal sabitləşməmişdən əvvəl bütün CRC-ləri tamamlasa, yuxu rejiminə qayıdacaq. Şifrələmə tələb olunarsa, o da kristal osilatorda gözləyərkən işə salına bilər.
MCU əksər tapşırıqlar üçün aşağı güclü osilatordan istifadə edərək 20 MHz tezliyində işləməlidir. Dəqiq fasilə tələb edən tapşırıqlar yuxu rejimi əvəzinə dəqiq osilator və boş rejimdən istifadə etməlidir. RTC əksər tapşırıqlar üçün kifayət qədər qətnamə təmin edir. T2 sayğacı üçün enerji idarəetmə qrafiki, məsələnample tətbiqi Şəkil 3-də göstərilmişdir.
Ötürücü qurğunun tətbiqi sayğac oyandıqda və oxucu mövcud olmadıqda normal vəziyyət üçün optimallaşdırılmalıdır. Minimum/maksimum ACK fasilələri kifayət qədər uzundur ki, C8051F930 RTC-dən istifadə etmək və MCU-nu yuxu rejiminə keçirmək mümkün olsun.
Quraşdırma seçimləri yuxu rejimindən istifadə etməyə ehtiyac duymayan elektrik şəbəkəsi və ya USB ilə işləyən oxucular üçün təmin edilir. USB və UART MCU-nu kəsə bilməsi üçün yuxu yerinə boş rejim istifadə olunacaq.
Sadəlik studiyası
MCU və simsiz alətlərə, sənədlərə, proqram təminatına, mənbə kodu kitabxanalarına və daha çoxuna bir kliklə giriş. Windows üçün mövcuddur,
Mac və Linux!
![]() |
![]() |
![]() |
![]() |
IoT Portfolio www.silabs.com/IoT |
SW/HW www.silabs.com/simplicity |
Keyfiyyət www.silabs.com/quality |
Dəstək və İcma community.silabs.com |
İmtina
Silicon Labs müştərilərə Silicon Labs məhsullarından istifadə edən və ya istifadə etmək niyyətində olan sistem və proqram təminatı tətbiqçiləri üçün mövcud olan bütün periferiya və modulların ən son, dəqiq və dərin sənədlərini təqdim etmək niyyətindədir. Xarakteristika məlumatları, mövcud modullar və periferiyalar, yaddaş ölçüləri və yaddaş ünvanları hər bir xüsusi cihaza aiddir və təqdim olunan “Tipik” parametrlər müxtəlif proqramlarda dəyişə bilər və dəyişir. Tətbiq məsampburada təsvir edilənlər yalnız illüstrativ məqsədlər üçündür. Silicon Labs əlavə xəbərdarlıq etmədən və buradakı məhsul məlumatlarına, spesifikasiyalara və təsvirlərə məhdudiyyət qoyulmadan dəyişiklik etmək hüququnu özündə saxlayır və daxil edilmiş məlumatların düzgünlüyünə və ya tamlığına zəmanət vermir. Silicon Labs burada verilmiş məlumatdan istifadənin nəticələrinə görə heç bir məsuliyyət daşımır. Bu sənəd hər hansı inteqral sxemlərin dizaynı və ya istehsalı üçün burada verilmiş müəllif hüququ lisenziyalarını nəzərdə tutmur və ya ifadə etmir. Məhsullar Silicon Labs-in xüsusi yazılı razılığı olmadan hər hansı Həyat Dəstəyi Sistemində istifadə üçün nəzərdə tutulmayıb və ya icazə verilməyib. “Həyatı Dəstək Sistemi” həyatı və/və ya sağlamlığı dəstəkləmək və ya təmin etmək üçün nəzərdə tutulmuş hər hansı məhsul və ya sistemdir, əgər uğursuz olarsa, əhəmiyyətli şəxsi zədə və ya ölümlə nəticələnə bilər. Silicon Labs məhsulları hərbi tətbiqlər üçün nəzərdə tutulmayıb və ya icazə verilməyib. Silicon Labs məhsulları heç bir halda nüvə, bioloji və ya kimyəvi silahlar da daxil olmaqla (lakin bununla məhdudlaşmayaraq) kütləvi qırğın silahlarında və ya belə silahları çatdıra bilən raketlərdə istifadə edilməməlidir.
Ticarət nişanı haqqında məlumat
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® və Silicon Labs logosu®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro loqosu və onların birləşmələri, “dünyanın ən enerji dostu mikro nəzarət cihazları”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® və digərləri Silicon Labs-in ticarət nişanları və ya qeydiyyatdan keçmiş ticarət nişanlarıdır. ARM, CORTEX, Cortex-M3 və baş barmaqlar ARM Holdings-in ticarət nişanları və ya qeydə alınmış ticarət nişanlarıdır. Keil ARM Limited şirkətinin qeydə alınmış ticarət nişanıdır. Burada qeyd olunan bütün digər məhsullar və ya brend adlar müvafiq sahiblərinin ticarət nişanlarıdır.
Silicon Laboratories Inc.
400 Qərbi Sezar Çaves
Austin, TX 78701
ABŞ
http://www.silabs.com
Sənədlər / Resurslar
![]() |
SILICON LABS Wireless M-BUS Proqram təminatının tətbiqi AN451 [pdf] İstifadəçi təlimatı SILICON LABS, C8051, MCU və EZRadioPRO, Wireless M-bus, Wireless, M-BUS, Proqram təminatı, Tətbiq, AN451 |