آرم SILICON LABS

AN451
پیاده سازی نرم افزار M-BUS بی سیم

مقدمه

این یادداشت کاربردی، اجرای Silicon Labs از M-Bus بی‌سیم را با استفاده از Silicon Labs C8051 MCU و EZRadioPRO® توصیف می‌کند. Wireless M-bus یک استاندارد اروپایی برای کاربردهای خوانش کنتور با استفاده از باند فرکانسی 868 مگاهرتز است.

لایه های پشته

بی سیم M-Bus از مدل 3 لایه IEC استفاده می کند که زیرمجموعه ای از مدل 7 لایه OSI است (شکل 1 را ببینید).

SILICON LABS Wireless M-BUS نرم افزار پیاده سازی AN451لایه فیزیکی (PHY) در EN 13757-4 تعریف شده است. لایه فیزیکی نحوه کدگذاری و ارسال بیت ها، ویژگی های مودم RF (نرخ تراشه، مقدمه و کلمه همگام سازی) و پارامترهای RF (مدولاسیون، فرکانس مرکزی و انحراف فرکانس) را مشخص می کند.
لایه PHY با استفاده از ترکیبی از سخت افزار و سیستم عامل پیاده سازی شده است. EZRadioPRO تمام عملکردهای RF و مودم را انجام می دهد. EZRadioPRO در حالت FIFO با کنترل کننده بسته استفاده می شود. ماژول MbusPhy.c رابط SPI، رمزگذاری/رمزگشایی، بلوک خواندن/نوشتن و مدیریت بسته را فراهم می کند و حالت های فرستنده گیرنده را مدیریت می کند.
لایه پیوند M-Bus Data در ماژول MbusLink.c پیاده سازی شده است. رابط برنامه نویسی برنامه M-Bus شامل توابع عمومی است که ممکن است از لایه برنامه در رشته اصلی فراخوانی شوند. ماژول MbusLink لایه پیوند داده را نیز پیاده سازی می کند. لایه پیوند داده، داده‌ها را از بافر برنامه TX در بافر MbusPhy TX قالب‌بندی و کپی می‌کند و هدرها و CRC‌های مورد نیاز را اضافه می‌کند.
لایه Application خود بخشی از سیستم عامل M-bus نیست. لایه کاربردی تعریف می کند که چگونه طیف گسترده ای از داده ها برای انتقال قالب بندی شوند. بیشتر کنتورها فقط به انتقال یک یا دو نوع داده نیاز دارند. افزودن مقدار زیادی کد برای قرار دادن هر نوع داده در کنتور، کد و هزینه غیر ضروری را به متر اضافه می کند. ممکن است امکان پیاده سازی یک کتابخانه یا یک هدر وجود داشته باشد file با فهرستی جامع از انواع داده ها. با این حال، اکثر مشتریان اندازه‌گیری دقیقاً می‌دانند که چه نوع داده‌هایی را باید منتقل کنند و می‌توانند برای قالب‌بندی جزئیات به استاندارد مراجعه کنند. یک خواننده جهانی یا sniffer ممکن است مجموعه کاملی از انواع داده های برنامه را در رابط کاربری گرافیکی PC پیاده سازی کند. به این دلایل، لایه برنامه با استفاده از ex پیاده سازی می شودampبرنامه های کاربردی برای یک متر و خواننده.

استانداردهای مورد نیاز
  1. EN 13757-4
    EN 13757-4
    سیستم ارتباطی کنتورها و خوانش از راه دور کنتورها
    بخش 4: بازخوانی کنتور بی سیم
    خواندن رادیومتر برای عملکرد در باند SRD 868 مگاهرتز تا 870 مگاهرتز
  2. EN 13757-3
    سیستم ارتباطی کنتورها و خوانش از راه دور کنتورها
    قسمت 3: لایه برنامه اختصاصی
  3. IEC 60870-2-1:1992
    تجهیزات و سیستم های کنترل از راه دور
    بخش 5: پروتکل های انتقال
    بخش 1: روش انتقال پیوند
  4. IEC 60870-1-1:1990
    تجهیزات و سیستم های کنترل از راه دور
    بخش 5: پروتکل های انتقال
    بخش 1: قالب های فریم انتقال
تعاریف
  • اتوبوس M-M-Bus یک استاندارد سیمی برای قرائت کنتور در اروپا است.
  • اتوبوس بی سیم- بی سیم M-Bus برای برنامه های خواندن کنتور در اروپا.
  • PHY- لایه فیزیکی نحوه کدگذاری و انتقال بیت ها و بایت های داده را مشخص می کند.
  • API-رابط برنامه نویس برنامه.
  • ارتباط دادن-لایه پیوند داده نحوه انتقال بلوک ها و فریم ها را مشخص می کند.
  • CRC-بررسی افزونگی چرخه ای
  • FSK-کلید زنی تغییر فرکانس
  • تراشه -کوچکترین واحد داده ارسال شده یک بیت داده به صورت چند تراشه کدگذاری می شود.
  • مدول-منبع کد AC .c file.

M-Bus PHY توضیحات عملکردی

دنباله مقدمه

