16-портовый коммутатор USB потребителей




Вопрос с покупкой готового коммутатора руководство не рассматривает, поэтому будем делать свое.

Итак цель устройства:

Коммутация флэш-карт, по командам из Windows.

Предполагаемые способы коммутации:

1.Коммутировать только линии данных (питание на USB 0 и 16 выходных портах не выключается, пока коммутатор подключен к тестируемому устройству)
2.Коммутировать все 4 линии USB – этот вариант более приятен, так как сохраняем способность выходного порта выдавать в потребителя тока 0.5 А.



Так как коммутация питания и данных USB не может быть проведена одновременно, необходимо вносить задержку, и следовательно одним реле/оптореле на канал не обойтись. Минимальное количество получается 32 штуки — многовато.
Возникает следующий вопрос – какие реле использовать?
1.Обычные ЭМ реле
2.Герконовые
3.КМОП транзисторы
4.Специализированные USB коммутаторы ( сложнее достать)

Для управления зоопарком коммутаторов планируется использовать Atmega128 + FTDI + Windows программа

Хотелось бы узнать у уважаемого радиосообщества — можно ли для коммутации USB данных использовать обычные электромагнитные реле? Не будет ли проблем с передачей данных? Флэшки планируется коммутировать с интервалом десятки-сотни секунд.


Продолжение марлезонского балета

1.Хабы — есть
2.MOSFETы — запаяны
3.Контроллер — почти готов, первый ком был блином — ЛУТ корявый вышел, со второй попытки дорожки более менее удались





4.Консольная софтинка для управления — to be done…

Увеличенный в 4 раза USB Ктулху готов покорять неизведанные дали.

Комментарии (47)

RSS свернуть / развернуть
по поводу ТЗ… садись, два.
0
  • avatar
  • xar
  • 14 декабря 2012, 23:54
Китайцы вас спасут, всего за $15-20 баксов.
0
Насчет китайцев согласен — на buyincoins нашел неплохой девайс на 16 каналов — как раз 22 бакса. Там используются обычные реле — вот это вызывает сомнения.
0
военка чтоли? или безопасник?
0
Похоже, какой-то мега-ключ!.. Или «одноруких бандитов» собрался грабить? ;)

ИМХО! По теме — копайте в сторону SMSC и Техасов — у них есть управляемые хабы с простым переключением/отключением портов. Представляются хосту как композитное устройство/хаб. Доступ к функциям контроля через HID. И никаких атмег лепить не придется!

И таки да — конкретизируйте ТЗ!!!
+3
Ни то ни другое:) Контора заказчика является интернет провайдером — так что, скорее всего это какой то сетевой компьютер (маршрутизатор).
0
Интернет выдавать с флешки будут, в зависимости от того какой сайт попросит открыть пользователь? :)
0
Простой хаб тут не попрет, потому как это «неконкретное ТЗ» определяет, что управлять надо с винды, а подключаться будет к никсам — 2 разных машины по идеи.
0
Довольно простой вариант — любой хаб на 16 дырок и ключи на VCC. По идее при отключении только питания флешки будут отваливаться и линии данных за счет подтяжек в хабе свалятся в нули. По крайней мере с моим кардридером (он встроенный и потому для него потребовалась кнопка выключения — иначе после «извлечь устройство» он становился недоступен до ребута) этот фокус работает нормально.
0
  • avatar
  • Vga
  • 15 декабря 2012, 06:28
