Профиль HID и протокол L2CAP — Bluetooth и все, что с ним связано

Профиль HID и протокол L2CAP


Тонкости использования L2CAP в реализации профиля HID.

Профиль HID использует протокол управления логической связью и адаптацией (Logical Link Control and Adaptation Protocol – L2CAP).
Для полноценной работы профиля обязательным условием является использование 2х или более каналов L2CAP для передачи и приема пакетов управления и данных.
Хост, для bluetooth HID, открывает 2 канала L2CAP: канал управления и канал данных. Для того, что бы использовать 2 разных канала (а каналы назначаются динамически), профиль HID использует 2 различных протокольных/сервисных мультиплексора (PSM — Protocol/Service Multiplexer).
Значения этих PSM однозначно определены в спецификации «Assigned Numbers»:
— для канала управления: 0х0011;
— для канала данных (в HID он называется канал прерываний): 0х0013.

Различия в реализации L2CAP для стеков Broadcom и Microsoft.
Мобильные устройства на базе ОС Windows Mobile в основном используют один из 2х стеков:
— стек от Broadcom;
— стек от Microsoft.
Broadcom в своем SDK для стека, предоставляет интерфейсы для работы с L2CAP:
— CL2CapIf — класс для установки значений PSM и регистрации этих значений в протоколе L2CAP;
— CL2CapConn — класс, управляющий соединениями L2CAP.
Благодаря наличию этих двух классов управление протоколом L2CAP не вызывает никаких затруднений, чего не скажешь о…
Microsoft, которая в своем SDK не предоставляет API для работы с L2CAP :(.
У этой фирмы несколько другой подход к тому, как реализовать протокол L2CAP, а именно Microsoft предлагает использовать так называемый Bluetooth Stack Extension Layer, позволяющий расширять базовую функциональность её стека через написание потокового драйвера. Вот об этом хорошо написано в MSDN, и если еще приложить чуток терпения, то окажется, что в Windows  CE Embedded 5.0 есть уже готовый пример  Installable Stream Driver   именно для L2CAP.

У себя в реализации я использовал готовый пример, только адаптировал его для конкретного применения.

Благодарю за внимание и успехов в изучении технологии 😉

Have any Question or Comment?

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Июнь 2025
Пн Вт Ср Чт Пт Сб Вс
 1
2345678
9101112131415
16171819202122
23242526272829
30