Jump to content

    

Bluetooth 4.0 Выбор профиля. Общий вопрос.

Всем привет.

Направьте пожалуйста в нужную сторону:

Раньше устройство передавало данные в приложение на телефоне по Bluetooth 2.0 профиль SPP
Теперь нужно сделать Bluetooth 4.0
Данные небольшие и не быстро. 
Выбрал микросхему BLUENRGQTR

Вопрос:
Какой выбрать профиль, что бы и на стороне устройства, и на стороне приложения в телефоне было меньше сложностей ?
По каким ключевым словам искать примеры?
Короче говоря, нужен пинок в правильном направлении.

Заранее спасибо !

 

 


 

Share this post


Link to post
Share on other sites
2 hours ago, MiklPolikov said:

Какой выбрать профиль, что бы и на стороне устройства, и на стороне приложения в телефоне было меньше сложностей ?
По каким ключевым словам искать примеры?

Странный выбор  BLUENRGQTR.
Там проприетарное API в бинарных либах, причем для хост контроллера.  Тут вам вряд ли кто-то поможет. Профили вручную не копают. 
Стандартный путь до недавнего времени был  использовать  Bluetooth Developer Studio, но проект закрыли.
Теперь если надо делать совместимый BLE с неконфликтующими профилями  используют  тулсы от Nordic или Silabs.
А ST тут маргинал. 

Share this post


Link to post
Share on other sites

У ST то ли путаница с названиями, то ли что-то не доделано на сайте.
На BLUENRGQTR документации почти нет.
Зато BlueNRG-1 сразу нашёл примеры, и вроде бы всё по-человечески.

Share this post


Link to post
Share on other sites
17 hours ago, AlexandrY said:

Там проприетарное API в бинарных либах, причем для хост контроллера.  Тут вам вряд ли кто-то поможет.

Правда, что-ли? А каким образом я скачал их библиотеку с API в исходниках?

И вообще, там по SPI бегает вполне стандартный протокол, описанный в спецификации блютус (в документации ST так и написано: команды такие-то - в официальной спецификации).

 

17 hours ago, AlexandrY said:

Профили вручную не копают.

Говорить за всех - крайне вредная привычка.

 

3 hours ago, MiklPolikov said:

BlueNRG-1 сразу нашёл примеры

Если лишний процессор на плате не пугает (судя по BlueNRG-1, не пугает), рекомендую нордик. У них куча примеров, и с требованиями "мне всё равно что, лишь бы байты переслать" сделать что-нибудь готовое можно очень быстро.

Share this post


Link to post
Share on other sites
41 minutes ago, esaulenka said:

Правда, что-ли? А каким образом я скачал их библиотеку с API в исходниках?

В исходниках вы там хидеры скачали.
А я больше верю ST, который ясно говорит, что либы для хост процессора поставляет только в бинарном виде.
Так что разберитесь что вы там скачали.  
 

Share this post


Link to post
Share on other sites
1 minute ago, AlexandrY said:

 Так что разберитесь что вы там скачали.  

Продажники уже сколько-то там тыщщ устройств с этим BlueNRG уже напродавали, а я так и не разобрался, что же именно скачал.

Спасибо, что открыли мне глаза.

Share this post


Link to post
Share on other sites
21 minutes ago, esaulenka said:

Спасибо, что открыли мне глаза.

Если вы замети, то тут речь не о вас.  Бинарные либы - это не конец жизни, просто свидетельство плохого выбора. 

Share this post


Link to post
Share on other sites

Если ВЫ заметили, речь о том, что API BlueNRG и BlueNRG-MS полностью открыт.

Share this post


Link to post
Share on other sites
18 minutes ago, esaulenka said:

Если ВЫ заметили, речь о том, что API BlueNRG и BlueNRG-MS полностью открыт.

Да не API нужно, а реализация библиотек GATT.  Я знаю что есть открытые стеки BLE, но просто интересно где вы нашли исходники у ST.  

Share this post


Link to post
Share on other sites
22 hours ago, MiklPolikov said:

Теперь нужно сделать Bluetooth 4.0
Данные небольшие и не быстро. 
Выбрал микросхему BLUENRGQTR

 

Bluetooth 4.0 понятие широкое, c учетом того что BlueNRG-1 это BLE, подозреваю что вопрос о BLE ну и исходя из неточности вопроса позволю себе легкий экскурс в BLE.
Подход работы BLE отличаться от классического Bluetooth.
Таких профилей как в обычном BT в BLE по сути нет, в BLE подключение предоставляет доступ к такой сущности как характеристика, набор характеристик объединяться логической группой называемой сервисом. Вот эти вот сервисы, стандартизированы но можно создать и использовать свой custom.
Размер одной характеристики для BLE 4.0 не может превышать 20байт, кол-во характеристик ограничивается ресурсами контроллера в этом кстати один из минусов BlueNRG, там фиксированное MAX кол-во характеристик в отличии от nRF52 или EFR32, (у ST есть еще SoC BlueNRG-2, но не могу сказать о возможностях его стека) Максимальная скорость передачи данных может в разы зависеть от смартфона.