Интересный вариант. Правда в ближайшие дни вряд ли удастся достать такой хаб (на следующей неделе уже нужно предоставить тестовый образец). А если собирать все таки с нуля, каким образом реализовать подобное поведение, что бы ограничится 16 ключами по питанию? Просто подтянуть линии земле?
На cxem.net нашел вот такое устройство — правда тут потребители принтеры, а не флэшки.
0
Коммутировать USB 2.0 HS релюшками довольно чревато, он весьма капризен к разводке линий данных. Просто втыкать параллельно линии данных всех флешек тоже нельзя.
Хабы в принципе можно использовать четырехпортовые, 5 штук (четыре хаба в пятый, пятый в комп). Заодно можно обойтись без расширителей — 4 бита шины данных FT232 выделить на запитку вторичных хабов вместе с воткнутыми в них флешками, еще четыре — на выбор флешки во всех четырех хабах одновременно (но поскольку 3 из них не запитаны — выберется только одна). В качестве ключей — Logic Level P-MOSFET, два десятка. Хватит мелких в SOT23 или в сборках.
Стремление воткнуть МК не понимаю. Здесь более чем достаточно FT232 в ее битбанг-режиме. Только желательно перешить в ней EEPROM'ку, чтобы надежно выделять среди множества воткнутых FT232 нужную.
0
P.S. В природе водятся 7-портовые хабы. В них сразу две микросхемы на 4 порта (обычно китайские, какие-то USB2.0HUB).
0
Спасибо большое за идею! Да пока весь мой опыт работы с FT232 сводился к сборке USB программатора от DIHALTA, а в качестве контроллера я ее еще не рассматривал, но вариант выглядит очень вкусно и бюджетно.А зачем перешивать? Она вроде одна предполагается к использованию.
0
Чтобы не пришлось потом писать «если CCS не видит ваш XDS100 — выдерните все остальные устройства на микросхемах FT232».
0
Тестовый образец соберите из 4-х портового хаба, купленного в магазине и «умного дома» (управление розетками с компьютера, например) 4-х релюшек коммутирующих только линией питания флешек.
В финал берёте 5 штук GL850, 4 поливека, и FT232 (как предлагал Vga ). Это если надо на одной плате. А то раздельные платы USB-хабов, как-то некрасиво.
Хотя хабы можно выстроить столбиком, для большей компактности, тогда можно смисать на «модульность и масштабирование».
0
4 поливека
20, а не 4.
Хабы все равно придется модифицировать хотя бы для того, чтобы вставить ключи по питанию на каждый канал.
Правда, трассируя свою плату с хабами не стоит забывать о том, что USB 2.0 HS нужно трассировать по правилам. Вести печатной парой, соблюдать волновое сопротивление и все дела.
0
20, а не 4.
Да. Это я о прототипе как-то по инерции вписал.
Хабы все равно придется модифицировать хотя бы для того, чтобы вставить ключи по питанию на каждый канал.
Есть хабы с выключателями — там модифицировать ничего не прийдется. Разрыв под выключатели уже имеется. То есть получится вполне «заводской» вариант. Правда задороже в пару раз :)
0
Ну все равно придется вместо ключей мосфеты втыкать. И дополнительный кабель о 4 проводках тянуть. Но да, мона и так. Зато не придется возиться с правилами трассировкии полугигагерцовых LVDS линий.
0
Пробежался по городу -в магазинах нет USB разъемов на плату… ужас… ни обычных ни для поверхностного монтажа. Так что сейчас пойду и куплю пять хабов с выключателями — правда у нас они стоят по 285 р за штуку — но тут ничего не попишешь — сроки ограничены. Все таки готовые девайсы будут гарантировать USB 2.0 — а со своей разводкой можно где нибудь косякнуть. Ft232r тоже в продаже нет… есть только FT232BM — И та по 400 р. так что меняю FT на atmega8(с прошивкой под USB HID) + 74HC154.
0
Зачем дешифратор? У ATMEGA8 и так вполне достаточно ног. Насчет HID — это правильно. CDC и другие Bulk'и в семерке и линуксе не запустятся и вообще не по стандарту.
Хпбы в принципе можно взять и без выключателей, правда придется перерезать дорожки питания к гнездам и напаивать на них ключи. Кстати, ключи-то хоть нашел в продаже?)
0
Купил хаб. Четыре кнопки и бонус — светодиоды на каждый ЮСБ разъем

Для тестового девайса ключи возьму с убитой материнки.
0
На каком чипе девайс?
На материнке дюже крупные ключи. Я бы поставил IRLML9306 или как их там, Logic-level P-Channel MOSFET на 6А в SOT23, довольно дешевые и распространенные. Соответсвенно исток на +5V, сток на гнездо, затвор притянуть через 1-10к к истоку, к МК через резистор на 100 Ом, открывать нулем.
Если делать на МК без расширителей — можно на будущее предусмотреть возможность независимого включения каналов, а не только одного. Просто отсылать на девайс HID-пакет из двух байт, каждый бит отвечает за один канал.
0
Чип какой то экзотический

