Перейти к содержанию
    

Bluetooth: передача данных через SCO

Как известно, существуют 2 основных способа передачи данных через Bluetooth-соединение - ACL и SCO.

ACL всем хорош, но данные добираются до другого "берега" беспроводного линка с приличной задержкой, от 3 до 30 мс, что губительно для моей задачи. Настройка QoS (Quality of Service) существенно улучшает ситуацию до 5-7 мс, но периодически, очень редко задержка всё равно достигает 25-30 мс и вся идея теряет смысл.

SCO является синхронным каналом с гарантированной полосой и минимальными задержками и вписался бы замечательно в моё решение, но он предназначен для передачи звука. При открытии канала и передаче данных через него я вижу на приемной стороне не точную копию входного бинарного потока, а некоторую "пародию" на него. Дело в том, что SCO-канал целиком и полностью ориентирован на звук, и перед передачей он аппаратно обрабатывается некими алгоритмами (кодеками), которые далеко не lossless. Таким образом, бинарный поток несколько видоизменяется, что приемлемо для звука, но неприемлемо для данных.

Может, подскажет кто - неужели нельзя использовать SCO-канал для передачи данных?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько помню в SCO используются только кодеки alaw и ulaw.

А какую скорость вы ожидаете получить?

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

Да и FSK модем на скорости 2.4 кбит/сек думаю должен нормально работать.

SCO не обеспечит гарантированную доставку, это вас устраивает?

Для настройки времени доставки есть параметры настройки. Назывались они кажется page, snif интервал.

А может это имеет место только в режиме ожидания подключения, уже не помню.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько помню в SCO используются только кодеки alaw и ulaw.

Ещё CVSD. И, кстати, начиная с версии 1.2 появился режим voice air coding = transparent data, возможно, это именно то, что мне нужно. До этого я смотрел спецификацию 1.0, и там не было такого режима.

А какую скорость вы ожидаете получить?

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

Да и FSK модем на скорости 2.4 кбит/сек думаю должен нормально работать.

Скорость нужна немаленькая, хотя бы 115200 бит/с. Тот канал SCO, который я сейчас вижу, пересылает по 60 байт каждые 3,2 мс, вроде как, нормально, если пойдут через него raw-данные.

SCO не обеспечит гарантированную доставку, это вас устраивает?

Это как раз не проблема, потерянные данные восстановит верхний протокол. К тому же там есть механизмы, улучшающие вероятность доставки пакетов, это и восстанавливающие коды FEC, и retransmission. Но гарантии доставки, как у ACL, нет, это понятно.

Для настройки времени доставки есть параметры настройки. Назывались они кажется page, snif интервал.

А может это имеет место только в режиме ожидания подключения, уже не помню.

Их я уже покрутил для ACL, стало лучше, но ... синхронный канал с выделенной полосой устроил бы меня гораздо больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде как для передачи данных используют SPP?

SPP - это верхний уровень BT-стека, который, в конечном итоге, работает поверх ACL-пакетов. В топике речь идёт о передаче данных на самом низком уровне стека, через HCI-интерфейс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SPP - это верхний уровень BT-стека, который, в конечном итоге, работает поверх ACL-пакетов. В топике речь идёт о передаче данных на самом низком уровне стека, через HCI-интерфейс.

 

Это понятно, но оно того стоит? Или ТС имеет ввиду BLE, где SPP нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это понятно, но оно того стоит? Или ТС имеет ввиду BLE, где SPP нет?

СтОит, так как SPP вносит существенные задержки в обмен данными, за счет того, что работает поверх ACL-пакетов. Для "удлинителя COM-порта" это может и неважно, но для моей задачи критично.

Второй момент - мне не нужен весь стек BT, обмен ключами, шифрование, ввод ПИН-кода, service discovery и т. п. Установил соединение через HCI, и готов к обмену данными. Это существенно снижает требования к микроконтроллеру и разгружает его от разбора пакетов и передаче их вверх-вниз по стеку. Оборотная сторона у такого подхода, безусловно, тоже есть - невозможность соединиться с "большими" устройствами под Андроидом/Linux/Windows, но мне это и не требуется. Я соединяю 2 своих устройства прямым линком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

СтОит, так как SPP вносит существенные задержки в обмен данными, за счет того, что работает поверх ACL-пакетов. Для "удлинителя COM-порта" это может и неважно, но для моей задачи критично.

Второй момент - мне не нужен весь стек BT, обмен ключами, шифрование, ввод ПИН-кода, service discovery и т. п. Установил соединение через HCI, и готов к обмену данными. Это существенно снижает требования к микроконтроллеру и разгружает его от разбора пакетов и передаче их вверх-вниз по стеку. Оборотная сторона у такого подхода, безусловно, тоже есть - невозможность соединиться с "большими" устройствами под Андроидом/Linux/Windows, но мне это и не требуется. Я соединяю 2 своих устройства прямым линком.

 

Если не используются преимущества блютуса, может, тогда использовать не блютус, а просто радиоканал типа SIM20? Но это уже оффтоп. Сорри.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не используются преимущества блютуса, может, тогда использовать не блютус, а просто радиоканал типа SIM20? Но это уже оффтоп. Сорри.

Почему же, преимущества блютуса как раз используются - гарантированная доставка пакетов (ACL), автоматическая смена частот (frequency hopping), выделенный легальный частотный диапазон, уживчивость с соседними блютус-устройствами и т. п.

На "голом" радиоканале всё это тоже возможно, но придется реализовывать "ручками".

Ну и цена тоже немаловажна. Мне блютуз-контроллер обходится в 160 руб в розницу, а сколько стоит ваш SIM20 ? (риторический вопрос).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему же, преимущества блютуса как раз используются - гарантированная доставка пакетов (ACL), автоматическая смена частот (frequency hopping), выделенный легальный частотный диапазон, уживчивость с соседними блютус-устройствами и т. п.

На "голом" радиоканале всё это тоже возможно, но придется реализовывать "ручками".

Ну и цена тоже немаловажна. Мне блютуз-контроллер обходится в 160 руб в розницу, а сколько стоит ваш SIM20 ? (риторический вопрос).

 

Логично ) А что за контроллер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Texas Instruments СС2560

 

Не подскажете преимущества/недостатки в сравнении с BlueNRG от ST. Возможно, скоро придется осваивать BT4, не могу определиться с производителем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажете преимущества/недостатки в сравнении с BlueNRG от ST. Возможно, скоро придется осваивать BT4, не могу определиться с производителем.

С BlueNRG дела не имел. CC2560 - это классический BT (не low energy), к тому же довольно древний. У него есть "собрат" CC2564, который может быть и low energy BT 4.1 устройством. Но с ним я тоже не работал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С BlueNRG дела не имел. CC2560 - это классический BT (не low energy), к тому же довольно древний. У него есть "собрат" CC2564, который может быть и low energy BT 4.1 устройством. Но с ним я тоже не работал.

 

Спасибо )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помнится мне SCO 8 бит на 8 кГц. Как же туда загнать 115 кбит/сек?

В BLE нет вовсе SCO.

BLE я для себя выбрал NRF51822.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...