دنباله مقدمه مشخص شده توسط مشخصات M-bus یک عدد صحیح متناوب صفر و یک است. یک به عنوان فرکانس بالاتر و صفر به عنوان فرکانس کمتر تعریف می شود.
nx (01)
گزینه‌های Preamble برای Si443x یک عدد صحیح از نوک‌های متشکل از یک‌ها و صفرهای متناوب است.
nx (1010)
یک مقدمه با یک پیشرو اضافی مشکلی نخواهد بود، اما، پس از آن، کلمه همگام سازی و محموله یک بیت اشتباه می شوند.
راه حل این است که کل بسته را با تنظیم بیت موتور در رجیستر Modulation Control 2 (0x71) معکوس کنید. این مقدمه، کلمه همگام سازی و داده های TX/RX را معکوس می کند. در نتیجه، هنگام نوشتن داده‌های TX یا خواندن داده‌های RX، داده‌ها باید معکوس شوند. همچنین، کلمه همگام سازی قبل از نوشتن در رجیسترهای ورد Synchronization Si443x معکوس می شود.

کلمه همگام سازی

کلمه همگام سازی مورد نیاز EN-13757-4 یا 18 تراشه برای حالت S و حالت R یا 10 تراشه برای مدل T است. کلمه همگام سازی برای Si443x 1 تا 4 بایت است. با این حال، از آنجایی که کلمه همگام سازی همیشه قبل از مقدمه است، شش بیت آخر مقدمه را می توان بخشی از کلمه همگام سازی در نظر گرفت. بنابراین، اولین کلمه همگام سازی با سه تکرار یک صفر و سپس یک پر می شود. کلمه همگام سازی قبل از نوشتن در رجیسترهای Si443x تکمیل می شود.
جدول 1. کلمه همگام سازی برای حالت S و حالت R

EN 13757-4 00 01110110 10010110 باینری
00 76 96 هگزا
پد با (01) x 3 01010100 01110110 10010110 باینری
54 76 96 هگزا
مکمل 10101011 10001001 01101001 باینری
AB 89 69 هگزا

جدول 2. همگام سازی کلمه برای حالت T متر با دیگر

همگام سازی همگام سازی همگام سازی
کلمه کلمه کلمه
3 2 1
طول مقدمه انتقال

حداقل مقدمه برای چهار حالت مختلف عملیاتی مشخص شده است. این قابل قبول است که مقدمه ای طولانی تر از آنچه مشخص شده باشد. با کم کردن شش تراشه برای مقدمه، حداقل تعداد تراشه ها برای مقدمه Si443x به دست می آید. این پیاده سازی دو نوک مقدمه اضافی را در همه حالت های مقدمه کوتاه اضافه می کند تا تشخیص مقدمه و قابلیت همکاری را بهبود بخشد. مقدمه در حالت S با مقدمه طولانی بسیار طولانی است. بنابراین، حداقل مقدمه استفاده می شود. طول مقدمه در nibbles در ثبات Preamble Length (0x34) نوشته می شود. ثبت طول مقدمه تنها پس از ارسال، مقدمه را تعیین می کند. حداقل مشخصات و تنظیمات طول مقدمه در جدول 3 خلاصه شده است.
جدول 3. طول مقدمه ارسال

EN-13757-4
حداقل
مقدمه Si443x
تنظیم کردن
همگام سازی
کلمه
مجموع اضافی
nx (01) چیپس نیچک ها چیپس چیپس چیپس چیپس
حالت S مقدمه کوتاه 15 30 8 32 6 38 8
حالت S مقدمه طولانی 279 558 138 552 6 558 0
حالت T (متر-سایر) 19 38 10 40 6 46 8
حالت R 39 78 20 80 6 86 8

حداقل مقدمه برای دریافت توسط رجیستر کنترل تشخیص مقدمه (0x35) تعیین می شود. پس از دریافت، تعداد بیت های کلمه همگام سازی باید از حداقل مقدمه مشخص شده کم شود تا مقدمه قابل استفاده تعیین شود. حداقل زمان ته نشین شدن گیرنده در صورت فعال بودن AFC 16 تراشه و در صورت غیرفعال بودن AFC 8 تراشه است. زمان ته نشین شدن گیرنده نیز از مقدمه قابل استفاده کم می شود تا حداقل تنظیم برای ثبت کنترل تشخیص مقدمه تعیین شود.

احتمال یک مقدمه نادرست به تنظیم رجیستر کنترل تشخیص مقدمه بستگی دارد. تنظیم کوتاه 8 تراشه ممکن است منجر به شناسایی یک مقدمه نادرست هر چند ثانیه شود. تنظیم توصیه شده 20 تراشه، تشخیص مقدمه نادرست را به یک رویداد بعید تبدیل می کند. طول مقدمه برای حالت R و حالت SL به اندازه کافی طولانی است تا از تنظیمات توصیه شده استفاده شود.
فایده بسیار کمی برای تشخیص بیش از 20 تراشه در مقدمه وجود دارد.
AFC برای مدل S با مقدمه کوتاه و مدل T غیرفعال است. این امر زمان ته نشینی گیرنده را کاهش می دهد و امکان تنظیم تشخیص مقدمه طولانی تر را فراهم می کند. با غیرفعال بودن AFC، حالت T می تواند از تنظیمات توصیه شده 20 تراشه استفاده کند. تنظیم 4 نیبل یا 20 چیپس برای مدل S با یک مقدمه کوتاه استفاده می شود. این باعث می شود که احتمال تشخیص مقدمه نادرست برای این مدل کمی بیشتر شود.
جدول 4. تشخیص مقدمه

