реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как получить 300 Kbit/sec по Bluetooth?
Blob
сообщение Mar 31 2007, 19:00
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 25-03-07
Пользователь №: 26 506



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

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

Сейчас используется SPP соединение (прошивка iWRAP-2.2.0).
Максимальная скорость, на данный момент, не превышает 10 Кбайт/сек.
Go to the top of the page
 
+Quote Post
АдскийОдуванчик
сообщение Sep 4 2007, 18:44
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 13-02-07
Пользователь №: 25 324



Возникла и у меня необходимость достичь максимальной скорости между двумя 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

Сообщение отредактировал АдскийОдуванчик - Sep 4 2007, 18:31


--------------------
Новичок знает, что все ответы есть в документации. Опытный программист знает в какой, где, и где её достать.
Go to the top of the page
 
+Quote Post
subver
сообщение Sep 5 2007, 01:47
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 4-06-05
Из: Омск
Пользователь №: 5 726



У меня тоже максимум было 24 кбайт/сек, на скорости порта 460800
модуль WT12
Go to the top of the page
 
+Quote Post
АдскийОдуванчик
сообщение Sep 5 2007, 13:39
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 13-02-07
Пользователь №: 25 324



Цитата(subver @ Sep 5 2007, 04:47) *
У меня тоже максимум было 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. И что, больше блютуз никто не гонял?


--------------------
Новичок знает, что все ответы есть в документации. Опытный программист знает в какой, где, и где её достать.
Go to the top of the page
 
+Quote Post
Blob
сообщение Sep 6 2007, 11:07
Сообщение #5





Группа: Новичок
Сообщений: 8
Регистрация: 25-03-07
Пользователь №: 26 506



Всем привет! На данный момент WT11 выдал максимум 22 Кбайт/с. Думаю при небольшой оптимизации кода работы с UART'ом можно добиться незначительных улучшений, но это неособенно интересно.
Может кто-то знает, есть ли доступная альтернатива с рабочей скоростью хотя бы приближающейся к спецификации EDR. В идеале, необходимо иметь канал 100 Кбайт/с и возможных решений пока невидно.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 6 2007, 18:21
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Вы килобиты с килоБайтами как часто путаете? wink.gif
То вам нужно
Цитата(Blob)
Как получить 300 Kbit/sec по Bluetooth?

то уже
Цитата(Blob @ Sep 6 2007, 17:07) *
В идеале, необходимо иметь канал 100 Кбайт/с

100кБайт/с=800кбит/с или у вас как-то по-другому? В то же время сами выдаете
Цитата(Blob @ Sep 6 2007, 17:07) *
На данный момент 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.gif
Go to the top of the page
 
+Quote Post
АдскийОдуванчик
сообщение Sep 7 2007, 07:38
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 13-02-07
Пользователь №: 25 324



Цитата(rezident @ Sep 6 2007, 21:21) *
Вы килобиты с килоБайтами как часто путаете? wink.gif
То вам нужно

то уже

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

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

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


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

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


--------------------
Новичок знает, что все ответы есть в документации. Опытный программист знает в какой, где, и где её достать.
Go to the top of the page
 
+Quote Post
Starick
сообщение Sep 7 2007, 12:32
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211



Добрый день всем участникам. На счет скорости пока сказать ничего не могу, так как у меня не стояла задача передавать объемные данные по блютус (использовал модуль WT11 A-AI), а передавал только пару команд и пару байт данных для конечных устройств. Но другое могу сказать, первый модуль, который мне попался был с прошивкой 2.0.2, команды которой во многом не совпадали с описанием команд в даташите. Помучался немного, решил перепрошить на версию 2.2.0 с 54 билдом, после этого все стало на свои места. Советую перепрошить модуль на более новую прошивку (уже есть 2.2.0 с 60 билдом) и поэксперементировать. Я бы с удовольствием сам лично поставил эксперименты и сообщил результаты, но не могу - в отпуске я.
З.Ы. На счет перепрошивки. Используйте только родной прошивальщик от блюгига, иначе если прошьете блюфлешом, то модуль умрет. Сам лично пробовал, потом долго переписывался с их техподдержкой по поводу реанимирования модуля.
Go to the top of the page
 
