Есть некоторый датчик, который я хочу считывать по SPI 1000 раз в секунду и получать каждый раз 24 байта данных. Я хочу эти данные переправлять по протоколу BLE на смартфон или ноутбук. Зачем именно BLE? Потому что я хочу, чтобы устройство большую часть времени находилось в энергосберегающим режиме, но сохраняло обнаруживаемость, а когда появляются желающие начинало передачу (я понимаю, что в этот момент оно будет потреблять больше обычного). У меня уже есть платка с CC2541 и CC Debugger, я немного поигрался с примерами проектов. Во-первых, это вообще реально передавать 24 кбайт/сек по протоколу BLE? Если нет, то сколько максимум можно, если расстояние между устройствами будет не более пары метров? Во-вторых, в какую сторону копать? Какой способ взаимодействия по BLE мне лучше всего подходит для реализации этой затеи?
СС2541 поддерживает BLE 4.х. Тогда скорость передачи самого радио 1Mbps. Однако, из-за оверхеда протокола реально получается передать порядка 0.25 - 0.3 Mbps, или порядка 30 KBps. На скорости 25 KBps это будет уже совсем не LE (Low Energy), т.к. стек будет в активном режиме большинство времени. Полагаю, вопрос насчёт куда копать отпал сам собой, а вот последний вопрос я не понял.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Это звучит логично. Но пока, насколько я вижу BLE, протокол состоит не из посылок, а из "характеристик", которые можно читать и писать. Или имеется ввиду, что хост должен запрашивать значения характеристик с минимально возможным интервалом?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Нет, не совсем так. Peripheral может посылать периодические НОТИФИКАЦИИ мастеру без его на то запроса. Имеется всего 4 пита BLE сообшений, и нотификации (notification) - один из них. Почитать подробнее обо всём этом можно и следует в тех. литературе. Я рекомендую книгу, которая мне в своё время очень помогла. Для более глубокого ознакомления с технологией BLE могу порекомендовать эту книгу, однако, для начального ознакомления во многих случаях хватит и предыдущей.
Так. То есть я правильно понял, что использовать GATT для моей задачи вполне нормальное решение и альтернатив особо нет.
Подредактировал пример SimpleBLEPeripheral для CC2541, чтобы он обновлял значение характеристики с минимальной задержкой (типа каждую 1 мс, но скорее всего реже), а также установил минимальный и максимальный интервал соединения в 1.25 мс. В итоге скриптом на Python, использующим библиотеку bluepy, запущенным на ноутбуке под управление Linux получил 400 обновлений в секунду. Однако если сделать доступной для подписывания ещё одну характеристики и также обновлять её, то получается лишь 460 обновлений в секунду, а не 800.
Кто виноват скорее всего? Микроконтроллер 8051 не справляется или радиомодуль? Поможет ли переход на NRF51822? Там всё же ARM + официально поддерживается 6 посылок за раз, а не 4.
Не понял насчёт 1.5мс, т.к. минимальный интервал соединения, согласно характеристикам BLE-4, всего 7.5мс. Посмотрите эту статью для информации. Вот ещё конкретный пример достижения 260 kbps через GATT и L2CAP. Правда, это для другого BLE модуля.
Кто виноват - скорее всего каждый понемногу, включая библиотеку на компе. В основном, возможно, что именно она самая неповоротливая, но я с ней не работал, поэтому утверждать наверняка не берусь. ARM или не ARM в смысле обработки событий самого стека особого значения не имеет. Однако 6 пакетов за раз вместо 4 скорости, естественно, прибавит.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения