Какой блютуз использовать (2.1 или 4.0) и как?

Название кажется слишком общим (я не могу придумать хорошее название). Постараюсь конкретизировать в описании вопроса.

От меня требовалось создать промышленный блок управления, который периодически собирает данные (может быть, 10-20 байт данных за 5 секунд). Оператор будет использовать ноутбук или мобильный телефон для сбора данных (не открывая коробку) через Bluetooth, еженедельно или ежемесячно или, возможно, в еще более длительный период.

Я буду отвечать за выбор подходящих модулей / чипов, изготовление печатных плат, а также за встроенное программное обеспечение. Поскольку коробка не производится в больших объемах, у меня есть свобода (модули / микросхемы в использовании, цены, возможности и т. Д.) При разработке различных компонентов.

Для всего приложения требуется порт USART для чтения данных, когда они доступны (возможно, каждые 5-10 секунд), порт SPI для хранения данных (устройство чтения / записи SD-карт), несколько контактов GPIO для светодиодного индикатора или, возможно, кнопок (нужны ли нам кнопки а сколько зависит от моего дизайна).

Я новичок в Bluetooth. Я прочитал вики и несколько страниц в Google. Зная о спаривании, зная о различиях классов 1 и 2, зная о различиях 2.1 и 4.0.

Но у меня еще есть несколько мест, где неясно, какой модуль / чип Bluetooth использовать.

  1. Мой друг упомянул мне TI CC2540. Я проверил, и он поддерживает только режим 4.0 BLE. А от Google полезная нагрузка BT4.0 не превышает 20 байт. Подходит ли BT4.0 для моего приложения, когда необходимо собирать массовые данные каждый месяц или несколько месяцев? Или лучше для этого приложения использовать BT2.1 с EDR? В режиме BT4.0 BLE скорость сопряжения выше, но пропускная способность ниже?

  2. Я прочитал CC2540 и обнаружил, что это не только чип BT, он имеет несколько контактов GPIO и контактов uart (я не уверен в SPI). Могу ли я сказать, что сам CC2540 достаточно мощный, чтобы вместить все приложение? Включая блютуз, получение данных по UART и чтение / запись SD-карты?

  3. Моя первоначальная конструкция заключалась в использовании микроконтроллера ARM Cortex-M / AVR32. Программа представляет собой просто цикл для обслуживания каждой задачи / события раундами (или я даже могу установить Linux). Будет модуль Bluetooth. Модуль автоматически позаботится о сопряжении. Мне нужно будет только отправить модулю, какие данные нужно отправить на другой конец. Конечно, могут быть другие элементы управления, например, перевод модуля в режим низкого энергопотребления, потому что Bluetooth будет использоваться только один раз в месяц или что-то в этом роде. Но после некоторого изучения Bluetooth я не уверен, существует ли такой модуль BT или нет. Обязательно ли программировать микросхемы вроде CC2540?

  4. Насколько я понимаю, разработанное мной устройство будет ведомым устройством BT, а ноутбук / телефон - ведущим устройством. Мое устройство будет периодически проверять (возможно, с более длительным периодом для экономии энергии) наличие главного устройства и соединяться с ним. Как только он будет сопряжен, он начнет отправлять данные. Правильно ли я понимаю процедуру? Есть ли разница в сопряжении / отправке данных для 2.1 и 4.0?

  5. Как должна быть разработана аутентификация? Я, конечно, хочу, чтобы к устройству было подключено неограниченное количество телефонов / ноутбуков, но только если они могут доказать, что они являются оператором.

