USB-пристрій з 2 портами - як захистити від підключення користувача в обох


11

У мене є повношвидкісний USB-пристрій, для якого я хочу надати два порти - по одному на протилежних кінцях корпусу. Це так, що кабель можна підключати там, де зручніше. Мій MCU (atmega32u4) має лише один інтерфейс, тому фізичні порти будуть спільними, але за один раз слід підключити лише один.

Звичайно, користувачам не можна довіряти, що вони не підключаються відразу до обох сторін. Як захиститись від цього?

Ідеї, які я придумав:

  • Просто підключіть їх "як є", і сподіваємось, що господар може мати справу з об'єднаними D + / D-шпильками
  • NAND-шлюз з окремими 5В-штирями як вхід, виводить на MOSFET, який відключає Vcc, коли обидва підключені.

Чи звучить другий варіант розумним чи потрібне більш складне рішення?


Як ви пропонуєте з'єднати два порти, щоб з'єднати D + і D- разом? Ви повинні додати схему, що пояснює запропонований вами макет.
Сонячний Майк

@SolarMike Ділиться між двома - за "правильним" сценарієм, підключений лише один кабель, D + / D- інший роз'єм залишиться звисаючим.
пн.

7
Слід також розглянути можливість проектування корпусу з рухомою кришкою, щоб одразу було відкрито лише один порт USB. Таким чином ви чітко повідомляєте користувачеві, що їм дозволяється підключатися до одного з портів відразу, замість того, щоб плутати їх, коли вони підключаються до двох хостів, а один не працює.
Nonny Moose

4
не забувайте про користувача, якому вдається знайти кабель usb-самця та підключить пристрій до себе !!!
RozzA

Відповіді:


23

Як вказувалося, ви не можете безпосередньо підключити два хости до пристрою - тому якщо ви просто з'єднали їх і хтось підключив його до обох кінців, у вас виникне проблема.

Однак у вас також є проблеми, якщо підключено лише один кінець. USB, особливо швидкісний режим (480 Мбіт / с), керується імпедансом. Якщо ви з'єднаєте обидва лінії передачі даних між роз'ємами, ви отримаєте заглушку у високочастотній конструкції. Кабель, що йде до невикористаного роз'єму, погіршить продуктивність активного з'єднувача.

Щоб зробити це правильно, потрібно мультиплексор IC. Ви можете придбати спеціалізовані мультиплексори USB2.0, розроблені спеціально для такого типу додатків - щось на зразок TS3USB30 . Це дозволить вам підключити лінії передачі даних з обох портів до входів mux та внутрішньо підключити вихід до свого пристрою. Мукс від'єднає невикористаний роз'єм, який від'єднає заглушки лінії електропередачі.

Для живлення я б, мабуть, використовував силовий мультиплексор, такий як діодна АБО-ланцюгова схема. Лінія VBUS від одного з портів (до мультиплексора живлення) може бути використана як вхід до мультиплексора даних.

Земля була б загальною (підключена) між двома портами USB та вашим пристроєм.


1
Я не вважав заглушки - той мультиплексор (у поєднанні з силовим мультиплексором) виглядає ідеально!
пн.

3
Заглушки не повинні бути проблемою на повній швидкості - це все, про що ви питали у своєму запитанні.
Дейв Твід

1
@DaveTweed Я додав роз'яснення на повну швидкість після того, як я зрозумів, що ця відповідь охоплює High Speed. Знаючи, що я можу "відійти від цього", це добре для цієї конструкції, але я безумовно вдячний, знаючи наслідки на більшій швидкості.
пн.

Тепер мене щиро цікавить, як зробити підтримку atmega32u4 480Mbps :)
Дмитро Григор'єв

9

Мультиплексор, як запропонував Том Карпентер, - вдале рішення.

Але для повношвидкісного USB (12 Мбіт / с) заглушки в сигналах не особливо важливі. Якщо відстань між кінцями заглушки залишиться нижче 1/10 довжини хвилі, тобто нижче ~ 2 метри, відбиття не будуть сильно спотворювати форму хвилі.

Крім того, рівні напруги на D + та D-штифтах залишаться у межах допустимого діапазону, тому не існує великого ризику електронного пошкодження будь-якого хоста.

Основна проблема, яка залишається, - якщо ви з'єднаєте + 5В штифтів обох хостів разом, можуть бути задіяні великі струми. Ви можете використовувати діод від контакту + 5 В кожного роз'єму USB, щоб тільки пускати струм, ніколи не виходити.


4

Ледачим електронним способом дизайну було б просто використовувати фізичний мультироз'ємний перемикач, щоб вибрати, який з них використовувати.

Зауважте, що це матиме додаткову перевагу, якщо ви зможете залишити їх як підключеними, так і використовувати перемикач, щоб вибрати, який саме вхід використовувати.


2

Не існує сумісного з USB способу зробити це. USB не призначений для обміну між двома хостами, а спроби зробити це призведе до потенційно катастрофічних ситуацій.

У кращому випадку ви можете використовувати мультиплексор USB або комутатор ІС з GPIO, щоб визначити, до якого з'єднувача підключений. Вам доведеться вирішити, який USB-з'єднання має перевагу, оскільки обидва не можуть бути підключені до вашого інтерфейсу USB одночасно.

Або подивіться на альтернативи. Нехай один комп’ютер спілкується з іншим. Або користуйтеся Bluetooth або використовуйте Wi-Fi або інший тип з'єднання.


Я додав роз'яснення до питання - тільки один порт буде колись використаний одразу, і (сподіваємось), що ворота NAND можуть вирішити питання пріоритету шляхом простого відхилення сценарію "обидва підключені".
пн.

До яких згубних ситуацій, на вашу думку, це може призвести?
jpa

1
@jpa припустимо, дві системи мають, наприклад, потенціали "заземлення" на 50 В, наприклад. З'єднання їх обох із D- може бути "цікавим". Навіть якщо потенціали різняться лише на 50мВ, можливо, ви створили "заземлюючий контур", що генерує шум.
alephzero

1
@alephzero Звичайно, але навіть типовий мультиплексор або перемикач IC не впораються з цим. Земля, яка спочатку підключається в USB-роз'ємі, здебільшого усуває цю проблему.
jpa

2

У мене планшет Wacom з цією функцією. Вони вирішують проблему, яку ви описуєте, за допомогою механічного блокування.

Існує пластиковий повзунок, який блокує один або інший порт, залежно від його положення.

введіть тут опис зображення


1

Можливо, було б простіше залишити роз'єм USB на одній стороні корпусу і дублювати та / або переміщувати всі інші елементи, орієнтовані на користувача, симетрично. Потім корпус можна повернути таким чином, щоб порт USB був спрямований до роз'єму, а всі інші елементи все ще зручно доступні.

Інший варіант - знайти обидва порти на одній стороні корпусу (на протилежних кінцях) та додати всередину додатка ковзаючу заглушку, яку користувач може перемістити, щоб відкрити один або інший порт. 12 МГц USB має хороші шанси працювати з додатковим відключеним портом, приєднаним до нього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.