|
|
  |
Подключение к одному USB host и более одного девайса одновременно, Например для LPC2468 |
|
|
|
Feb 11 2009, 17:01
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ Feb 11 2009, 18:17)  Таки да, нужен. Но это наиболее прямой путь, ИМХО. Подозреваю, что только для винды это самый "прямой" путь. Для embedded устройства обычно нет возможности "установить" новые дрова. Ведь внешние хабы могут иметь разные PID и VID. Есть ещё вариант поставить на разрабатываемое устройство микросхему-хаб и конкретно для неё встроить драйвер. Но этот вариант на мой взгляд не особо технологичней мультиплексора 4-1 на сигналы D+ D-. А на уровне программы сделать 4 одинаковых потока для работы с 4-мя девайсами. Возможно микросхема-хаб работает по точно такому же принципу и ничем не лучше. Поправьте меня, если я ошибаюсь, но USB девайсы сами не инициируют передачу, а только отвечают на запросы хаба. Таким образом я могу держать питание на всех девайсах активным, а проц может по очереди передавать фреймы на разные девайсы через мультиплексор. То есть можно сделать по сути одновременную работу девайсов аналогично работе через хаб. Только я не знаю, в каком состоянии держать D+ D- на пассивных девайсах.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 11 2009, 17:16
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(GetSmart @ Feb 11 2009, 20:01)  Для embedded устройства обычно нет возможности "установить" новые дрова. Ведь внешние хабы могут иметь разные PID и VID. Есть ещё вариант поставить на разрабатываемое устройство микросхему-хаб и конкретно для неё встроить драйвер. Хаб - это стандартный класс устройств, поэтому держать специальные драйверы нет никакой надобности. Цитата(GetSmart @ Feb 11 2009, 20:01)  То есть можно сделать по сути одновременную работу девайсов аналогично работе через хаб. Зачем изобретать велосипед, да еще сомнительной конструкции?
|
|
|
|
|
Feb 11 2009, 17:29
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ Feb 11 2009, 23:16)  Зачем изобретать велосипед, да еще сомнительной конструкции? Изобретать бывает интересно  Во всяком случае, можно сделать подключение хоть 10 девайсов без серьёзного напряга. Если хотите критиковать, то давайте конструктивней. Может есть подводные камни с электрической стороны дела? Значит у хаба нет своих PID и VID ? Не подскажете где накопать драйвер для хаба? К примеру. Имеется ТЗ сделать устройство с тремя Host-разъёмами. Варианты: 1. Подключить к процу микросхему-хаб, и от неё развести четыре разъёма. При этом в прошивке проца будет драйвер хаба. 2. Подключить к процу микросхему-мультиплексор и от неё развести четыре разъёма. При этом драйвер хаба не нужен, а драйвер хоста немного дорабатывается на 4 потока. По сложности и стоимости оба варианта сравнимы. Второй может оказаться даже дешевле.
Сообщение отредактировал GetSmart - Feb 11 2009, 18:13
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 11 2009, 18:14
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(GetSmart @ Feb 11 2009, 20:29)  Значит у хаба нет своих PID и VID ? Не подскажете где накопать драйвер для хаба? VID и PID есть, как и у любого USB-устройства. Можно, например, расковырять линуксовые исходники, но... Цитата(GetSmart @ Feb 11 2009, 20:29)  При этом драйвер хаба не нужен, а драйвер хоста немного дорабатывается на 4 потока. чисто теоретически, такой вариант представляется возможным (хотя могу ошибаться  ), только придется забыть обо всех стандартах и писать собственный ни с чем не совместимый хост-стек.
|
|
|
|
|
Feb 15 2009, 23:34
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(aaarrr @ Feb 11 2009, 21:14)  VID и PID есть, как и у любого USB-устройства. Можно, например, расковырять линуксовые исходники, но... Зачем ковырять? Прочтите описание с usb.org там всё про хаб есть. В т.ч. рассматривается хаб представляющий из себя набор ключей, как вы и хотите сделать.. Только ещё хаб за подключением девайсов к своим портам следит и по каналу управления информацию об этом шлёт. Цитата(aaarrr @ Feb 11 2009, 21:14)  чисто теоретически, такой вариант представляется возможным (хотя могу ошибаться  ), только придется забыть обо всех стандартах и писать собственный ни с чем не совместимый хост-стек. Теоретически можно все девайсы параллельно повесить. Электрически, если это флешки (без кабелей), всё работать будет. Но работать будет только после назначения адреса (энумерации). До установки адреса, когда к девайсу по 0-му адресу обращаются, проблеммы будут т.к. 2 или более девайса одновременно отвечать начнут. А вот если девайсы поочереди подключать, то таких проблем не будет. Будут другие - как вы узнаете, что новое устройство на шину подцепили и его проэнумеровать нужно (без переделки драйвера)? Хотя в принципе, если имеются ключи, то всё это не так сложно сваять. Но вот нужно-ли? Хотя если серия предполагается большая, то почему бы и нет? А за стандарты, в т.ч. всякие VID PID хаба не переживайте. Я встречал хаб с VID=PID=0, и ничего всё работало. Драйвер на хаб видимо по классу bDeviceClass в дескрипторе DEVICE ставится. А вот самодельные девайсы, предназначенные для такого включения, сделать можно и несложно. Это составное устройство с точки зрения хоста будет. А реально несколько независимых.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|