Это немного неаккуратно. Буду признателен, если вы прочитаете вышеупомянутые вопросы. Ниже приводится краткое изложение,

  1. 2.1 или 4.0 использовать?
  2. Which one is the better choice? Meaning that suitable for the application, and easy to develop.
    • ARM/avr32 + CC2540 (or the like)
    • Только CC2540 или подобное (если возможно)
    • ARM / avr32 + некоторые модули BT (например, Bluegiga https://www.bluegiga.com/en-US/products/)
    • Следует ли использовать Linux?
  3. Каким должно быть сопряжение и отправка данных для энергосбережения? Полезны ли кнопки для перехода в спящий режим и активный режим сопряжения и отправки данных для энергосбережения?
  4. Как должна проводиться аутентификация? Допускаются только операторы, но он может использовать любые ноутбуки / телефоны.

Спасибо за прочтение.


person user534498    schedule 27.02.2015    source источник
comment
Одним из важных соображений является устройство, которое пользователь будет использовать для подключения к вашему ящику. Если это iOS, вам, вероятно, потребуется использовать BT4.0, поскольку для подключения BT2.1 потребуется, чтобы ваше устройство было сертифицировано MFi - то, что вы, вероятно, не делаете. Я не хочу участвовать в этом сценарии. Другой вариант, который следует учитывать, если питание не проблема, - это Wi-Fi - он намного быстрее, чем BT4.0.   -  person Paulw11    schedule 27.02.2015
comment
@ Paulw11 Спасибо! Я не знал о MFi. Я буду смотреть в него. Wi-Fi - это не вариант, потому что Bluetooth - это требование клиента. Энергия - действительно важный вариант, потому что устройство может быть установлено с солнечной энергией.   -  person user534498    schedule 27.02.2015
comment
звучит как забавный проект, удачи!   -  person AndersK    schedule 26.03.2015


Ответы (2)


Мои два цента (я проделал изрядное количество работы с Bluetooth и разработал потребительские продукты, которые сейчас используются в этой области) ... Обратите внимание, что я буду замалчивать МНОГО дизайнерских решений, чтобы сохранить это «кратким» .

2.1 или 4.0 использовать?

Просматривая свои оценки, похоже, что вы просматриваете около 2 МБ данных в неделю, может быть, 8 МБ в месяц. Вопрос о том, какую технологию здесь использовать, сводится к тому, как долго люди готовы ждать, чтобы собрать данные.

Для BLE (BT 4.0) - предположим, что скорость передачи данных находится в диапазоне 2–4 КБ / с. Для 2.1 предположим, что он находится в диапазоне 15–30 КБ. Это зависит от множества факторов, но в целом я испытал на себе опыт работы с устройствами Android / iOS и BLE.

При 2 МБ любой из них займет много времени для передачи. Можно ли получать данные чаще? Или, может быть, где-нибудь есть базовая станция с подключением к Wi-Fi, которая часто собирает данные? (Я не уверен в приложении)

Какой из них лучший выбор? Это означает, что он подходит для приложения и прост в разработке. ARM / avr32 + CC2540 (или аналогичные) Только CC2540 или аналогичные (если возможно) ARM / avr32 + некоторые модули BT (например, Bluegiga https://www.bluegiga.com/en-US/products/) Следует ли использовать Linux?

Это сложный вопрос, на который нужно ответить, не зная больше о сложности системы, датчиках, емкости хранилища данных, стоимости спецификации и т. Д.

По моему опыту, ОС Linux - ОГРОМНЫЙ излишество для простой системы на основе GPIO / UART / I2C (если только вы не очень хорошо знакомы с Linux). Чипы, которые могут запускать Linux и добавлять дополнительную оперативную память, обычно являются дорогостоящими (например, дешевый ARM Cortex M0 стоит около 50 центов при приличном объеме и звучит как все, что вам нужно использовать).

Обычно вопрос сводится к «внешнему микроконтроллеру или нет» - например, пытаетесь ли вы получить универсальный модуль BT, в котором есть место для приложения для программирования. Это экономия размера и затрат на его использование, но это добавляет риски и неизвестность по сравнению с безумным модулем BT + внешним MCU.

Одна вещь, которую я хотел бы уточнить, - это то, что вы несколько раз упоминали TI CC2540 (на самом деле CC2541 - более новая версия). В любом случае, этот чип является компонентом уровня IC. Если только вы не хотите разработать дизайн антенны и провести ее через преднамеренную сертификацию излучателя FCC (обычно сертификаты составляют от 1 до 10 000 - и я предполагаю, что вы находитесь в США, когда я говорю FCC).

Думаю, вы ищете готовый сертифицированный модуль. Например, BLE113 от Bluegiga - это сертифицированный FCC модуль, который содержит внутри CC2541 (плюс некоторые навороты). У этого, в частности, есть интерпретируемый язык под названием BGScript для ускорения разработки. Он отлично подходит для очень простых приложений - и имеет приятный, запеченный в энергосберегающих режимах.

Итак, BLE113 - это пример модуля, который можно использовать с внешним MCU или без него, в зависимости от сложности приложения.

Если вы хотите пройти преднамеренную сертификацию радиатора FCC, то распространенным является TI CC2541, а также Nordic NRF51822 (этот чип имеет встроенное ядро ​​ARM, на котором вы также можете программировать, поэтому вам не нужен внешний MCU).

Примером модуля BLE, которому требуется внешний MCU, может быть Bobcats (AMS001) от AckMe. У них есть стек BLE, работающий на микросхеме, который обменивается данными с внешним MCU через UART.

Как и в случае с комментарием выше, если вам нужна совместимость с iOS, использование Bluetooth 2.1 (BT Classic) - огромная боль из-за программы MFI (через которую я прошел - чистое несчастье). Так что, если ДЕЙСТВИТЕЛЬНО не требуется, я бы остановился на BT Classic и Android / ПК.

Некоторыми образцами классических чипов BT могут быть Roving Networks RN42, AmpedRF BT 33 (или 43 или 53). Если вам интересно, я провел тест пропускной способности на устройствах iOS с классическим устройством Bluetooth (https://stackoverflow.com/a/22441949/992509)

Каким должно быть сопряжение и отправка данных для энергосбережения? Полезны ли кнопки для перехода в спящий режим и активный режим сопряжения и отправки данных для энергосбережения?

Если радиомодуль включен только каждую неделю или месяц, когда оператор загружает данные, мало что нужно сделать, кроме как перевести модуль BT в режим сброса, чтобы гарантировать, что питание не используется. BT Classic имеет тенденцию потреблять больше энергии во время передачи, но если вы постоянно передаете данные в потоковом режиме, различия могут быть минимальными, если вы выберете правильные модули (например, более низкая пропускная способность BLE в течение более длительного периода времени по сравнению с более высокой пропускной способностью BT 2.1 для меньше времени - отрабатывает при стирке).

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

Как должна проводиться аутентификация? Допускаются только операторы, но он может использовать любые ноутбуки / телефоны.

Опять же, не зная окружающей среды, это может быть сложно. Если он находится в безопасной среде, этого должно быть достаточно (например, за запертой дверью, в которой вам нужно находиться внутри, чтобы нажать кнопку, чтобы разбудить модуль BT).

В противном случае, как минимум, включите стандартный код сопряжения BT, а не разрешайте кому-либо сопряжение. Кроме того, вы можете запечь дополнительную аутентификацию и безопасность (например, вы не можете загружать данные без пароля или чего-то еще).

Если вы действительно хотите сходить с ума, вы можете зашифровать данные (хотя для этого можно использовать Linux) и убедиться, что ключи дешифрования есть только у доверенных лиц.

person SJoshi    schedule 26.03.2015
comment
Большое спасибо. Это действительно помогает! - person user534498; 26.03.2015
comment
@ user534498 Нет проблем, звучит весело! - person SJoshi; 26.03.2015

Мы используем оба протокола на разных продуктах.

Bluetooth 4.0 BLE, также известный как Smart

  • низкий расход батареи
  • низкая скорость передачи данных (я получил до 20 байт каждые 40 мс. Насколько я помню, минимальный интервал Apple составляет 18 мс, и другие производители мобильных телефонов адаптировали этот интервал)
  • вы должны использовать механизм характеристик Bluetooth
  • вам нужно реализовать цепочку, если ваши пакеты данных длиннее
  • большие расстояния 20-100м
  • новая технология с множеством ужасных преждевременных внедрений. Постепенно поправляется.
  • мы использовали микросхему от Bluegiga, которая позволяла программировать на языке сценариев. Но все же есть много ограничений и ошибок.
  • у нас была большая кривая обучения для реализации BLE, чем при использовании 2.1

Bluetooth 2.1

  • подходит для высоких скоростей передачи данных в зависимости от используемой скорости передачи. Горлышко бутылки здесь было буфером в контроллере.
  • слабые дистанции 2-10 м
  • Стриминг данных намного проще

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

Вот два примера устройств, которые явно требуют либо 2.1, либо BLE. Возможно, ваш вариант использования ближе к одному из этих примеров:

  • Датчики влажности прикреплены к деревьям в лесу. Каждую неделю рейнджер проходит через Форрест и собирает данные.
  • Беспроводные стереогарнитуры
person OneWorld    schedule 01.03.2015