AN451
KABLOSUZ M-BUS YAZILIMI UYGULAMASI
giriiş
Bu uygulama notu, Silicon Labs C8051 MCU ve EZRadioPRO® kullanan Kablosuz M-Bus'un Silicon Labs uygulamasını açıklamaktadır. Kablosuz M-bus, 868 MHz frekans bandını kullanan sayaç okuma uygulamalarına yönelik bir Avrupa Standardıdır.
Yığın Katmanları
Kablosuz M-Bus, 3 katmanlı OSI modelinin bir alt kümesi olan 7 katmanlı IEC modelini kullanır (bkz. Şekil 1).
Fiziksel (PHY) katman EN 13757-4'te tanımlanmıştır. Fiziksel katman, bitlerin nasıl kodlandığını ve iletildiğini, RF modem özelliklerini (çip hızı, başlangıç eki ve senkronizasyon sözcüğü) ve RF parametrelerini (modülasyon, merkez frekansı ve frekans sapması) tanımlar.
PHY katmanı, donanım ve ürün yazılımının bir kombinasyonu kullanılarak uygulanır. EZRadioPRO tüm RF ve modem işlevlerini gerçekleştirir. EZRadioPRO, paket işleyiciyle FIFO modunda kullanılır. MbusPhy.c modülü SPI arayüzü, kodlama/kod çözme, blok okuma/yazma ve paket yönetimi sağlar ve alıcı-verici durumlarını yönetir.
M-Bus Veri bağlantı katmanı MbusLink.c modülünde uygulanır. M-Bus Uygulama Programlama arayüzü, ana iş parçacığında uygulama katmanından çağrılabilen genel işlevlerden oluşur. MbusLink modülü ayrıca Veri Bağlantı Katmanını da uygular. Veri bağlantısı katmanı, gerekli başlıkları ve CRC'leri ekleyerek verileri uygulama TX arabelleğinden MbusPhy TX arabelleğine formatlayacak ve kopyalayacaktır.
Uygulama katmanının kendisi M-bus donanım yazılımının bir parçası değildir. Uygulama katmanı, çok çeşitli verilerin iletim için nasıl biçimlendirileceğini tanımlar. Çoğu sayacın yalnızca bir veya iki tür veri iletmesi gerekir. Sayaca her türlü veriyi sığdıracak kadar büyük miktarda kod eklemek, sayaca gereksiz kod ve maliyet katacaktır. Bir kütüphane veya başlık uygulamak mümkün olabilir file veri türlerinin kapsamlı bir listesiyle. Bununla birlikte, çoğu ölçüm müşterisi tam olarak ne tür veri aktarmaları gerektiğini bilir ve ayrıntıları biçimlendirmek için standarda başvurabilir. Evrensel bir okuyucu veya algılayıcı, PC GUI'sinde eksiksiz bir uygulama veri türleri kümesini uygulayabilir. Bu nedenlerden dolayı uygulama katmanı ex kullanılarak uygulanır.ampSayaç ve okuyucu için dosya uygulamaları.
Gerekli Standartlar
- EN 13757-4
EN 13757-4
Sayaçlar için iletişim sistemi ve sayaçların uzaktan okunması
Bölüm 4: Kablosuz sayaç okuması
868 MHz ila 870 MHz SRD bandında çalışma için radyometre okuması - EN 13757-3
Sayaçlar için iletişim sistemi ve sayaçların uzaktan okunması
Bölüm 3: Özel uygulama katmanı - IEC 60870-2-1:1992
Telekontrol ekipmanları ve sistemleri
Bölüm 5: İletim protokolleri
Bölüm 1: Bağlantı aktarım prosedürü - IEC 60870-1-1:1990
Telekontrol ekipmanları ve sistemleri
Bölüm 5: İletim protokolleri
Bölüm 1: İletim çerçevesi formatları
Tanımlar
- M-Bus —M-Bus, Avrupa'da sayaç okumaya yönelik kablolu bir standarttır.
- Kablosuz M-Bus—Avrupa'daki sayaç okuma uygulamaları için Kablosuz M-Bus.
- FİZİK—Fiziksel Katman, veri bitlerinin ve baytlarının nasıl kodlandığını ve iletildiğini tanımlar.
- API —Uygulama Programcısı arayüzü.
- BAĞLANTI-Veri Bağlantı Katmanı, blokların ve çerçevelerin nasıl iletildiğini tanımlar.
- ÇHS—Döngüsel Artıklık Kontrolü.
- FSK—Frekans kaydırmalı anahtarlama.
- Yonga-İletilen verinin en küçük birimi. Bir veri biti birden fazla çip olarak kodlanır.
- Modül —AC kodu kaynağı .c file.
M-Bus PHY Fonksiyonel Açıklaması
Giriş Sırası
M-veriyolu spesifikasyonu tarafından belirtilen Giriş dizisi, sıfırları ve birleri değiştiren bir tam sayıdır. Bir, yüksek frekans olarak tanımlanır ve sıfır, düşük frekans olarak tanımlanır.
nx (01)
Si443x için Giriş seçenekleri, alternatif birler ve sıfırlardan oluşan tamsayı sayıda yarım parçadan oluşur.
nx (1010)
Başında fazladan bir giriş olan bir giriş sorun olmayacaktır, ancak bu durumda senkronizasyon sözcüğü ve veri yükü bir bitlik yanlış hizalanmış olacaktır.
Çözüm, Modülasyon Kontrolü 2 kaydındaki (0x71) motor bitini ayarlayarak paketin tamamını ters çevirmektir. Bu giriş, senkronizasyon sözcüğü ve TX/RX verilerini tersine çevirecektir. Sonuç olarak, TX verileri yazılırken veya RX verileri okunurken veriler ters çevrilmelidir. Ayrıca senkronizasyon kelimesi, Si443x Senkronizasyon Kelimesi kayıtlarına yazılmadan önce ters çevrilir.
Senkronizasyon Kelimesi
EN-13757-4'ün gerektirdiği senkronizasyon kelimesi, Mod S ve Mod R için 18 çip veya Model T için 10 çiptir. Si443x için senkronizasyon kelimesi 1 ila 4 bayttır. Bununla birlikte, senkronizasyon sözcüğünden önce her zaman giriş bölümü geldiğinden, giriş bölümünün son altı biti senkronizasyon sözcüğünün bir parçası olarak düşünülebilir; bu nedenle, ilk senkronizasyon sözcüğü bir sıfırın ardından birin üç tekrarıyla doldurulur. Senkronizasyon kelimesi Si443x kayıtlarına yazılmadan önce tamamlanır.
Tablo 1. Mod S ve Mod R için Senkronizasyon Kelimesi
EN 13757-4 | 00 | 01110110 | 10010110 | ikili |
00 | 76 | 96 | hex | |
(01) x 3'lü ped | 01010100 | 01110110 | 10010110 | ikili |
54 | 76 | 96 | hex | |
tamamlayıcı | 10101011 | 10001001 | 01101001 | ikili |
AB | 89 | 69 | hex |
Tablo 2. T Modu Metresinin Diğerine Senkronizasyon Kelimesi
SENKRON | SENKRON | SENKRON |
KELİME | KELİME | KELİME |
3 | 2 | 1 |
İletim Başlangıç Uzunluğu
Minimum giriş dört farklı çalışma modu için belirtilmiştir. Belirtilenden daha uzun bir giriş bölümünün olması kabul edilebilir. Giriş bölümü için altı çipin çıkarılması, Si443x giriş bölümü için minimum çip sayısını verir. Uygulama, giriş tespitini ve birlikte çalışabilirliği geliştirmek için tüm kısa başlangıç eki modlarına iki ekstra giriş eki ekler. Mode S'nin uzun bir giriş bölümü olan giriş kısmı çok uzundur; bu nedenle minimum giriş bölümü kullanılır. Yarım baytlardaki başlangıç uzunluğu Başlangıç Uzunluğu (0x34) kaydına yazılır. Giriş bölümü uzunluğu kaydı, yalnızca iletim üzerine giriş bölümünü belirler. Minimum spesifikasyon ve başlangıç uzunluğu ayarları Tablo 3'te özetlenmiştir.
Tablo 3. İletim Başlangıç Uzunluğu
EN-13757-4 asgari |
Si443x Giriş Ayarlama |
Senkronizasyon Kelime |
Toplam | ekstra | |||
nx (01) | cips | atıştırmalıklar | cips | cips | cips | cips | |
Mod S kısa giriş | 15 | 30 | 8 | 32 | 6 | 38 | 8 |
Mod S uzun giriş | 279 | 558 | 138 | 552 | 6 | 558 | 0 |
Mod T (sayaç-diğer) | 19 | 38 | 10 | 40 | 6 | 46 | 8 |
Mod R | 39 | 78 | 20 | 80 | 6 | 86 | 8 |
Alım için minimum giriş, Giriş Tespit Kontrol kaydı (0x35) tarafından belirlenir. Alım üzerine, kullanılabilir başlangıcı belirlemek için senkronizasyon sözcüğündeki bit sayısı belirtilen minimum giriş bölümünden çıkarılmalıdır. Alıcının minimum yerleşme süresi, AFC etkinse 16 yonga, AFC devre dışıysa 8 yongadır. Alıcı yerleşme süresi de Başlangıç Parçası Tespit Kontrol kaydı için minimum ayarı belirlemek amacıyla kullanılabilir giriş bölümünden çıkarılır.
Yanlış bir girişin olasılığı, Giriş Tespit Kontrol kaydının ayarına bağlıdır. 8 çiplik kısa bir ayar, birkaç saniyede bir hatalı girişin tespit edilmesine neden olabilir. Önerilen 20 çip ayarı, yanlış giriş tespitini olası olmayan bir olay haline getirir. Mod R ve Mod SL'nin başlangıç uzunlukları, önerilen ayarın kullanılması için yeterince uzundur.
Giriş bölümünün 20 çipten daha uzun süre algılamasını sağlamanın çok az faydası vardır.
AFC, kısa girişli Model S ve Model T için devre dışı bırakılır. Bu, alıcının yerleşme süresini azaltır ve daha uzun bir giriş tespit ayarına izin verir. AFC devre dışı bırakıldığında Mod T, önerilen 20 çip ayarını kullanabilir. Kısa bir giriş ile Model S için 4 yarım baytlık veya 20 çiplik bir ayar kullanılır. Bu, bu model için yanlış başlangıç eki tespitinin olasılığını biraz daha yüksek hale getirir.
Tablo 4. Giriş Tespiti
EN-13757-4 asgari |
Senkronizasyon Kelime |
kullanılabilir önsöz |
RX Yerleştirmesi | Tespit etmek dakika |
Si443x Giriş Algılama Ayarı |
|||
nx (01) | cips | cips | cips | cips | cips | atıştırmalıklar | cips | |
Mod S kısa giriş | 15 | 30 | 6 | 24 | 8* | 16 | 4 | 16 |
Model S uzun giriş | 279 | 558 | 6 | 552 | 16 | 536 | 5 | 20 |
Model T (sayaç-diğer) | 19 | 38 | 6 | 32 | 8* | 24 | 5 | 20 |
Mod R | 39 | 78 | 6 | 72 | 16 | 56 | 5 | 20 |
*Not: AFC devre dışı |
Alıcı, belirtilen minimum giriş kısmını kullanarak bir vericiyle birlikte çalışacak şekilde yapılandırılmıştır. Bu, alıcının herhangi bir M-bus uyumlu vericiyle birlikte çalışmasını sağlar.
Kablosuz M-Bus spesifikasyonu, Mod S1 için en az 558 yongadan oluşan çok uzun bir giriş gerektirir. Sadece giriş bölümünün iletilmesi yaklaşık 17 ms sürecektir. Si443x bu kadar uzun bir giriş gerektirmez ve uzun girişten de faydalanmaz. Uzun girişin Mod S2 için isteğe bağlı olduğu belirtilmiş olsa da Si443x'te uzun bir giriş kullanmanın hiçbir nedeni yoktur. Tek yönlü iletişim isteniyorsa, Mod T1 daha kısa bir giriş, daha yüksek veri hızı ve daha uzun pil ömrü sağlayacaktır. Mod S2'yi kullanarak iki yönlü iletişim gerekiyorsa kısa bir giriş tavsiye edilir.
Uzun giriş bölümü olan Model S için tespit eşiğinin, kısa giriş bölümü olan Model S için iletilen giriş bölümü yarım parça sayısından daha uzun olduğuna dikkat edin. Bu, uzun giriş Modu S alıcısının, kısa giriş Modu S vericisinden gelen giriş parçasını tespit etmeyeceği anlamına gelir. Eğer uzun giriş kısmı Mode S alıcısı uzun giriş kısmından herhangi bir fayda elde edecekse bu gereklidir.
Kısa giriş Modu S alıcısının giriş kısmını algılayacağını ve hem kısa giriş Modundan hem de Mod S'den paketleri alacağını unutmayın.
verici ve uzun girişli bir Mod S vericisi; bu nedenle genel olarak sayaç okuyucunun kısa giriş Modu S alıcı konfigürasyonunu kullanması gerekir.
Kodlama/Kod Çözme
Kablosuz M-bus spesifikasyonu iki farklı kodlama yöntemi gerektirir. Manchester kodlaması, Mod S ve Mod R için kullanılır. Manchester kodlaması, Model T'deki diğer sayaçtan diğerine bağlantı için de kullanılır. Model T sayaçtan diğerine bağlantı, 3 kodlamadan 6'ünü kullanır.
1. Manchester Kodlanmış/Kod Çözme
Manchester kodlaması, basit ve ucuz bir modem kullanarak sağlam saat kurtarma ve izleme sağlamak için RF sistemlerinde tarihsel olarak yaygındır. Ancak Si443x gibi modern, yüksek performanslı bir radyonun Manchester kodlamasına ihtiyacı yoktur. Manchester kodlaması öncelikle mevcut standartlarla uyumluluk açısından desteklenir, ancak Manchester kodlaması kullanılmadığında Si443x'in veri hızı etkili bir şekilde iki katına çıkar.
Si443x, donanımdaki tüm paketin Manchester kodlamasını ve kod çözmesini destekler. Maalesef senkronizasyon kelimesi Manchester kodlu değildir. Senkronizasyon sözcüğü için kasıtlı olarak geçersiz bir Manchester dizisi seçildi. Bu, Manchester kodlamasını Si443x de dahil olmak üzere mevcut radyoların çoğuyla uyumsuz hale getirir. Sonuç olarak, Manchester kodlama ve kod çözme işleminin MCU tarafından gerçekleştirilmesi gerekir. Kodlanmamış verilerdeki her bayt sekiz veri bitinden oluşur. Manchester kodlaması kullanılarak, her veri biti iki çipli bir sembol halinde kodlanır. Kodlanmış verinin radyo FIFO'suna aynı anda sekiz çiple yazılması gerektiğinden, bir seferde bir parça veri kodlanır ve FIFO'ya yazılır.
Tablo 5. Manchester Kodlaması
veri | Ox12 | 0x34 | baytlar | ||
Ox1 | 0x2 | 0x3 | 0x4 | atıştırmalıklar | |
1 | 10 | 11 | 100 | ikili | |
çip | 10101001 | 10100110 | 10100101 | 10011010 | ikili |
FIFO | OxA9 | OxA6 | OxA5 | Öküz9A | hex |
İletilecek her bayt, kodlama baytı işlevine her defasında bir bayt iletilir. Encode byte işlevi, ilk olarak en önemli yarım bayt ve daha sonra en az anlamlı yarım bayt için olmak üzere, kodlama yarım bayt fonksiyonunu iki kez çağıracaktır.
Yazılımda Manchester kodlaması zor değildir. En anlamlı bitten başlayarak bir tanesi “01” çip dizisi olarak kodlanır. Sıfır, “10” çip dizisi olarak kodlanır. Bu, bir döngü kullanılarak ve her sembol için iki bitin kaydırılmasıyla kolaylıkla gerçekleştirilebilir. Ancak her yarım parça için 16 girişli basit bir arama tablosu kullanmak daha hızlıdır. Encode Manchester nibble işlevi, bir yarım parça veriyi kodlar ve ardından bunu FIFO'ya yazar. Çipler, ters giriş gerekliliklerini hesaba katmak için FIFO'ya yazılmadan önce ters çevrilir.
Alırken, FIFO'daki her bayt sekiz çipten oluşur ve kodu bir yarım veri parçası halinde çözülür. Okuma bloğu işlevi, FIFO'dan her defasında bir bayt okur ve bayt kod çözme işlevini çağırır. Çipler, ters giriş gerekliliklerini hesaba katmak için FIFO'dan okunduktan sonra ters çevrilir. Manchester kodlu çiplerin her bir baytının kodu, bir parça veriye dönüştürülür. Kodu çözülmüş yarım bayt, yazma yarım baytı RX arabelleği işlevi kullanılarak RX arabelleğine yazılır.
Hem kodlamanın hem de kod çözmenin, her seferinde tek bir veri parçasının anında gerçekleştirildiğine dikkat edin. Bir arabelleğe kodlama, kodlanmamış verinin iki katı büyüklüğünde ek bir arabellek gerektirir. Kodlama ve kod çözme, desteklenen en hızlı veri hızından (saniyede 100 bin çip) çok daha hızlıdır. Si443x, FIFO'ya çok baytlı okuma ve yazmayı desteklediğinden, yalnızca tek baytlı okuma ve yazmaların kullanılmasında küçük bir ek yük vardır. Ek yük, 10 kodlanmış çip için yaklaşık 100 µs'dir. Avantajı 512 baytlık RAM tasarrufudur.
2. Altı Kodlamadan Üçü Kod Çözme
EN-13757-4'te belirtilen Altıda Üç kodlama yöntemi aynı zamanda MCU'daki ürün yazılımında da uygulanır. Bu kodlama, metreden diğerine yüksek hızlı (saniyede 100 k çip) Mod T için kullanılır. Model T, bir kablosuz ölçüm cihazı için en kısa iletim süresini ve en uzun pil ömrünü sağlar.
Aktarılacak her bir veri baytı iki yarım parçaya bölünür. En önemli yarım parça ilk önce kodlanır ve iletilir. Yine, bu, kodlama yarım bayt fonksiyonunu iki kez çağıran bir kodlama bayt fonksiyonu kullanılarak uygulanır.
Her bir veri parçası altı çipli bir sembol halinde kodlanır. Altı çipli sembollerin sırası 8 çipli FIFO'ya yazılmalıdır.
Kodlama sırasında iki baytlık veri dört yarım bayt olarak kodlanır. Her yarım bayt 6 çipli bir semboldür. Dört adet 6 çipli sembol, üç bayt olarak toplanır.
Tablo 6. Altı Kodlamadan Üçü
veri | 0x12 | 0x34 | baytlar | ||||
Ox1 | 0x2 | 0x3 | 0x4 | atıştırmalıklar | |||
çip | 15 | 16 | 13 | 34 | sekizli | ||
1101 | 1110 | 1011 | 11100 | ikili | |||
FIFO | 110100 | 11100010 | 11011100 | ikili | |||
0x34 | ÖküzE2 | OxDC | hex |
Yazılımda altıda üç kodlama, iç içe geçmiş üç işlev kullanılarak uygulanır. Encode byte işlevi, encode nibble işlevini iki kez çağıracaktır. Nibble nibble işlevi, altı çipli sembol için bir arama tablosu kullanır ve sembolü Altıdan Üçünü Kaydırma işlevlerine yazar. Bu fonksiyon, yazılımda 16 çipli bir kaydırma yazmacı uygular. Sembol, kaydırma yazmacının en az anlamlı baytına yazılır. Kayıt iki kez sola kaydırılır. Bu üç kez tekrarlanır. Kaydırma yazmacının üst baytında tam bir bayt mevcut olduğunda bu ters çevrilir ve FIFO'ya yazılır.
Verinin her baytı bir buçuk kodlanmış bayt olarak kodlandığından, ilk kodlanmış baytın doğru olması için başlangıçta kaydırma yazmacının temizlenmesi önemlidir. Paket uzunluğu tek sayı ise, tüm baytlar kodlandıktan sonra kaydırma yazmacında hala bir yarım bayt kalacaktır. Bu, bir sonraki bölümde açıklandığı gibi postamble ile ele alınmaktadır.
Kodlanan altı koddan üçünün kodunun çözülmesi ters prosedürdür. Kod çözme sırasında, üç kodlanmış baytın kodu iki veri baytına çözülür. Yazılım kaydırma yazmacı yine kodu çözülmüş verilerin baytlarını toplamak için kullanılır. Kod çözme için 64 girişli bir ters arama tablosu kullanılır. Bu, daha az döngü ancak daha fazla kod belleği kullanır. İlgili sembol için 16 girişli bir arama tablosunda arama yapmak oldukça uzun sürer.
Posta
Kablosuz M-bus spesifikasyonunun posta veya fragman için özel gereksinimleri vardır. Tüm modlar için minimum iki çip, maksimum ise sekiz çiptir. FIFO için minimum atom birimi bir bayt olduğundan, Mod S ve Mod R için 8 çipli bir fragman kullanılır. Paket uzunluğu çift ise Mod T postamblesi sekiz çiptir veya paket uzunluğu tek ise dört çiptir. Tek paket uzunluğuna yönelik dört çipli gönderim, en az iki alternatif çipe sahip olma gerekliliklerini karşılar.
Tablo 7. Gönderim Uzunluğu
Posta Uzunluğu (cips) | |||||
dakika | maksimum | Uygulama | çip dizisi | ||
Mod S | 2 | 8 | 8 | 1010101 | |
Mod T | 2 | 8 | 4 | (garip) | 101 |
8 | (eşit) | 1010101 | |||
Mod R | 2 | 8 | 8 | 1010101 |
Paket İşleyici
Si443x'teki paket işleyici, değişken paket genişliği modunda veya sabit paket genişliği modunda kullanılabilir. Değişken paket genişliği modu, senkronizasyon sözcüğünden ve isteğe bağlı başlık baytlarından sonra bir paket uzunluğu baytı gerektirir. Alındıktan sonra Radyo, geçerli bir paketin sonunu belirlemek için uzunluk baytını kullanacaktır. İletim sırasında radyo, başlık baytlarından sonra uzunluk alanını ekleyecektir.
Kablosuz M-bus protokolüne ait L alanı, Si443x uzunluk alanı için kullanılamaz. İlk olarak, L alanı gerçek paket uzunluğu değildir. CRC baytları veya kodlamayı içermeyen bağlantı katmanı veri yükü baytlarının sayısıdır. İkinci olarak, L alanının kendisi, Manchester kodlaması veya Mode T ölçer için Altıdan Üçü kodlaması kullanılarak diğerine kodlanır.
Uygulama, hem iletim hem de alım için paket işleyiciyi sabit paket genişliği modunda kullanır. İletim üzerine, PHY katmanı iletim arabelleğindeki L alanını okuyacak ve posta bölümü de dahil olmak üzere kodlanmış baytların sayısını hesaplayacaktır. İletilecek kodlanmış baytların toplam sayısı Paket Uzunluğu kaydına (0x3E) yazılır.
Alım üzerine, ilk iki kodlanmış baytın kodu çözülür ve L alanı alma arabelleğine yazılır. L alanı alınacak kodlanmış bayt sayısını hesaplamak için kullanılır. Alınacak kodlanmış bayt sayısı daha sonra Paket Uzunluğu kaydına (0x3E) yazılır. Posta atılır.
MCU, mümkün olan en kısa paket uzunluğu alınmadan önce L alanının kodunu çözmeli, kodlanmış bayt sayısını hesaplamalı ve değeri Paket Uzunluğu kaydına yazmalıdır. PHY katmanı için izin verilen en kısa L alanı 9'dur ve 12 kodlanmamış bayt verir. Bu, Model T için 18 kodlanmış bayt verir. İlk iki baytın kodu zaten çözülmüştür. Bu nedenle, paket Uzunluk kaydının 16 kbps veya 100 milisaniyede 1.28 baytlık aralıklarla güncellenmesi gerekir. 8051 MIPS'de çalışan bir 20 için bu sorun değildir.
Alınacak bayt sayısı, tek paket uzunluğuna sahip Mod T paketleri için kullanılan dört çipli gönderim eki hariç, gönderim ekini içermez. Böylece alıcı, Model T tek uzunluktaki paketler dışında posta gönderimine ihtiyaç duymaz. Bu postamble yalnızca kodlanmış baytların tam sayısını vermek için gereklidir. Postanın içeriği göz ardı edilir; bu nedenle, posta gönderimi iletilmezse, dört gürültü çipi alınacak ve dikkate alınmayacaktır. Kodlanmış baytların toplam sayısı 255 (0xFF) ile sınırlı olduğundan, uygulama farklı modlar için maksimum L alanını sınırlar.
Tablo 8. Paket Boyutu Sınırları
kodlanmış | şifresi çözülmüş | M-Otobüs | ||||
baytlar | baytlar | L Alanı | ||||
Aralık | hex | Aralık | hex | Aralık | hex | |
Mod S | 255 | FF | 127 | 7 Şubat | 110 | 6E |
Mod T (sayaç-diğer) | 255 | FF | 169 | A9 | 148 | 94 |
Mod R | 255 | FF | 127 | 7 Şubat | 110 | 6E |
Bu sınırlar normalde bir kablosuz ölçüm cihazının tipik kullanım durumunun oldukça üzerindedir. Mümkün olan en iyi pil ömrünü elde etmek için paket uzunluğu küçük tutulmalıdır.
Ayrıca kullanıcı alınması gereken maksimum L alanını (USER_RX_MAX_L_FIELD) belirtebilir. Bu, alma arabelleği için gereken boyutu belirler (USER_RX_BUFFER_SIZE).
Maksimum 255 L alanının desteklenmesi, 290 baytlık bir alma arabelleği ve maksimum 581 Manchester kodlu bayt gerektirir. Bu durumda paket işleyicinin devre dışı bırakılması gerekir ve Paket Uzunluğu kaydı kullanılamaz. Bu mümkündür ancak mümkünse paket işleyicisini kullanmak daha uygundur.
FIFO Kullanımı
Si4431, iletim ve alım için 64 baytlık bir FIFO sağlar. Kodlanmış bayt sayısı 255 olduğundan, kodlanmış paketin tamamı 64 baytlık ara belleğe sığmayabilir.
Bulaşma
İletim sırasında kodlanmış baytların toplam sayısı hesaplanır. Gönderim eki de dahil olmak üzere kodlanmış baytların toplam sayısı 64 bayttan azsa, paketin tamamı FIFO'ya yazılır ve yalnızca paket gönderme kesmesi etkinleştirilir. Kısa paketlerin çoğu tek bir FIFO aktarımıyla gönderilecektir.
Kodlanmış bayt sayısı 64'ten büyükse paketi göndermek için birden fazla FIFO aktarımı gerekecektir. İlk 64 bayt FIFO'ya yazılır. Paket Gönderildi ve TX FIFO Neredeyse Boş kesmeleri etkinleştirildi. TX FIFO Neredeyse Boş eşiği 16 bayta (%25) ayarlanmıştır. Her IRQ olayında durum 2 kaydı okunur. Öncelikle Paket Gönderildi biti kontrol edilir ve paket tamamen gönderilmediyse sonraki 48 baytlık kodlanmış veri FIFO'ya yazılır. Bu, tüm kodlanmış baytlar yazılana ve Paket Gönderildi kesintisi oluşana kadar devam eder.
1. Kabul
Alımda, başlangıçta yalnızca Senkronizasyon Sözcüğü kesmesi etkinleştirilir. Senkronizasyon sözcüğünü aldıktan sonra, senkronizasyon sözcüğü kesmesi devre dışı bırakılır ve FIFO Neredeyse Tam kesmesi etkinleştirilir. FIFO'nun neredeyse dolu eşiği başlangıçta 2 bayta ayarlanmıştır. İlk FIFO Neredeyse Tam kesmesi, iki uzunluk baytının ne zaman alındığını bilmek için kullanılır. Uzunluk alındıktan sonra uzunluğun kodu çözülür ve kodlanan baytların sayısı hesaplanır. RX FIFO neredeyse Dolu eşiği daha sonra 48 bayta ayarlanır. RX FIFO neredeyse dolu ve Geçerli Paket kesintileri etkinleştirildi. Bir sonraki IRQ olayı üzerine durum 1 kaydı okunur. Öncelikle Geçerli Paket biti kontrol edilir ve ardından FIFO Neredeyse Dolu biti kontrol edilir. Yalnızca RX FIFO Neredeyse Tam biti ayarlanmışsa sonraki 48 bayt FIFO'dan okunur. Geçerli paket biti ayarlanmışsa paketin geri kalanı FIFO'dan okunur. MCU kaç baytın okunduğunu takip eder ve son bayttan sonra okumayı durdurur.
Veri Bağlantı Katmanı
Veri bağlantı katmanı modülü, 13757-4:2005 uyumlu bir bağlantı katmanını uygular. Veri bağlantı katmanı (LINK), fiziksel katman (PHY) ile uygulama katmanı (AL) arasında bir arayüz sağlar.
Veri Bağlantı Katmanı aşağıdaki işlevleri yerine getirir:
- PHY ve AL arasında veri aktaran işlevler sağlar
- Giden mesajlar için CRC'ler oluşturur
- Gelen iletilerdeki CRC hatalarını algılar
- Fiziksel adresleme sağlar
- Çift yönlü iletişim modları için aktarımları kabul eder
- Veri bitlerini çerçeveler
- Gelen iletilerdeki çerçeveleme hatalarını algılar
Bağlantı Katmanı Çerçeve Formatı
EN 13757-4:2005'te kullanılan Kablosuz M-Bus çerçeve formatı, IEC3-3-60870'deki FT5 (Çerçeve Tipi 2) çerçeve formatından türetilmiştir. Çerçeve bir veya daha fazla veri bloğundan oluşur. Her blokta 16 bitlik bir CRC alanı bulunur. İlk blok, L alanını, C alanını, M alanını ve A alanını içeren 12 baytlık sabit uzunlukta bir bloktur.
- L Alanı
L alanı Bağlantı katmanı veri yükünün uzunluğudur. Bu, L alanının kendisini veya CRC baytlarından herhangi birini içermez. L alanını, C alanını, M alanını ve A alanını içerir. Bunlar PHY yükünün bir parçasıdır.
Kodlanmış bayt sayısı 255 bayt ile sınırlı olduğundan, M alanı için desteklenen maksimum değer Manchester kodlu veriler için 110 bayt ve Mod T Altıda Üç kodlanmış veriler için 148 bayttır.
Bağlantı katmanı iletim sırasında L alanının hesaplanmasından sorumludur. Bağlantı katmanı alımda L alanını kullanacaktır.
L alanının PHY veri yükünün uzunluğunu veya kodlanmış bayt sayısını göstermediğini unutmayın. İletim üzerine PHY, PHY veri yükünün uzunluğunu ve kodlanmış bayt sayısını hesaplayacaktır. Alındıktan sonra PHY, L alanının kodunu çözecek ve kodu çözülecek bayt sayısını hesaplayacaktır. - C Alanı
C alanı çerçeve kontrol alanıdır. Bu alan çerçeve türünü tanımlar ve bağlantı veri alışverişi hizmeti temelleri için kullanılır. C alanı çerçeve türünü belirtir: GÖNDER, ONAYLA, İSTEK veya YANITLA. SEND ve REQUEST çerçeveleri durumunda, C alanı bir ONAYLA ya da RESPOND'un beklenip beklenmediğini gösterir.
Temel Link TX işlevini kullanırken herhangi bir C değeri kullanılabilir. Bağlantı Hizmeti İlkeleri kullanıldığında, C alanı EN 13757-4:2005'e göre otomatik olarak doldurulur. - M Alanı
M alanı üreticinin kodudur. Üreticiler aşağıdaki adreslerden üç harfli kod talep edebilirler web adres: http://www.dlms.com/flag/INDEX.HTM Üç harfli kodun her karakteri beş bit olarak kodlanır. 5 bitlik kod, ASCII kodunu alıp 0x40 (“A”) çıkarılarak elde edilebilir. Üç adet 5 bitlik kod, 15 bit oluşturacak şekilde birleştirilir. En önemli bit sıfırdır. - A-Alanı
Adres alanı, her cihaz için benzersiz 6 baytlık bir adrestir. Benzersiz adres üretici tarafından atanmalıdır. Her cihazın benzersiz bir 6 baytlık adrese sahip olmasını sağlamak her üreticinin sorumluluğundadır. Gönderme ve Talep çerçevelerinin adresi, ölçüm cihazının veya diğer cihazın kendi adresidir. Onaylama ve yanıt veri çerçeveleri, kaynak cihazın adresi kullanılarak gönderilir. - CI Alanı
CI alanı uygulama başlığıdır ve uygulama veri yükündeki veri türünü belirtir. EN13757-4:2005 sınırlı sayıda değer belirtirken Bağlantı Hizmeti İlkeleri her türlü değerin kullanılmasına izin verecektir. - ÇHC
CRC, EN13757-4:2005'te belirtilmiştir.
CRC Polinomu:
X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
M-Bus CRC'nin her 16 baytlık blok üzerinden hesaplandığını unutmayın. Sonuç olarak her 16 bayt verinin iletilmesi için 18 bayt gerekir.
Ek Bilgiler
Bağlantı Katmanı Uygulaması hakkında ek bilgi için bkz. “AN452: Kablosuz M-Bus Yığın Programcıları Kılavuzu”.
Güç Yönetimi
Şekil 2, bir ölçüm cihazının güç yönetimi zaman çizelgesini göstermektedir.ampT1 Modunu kullanarak dosya.
Enerji tasarrufu sağlamak için MCU mümkün olduğunda Uyku modunda olmalıdır. Bu eskiampDosyada, RTC çalışırken, radyo kristalinin başlatılmasını beklerken ve FIFO'dan iletim yaparken MCU uykudadır. MCU, Port Match uyandırmasına bağlı EZRadioPRO IRQ sinyalinden uyanacaktır.
Bir bloktan daha uzun mesajlar iletirken, MCU'nun FIFO'yu doldurmak için uyanması gerekir (FIFO'nun neredeyse boş kesmesine dayanarak) ve sonra tekrar uyku moduna geçmelidir.
MCU, ADC'den okurken düşük güçlü osilatörden veya seri modlu osilatörden çalışan Boş modda olmalıdır. ADC bir SAR saati gerektirir.
Kullanılmadığı zaman EZRadioPRO, SDN pimi yüksek olarak çalıştırılarak Kapatma modunda olmalıdır. Bu, MCU'ya kablolu bir bağlantı gerektirir. EZ Radio Pro kayıtları kapatma modunda korunmaz; böylece EZRadioPro her RTC aralığında başlatılır. Radyonun başlatılması 100 µs'den daha az sürer ve 400 nA tasarrufu sağlar. Bu, 10 saniyelik aralığa göre 10 µJ enerji tasarrufu sağlar.
EZRadioPRO kristali bir POR için yaklaşık 16 ms sürer. Bu, yaklaşık sekiz blok için CRC'yi hesaplamaya yetecek kadar uzundur. MCU, kristal stabilize olmadan önce tüm CRC'leri tamamlarsa tekrar uyku moduna geçecektir. Şifreleme gerekiyorsa kristal osilatörde beklerken de başlatılabilir.
MCU, çoğu görev için düşük güçlü osilatörü kullanarak 20 MHz'de çalışmalıdır. Kesin bir zaman aşımı gerektiren görevler, uyku modu yerine hassas osilatörü ve boşta modunu kullanmalıdır. RTC çoğu görev için yeterli çözünürlüğü sağlar. T2 ölçüm cihazı ex için güç yönetimi zaman çizelgesiampDosya uygulaması Şekil 3'te gösterilmektedir.
Alıcı-verici uygulaması, ölçüm cihazının uyandığı ve okuyucunun mevcut olmadığı normal durum için optimize edilmelidir. Minimum/maksimum ACK zaman aşımları yeterince uzun olduğundan C8051F930 RTC'yi kullanmak ve MCU'yu uyku moduna geçirmek mümkündür.
Uyku modunu kullanması gerekmeyen, şebekeden veya USB'den güç alan okuyucular için oluşturma seçenekleri sağlanır. USB ve UART'ın MCU'yu kesintiye uğratabilmesi için uyku yerine boşta mod kullanılacaktır.
Sadelik Stüdyosu
MCU'ya ve kablosuz araçlara, belgelere, yazılıma, kaynak kodu kitaplıklarına ve daha fazlasına tek tıklamayla erişim. Windows için kullanılabilir,
Mac ve Linux!
![]() |
![]() |
![]() |
![]() |
IoT Portföyü www.silabs.com/IoT |
GB/HW www.silabs.com/simplicity |
Kalite www.silabs.com/kalite |
Destek ve Topluluk topluluk.silabs.com |
Sorumluluk reddi
Silicon Labs, müşterilere Silicon Labs ürünlerini kullanan veya kullanmayı amaçlayan sistem ve yazılım uygulayıcıları için mevcut tüm çevre birimleri ve modüllerin en son, doğru ve ayrıntılı belgelerini sağlamayı amaçlamaktadır. Karakterizasyon verileri, mevcut modüller ve çevre birimleri, bellek boyutları ve bellek adresleri her bir belirli cihaza atıfta bulunur ve sağlanan "Tipik" parametreler farklı uygulamalarda değişebilir ve değişir. Uygulama örneğiampBurada açıklanan dosyalar yalnızca açıklama amaçlıdır. Silicon Labs, burada yer alan ürün bilgilerinde, teknik özelliklerde ve açıklamalarda daha fazla bildirimde bulunmaksızın ve sınırlama olmaksızın değişiklik yapma hakkını saklı tutar ve içerilen bilgilerin doğruluğu veya eksiksizliği konusunda garanti vermez. Silicon Labs, burada sağlanan bilgilerin kullanımının sonuçlarından sorumlu olmayacaktır. Bu belge, herhangi bir entegre devrenin tasarlanması veya üretilmesi için burada verilen telif hakkı lisanslarını ima etmez veya ifade etmez. Ürünler, Silicon Labs'ın özel yazılı izni olmadan herhangi bir Yaşam Destek Sisteminde kullanılmak üzere tasarlanmamıştır veya buna izin verilmemiştir. "Yaşam Destek Sistemi", yaşamı ve/veya sağlığı desteklemeyi veya sürdürmeyi amaçlayan ve başarısız olması durumunda ciddi kişisel yaralanma veya ölümle sonuçlanması makul olarak beklenebilecek herhangi bir ürün veya sistemdir. Silicon Labs ürünleri askeri uygulamalar için tasarlanmamıştır veya buna izin verilmemiştir. Silicon Labs ürünleri hiçbir koşulda nükleer, biyolojik veya kimyasal silahlar dahil (ancak bunlarla sınırlı olmamak üzere) kitle imha silahlarında veya bu tür silahları fırlatabilecek füzelerde kullanılmayacaktır.
Ticari Marka Bilgileri
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® ve Silicon Labs logosu®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, Energy Micro logosu ve bunların kombinasyonları, “dünyanın en enerji dostu mikrokontrolörleri”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® ve diğerleri Silicon Labs'ın ticari markaları veya tescilli ticari markalarıdır. ARM, CORTEX, Cortex-M3 ve başparmaklar ARM Holdings'in ticari markaları veya tescilli ticari markalarıdır. Keil, ARM Limited'in tescilli ticari markasıdır. Burada adı geçen diğer tüm ürünler veya marka adları, ilgili sahiplerinin ticari markalarıdır.
Silikon Laboratuvarları A.Ş.
400 Batı Cesar Chavez
Austin, Teksas 78701
Amerika
http://www.silabs.com
Belgeler / Kaynaklar
![]() |
SILICON LABS Kablosuz M-BUS Yazılım Uygulaması AN451 [pdf] Kullanıcı Kılavuzu SILICON LABS, C8051, MCU ve EZRadioPRO, Kablosuz M-bus, Kablosuz, M-BUS, Yazılım, Uygulama, AN451 |