EN-13757-4
حداقل
همگام سازی
کلمه
قابل استفاده
مقدمه
تسویه RX تشخیص دهید
دقیقه
مقدمه Si443x
تنظیمات تشخیص
nx (01) چیپس چیپس چیپس چیپس چیپس نیچک ها چیپس
حالت S مقدمه کوتاه 15 30 6 24 8* 16 4 16
مقدمه بلند مدل S 279 558 6 552 16 536 5 20
مدل T (متر-سایر) 19 38 6 32 8* 24 5 20
حالت R 39 78 6 72 16 56 5 20
*نکته: AFC از کار افتاده

گیرنده برای تعامل با فرستنده با استفاده از حداقل مقدمه مشخص شده پیکربندی شده است. این تضمین می کند که گیرنده با هر فرستنده سازگار با اتوبوس M کار می کند.
مشخصات بی سیم M-Bus نیاز به مقدمه بسیار طولانی برای حالت S1 با حداقل 558 تراشه دارد. این فقط برای انتقال مقدمه حدود 17 میلی ثانیه طول می کشد. Si443x به چنین مقدمه طولانی نیاز ندارد و از مقدمه طولانی بهره نمی برد. در حالی که مقدمه طولانی به عنوان اختیاری برای حالت S2 ذکر شده است، دلیلی برای استفاده از مقدمه طولانی در Si443x وجود ندارد. اگر ارتباط یک طرفه مورد نظر باشد، حالت T1 مقدمه کوتاه‌تر، سرعت داده بالاتر و عمر باتری بیشتر را ارائه می‌کند. اگر ارتباط دو طرفه با استفاده از حالت S2 مورد نیاز است، یک مقدمه کوتاه توصیه می شود.
توجه داشته باشید که آستانه تشخیص برای مدل S با مقدمه طولانی بیشتر از تعداد نوک های مقدمه ارسال شده برای مدل S با مقدمه کوتاه است. این بدان معناست که گیرنده حالت S مقدمه بلند مقدمه ای را از فرستنده حالت S مقدمه کوتاه تشخیص نمی دهد. اگر قرار باشد گیرنده حالت S مقدمه طولانی از مقدمه طولانی سودی دریافت کند، این امر ضروری است.
توجه داشته باشید که گیرنده مقدمه کوتاه حالت S مقدمه را تشخیص داده و بسته ها را از هر دو مقدمه کوتاه حالت S دریافت می کند.
فرستنده و فرستنده حالت S با مقدمه بلند. بنابراین، به طور کلی، متر خوان باید از مقدمه کوتاه پیکربندی گیرنده حالت S استفاده کند.

رمزگذاری / رمزگشایی

مشخصات بی سیم M-bus به دو روش رمزگذاری مختلف نیاز دارد. رمزگذاری منچستر برای حالت S و حالت R استفاده می شود. از رمزگذاری منچستر برای پیوند دیگر به متر در مدل T نیز استفاده می شود. پیوند متر به دیگر مدل T از 3 کد از 6 رمزگذاری استفاده می کند.
1. منچستر کدگذاری / رمزگشایی
رمزگذاری منچستر از لحاظ تاریخی در سیستم های RF برای ارائه بازیابی و ردیابی ساعت قوی با استفاده از یک مودم ساده و ارزان رایج است. با این حال، رادیوی مدرن با کارایی بالا مانند Si443x نیازی به رمزگذاری منچستر ندارد. رمزگذاری منچستر عمدتاً برای سازگاری با استانداردهای موجود پشتیبانی می شود، اما نرخ داده برای Si443x در صورت عدم استفاده از رمزگذاری منچستر به طور موثر دو برابر می شود.
Si443x از رمزگذاری منچستر و رمزگشایی کل بسته در سخت افزار پشتیبانی می کند. متأسفانه، کلمه همگام سازی منچستر کدگذاری نشده است. یک دنباله منچستر نامعتبر به عمد برای کلمه همگام سازی انتخاب شده است. این باعث می شود که رمزگذاری منچستر با اکثر رادیوهای موجود از جمله Si443x سازگار نباشد. در نتیجه، رمزگذاری و رمزگشایی منچستر باید توسط MCU انجام شود. هر بایت روی داده های رمزگذاری نشده از هشت بیت داده تشکیل شده است. با استفاده از رمزگذاری منچستر، هر بیت داده در یک نماد دو تراشه کدگذاری می شود. از آنجایی که داده های رمزگذاری شده باید در هر بار هشت تراشه رادیویی FIFO نوشته شوند، یک نوک داده رمزگذاری شده و در یک زمان روی FIFO نوشته می شود.
جدول 5. رمزگذاری منچستر

داده ها Ox12 0x34 بایت ها
Ox1 0x2 0x3 0x4 نیچک ها
1 10 11 100 باینری
تراشه 10101001 10100110 10100101 10011010 باینری
FIFO OxA9 OxA6 OxA5 Ox9A هگزا

