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

Всем привет! Давненько я тут не был!

 

Итак, стоит задача:

клиент-серверная архитектура

- сервер на AVRке, собирает информацию о работе двигателя в автомобиле

- клиент на мобильном устройстве (в моём случае КПК ASUS 636, но может быть и мобила с блютусом и жабой) отображает собранные данные

 

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

- USB

- BlueTooth

 

таким образом, предлагается следующая архитектура:

post-10213-1154982702_thumb.jpg

Плюсы:

- USB сейчас в моде

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

- ... можно даже одновременно

 

Минус:

- нужен USB Host

 

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

 

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

 

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

 

Подскажите, что нужно для того, чтобы запустить USB Host на чипе AT90USBxxx?

Есть ли более-менее рабочие программы хоста?

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


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

А необходимость реализации стека блютусовых протоколов не пугает? Свистки ведь тупые совсем, за них компьютер думает.

Не потянет AVR такую систему.

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


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

для обмена по блютусу могу порекомендовать готовые блютус модули. Видятся компьютером как ком порт. и стоят недорого 20$.

Плюс их можно перепрошивать.

модули можно посмотреть здесь

http://www.efo.ru/doc/Rainsun/Rainsun.pl?2429.

Сейчас во многих телефонах блютус тоже есть.

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


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

IMXO USB хост нужен только для КПК. В PC уже есть USB Host и подсоединить у нему еще один хост не получится. По крайней мере напрямую. Раньше были всякого рода переходники для соединения двух PC по USB. Может лучше ИК связь добавить? Скорости-то передачи какие планируются? Объём данных?

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


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

Короче понятно... Печально.

 

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

 

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

 

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

 

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

 

aaarrr: да, блютусовый стек немного пугает, большей частью потому, что не могу найти на него спецификацию. Тебе не попадалось? На www.bluetooth.com лежит только одна глава :(

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


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

aaarrr: да, блютусовый стек немного пугает, большей частью потому, что не могу найти на него спецификацию. Тебе не попадалось? На www.bluetooth.com лежит только одна глава :(

 

Угу, попадалось - примерно 1500 страниц, местами маловразумительных. В разы сложнее USB хоста.

Про AVR в качестве управляющего контроллера лучше забыть.

Если бюджет составляет $20 на устройство, то стоит поискать дешевые bluetooth модули, например, на базе CSR, и весь функционал реализовать на них.

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


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

Такие диковинки, как CSR я тут днём с огнём не найду. Куда там CSR, тут гораздо более тривиальные чипы не купишь. Приходится конструировать из того, что доступно.

 

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

 

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

 

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

 

Судя как написано в той главе, которая выложена на www.bluetooth.com, управление по USB не такое уж сложное - 1 endpoint для управления и 1 endpoint для данных. Но там всё в общих чертах. Попросил у них скачать спецификацию полностью - ни ответа ни привета. aaarrr, можешь маякнуть откуда 1500 страниц скачал?

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


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

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

 

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

 

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

 

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

 

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

 

Спецификация у них только за деньги. Я добывал где-то в китайских дебрях.

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


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

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

Изменено пользователем Deka

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


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

А мне интересно как будет сделана стыковка двух USB-хостов...

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

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


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

Спецификация у них только за деньги. Я добывал где-то в китайских дебрях.
Так, aaarrr, колись, где брал? Жадность - грех. Рассказывай, где "китайские дебри" в интернете находятся ;)

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


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

Добрый день.

Есть другая идея!

 

Если попытаться реализовать следующее:

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

примером решения может стать реализация D-Link "DSL-644", т.к. есть исходники линукс а решение железа , для начала скатать с D-Link прибора.

 

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

 

 

blade500mhz

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


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

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

 

Платку с линуксом обсуждают в разделе ARM, можете посмотреть.

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


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

А мне интересно как будет сделана стыковка двух USB-хостов...

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

 

Плюсы:

- USB сейчас в моде

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

- ... можно даже одновременно

 

Ноутбук - USB Host; писюк (думаю что это PC) - тоже USB Host

Плюс в каком-то КПК, от Тошиба кажется, тоже USB host.

IMHO для любой платформы понадобится реализовать ещё USB-Slave. Либо USB 2Go, кажется так. Но суть в том-же, реализованы и хост и слэйв, а в момент соединения кто-то из них становится слэйв, а другой хост.

Изменено пользователем Deka

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


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

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

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

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

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

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

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

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

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

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