22 hours ago, MiklPolikov said:

Какой выбрать профиль, что бы и на стороне устройства, и на стороне приложения в телефоне было меньше сложностей ?

Для BLE все одинаково организовано не зависимо от набора сервисов, там нет таких проблем как с BT, если есть конект, ПО имеет доступ к характеристикам их можно читать, писать получать нотификации об изменении. Это одинаково работает как на Android так и на Iphone без всяких там танцев с лицензиями и тд.
В BLE кстати, понятие pairing стало опционально, если вам не нужно шифровать данные на уровне BLE канала, от pairing можно отказаться.

 

22 hours ago, MiklPolikov said:

По каким ключевым словам искать примеры?

Как уже было сказано, очень много простых примеров у Nordic в их SDK, при работе с BlueNRG подход для создания характеристик и передачи данных тот же но понятно, другой API. Со стороны смартфона у Nordic есть примеры для Android и Iphone


Говоря про чип BlueNRG-1(MS) вполне себе рабочая IC, но SDK(API) субъективно "грязное", есть warnings при компиляции, code style плавает, постоянно появлялись какие то нюансы, приходилось писать в поддержку...
nRF5x много приятнее, хорошая инфраструктура, любая проблема гуглиться за раз, можно купить уже в сертифицированном модуле.

Share this post


Link to post
Share on other sites

Разговор, напомню, начался с фразы "либы для хост-контроллера бинарные".

Весь софт для хост-контроллера открыт.

Основное можно посмотреть здесь: x-cube-ble1.zip\X-CUBE-BLE1\Middlewares\ST\STM32_BlueNRG

Как скачать x-cube-ble1.zip, думаю, разберётесь.

 

Да, прошивка самого чипа закрытая. Но и у TI, и у NRF точно такой же закрытый бинарник именно ядра протокола. Silabs никогда не смотрел, не знаю.

Ну и открытый стек именно на этих BlueNRG вряд-ли кто-то сделает. Документация внутренностей отсутствует напрочь.

Share this post


Link to post
Share on other sites
25 minutes ago, esaulenka said:

Основное можно посмотреть здесь: x-cube-ble1.zip\X-CUBE-BLE1\Middlewares\ST\STM32_BlueNRG

У ST какая-то путаница с названиями. Помогите разобраться:  В этом архиве  библиотеки для BlueNRG-MS , но это не то же самое, что BLUENRGQTR ?

Share this post


Link to post
Share on other sites

BlueNRG (order code BLUENRGQTR) и BlueNRG-MS (order code BLUNRG-MSQTR) - это, фактически, одно и то же.  Второй пришёл на смену первому (поддержка протокола 4.1, какие-то багфиксы).

Первый, кажется, уже не производят (мы три года назад (!) уже закладывали MS).

Внутри Cortex-M0 с радиоканалом и своей собственной прошивкой, снаружи SPI-slave. Верхняя часть стека должна выполняться на внешнем контроллере.

 

BlueNRG-1 и BlueNRG-2 - попытка ST'шников догнать и перегнать NRF51/52 и CC13xx. Можно написать и загрузить свой собственный софт, т.е. для простых приложений второй контроллер не нужен.

Как оно работает, не знаю, даже отладку запускать не пробовал.

Edited by esaulenka
опечатка

Share this post


Link to post
Share on other sites

Я кстати тупанул, пишу BlueNRG-1 думаю о BlueNRG

BlueNRG - Bluetooth® low energy wireless network processor, (Not recommended for New Design)
BlueNRG-MS Bluetooth Low Energy Network Processor supporting Bluetooth 4.1 core specification MS-MasterSlave
BlueNRG-1 Bluetooth Low Energy System On Chip(не нужен хост контроллер)
BlueNRG-2 Bluetooth® low energy wireless system-on-chip(не нужен хост контроллер)

BlueNRG-2 от BlueNRG-1 отличается большим размером флеш(256 против 160кБ), и заявлена совместимость с ядром 5.0.
Оба могут работать как master\slave

Share this post


Link to post
Share on other sites
4 hours ago, esaulenka said:

Да, прошивка самого чипа закрытая. Но и у TI, и у NRF точно такой же закрытый бинарник именно ядра протокола. Silabs никогда не смотрел, не знаю.

Кое что все же понимаете. 

Так вот объясняю.
Чтобы реально делать профиль с большим количеством переменных (а не стандартные никому не нужные профили) на которые могут подписаться удаленные клиенты  не тревожа хост контроллер вам нужен прямой доступ к GATT базе данных. 
Вы же за исходники приняли простые процедуры общения с закрытым от вас стеком BLE и в частности с закрытой базой данных GATT. 
Эт все равно как API сокетов принять за весь стек TCP.  
Читайте лучше мануал  стр. 23

На Nordic есть полностью открытый стек. Вот на нем и можно делать все что захочется. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now