هر بایتی که باید ارسال شود، هر بار یک بایت به تابع کد بایت ارسال می شود. تابع encode byte تابع encode nibble را دو بار فراخوانی می کند، ابتدا برای مهم ترین نیبل و سپس برای کمترین نیبل.
رمزگذاری منچستر در نرم افزار دشوار نیست. با شروع از مهم ترین بیت، یکی به عنوان یک دنباله تراشه "01" کدگذاری می شود. یک صفر به عنوان یک دنباله تراشه "10" کدگذاری می شود. این را می توان به راحتی با استفاده از یک حلقه و جابجایی دو بیت برای هر نماد انجام داد. با این حال، استفاده از یک جدول 16 ورودی ساده برای هر نوک انگشت سریعتر است. تابع منچستر nibble رمزگذاری یک نیبل از داده ها را رمزگذاری می کند و سپس آن را در FIFO می نویسد. تراشه‌ها قبل از نوشتن به FIFO معکوس می‌شوند تا نیازهای مقدمه معکوس را در نظر بگیرند.
هنگام دریافت، هر بایت در FIFO از هشت تراشه تشکیل شده و در یک نوک داده رمزگشایی می شود. تابع بلوک خواندن یک بایت را در یک زمان از FIFO می خواند و تابع بایت رمزگشایی را فراخوانی می کند. تراشه ها پس از خواندن از FIFO معکوس می شوند تا نیازهای مقدمه معکوس را در نظر بگیرند. هر بایت از تراشه‌های رمزگذاری‌شده منچستر در یک خرده داده رمزگشایی می‌شود. نیبل رمزگشایی شده با استفاده از تابع بافر write nibble RX در بافر RX نوشته می شود.
توجه داشته باشید که هم کدگذاری و هم رمزگشایی به صورت یک نوبت در حال انجام است. رمزگذاری در بافر به یک بافر اضافی دو برابر اندازه داده های رمزگذاری نشده نیاز دارد. رمزگذاری و رمزگشایی بسیار سریعتر از سریعترین نرخ داده پشتیبانی شده (100 کیلو تراشه در ثانیه) است. از آنجایی که Si443x از خواندن و نوشتن چند بایتی در FIFO پشتیبانی می‌کند، هزینه کمی برای استفاده از خواندن و نوشتن تک بایتی وجود دارد. سربار حدود 10 میکرو ثانیه برای 100 تراشه رمزگذاری شده است. مزیت آن صرفه جویی در رم 512 بایتی است.
2. سه از شش رمزگشایی رمزگذاری
روش رمزگذاری سه از شش مشخص شده در EN-13757-4 نیز در سیستم عامل روی MCU پیاده سازی شده است. این رمزگذاری برای حالت پرسرعت (100 کیلو تراشه در ثانیه) حالت T از متر به دیگر استفاده می شود. مدل T کوتاه ترین زمان انتقال و طولانی ترین عمر باتری را برای یک متر بی سیم فراهم می کند.
هر بایت داده ای که باید منتقل شود به دو نوک تقسیم می شود. مهم ترین نیبل ابتدا کدگذاری و ارسال می شود. باز هم، این با استفاده از یک تابع بایت رمزگذاری که تابع encode nibble را دو بار فراخوانی می‌کند، پیاده‌سازی می‌شود.
هر نوک داده در یک نماد شش تراشه کدگذاری می شود. دنباله نمادهای شش تراشه ای باید در FIFO 8 تراشه نوشته شود.
در طول رمزگذاری، دو بایت از داده ها به صورت چهار نیبل کدگذاری می شوند. هر نیبل یک نماد 6 تراشه ای است. چهار نماد 6 تراشه ای به عنوان سه بایت جمع می شوند.
جدول 6. سه از شش رمزگذاری

داده ها 0x12 0x34 بایت ها
Ox1 0x2 0x3 0x4 نیچک ها
تراشه 15 16 13 34 هشتی
1101 1110 1011 11100 باینری
FIFO 110100 11100010 11011100 باینری
0x34 OxE2 OxDC هگزا

در نرم افزار، رمزگذاری سه از شش با استفاده از سه تابع تو در تو پیاده سازی می شود. تابع Encode byte تابع encode nibble را دوبار فراخوانی می کند. تابع encode nibble از یک جدول جستجو برای نماد شش تراشه استفاده می کند و نماد را در Shift سه از شش توابع می نویسد. این تابع یک رجیستر شیفت 16 تراشه ای را در نرم افزار پیاده سازی می کند. نماد به کمترین بایت بایت ثبت تغییر نوشته می شود. رجیستر دو بار به چپ منتقل می شود. این کار سه بار تکرار می شود. هنگامی که یک بایت کامل در بایت بالایی شیفت رجیستر وجود دارد، برعکس شده و در FIFO نوشته می شود.
از آنجایی که هر بایت داده به صورت یک و نیم بایت رمزگذاری شده کدگذاری می شود، مهم است که در ابتدا شیفت رجیستر را پاک کنید تا اولین بایت کدگذاری شده صحیح باشد. اگر طول بسته یک عدد فرد باشد، پس از رمزگذاری همه بایت‌ها، هنوز یک نیبل در رجیستر شیفت باقی خواهد ماند. همانطور که در بخش بعدی توضیح داده شد، این مورد با postamble انجام می شود.
رمزگشایی سه مورد از شش رمزگذاری شده رویه معکوس است. هنگام رمزگشایی، سه بایت رمزگذاری شده به دو بایت داده رمزگشایی می شوند. رجیستر شیفت نرم افزار دوباره برای جمع آوری بایت های داده های رمزگشایی شده استفاده می شود. یک جدول جستجوی معکوس 64 ورودی برای رمزگشایی استفاده می شود. این از چرخه های کمتر اما حافظه کد بیشتری استفاده می کند. جستجوی یک جدول جستجوی 16 ورودی برای نماد مربوطه به میزان قابل توجهی زمان می برد.
پستی
مشخصات بی سیم M-bus الزامات خاصی برای پستی یا تریلر دارد. برای همه حالت ها، حداقل دو تراشه و حداکثر هشت تراشه است. از آنجایی که حداقل واحد اتمی برای FIFO یک بایت است، یک تریلر 8 تراشه ای برای Mode S و Mode R استفاده می شود. Mode T postamble هشت تراشه است اگر طول بسته زوج باشد یا چهار تراشه اگر طول بسته فرد باشد. پستی چهار تراشه ای برای طول بسته فرد، الزامات داشتن حداقل دو تراشه متناوب را برآورده می کند.
جدول 7. طول پستی

