Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR <--> USB <--> BlueTooth
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
JBM
Всем привет! Давненько я тут не был!

Итак, стоит задача:
клиент-серверная архитектура
- сервер на AVRке, собирает информацию о работе двигателя в автомобиле
- клиент на мобильном устройстве (в моём случае КПК ASUS 636, но может быть и мобила с блютусом и жабой) отображает собранные данные

для обмена между клиентом и сервером предлагается два медиума
- USB
- BlueTooth

таким образом, предлагается следующая архитектура:
Нажмите для просмотра прикрепленного файла
Плюсы:
- USB сейчас в моде
- большая гибкость - можно цеплять клиент любой платформы, будь то телефон, КПК, ноутбук или писюк...
- ... можно даже одновременно

Минус:
- нужен USB Host

Вот этот минус меня как раз очень напрягает. Сейчас появились контроллеры AT90USBxxx, в которых USB интегрировано в кристалл. К сожалению, реализован только USB Bus Interface, т.е. железо, а самого главного - Host Control Driver, т.е. софта, реализующего usb-хост на этом железе - нигде нету. Написать хост драйвер с нуля - страшно даже подумать.

Может есть какие-то наработки в этой области?

Написать софт для USB Function гораздо проще, и все аппликухи на этот чип демонстрируют именно режим function. Или может я плохо разобрался, и там Host всё-таки как-то реализован?

Подскажите, что нужно для того, чтобы запустить USB Host на чипе AT90USBxxx?
Есть ли более-менее рабочие программы хоста?
aaarrr
А необходимость реализации стека блютусовых протоколов не пугает? Свистки ведь тупые совсем, за них компьютер думает.
Не потянет AVR такую систему.
Balun
для обмена по блютусу могу порекомендовать готовые блютус модули. Видятся компьютером как ком порт. и стоят недорого 20$.
Плюс их можно перепрошивать.
модули можно посмотреть здесь
http://www.efo.ru/doc/Rainsun/Rainsun.pl?2429.
Сейчас во многих телефонах блютус тоже есть.
Deka
IMXO USB хост нужен только для КПК. В PC уже есть USB Host и подсоединить у нему еще один хост не получится. По крайней мере напрямую. Раньше были всякого рода переходники для соединения двух PC по USB. Может лучше ИК связь добавить? Скорости-то передачи какие планируются? Объём данных?
JBM
Короче понятно... Печально.

Я думал, может кто-то уже добился успехов с этими чипами, но похоже что нет...

Balun: те модули не подходят - они работают парой Master+Slave, а у меня на клиентской стороне блютус нормальный, полноценный (на КПКшке, например, или на телефоне). И друг друга они, естественно, не признают никогда.

Кроме того, предполагаемый бюджет по железу на один экземпляр - около 20 баксов, а там один только Master/Slave столько стоит. Выгоднее затратить больше сил на программную реализацию, зато потом шить эту программу в пятидолларовые контроллеры и втыкать в них такие же пятидолларовые свистки (буду закупать их на радиорынке и выкидывать всю пластмассу, а на плату буду крепить на силиконе).

Короче, придётся писать USB Driver самому.

aaarrr: да, блютусовый стек немного пугает, большей частью потому, что не могу найти на него спецификацию. Тебе не попадалось? На www.bluetooth.com лежит только одна глава sad.gif
aaarrr
Цитата(JBM @ Aug 11 2006, 17:05) *
aaarrr: да, блютусовый стек немного пугает, большей частью потому, что не могу найти на него спецификацию. Тебе не попадалось? На www.bluetooth.com лежит только одна глава sad.gif


Угу, попадалось - примерно 1500 страниц, местами маловразумительных. В разы сложнее USB хоста.
Про AVR в качестве управляющего контроллера лучше забыть.
Если бюджет составляет $20 на устройство, то стоит поискать дешевые bluetooth модули, например, на базе CSR, и весь функционал реализовать на них.
JBM
Такие диковинки, как CSR я тут днём с огнём не найду. Куда там CSR, тут гораздо более тривиальные чипы не купишь. Приходится конструировать из того, что доступно.

Опять же, чем будет отличаться управление CSRовским модулем от управления USB-шным свистком? Учитывая, что свисток собран на чипе BlueCore2 ("Да, Ватсон, он тоже Баскервиль!"), не думаю что сильно отличается.

Насколько я понимаю суть блютуса, есть протокол низкого уровня (т.е. физически обмен данными), реализованный в чипе BlueCore, который имеет интерфейс RS232 либо USB. Потом идёт протокол среднего уровня, управляющий потоками данных. Сверху лежат классы - аудио, OBEX, и т.п.

Верхний слой мне нафиг не нужен. Средний слой можно реализовать в минимально необходимом объёме. USB-Host тоже ведь не собираюсь полностью писать, только необходимое.

Судя как написано в той главе, которая выложена на www.bluetooth.com, управление по USB не такое уж сложное - 1 endpoint для управления и 1 endpoint для данных. Но там всё в общих чертах. Попросил у них скачать спецификацию полностью - ни ответа ни привета. aaarrr, можешь маякнуть откуда 1500 страниц скачал?
aaarrr
Цитата
Опять же, чем будет отличаться управление CSRовским модулем от управления USB-шным свистком? Учитывая, что свисток собран на чипе BlueCore2 ("Да, Ватсон, он тоже Баскервиль!"), не думаю что сильно отличается.


