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

Как получить 300 Kbit/sec по Bluetooth?

Пожалуйста помогите!

 

Есть два модуля WT11 от BlueGiga. Один подцеплен к PC по USB, другой по UART подключен к AT91SAM7S. Необходимо минимальными усилиями добиться скорости передачи данных из SAM7S в PC и обратно равной 30 Кбайт/сек (или больше, если возможно).

 

Сейчас используется SPP соединение (прошивка iWRAP-2.2.0).

Максимальная скорость, на данный момент, не превышает 10 Кбайт/сек.

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


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

Возникла и у меня необходимость достичь максимальной скорости между двумя Wrap Thor -ами... Ситуация до боли похожа - один модуль на компе, а второй на LPC-хе... При стандартной скорости УАРТ-а в 115200 достигалась скорость непрерывной однонаправленной асинхронной передачи в 10-11 Кбайт/с. Скорость увеличил до 230400 - получил примерно 20-21 КБайт/с... Увеличил скорость до 460800 - получил порядка 24-х Кбайт/с. Дальнейшее увеличение скорости УАРТа до 921600 не привело к увеличению скорости передачи. Передача осуществляется по SPP (разумеется).

Судя по БлюТузной спецификации скорость асинхронной передачи должна достигать ~700 КБит/с. Предположим, что за вычетом служебной информации это будет 500 КБит/с то есть около 60 КБайт/с. То есть получается, что практически достигаемая скорость значительно меньше теоретической.

В данных тестах использую:

WRAP THOR AI (version 2.0.2 build 519 $)

Copyright © 2003-2005 Bluegiga Technologies Inc.

Compiled on Apr 8 2005 18:58:04

- DoppelBOCK version 1.1.0 build 210 (2/2c)

- Bluetooth version 1.2, Power class 1

- Firmware version 1503

 

Передаю данные блоками по 256 байт, проверяя CTS между блоками:

while(1) {
  передал 256 байт;
  while (!CTS) {;}
}

 

Кто нибудь может теоретически объяснить полученное мною ограничение скорости, или опровергнуть его? Есть ли какие-нибудь варианты как скорость увеличить?

 

Вызываю всех на дискуссию!

 

В дополнение опишу грабли, на которые я успешно наступал во время баловства с WrapThor-ом, и некоторые другие встретившиеся проблемы, во избежание наступления на них кем-либо ещё...

 

1) Стандартный PC-шный COM-port ограничил меня 115200. Пришлось использовать Serial-over-USB. Милый переходничок PL-2303 снял данное ограничение. Удалось запустить Wrap Thor на 921600.

 

2) MAX3232, подтягивающий УАРТ до RS-232, имеет ограничение по скорости... Это то ли 230400, то ли 460800... Для больших скоростей я использовал MAX3237. Кстати, может кто-то подскажет какие ещё есть альтернативы MAX3237?

 

3) В связи с двумя выше описанными причинами я неоднократно загонял WRAP THOR в состояние в котором я не мог до него достучаться (он ждал 460800, а хардварная обвязка допускала не более 230400). К моему большому сожалению подключаться к нему по SPI чтобы стирать настройки было некогда и нечем... На этот случай родилось следующее решение:

SET CONTROL INIT SET CONTROL BAUD 115200,8n1

Изменено пользователем АдскийОдуванчик

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


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

У меня тоже максимум было 24 кбайт/сек, на скорости порта 460800

модуль WT12

хм... загадочно! WT12 блюгига раскручивает как BT2.0... Странновато, и немного пугающе, что и там такие проблемы...

Вчера удалось достичь скорости 26.9 Кб/с за счёт не совсем корректной обработки CTS... Но, результат нестабильный... Ещё нашёл в старой доке по iWRAPу следующее:

4.5 300kbps Throughput

The throughput of iWRAP has been dramatically increased. The maximum throughput with iWRAP

2.0.2 version is around 300kbps when ASCII interface 2.0.0 was able to produce only 180kbps.

However to achieve this throughput the use of DTR signaling is needed.

Сейчас одновременно пытаюсь двигаться в двух направлениях: перепрошивка модуля, и отключение escape sequence. Как получу результаты - напишу.

 

P.S. И что, больше блютуз никто не гонял?

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


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

Всем привет! На данный момент WT11 выдал максимум 22 Кбайт/с. Думаю при небольшой оптимизации кода работы с UART'ом можно добиться незначительных улучшений, но это неособенно интересно.

Может кто-то знает, есть ли доступная альтернатива с рабочей скоростью хотя бы приближающейся к спецификации EDR. В идеале, необходимо иметь канал 100 Кбайт/с и возможных решений пока невидно.

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


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

Вы килобиты с килоБайтами как часто путаете? ;)

То вам нужно

Как получить 300 Kbit/sec по Bluetooth?

то уже

В идеале, необходимо иметь канал 100 Кбайт/с

100кБайт/с=800кбит/с или у вас как-то по-другому? В то же время сами выдаете

На данный момент WT11 выдал максимум 22 Кбайт/с.

22кБайт/с=176кбит/с что больше половины от изначально желаемых 300 кбит/с и близко к упомянутым Адским Одуванчиком 180кбит/с

The maximum throughput with iWRAP 2.0.2 version is around 300kbps when ASCII interface 2.0.0 was able to produce only 180kbps.

или опять я неправильно посчитал? :laughing:

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


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