+Quote Post
Blob
сообщение Sep 9 2007, 12:28
Сообщение #9





Группа: Новичок
Сообщений: 8
Регистрация: 25-03-07
Пользователь №: 26 506



Цитата(rezident @ Sep 6 2007, 22:21) *
Вы килобиты с килоБайтами как часто путаете? wink.gif

rezident,
если вы внимательно читали, я не использовал сокращений "Кб", это неспроста.
Go to the top of the page
 
+Quote Post
boroda1983
сообщение Sep 9 2007, 16:06
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-04-06
Пользователь №: 15 753



Если прочитать спецификацию хотя бы на один профиль, находящийся в стадии 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.
Go to the top of the page
 
+Quote Post
Blob
сообщение Sep 9 2007, 18:50
Сообщение #11





Группа: Новичок
Сообщений: 8
Регистрация: 25-03-07
Пользователь №: 26 506



Цитата(boroda1983 @ Sep 9 2007, 20:06) *
На счет самого модуля могу добавить, что там стоит BlueCore4, и протокол BlueGiga подключается к их библиотеке SPP, при определенных махинациях, я выжимал из него около 650кбит/c через UART, но это напрямую без использования IWRAP.


Это через HCI или свою прошивку писали?
Go to the top of the page
 
+Quote Post
boroda1983
сообщение Sep 10 2007, 06:39
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-04-06
Пользователь №: 15 753



Цитата(Blob @ Sep 9 2007, 22:50) *
Это через HCI или свою прошивку писали?

Да, писал свою прошивку, через HCI должно быть еще быстрее
Go to the top of the page
 
+Quote Post
EDMOS
сообщение Sep 11 2007, 14:46
Сообщение #13





Группа: Новичок
Сообщений: 3
Регистрация: 11-09-07
Пользователь №: 30 451



Цитата(boroda1983 @ Sep 9 2007, 19:06) *
Железо давно поддерживает и π/4-DQPSK и 8DPSK, дающие 2 и 3 Мбита/c соответсвенно.


Цитата(boroda1983 @ Sep 10 2007, 09:39) *
писал свою прошивку, через HCI должно быть еще быстрее


должно, в общем-то, получиться именно 2..3 Мбита\с. но я нигде не нашёл, как этого добиться, то есть какое волшебное слово нужно сказать модулю - непонятно. кто-нибудь располагает хотя бы литературой, освещающей этот вопрос? практически, как я погляжу, этого никто не делал ещё...
Go to the top of the page
 
+Quote Post
boroda1983
сообщение Sep 11 2007, 18:11
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-04-06
Пользователь №: 15 753



Цитата(EDMOS @ Sep 11 2007, 18:46) *
должно, в общем-то, получиться именно 2..3 Мбита\с. но я нигде не нашёл, как этого добиться, то есть какое волшебное слово нужно сказать модулю - непонятно. кто-нибудь располагает хотя бы литературой, освещающей этот вопрос? практически, как я погляжу, этого никто не делал ещё...


smile.gif

На тот момент, когда я разбирался с SPP, только появились BlueCore3, Bluetooth 2.0 был еще только в разработке SIG. Просто на макетке, создать канал и гнать данные легко. Другое дело, что ни одно устройство стороннего производителя, с ним работать не будет.
Go to the top of the page
 
+Quote Post
Blob
сообщение Sep 13 2007, 08:38
Сообщение #15





Группа: Новичок
Сообщений: 8
Регистрация: 25-03-07
Пользователь №: 26 506



Цитата(boroda1983 @ Sep 11 2007, 22:11) *
На тот момент, когда я разбирался с SPP, только появились BlueCore3, Bluetooth 2.0 был еще только в разработке SIG. Просто на макетке, создать канал и гнать данные легко. Другое дело, что ни одно устройство стороннего производителя, с ним работать не будет.


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

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01525 секунд с 7
ELECTRONIX ©2004-2016