Будет, и сильно. По крайней мере, не придется заморачиваться с USB и частью протоколов.

Цитата
Насколько я понимаю суть блютуса, есть протокол низкого уровня (т.е. физически обмен данными), реализованный в чипе BlueCore, который имеет интерфейс RS232 либо USB. Потом идёт протокол среднего уровня, управляющий потоками данных. Сверху лежат классы - аудио, OBEX, и т.п.


Примерно так и есть. Если не ошибаюсь, в свистке есть поддержка Link Manager протокола, а L2CAP и выше - забота хоста.

Цитата
Попросил у них скачать спецификацию полностью - ни ответа ни привета.


Спецификация у них только за деньги. Я добывал где-то в китайских дебрях.
Deka
А мне интересно как будет сделана стыковка двух USB-хостов... Наверное придётся реализовывать функционал как хоста так и слэйва, а это IMHO увеличит сложность и всё такое... Хотя есть КПК с USB-хостом. Мне такие требовались для управления фотоаппаратами.
aaarrr
Цитата
А мне интересно как будет сделана стыковка двух USB-хостов...

А где Вы её нашли?
JBM
Цитата
Спецификация у них только за деньги. Я добывал где-то в китайских дебрях.
Так, aaarrr, колись, где брал? Жадность - грех. Рассказывай, где "китайские дебри" в интернете находятся wink.gif
aaarrr
Не помню уже, давно это было. Как заработает FTP - залью, если там нет.
blade500mhz
Добрый день.
Есть другая идея!

Если попытаться реализовать следующее:
USB Host, но только как proxy, или еще лучше : processor с USB Host, ethernet, RAM, EEprom программное обеспечение linux (есть много наработок, есть даже ActiveSync для линукса). Линукс содержит все дрова, через ActiveSync инициализируется программа для передачи данных через нужные дрова, кпк шлет или принимает данные. При подобном решении можно подключать любую перефирию (hdd, wlan, BlueTooth, ...)
примером решения может стать реализация D-Link "DSL-644", т.к. есть исходники линукс а решение железа , для начала скатать с D-Link прибора.

Кто хочет, может подключаться (Только с мыслью в голове потом продавать это решение)


blade500mhz
aaarrr
Идея, конечно, хорошая, но в заявленный бюджет никак не укладывается.

Платку с линуксом обсуждают в разделе ARM, можете посмотреть.
Deka
Цитата(aaarrr @ Aug 12 2006, 18:49) *
Цитата
А мне интересно как будет сделана стыковка двух USB-хостов...

А где Вы её нашли?


Цитата
Плюсы:
- USB сейчас в моде
- большая гибкость - можно цеплять клиент любой платформы, будь то телефон, КПК, ноутбук или писюк...
- ... можно даже одновременно


Ноутбук - USB Host; писюк (думаю что это PC) - тоже USB Host
Плюс в каком-то КПК, от Тошиба кажется, тоже USB host.
IMHO для любой платформы понадобится реализовать ещё USB-Slave. Либо USB 2Go, кажется так. Но суть в том-же, реализованы и хост и слэйв, а в момент соединения кто-то из них становится слэйв, а другой хост.
aaarrr
Речь шла о bluetooth, в первом посте даже картинка нарисована.
blade500mhz
Цитата(aaarrr @ Aug 14 2006, 08:28) *
Речь шла о bluetooth, в первом посте даже картинка нарисована.


Ето замечание для моего предложения не релевантно! Основная проблема с ASUS 636 в том, что USB host не реализован. При помощи моего предложения можно впоследствии подключить любое устройство с USB. Как было сказано все драйверы уже написаны пд embedded linux и нужно будет только дефинировать на какое устройство, какую информацию передавать!
blade500mhz
[quote name='JBM' post='142225' date='Aug 7 2006, 22:46']

Итак, стоит задача:
клиент-серверная архитектура
- сервер на AVRке, собирает информацию о работе двигателя в автомобиле
- клиент на мобильном устройстве (в моём случае КПК ASUS 636, но может быть и мобила с блютусом и жабой) отображает собранные данные


[/quote]

если тодько речь идет о сборе информации с двигателя автомобиля, то ключевое слово для поиска OBD или OBD2. Если это только машина поновее. Передача данных основанна в основном на серийной передаче (rs232) но есть и usb решения. Есть достаточно универсальных програм под почти любую машину, даже с исходным кодом.



[quote name='Deka' date='Aug 14 2006, 08:21' post='144155']
[quote name='aaarrr' post='143875' date='Aug 12 2006, 18:49']
[quote]А мне интересно как будет сделана стыковка двух USB-хостов... [/quote]
А где Вы её нашли?
[/quote]

Технологи называется usbToGo ,это реализация хост и клиент в одном (если я правильно понял ,то тип подключения определяется через кабель подключения) , например от Atmel
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.