Вы килобиты с килоБайтами как часто путаете? ;)

То вам нужно

 

то уже

 

100кБайт/с=800кбит/с или у вас как-то по-другому? В то же время сами выдаете

 

22кБайт/с=176кбит/с что больше половины от изначально желаемых 300 кбит/с и близко к упомянутым Адским Одуванчиком 180кбит/с

 

или опять я неправильно посчитал? :laughing:

 

Думаю что килобИты с килобАЙтами ещё никто попутать не успел... Слава богу... А число 180, если внимательно смотреть, относится к воооообще старой версии фирмвари, и, следовательно, обосновывать им 22Кб/с не логично.

 

Предположим что пропускная способность ограничена упомянутым блю-гигой числом 300КБит/с, что относится к фирмваре 2.0.2. Предположим что мы его даже поооооочти достигли. Тогда появляется ещё один вопрос - почему же на модулях WT11 и WT12, которые описываются блю-гигой как BlueTooth 2.0 (а не 1.х) пропускная способность такая же?

:wacko:

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


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

Добрый день всем участникам. На счет скорости пока сказать ничего не могу, так как у меня не стояла задача передавать объемные данные по блютус (использовал модуль WT11 A-AI), а передавал только пару команд и пару байт данных для конечных устройств. Но другое могу сказать, первый модуль, который мне попался был с прошивкой 2.0.2, команды которой во многом не совпадали с описанием команд в даташите. Помучался немного, решил перепрошить на версию 2.2.0 с 54 билдом, после этого все стало на свои места. Советую перепрошить модуль на более новую прошивку (уже есть 2.2.0 с 60 билдом) и поэксперементировать. Я бы с удовольствием сам лично поставил эксперименты и сообщил результаты, но не могу - в отпуске я.

З.Ы. На счет перепрошивки. Используйте только родной прошивальщик от блюгига, иначе если прошьете блюфлешом, то модуль умрет. Сам лично пробовал, потом долго переписывался с их техподдержкой по поводу реанимирования модуля.

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


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

Вы килобиты с килоБайтами как часто путаете? ;)

rezident,

если вы внимательно читали, я не использовал сокращений "Кб", это неспроста.

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


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

Если прочитать спецификацию хотя бы на один профиль, находящийся в стадии adopted, то сразу станет понятно, что EDR-пакеты физического уровня, не поддерживаются профилями. Железо же давно поддерживает и π/4-DQPSK и 8DPSK, дающие 2 и 3 Мбита/c соответсвенно.

 

Для SPP 1.1 обязательна поддрежка 128кбит/c, остальные скорости опциональны.

 

This profile requires support for one-slot packets only. This means that this

profile ensures that data rates up to 128 kbps can be used. Support for higher

rates is optional.

 

На данный момент, из известных мне профилей, ни один не использует пакеты EDR (2-DH1, 2-DH2, 2-DH3,

3-DH1, 3DH2, 3-DH3). Поэтому тут возникает вопрос совместимости с другими устройствами.

 

На счет самого модуля могу добавить, что там стоит BlueCore4, и протокол BlueGiga подключается к их библиотеке SPP, при определенных махинациях, я выжимал из него около 650кбит/c через UART, но это напрямую без использования IWRAP.

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


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

На счет самого модуля могу добавить, что там стоит BlueCore4, и протокол BlueGiga подключается к их библиотеке SPP, при определенных махинациях, я выжимал из него около 650кбит/c через UART, но это напрямую без использования IWRAP.

 

Это через HCI или свою прошивку писали?

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


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

Это через HCI или свою прошивку писали?

Да, писал свою прошивку, через HCI должно быть еще быстрее

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


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

Железо давно поддерживает и π/4-DQPSK и 8DPSK, дающие 2 и 3 Мбита/c соответсвенно.

 

писал свою прошивку, через HCI должно быть еще быстрее

 

должно, в общем-то, получиться именно 2..3 Мбита\с. но я нигде не нашёл, как этого добиться, то есть какое волшебное слово нужно сказать модулю - непонятно. кто-нибудь располагает хотя бы литературой, освещающей этот вопрос? практически, как я погляжу, этого никто не делал ещё...

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


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

должно, в общем-то, получиться именно 2..3 Мбита\с. но я нигде не нашёл, как этого добиться, то есть какое волшебное слово нужно сказать модулю - непонятно. кто-нибудь располагает хотя бы литературой, освещающей этот вопрос? практически, как я погляжу, этого никто не делал ещё...

 

:)

 

На тот момент, когда я разбирался с SPP, только появились BlueCore3, Bluetooth 2.0 был еще только в разработке SIG. Просто на макетке, создать канал и гнать данные легко. Другое дело, что ни одно устройство стороннего производителя, с ним работать не будет.

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


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

На тот момент, когда я разбирался с SPP, только появились BlueCore3, Bluetooth 2.0 был еще только в разработке SIG. Просто на макетке, создать канал и гнать данные легко. Другое дело, что ни одно устройство стороннего производителя, с ним работать не будет.

 

Совместимость штука карошая. Мне же необходимо сделать "USB cable replacement" с хорошей пропускной способностью. Тоесть речи о совместимости не идет. Попытаюсь повторить ваш эксперимент с прошивкой. Кстати, не намекнете с чего лучше начать. Может есть коротенький пример?

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


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

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

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

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

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

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

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

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

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

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