Профиль 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 для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Апрель 2024
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
2930