طول پستی (تراشه)
دقیقه حداکثر پیاده سازی دنباله تراشه
حالت S 2 8 8 1010101
حالت T 2 8 4 (فرد) 101
8 (زوج) 1010101
حالت R 2 8 8 1010101
Packet Handler

کنترل کننده بسته در Si443x می تواند در حالت عرض بسته متغیر یا حالت عرض بسته ثابت استفاده شود. حالت پهنای بسته متغیر به یک بایت طول بسته بعد از کلمه همگام سازی و بایت های هدر اختیاری نیاز دارد. پس از دریافت، رادیو از طول بایت برای تعیین پایان یک بسته معتبر استفاده می کند. در هنگام ارسال، رادیو فیلد طول را بعد از بایت های سرصفحه وارد می کند.
فیلد L برای پروتکل M-bus بی سیم نمی تواند برای فیلد طول Si443x استفاده شود. اولاً، فیلد L طول واقعی بسته نیست. تعداد بایت های بارگذاری لایه پیوند بدون بایت های CRC یا رمزگذاری است. ثانیاً، خود فیلد L با استفاده از رمزگذاری منچستر یا رمزگذاری سه از شش برای حالت T متر به دیگری رمزگذاری می شود.
پیاده سازی از کنترل کننده بسته در حالت عرض بسته ثابت برای انتقال و دریافت استفاده می کند. پس از ارسال، لایه PHY فیلد L را در بافر انتقال می خواند و تعداد بایت های کدگذاری شده، از جمله postamble را محاسبه می کند. تعداد کل بایت های کدگذاری شده برای ارسال در ثبات طول بسته (0x3E) نوشته می شود.
پس از دریافت، دو بایت کدگذاری شده اول رمزگشایی می شوند و فیلد L در بافر دریافت نوشته می شود. فیلد L برای محاسبه تعداد بایت های کدگذاری شده برای دریافت استفاده می شود. سپس تعداد بایت های کدگذاری شده برای دریافت در ثبات طول بسته (0x3E) نوشته می شود. پستی دور انداخته شده است.
MCU باید فیلد L را رمزگشایی کند، تعداد بایت های کدگذاری شده را محاسبه کند و قبل از دریافت کوتاه ترین طول بسته، مقدار را در ثبات طول بسته بنویسد. کوتاه ترین فیلد L مجاز برای لایه PHY 9 است که 12 بایت رمزگذاری نشده می دهد. این 18 بایت کدگذاری شده برای مدل T می دهد. دو بایت اول قبلاً رمزگشایی شده اند. بنابراین، ثبت طول بسته باید در 16 بایت با سرعت 100 کیلوبیت بر ثانیه یا 1.28 میلی ثانیه به روز شود. این برای 8051 که با سرعت 20 MIPS کار می کند مشکلی ندارد.
تعداد بایت هایی که باید دریافت شوند شامل پستی نمی شود، به جز پستی چهار تراشه ای که برای بسته های Mode T با طول بسته فرد استفاده می شود. بنابراین، گیرنده به غیر از بسته های طول فرد مدل T نیازی به پستی ندارد. این postamble فقط برای ارائه یک عدد صحیح از بایت های رمزگذاری شده مورد نیاز است. محتوای پستی نادیده گرفته شده است. بنابراین، در صورت عدم ارسال پستی، چهار تراشه نویز دریافت می شود و نادیده گرفته می شود. از آنجایی که تعداد کل بایت های رمزگذاری شده به 255 (0xFF) محدود شده است، پیاده سازی حداکثر میدان L را برای حالت های مختلف محدود می کند.
جدول 8. محدودیت اندازه بسته

کدگذاری شده است رمزگشایی شده است اتوبوس ام
بایت ها بایت ها L-Field
دسامبر هگزا دسامبر هگزا دسامبر هگزا
حالت S 255 FF 127 7 F 110 6E
حالت T (متر-سایر) 255 FF 169 A9 148 94
حالت R 255 FF 127 7 F 110 6E

