معماری پروتکل BLE: از PHY و Link Layer تا L2CAP، ATT و GATT
لایههای BLE و مسیر عبور یک داده از اپلیکیشن تا آنتن را به زبان ساده دنبال کنید و وظیفه GAP، GATT، ATT، L2CAP و SMP را بشناسید.
فهرست مطالب

پشته BLE را میتوان مانند یک اداره چندطبقه دید: هر طبقه مسئله مشخصی را حل میکند و داده را با قرارداد روشن به طبقه پایینتر میدهد. این مدل هنگام خطایابی مشخص میکند باید سراغ رادیو، اتصال، Attribute یا منطق برنامه بروید.
Controller: PHY و Link Layer
PHY بیت را به موج و موج را به بیت تبدیل میکند. Link Layer کانال، زمانبندی، Advertising، اتصال، شماره توالی، کنترل خطا و رمزنگاری سطح لینک را مدیریت میکند. این بخش معمولاً داخل کنترلر رادیویی و Firmware سازنده اجرا میشود.
HCI و مرز Host
در بعضی تراشهها Host و Controller روی یک چیپاند و در برخی محصولات جدا هستند. HCI فرمانها، رخدادها و داده را بین این دو جابهجا میکند. مشاهده خطای HCI معمولاً یعنی درخواست Host توسط Controller رد شده یا رخدادی درباره وضعیت رادیو رسیده است.
L2CAP، ATT و SMP
L2CAP داده پروتکلهای بالاتر را روی لینک منطقی حمل و در صورت نیاز قطعهقطعه و دوباره جمع میکند. ATT جدول Attribute و عملیات Read و Write را تعریف میکند. SMP مسئول Pairing، تولید کلید و بخشی از فرایند امنیت است.
GATT و GAP
GATT روی ATT مدل Service، Characteristic و Descriptor و روش استفاده از آنها را تعریف میکند. GAP کشف دستگاه، Advertising، نقشها، حالت اتصال و سطحهای امنیتی را سامان میدهد. اپلیکیشن معمولاً با APIهای GAP و GATT کار میکند، اما رفتار واقعی به همه لایهها وابسته است.
مسیر یک دمای Notify
برنامه مقدار دما را در Characteristic میگذارد. GATT عملیات Notify را انتخاب میکند، ATT یک Handle Value Notification میسازد، L2CAP آن را حمل میکند، Link Layer بسته و زمان ارسال را تعیین میکند و PHY بیتها را روی 2.4 گیگاهرتز میفرستد. در گیرنده همین مسیر برعکس طی میشود.
مسیر یک Notify با مقدار ۲۵ درجه
- اپلیکیشن: ۲۵ درجه را با مقیاس صدم درجه به ۲۵۰۰ تبدیل میکند.
- ATT: Opcode اعلان، Handle مقدار و دو بایت داده را در PDU قرار میدهد.
- L2CAP: PDU را روی کانال مربوط حمل میکند.
- Link Layer: بستهبندی، زمان ارسال، شماره توالی و کنترل لینک را مدیریت میکند.
- PHY: بیتها را با حالت فیزیکی انتخابشده منتقل میکند.
GATT شکل سرویس و روش دسترسی را روی ATT تعریف میکند؛ قرار نیست همیشه یک Header اضافی با نام GATT در Capture ببینید. GAP نیز یک Header ثابت روی هر پیام کاربردی نیست. هنگام خطایابی، اول مشخص کنید داده تا کدام لایه رسیده است.
پرسش و پاسخ مقاله
سوال فنی خود را مطرح کنید
پرسشها و پاسخها پس از بررسی مدیر منتشر میشوند. نویسنده، پیشنویس در انتظار بررسی را میبیند.
هنوز پرسش تاییدشدهای برای این مقاله ثبت نشده است.