2015-09-10 2 views
0

Если я хочу передать большое количество данных (например, 1 МБ-файл) через BLE, что это лучший способ сделать это?Какой самый быстрый способ отправить много данных по BLE?

Я управляю обеими сторонами соединения, но клиентская сторона - это iOS/Android, поэтому имеет доступ только к GATT. Я не могу ничего сделать с L2CAP.

Я также не могу дождаться Bluetooth 4.1, 6LoWPAN, Connection-Oriented-Channels или что-то в этом роде.

Я бы предположил, что ответ должен иметь один «запрос», который вы пишете запрос данных («Дайте мне 3000 байт, начиная с байта 0»), и характеристику «данных», которая отправляет много 20 байтов уведомления (максимальный характерный размер), содержащие данные.

Есть ли лучший способ?

+0

От периферийного до центрального или центрального периферийного? –

+0

Упс забыл сказать: периферийное к центру. – Timmmm

ответ

0

Да, мы используем подход, о котором вы упомянули.

  1. Запрос данных с номером последнего индекса (первый раз индекс 0)
  2. Сервер отправить вам данные с индексом no.Store индекса не для последующего формата
  3. продолжают шаг 1 и 2 до сервер времени отправляет конец данных - возможно, с индексом -1 или что-то.

Убедитесь, что вы перенесите нужные данные в наиболее эффективный формат пространства. Посмотрите, можете ли вы почерпнуть файлы и перенести их.

0

Вы можете обновить интервал подключения до небольшого значения с наименьшим 6 * 1,25 мс в удаленном устройстве BLE.

На самом деле, BLE предназначен для низкой энергии, малого пакета и низкой скорости передачи данных. Данные L2cap будут передаваться в другом канале данных с частотным скачком. Пакеты TX/RX происходят в пределах каждого интервала подключения, а максимальное количество пакетов TX/RX в событии ограничено спецификацией, наконец, реализуемой производством. Таким образом, мы можем изменить интервал подключения как можно меньше, чтобы увеличить скорость передачи данных.

См. Спецификацию BT 4.0 spec Vol 2, 7.8.18 Команда обновления соединения LE.

0

Попробуйте согласовать большее значение MTU, чем значение по умолчанию. Затем каждое уведомление может быть больше. Несмотря на то, что он будет фрагментирован уровнем L2CAP, вы получите немного большую пропускную способность, поскольку заголовок пакета будет меньше.

Смежные вопросы