این محدودیت ها معمولاً بسیار بالاتر از حالت استفاده معمولی برای یک متر بی سیم است. طول بسته باید کوچک نگه داشته شود تا بهترین عمر باتری ممکن باشد.
علاوه بر این، کاربر ممکن است حداکثر فیلد L را که باید دریافت شود (USER_RX_MAX_L_FIELD) مشخص کند. این اندازه مورد نیاز برای بافر دریافت (USER_RX_BUFFER_SIZE) را تعیین می کند.
پشتیبانی از حداکثر میدان L 255 به یک بافر دریافتی 290 بایت و حداکثر 581 بایت کدگذاری منچستر نیاز دارد. کنترل کننده بسته باید غیرفعال شود و ثبت طول بسته نمی تواند در این مورد استفاده شود. این امکان پذیر است، اما در صورت امکان استفاده از کنترل کننده بسته راحت تر است.

استفاده از FIFO

Si4431 یک FIFO 64 بایتی برای ارسال و دریافت فراهم می کند. از آنجایی که تعداد بایت های کدگذاری شده 255 است، ممکن است یک بسته رمزگذاری شده کامل در بافر 64 بایتی قرار نگیرد.
انتقال
هنگام ارسال، تعداد کل بایت های کدگذاری شده محاسبه می شود. اگر تعداد کل بایت‌های کدگذاری شده، از جمله postamble، کمتر از 64 بایت باشد، کل بسته در FIFO نوشته می‌شود و تنها وقفه بسته ارسال شده فعال می‌شود. اکثر بسته های کوتاه در یک انتقال FIFO ارسال می شوند.
اگر تعداد بایت های کدگذاری شده بیشتر از 64 باشد، چندین انتقال FIFO برای ارسال بسته مورد نیاز خواهد بود. 64 بایت اول در FIFO نوشته می شود. وقفه های Packet Sent و TX FIFO Almost Empty فعال هستند. آستانه TX FIFO Almost Empty روی 16 بایت (25%) تنظیم شده است. پس از هر رویداد IRQ، ثبت وضعیت 2 خوانده می شود. ابتدا بیت Packet Sent بررسی می شود و اگر بسته به طور کامل ارسال نشده باشد، 48 بایت بعدی از داده های رمزگذاری شده در FIFO نوشته می شود. این کار تا زمانی ادامه می یابد که تمام بایت های کدگذاری شده نوشته شوند و وقفه Packet Sent رخ دهد.
1. پذیرایی
در دریافت، ابتدا فقط وقفه Sync Word فعال است. پس از دریافت کلمه همگام سازی، وقفه کلمه همگام سازی غیرفعال شده و وقفه FIFO Almost Full فعال می شود. آستانه تقریبا کامل FIFO در ابتدا روی 2 بایت تنظیم شده است. اولین وقفه FIFO Almost Full برای دانستن زمان دریافت دو بایت طولی استفاده می شود. پس از دریافت طول، طول رمزگشایی شده و تعداد بایت های رمزگذاری شده محاسبه می شود. سپس آستانه RX FIFO تقریباً کامل روی 48 بایت تنظیم می شود. RX FIFO تقریباً پر است و وقفه های Valid Packet فعال هستند. پس از رویداد IRQ بعدی، ثبت وضعیت 1 خوانده می شود. ابتدا بیت Valid Packet بررسی می شود و سپس بیت FIFO Almost Full بررسی می شود. اگر فقط بیت RX FIFO Almost Full تنظیم شده باشد، 48 بایت بعدی از FIFO خوانده می شود. اگر بیت بسته معتبر تنظیم شود، باقیمانده بسته از FIFO خوانده می شود. MCU تعداد بایت های خوانده شده را پیگیری می کند و بعد از آخرین بایت خواندن را متوقف می کند.

لایه پیوند داده

ماژول لایه پیوند داده یک لایه پیوند مطابق با 13757-4:2005 را پیاده سازی می کند. لایه پیوند داده (LINK) یک رابط بین لایه فیزیکی (PHY) و لایه کاربردی (AL) فراهم می کند.
لایه پیوند داده عملکردهای زیر را انجام می دهد:

  • عملکردهایی را ارائه می دهد که داده ها را بین PHY و AL منتقل می کند
  • CRC ها را برای پیام های خروجی ایجاد می کند
  • خطاهای CRC را در پیام های دریافتی تشخیص می دهد
  • آدرس دهی فیزیکی را ارائه می دهد
  • انتقال برای حالت های ارتباطی دو طرفه را تأیید می کند
  • بیت های داده را قاب می کند
  • خطاهای کادربندی در پیام های دریافتی را تشخیص می دهد
فرمت قاب لایه پیوند

