آموزش جامع BLE

ابزارهای تحلیل BLE: nRF Connect، Sniffer و Wireshark از صفر

با nRF Connect دستگاه را اسکن و GATT را آزمایش کنید، Capture بگیرید، پکت‌ها را در Wireshark فیلتر کنید و RSSI و Throughput را بسنجید.

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

دیباگ BLE بدون مشاهده شواهد معمولاً به حدس تبدیل می‌شود. ابزار موبایل وضعیت GATT را نشان می‌دهد، Sniffer پکت روی هوا را می‌گیرد و Wireshark لایه‌ها را Decode می‌کند. ابزار RF حرفه‌ای برای مشکلات پایین‌تر از پروتکل به کار می‌آید.

nRF Connect

با Scanner نام، آدرس، RSSI و AD Structure را ببینید. پس از اتصال، Serviceها را Discover کنید، Value را Read و Write کنید و CCCD را برای Notify فعال کنید. Log رخدادها را ذخیره کنید تا زمان قطع، MTU و خطای Permission مشخص باشد.

Sniffer و Capture

Sniffer باید کانال Advertising دستگاه هدف را پیدا کند و در زمان اتصال پارامترهای لازم برای دنبال‌کردن Channel Hopping را بگیرد. Capture ناقص ممکن است به‌خاطر شروع دیرهنگام، فاصله زیاد، تداخل یا رمزنگاری باشد. Sniffer را نزدیک دستگاه‌ها ولی با سطح سیگنال اشباع‌نشده قرار دهید.

Wireshark

فیلتر نمایش را مرحله‌ای بسازید: ابتدا دستگاه، سپس پروتکل ATT یا SMP و بعد Opcode موردنظر. ستون‌های Handle، Length و Time Delta را اضافه کنید. دنبال اولین خطا بگردید؛ خطاهای بعدی ممکن است فقط نتیجه همان رخداد اول باشند.

RSSI و Throughput

RSSI برآوردی از توان دریافتی است و فاصله‌سنج دقیق نیست. آن را در چند موقعیت و جهت‌گیری ثبت کنید. Throughput را با شمارش بایت کاربردی در بازه زمان اندازه بگیرید، نه سرعت PHY. Retransmission، MTU، Interval و محدودیت موبایل را در گزارش بنویسید.

روال دیباگ قطع اتصال

زمان دقیق قطع را ثبت کنید، Capture را از قبل آغاز کنید، آخرین Connection Event و Reason را پیدا کنید و RSSI را کنار آن بنویسید. سپس فقط یک متغیر مثل فاصله، Interval یا Timeout را تغییر دهید. تغییر هم‌زمان چند عامل نتیجه را غیرقابل تفسیر می‌کند.

از یک فیلتر مشخص تا اولین خطا

پس از Capture مجاز دستگاه آزمایشی خود، این فیلترهای نمایش برای شروع مفیدند. نام فیلدها به نسخه Wireshark وابسته است و باید در نوار فیلتر همان نسخه معتبر شناخته شوند.

btatt
btatt.opcode == 0x0a
btatt.opcode == 0x1b
btsmp

فیلتر دوم Read Request و سوم Handle Value Notification را جدا می‌کند. فیلتر نمایش، داده از دست‌رفته هنگام ضبط را بازسازی نمی‌کند. اگر Sniffer اتصال را دنبال نکرده یا امکان رمزگشایی مجاز فراهم نیست، ندیدن ATT به معنی نبود ترافیک نیست.

RSSI بر حسب dBm توان دریافتی تخمینی است. Reason قطع را از لاگ Host یا HCI نیز ثبت کنید؛ Timeout به‌تنهایی ثابت نمی‌کند آنتن خراب است. زمان مشترک لاگ سنسور، موبایل و Capture کمک می‌کند ترتیب رخدادها مشخص شود.

مرجع رسمی فیلترهای ATT در Wireshark

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

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

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

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