BLE: стек хоста — HCI — контроллер

Я новичок в программировании BLE/Bluetooth. Как известно, BLE/Bluetooth — это целый модуль. Недавно я обнаружил, что NimBLE предоставляет стек хоста или часть контроллера Bluetooth.https://github.com/apache/mynewt-core . Здесь они упоминают, что он поддерживает комбинирование любого стека хоста с любым контроллером.

  1. Итак, является ли уровень HCI (через который взаимодействует стек хоста) и контроллер (нижний уровень Bluetooth) реализацией всех модулей одинаковыми или это зависит от поставщика?

  2. Если я выберу хост-стек из NimBLE, позволит ли реализация HCI работать с контроллером любого поставщика или уровень HCI должен быть реализован в соответствии со спецификациями поставщика и зависит от контроллера.

Я предположил, что часть контроллера модуля Bluetooth/BLE имеет базовую радиочастотную и коммуникационную секцию, которая будет одинаковой для всех модулей для обеспечения совместимости. Извините, если вопрос тривиален.


person kaya    schedule 01.02.2018    source источник


Ответы (1)


Любой хост-стек с интерфейсом hci должен работать с любым контроллером hci, если они оба поддерживают один и тот же метод передачи (UART, USB и т. д.).

Иногда, в частности для usb, вам также нужен специальный хост-драйвер, который открывает транспортный интерфейс для конкретного устройства. Для UART некоторые поставщики требуют, чтобы по UART отправлялись определенные пакеты настройки поставщика, которые настраивают скорость передачи и т. д., прежде чем hci сможет запуститься.

Также хост и контроллер должны иметь общий набор функций. Например, вы мало что можете сделать с хостом, поддерживающим только классический Bluetooth, и контроллером, поддерживающим только BLE.

Некоторые контроллеры hci реализуют пользовательские команды поставщиков, чтобы предложить дополнительные функции по сравнению со стандартными командами, например, установить пользовательский общедоступный адрес устройства Bluetooth. Хост также должен поддерживать эти команды, чтобы использовать их.

person Emil    schedule 01.02.2018
comment
Согласно вашему первому заявлению, мой вопрос 1 на самом деле не зависит от поставщика (должен быть верным для других методов связи, таких как SPI, IIC), но кажется, что у контроллера есть возможность иметь команды спецификации поставщика в более низком уровень. Следовательно, может быть общий уровень HCI, но не для каждого контроллера, хотя он поддерживает один и тот же метод связи. Я правильно понял? - person kaya; 02.02.2018
comment
Да, у контроллера есть возможность иметь специфичные для поставщика команды, хотя ни одна из них, конечно, не требуется для стандартной реализации. Если мы возьмем, например, UART, если у вас есть два контроллера (работающих с одинаковой скоростью передачи данных), вы можете использовать любой из них без необходимости менять хост-сторону. - person Emil; 02.02.2018
comment
хорошо, это прояснило мой разум. Спасибо! @Emil Если я реализую эти типы стеков хостов с уровнем HCI (от поставщиков) на моем µc и внесу некоторые пользовательские изменения в стек, например: я использую один из профилей стека BLE для получения изображения или данных, чтобы получить доступ к любому BLE контроллер (что-то вроде универсального стека для доступа к любому контроллеру для стандартной реализации), обязательно ли получать какую-либо сертификацию? - person kaya; 05.02.2018
comment
Я не знаю. Вы можете спросить Bluetooth SIG через их портал. - person Emil; 05.02.2018