فرمت قاب بی سیم M-Bus مورد استفاده در EN 13757-4:2005 از قالب قاب FT3 (نوع قاب 3) از IEC60870-5-2 مشتق شده است. فریم از یک یا چند بلوک داده تشکیل شده است. هر بلوک شامل یک فیلد CRC 16 بیتی است. اولین باک یک بلوک با طول ثابت 12 بایتی است که شامل فیلد L، فیلد C، فیلد M و میدان A است.

  1. L-Field
    فیلد L طول بار داده لایه پیوند است. این شامل خود فیلد L یا هیچ یک از بایت های CRC نمی شود. این شامل میدان L، C-field، M-field و A-Field است. اینها بخشی از محموله PHY هستند.
    از آنجایی که تعداد بایت های رمزگذاری شده به 255 بایت محدود شده است، حداکثر مقدار پشتیبانی شده برای فیلد M 110 بایت برای داده های رمزگذاری شده منچستر و 148 بایت برای داده های رمزگذاری شده حالت T سه از شش است.
    لایه Link مسئول محاسبه فیلد L در انتقال است. لایه پیوند از فیلد L در دریافت استفاده می کند.
    توجه داشته باشید که قسمت L طول بار PHY یا تعداد بایت های رمزگذاری شده را نشان نمی دهد. پس از ارسال، PHY طول بار PHY و تعداد بایت های رمزگذاری شده را محاسبه می کند. پس از دریافت، PHY فیلد L را رمزگشایی می کند و تعداد بایت های مورد نیاز برای رمزگشایی را محاسبه می کند.
  2. سی فیلد
    فیلد C قسمت کنترل فریم است. این فیلد نوع فریم را مشخص می‌کند و برای سرویس‌های مبادله داده پیوندی اولیه استفاده می‌شود. فیلد C نوع فریم را نشان می دهد - SEND، CONFIRM، REQUEST یا RESPOND. در مورد فریم های SEND و REQUEST، فیلد C نشان می دهد که آیا انتظار می رود CONFIRM یا RESPOND باشد.
    هنگام استفاده از تابع اصلی Link TX، می توان از هر مقدار C استفاده کرد. هنگام استفاده از Link Service Primitives، فیلد C به طور خودکار مطابق EN 13757-4:2005 پر می شود.
  3. M-Field
    فیلد M کد سازنده است. تولیدکنندگان می توانند کد سه حرفی را از زیر درخواست کنند web آدرس: http://www.dlms.com/flag/INDEX.HTM هر کاراکتر کد سه حرفی به صورت پنج بیت کدگذاری می شود. کد 5 بیتی را می توان با گرفتن کد ASCII و کم کردن 0x40 ("A") به دست آورد. سه کد 5 بیتی به هم پیوسته اند تا 15 بیت بسازند. مهم ترین بیت صفر است.
  4. A-Field
    فیلد آدرس یک آدرس منحصر به فرد 6 بایتی برای هر دستگاه است. آدرس منحصر به فرد باید توسط سازنده اختصاص داده شود. این مسئولیت هر سازنده است که اطمینان حاصل کند که هر دستگاه دارای یک آدرس 6 بایتی منحصر به فرد است. آدرس فریم های ارسال و درخواست، نشانی خود متر یا دستگاه دیگر است. فریم های داده تایید و پاسخ با استفاده از آدرس دستگاه مبدأ ارسال می شوند.
  5. CI-Field
    فیلد CI سربرگ برنامه است و نوع داده در محموله داده برنامه را مشخص می کند. در حالی که EN13757-4:2005 تعداد محدودی از مقادیر را مشخص می کند، Link Service Primitives اجازه استفاده از هر مقدار را می دهد.
  6. CRC
    CRC در EN13757-4:2005 مشخص شده است.
    چند جمله ای CRC عبارت است از:
    X16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1
    توجه داشته باشید که M-Bus CRC بر روی هر بلوک 16 بایتی محاسبه می شود. نتیجه این است که هر 16 بایت داده به 18 بایت برای انتقال نیاز دارد.
اطلاعات تکمیلی

برای اطلاعات بیشتر در مورد پیاده‌سازی لایه پیوند، به «AN452: راهنمای برنامه‌نویسان پشته M-Bus بی‌سیم» مراجعه کنید.

مدیریت نیرو

شکل 2 جدول زمانی مدیریت توان را برای یک متر سابق نشان می دهدampبا استفاده از حالت T1.

MCU باید تا حد امکان در حالت Sleep باشد تا در مصرف انرژی صرفه جویی شود. در این سابقampهنگامی که RTC در حال اجرا است، هنگام انتظار در راه اندازی کریستال رادیویی، و هنگام ارسال از FIFO، MCU در حالت خواب است. MCU از سیگنال EZRadioPRO IRQ متصل به یک Port Match بیدار می شود.
هنگام ارسال پیام های طولانی تر از یک بلوک، MCU باید بیدار شود تا FIFO را پر کند (بر اساس وقفه تقریباً خالی FIFO) و سپس به خواب برود.
هنگام خواندن از ADC، MCU باید در حالت Idle باشد که از نوسانگر کم توان یا نوسانگر حالت انفجاری اجرا می شود. ADC به یک ساعت SAR نیاز دارد.
هنگامی که از EZRadioPRO استفاده نمی شود، باید در حالت Shutdown با پین SDN بالا باشد. این نیاز به اتصال سیمی سخت به MCU دارد. رجیسترهای EZ Radio Pro در حالت خاموش شدن حفظ نمی شوند. بنابراین، EZRadioPro در هر بازه RTC مقداردهی اولیه می شود. راه اندازی رادیو کمتر از 100 میکرو ثانیه طول می کشد و 400 nA ذخیره می شود. این منجر به 10 میکروژول صرفه جویی در انرژی، بر اساس فاصله زمانی 10 ثانیه می شود.
کریستال EZRadioPRO حدود 16 میلی ثانیه برای یک POR طول می کشد. این مدت برای محاسبه CRC برای حدود هشت بلوک کافی است. اگر قبل از تثبیت کریستال تمام CRC ها را کامل کند، MCU دوباره به حالت خواب می رود. در صورت نیاز به رمزگذاری، می توان آن را در حین انتظار روی نوسانگر کریستالی نیز راه اندازی کرد.
MCU باید در 20 مگاهرتز با استفاده از نوسانگر کم مصرف برای اکثر کارها کار کند. کارهایی که نیاز به مهلت زمانی دقیق دارند باید به جای حالت خواب از نوسانگر دقیق و حالت بیکار استفاده کنند. RTC وضوح کافی را برای اکثر کارها فراهم می کند. جدول زمانی مدیریت انرژی برای متر T2 سابقampکاربرد le در شکل 3 نشان داده شده است.

