آموزش جامع BLE

بهینه‌سازی BLE: افزایش Throughput و کاهش Latency و مصرف باتری

MTU، Data Length، PHY و Connection Parameter را هماهنگ تنظیم کنید و میان سرعت، تأخیر، پایداری و انرژی تعادل قابل اندازه‌گیری بسازید.

فهرست مطالب
عکس واقعی برد mKIT مبتنی بر nRF51822؛ نمونهٔ قدیمی سخت‌افزار BLE، نه nRF52840 یا Sniffer معرفی‌شده در متن.
عکس واقعی برد mKIT مبتنی بر nRF51822؛ نمونهٔ قدیمی سخت‌افزار BLE، نه nRF52840 یا Sniffer معرفی‌شده در متن. عکس: Ordercrazy؛ منبع Wikimedia Commons؛ CC0. محتوای عکس تغییر نکرده است؛ نسخهٔ نمایشی ویکی‌مدیا استفاده شده است. این عکس مستند اجرای آزمایش LCENJ نیست.
مرحله 15 از ۲۰ مسیر تسلط بر BLE

بهینه‌سازی BLE یک دکمه جادویی ندارد. بزرگ‌کردن MTU، رفتن به 2M یا کوتاه‌کردن Interval تنها وقتی مفید است که بافر، Data Length، کیفیت لینک و توان پردازش هر دو طرف هماهنگ باشند.

MTU و Data Length

MTU بزرگ‌تر تعداد سربار ATT را برای داده حجیم کم می‌کند. Data Length Extension اجازه می‌دهد Payload بیشتری در یک پکت Link Layer جا شود. اگر یکی بزرگ و دیگری کوچک بماند، L2CAP داده را قطعه‌قطعه می‌کند و سود محدود می‌شود. اندازه‌های واقعی مذاکره‌شده را از Capture بخوانید.

PHY Update

2M زمان روی هوا را کم می‌کند و در لینک قوی می‌تواند سرعت و انرژی هر بایت را بهتر کند. Coded PHY برای برد و حساسیت است، نه سرعت. تصمیم PHY را با Packet Error Rate و Retransmission بسنجید؛ سرعت اسمی بالا در لینک ضعیف ممکن است نتیجه بدتری بدهد.

Connection Parameters

Interval کوتاه فرصت ارسال بیشتری می‌دهد و Latency فرمان را کم می‌کند، اما بیداری رادیو زیاد می‌شود. Peripheral Latency برای سنسور کم‌ترافیک مفید است. تعداد پکت قابل ارسال در هر Event نیز به کنترلر و سیستم‌عامل Central وابسته است.

روش اندازه‌گیری

یک Payload و مدت تست ثابت تعریف کنید. بایت کاربردی موفق، تأخیر صدکی، جریان متوسط، Peak Current، RSSI و تعداد Retransmission را ثبت کنید. هر بار فقط یک پارامتر را عوض کنید و برای شرایط نزدیک، دور و همراه Wi-Fi آزمایش تکرار کنید.

دو پروفایل عملی

پروفایل تعاملی: Interval کوتاه، Latency صفر و در صورت لینک مناسب 2M. پروفایل سنسور باتری‌خور: Interval بلندتر، Latency مجاز و Notify فقط هنگام تغییر. دستگاه می‌تواند بعد از پایان تنظیمات از پروفایل تعاملی به پروفایل کم‌مصرف منتقل شود.

نرخ مفید و عمر باتری را با واحد درست حساب کنید

اگر گیرنده در هر ثانیه ۲۰ پیام با ۲۰۰ بایت داده کاربردی معتبر دریافت کند، نرخ مفید برابر ۴۰۰۰ بایت‌برثانیه یا ۳۲ کیلوبیت‌برثانیه است. این عدد با PHY یک یا دو مگابیتی تناقضی ندارد؛ PHY شامل سربار و فرصت‌های زمانی اپلیکیشن نیست.

useful_rate = valid_payload_bytes / elapsed_seconds
Iavg = sum(current_i * duration_i) / total_duration

برای یک مثال صرفاً محاسباتی، ۵۰ میلی‌آمپر به مدت ۳ میلی‌ثانیه و ۰٫۰۱ میلی‌آمپر در ۹۹۷ میلی‌ثانیه، میانگین حدود ۰٫۱۶ میلی‌آمپر می‌دهد. ظرفیت اسمی ۲۲۰ میلی‌آمپرساعت تقسیم بر این جریان، حدود ۱۳۷۵ ساعت است؛ این تخمین ایدئال مصرف رگولاتور، دمای باتری، افت ظرفیت و خودتخلیه را پوشش نمی‌دهد و اندازه‌گیری واقعی هیچ بردی نیست.

خروجی معتبر، افت نمونه و تأخیر صدکی را کنار جریان متوسط ثبت کنید. کوچک‌شدن مصرف با گم‌شدن داده یا تأخیر نامجاز، بهینه‌سازی موفق محسوب نمی‌شود.

پرسش و پاسخ مقاله

سوال فنی خود را مطرح کنید

پرسش‌ها و پاسخ‌ها پس از بررسی مدیر منتشر می‌شوند. نویسنده، پیش‌نویس در انتظار بررسی را می‌بیند.

هنوز پرسش تاییدشده‌ای برای این مقاله ثبت نشده است.