FE1.1s
USB 2.0 HUB
LG3H149A4481
0
Так я и думал. Самый популярный у китайцев чип 4-портового USB хаба. Из хорошего о нем можно сказать то, что он действительно USB 2.0. Насчет плохого — хз, мне показался не очень стабильным, но дело могло быть и в плохом кабеле.
0
Можно ли нагрузку (то бишь питание USB разъема) разместить в цепи истока? Нет p-канальных транзисторов в миниатюрных корпусах. Зато имеются n-канальные IRLML2502. Понятное дело, что извращенский подход — но что то под новый в магазинах с sot корпусами засада.
0
Тогда тебе потребуется подать +10В на затвор для открывания и 0В для закрывания. Где ты их намерен брать?
0
DC-DC 5 -> 10 :) С биполярниками вариант не пройдет? Или комбинацией биполярник + mosfet?
0
Придется еще драйверы ставить, т.к. МК не может напрямую выдать эти 10В. А если воткнуть его между +5 и +10 — то не сможет запереть полевик.
Вот биполярники можно. PNP-транзистор, включить точно так же, как полевик. Только резистор в базе увеличить до 470-1000 Ом. Но падение напряжения будет больше. Учитывая, что порты на компах обычно выдают менее 5В после двух биполярных ключей может остаться менее 4В. Но при автономном питании хабов напряжением порядка 5.3-5.5В — можно. Линию Vcc к хостам придется, разумеется, разорвать.
+1
Остался еще один магазин- на выходных не работал. Если и в нем не найду ключей — то возьму биполярники и вот эту схемку для питания хабов
0
Эм… А зачем так сложно-то?
0
Можно конечно обойтись обычной 7805 с парой-тройкой кондеров. И без управления. Просто заодно попробую, что такое LM2575 — благо в продаже имеются
0
Лично я бы поставил один неуправляемый источник на LM2575 (точнее, другой микросхеме аналогичного назначения, скорее всего 34063), настроенный на 5.25В, а дальше — только биполярные ключи. Для снижения падения, тем более что все равно используется многоногий контроллер — 16 ключей с индивидуальным управлением, по ключу на гнездо. Хабы — на постоянное питание. Даже если не подбирать в качестве ключей транзисторы с малым напряжением Uкэ.нас (это может оказаться не проще, чем найти мосфеты) — в требования USB по напряжению оно уложится.
0
Вопрос по части сопряжения:
Итак имеем ключ на p-Канальном полевике и контроллер на FT232. Каким образом их объединить по питанию, если земля у них получается разнополярная — у FT232 земля минусовая, у ключа соответственно плюсовая. Контроллер и ключи должна питаться от USB разных компьютеров.
Один вариант понятен — развязка на оптронах. Но это придется еще кучу оптронов втыкать. А если без оптронов? Могу ли я замкнуть соединить VCC FT232 И GND ключа?
0
Точнее наоборот — GND FT232 и VCC ключа.
0
Питаться вся схема должна от одного источника. От какого — выбирай сам, можно питаться от любого из USB или от внешнего источника на 5В. Лишние USB.VCC просто оставь висеть.
Все земли во всем девайсе тоже необходимо соединить. Земля здесь — минус питания, ключи висят по питанию, а не по земле.
0
Хабы в любом случае питаются от машины на которой стоит линукс. А контроллер должен управляться с винды. Получаются задействованы USB обоих компьютеров. Видимо придется разорвать плюсовой провод идущий от виндовой машины и запитать ft232 от хабов.
0
Откуда питать — не играет значения. Можно все запитать от внешнего источника, разорвав линию VCC на обоих USB-«входах». Для работы USB нужно только чтобы были соединены земли и подключены линии данных.
0
Спасибо за помощь:) Пошел паять дальше.
0
Алсо, ATMEGA128 здесь явно из пушки по воробьям. Вполне пойдет распространенная ATMEGA8. А с тем или иным расширителем портов хватит и ATTINY13 или вообще одной лишь FT232 (учитывая специфику девайса, в качестве расширителя вполне пойдет 4-битный дешифратор).
0
  • avatar
  • Vga
  • 15 декабря 2012, 06:31
Да, да. Уже достал из старых советских запасов 155 ид3. В наличии куча ATTINY2312 — так что попробую такую связку.
0
2313 тоесть
0
ADG408/ADG409 устроит? только с питанием чуть заморочиться придется, для питания ключей желательно +-12в.
сигнальные линии переключать ими, а питание коммутировать мосфетами.
0
  • avatar
  • woddy
  • 15 декабря 2012, 09:38
Пробовал коммутировать D+/D- на 2 флешки сигнальными реле (CPC1008) — все работало без проблем, на макс.скорости.
Но с 16шт скорее всего будут проблемы с паразитной емкостью — для High speed она очень жестко нормируется.
Думаю лучший вариант — хаб и коммутация питания на выходе.
0
Задумайтесь… Конструкция разъема USB не допускает подачу питания после подключения линий данных, также как и отключение питания когда линии данных подключены. Не зря же так…
0
Практика показывает, что такой вариант вполне рабочий. Хотя мне он тоже не сильно нравится.
Но, управляемые хабы почему-то тоже отключают питание «при подключенных линиях данных». И когда происходит перегруз порта — срабатывает предохранитель только в питании (ну это плохой пример — нештатная работа всё же).
0
Там это в первую очередь для уравнивания потенциалов. Если между землями устройств пара сотен вольт и первыми соединятся линии данных — их выбьет. Здесь потенциалы уже уравняны, так что ничего страшного произойти не должно. Хотя есть некоторая вероятность того, что флешка попытается тянуть фантомное питание.
0
Ну если землю не отключать, все должно быть нормально.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.