اجرای فرستنده گیرنده باید برای حالت عادی زمانی که متر بیدار می شود و خواننده وجود ندارد بهینه شود. حداقل/حداکثر وقفه های زمانی ACK به اندازه کافی طولانی هستند به طوری که می توان از C8051F930 RTC استفاده کرد و MCU را در حالت خواب قرار داد.
گزینه های ساخت برای خواننده های برقی یا USB ارائه شده است که نیازی به استفاده از حالت خواب ندارند. حالت بیکار به جای خواب استفاده می شود تا USB و UART ممکن است MCU را قطع کنند.

SILICON LABS Wireless M-BUS نرم افزار پیاده سازی AN451-1

استودیو سادگی
دسترسی با یک کلیک به MCU و ابزارهای بی سیم، اسناد، نرم افزار، کتابخانه های کد منبع و موارد دیگر. موجود برای ویندوز،
مک و لینوکس!

نمونه کارها اینترنت اشیا کیفیت
نمونه کارها اینترنت اشیا
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
کیفیت
www.silabs.com/quality
پشتیبانی و انجمن
Community.silabs.com

سلب مسئولیت
Silicon Labs در نظر دارد آخرین، دقیق و مستندات عمیق تمام تجهیزات جانبی و ماژول های موجود برای پیاده سازی سیستم و نرم افزار را با استفاده یا قصد استفاده از محصولات Silicon Labs به مشتریان ارائه دهد. داده‌های مشخصه‌سازی، ماژول‌ها و تجهیزات جانبی موجود، اندازه‌های حافظه و آدرس‌های حافظه به هر دستگاه خاص مربوط می‌شوند و پارامترهای «معمولی» ارائه‌شده می‌توانند و در برنامه‌های مختلف متفاوت باشند. برنامه قبلیampمواردی که در اینجا توضیح داده شده فقط برای اهداف توضیحی است. آزمایشگاه سیلیکون این حق را برای خود محفوظ می دارد که بدون اطلاع بیشتر و محدودیت در اطلاعات، مشخصات و توضیحات محصول در اینجا تغییرات ایجاد کند و در مورد صحت یا کامل بودن اطلاعات ارائه شده ضمانتی نمی دهد. آزمایشگاه سیلیکون هیچ مسئولیتی در قبال عواقب استفاده از اطلاعات ارائه شده در اینجا ندارد. این سند به معنای یا بیان کننده مجوزهای حق نسخه برداری نیست که به موجب آن برای طراحی یا ساخت مدارهای مجتمع اعطا شده است. محصولات طراحی یا مجاز به استفاده در هیچ سیستم پشتیبانی زندگی بدون رضایت کتبی خاص آزمایشگاه سیلیکون نیستند. "سیستم پشتیبانی از زندگی" هر محصول یا سیستمی است که برای حمایت یا حفظ زندگی و/یا سلامتی در نظر گرفته شده است، که در صورت شکست، به طور منطقی می توان انتظار داشت که منجر به صدمات شخصی یا مرگ شود. محصولات Silicon Labs برای کاربردهای نظامی طراحی یا مجاز نیستند. محصولات آزمایشگاه سیلیکون تحت هیچ شرایطی نباید در سلاح های کشتار جمعی از جمله (و نه محدود به) سلاح های هسته ای، بیولوژیکی یا شیمیایی، یا موشک هایی که قادر به حمل چنین سلاح هایی هستند استفاده شوند.
اطلاعات علامت تجاری
Silicon Laboratories Inc., Silicon Laboratories®, Silicon Labs®, SiLabs®, and the Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro، نشان‌واره Energy Micro و ترکیبی از آنها، "میکروکنترلرهای دوستدار انرژی جهان"، Ember®، EZLink®، EZRadio®، EZRadioPRO®، Gecko®، ISOmodem®، Precision32®، ProSLIC®، Simplicity Studio®، SiPHY® ، Telegesis، Telegesis Logo®، USBXpress®، و سایر علائم تجاری یا علائم تجاری ثبت شده Silicon Labs هستند. ARM، CORTEX، Cortex-M3 و thumbs علائم تجاری یا علائم تجاری ثبت شده ARM Holdings هستند. Keil یک علامت تجاری ثبت شده ARM Limited است. سایر محصولات یا نام های تجاری ذکر شده در اینجا علائم تجاری دارندگان مربوطه می باشند.آرم SILICON LABS

آزمایشگاه های سیلیکون
400 غربی سزار چاوز
آستین، TX 78701
ایالات متحده آمریکا
http://www.silabs.com

اسناد / منابع

SILICON LABS Wireless M-BUS نرم افزار پیاده سازی AN451 [pdfراهنمای کاربر
SILICON LABS، C8051، MCU، و EZRadioPRO، Wireless M-bus، Wireless، M-BUS، نرم افزار، پیاده سازی، AN451

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *