2 개의 포트가있는 USB 장치-사용자가 두 장치 모두 연결하는 것을 방지하는 방법


11

인클로저의 반대쪽 끝에 각각 하나씩 2 개의 포트를 제공하려는 전속 USB 장치가 있습니다. 케이블을 가장 편리한 곳에 연결할 수 있습니다. 내 MCU (atmega32u4)에는 인터페이스가 하나만 있으므로 물리적 포트는 공유되지만 한 번에 하나만 연결해야합니다.

물론 사용자는 한 번에 양쪽을 연결하지 않을 것을 신뢰할 수 없습니다. 이것을 방지하는 방법?

내가 생각해 낸 아이디어 :

  • "있는 그대로"연결하고 호스트가 연결된 D + / D- 핀을 처리 할 수 ​​있기를 바랍니다.
  • 입력으로 별도의 5V 핀이있는 NAND 게이트, 둘 다 연결되면 Vcc를 분리하는 MOSFET으로 출력됩니다.

두 번째 옵션이 합리적으로 들리거나 더 복잡한 솔루션이 필요합니까?


D +와 D-를 서로 연결하기 위해 두 포트를 어떻게 연결해야합니까? 제안하는 레이아웃을 설명하는 다이어그램을 추가해야합니다.
Solar Mike

@SolarMike "올바른"시나리오에서 두 케이블 사이에 공유되며 하나의 케이블 만 연결하면 다른 커넥터의 D + / D-는 매달려 있습니다.
monty

7
또한 한 번에 하나의 USB 포트만 노출되도록 움직이는 커버로 케이스를 디자인하는 것을 고려해야합니다. 이렇게하면 두 개의 호스트를 연결할 때 하나의 포트가 작동하지 않을 때 혼동하지 않고 한 번에 하나의 포트에만 연결할 수 있음을 사용자에게 명확하게 알릴 수 있습니다.
Nonny Moose

4
남성-남성 USB 케이블을 찾고 장치를 자체에 연결하는 사용자를 잊지 마십시오!
RozzA

답변:


23

지적했듯이 두 개의 호스트를 장치에 직접 연결할 수 없으므로 호스트를 함께 연결하고 누군가가 양쪽 끝에 연결하면 문제가 발생합니다.

그러나 한쪽 끝만 연결하면 문제가 발생합니다. USB, 특히 고속 (480Mbps) 모드는 임피던스를 제어합니다. 두 커넥터 데이터 라인을 함께 연결하면 고주파수 설계에서 스터브 (stub)라고합니다. 사용되지 않은 커넥터로가는 케이블은 활성 커넥터의 성능을 저하시킵니다.

이를 올바르게하려면 멀티플렉서 IC가 필요합니다. TS3USB30 과 같은 이런 종류의 애플리케이션을 위해 특별히 설계된 전용 USB2.0 멀티플렉서를 구입할 수 있습니다 . 그러면 두 포트의 데이터 라인을 mux 입력에 연결하고 출력을 장치에 내부적으로 연결할 수 있습니다. mux는 사용되지 않는 커넥터를 분리하여 전송 라인 스터브를 분리합니다.

전력을 위해 아마도 다이오드 OR-ing 회로와 같은 전력 멀티플렉서를 사용할 것입니다. 그런 다음 포트 중 하나 (파워 멀티플렉서 이전)의 VBUS 라인을 데이터 멀티플렉서의 입력으로 사용할 수 있습니다.

두 USB 포트와 장치 사이의 접지는 공통 (연결)됩니다.


1
나는 스텁을 고려하지 않았습니다. 멀티플렉서 (파워 멀티 플렉스와 결합)가 이상적으로 보입니다!
monty

3
스텁은 Full Speed에서 문제가되지 않아야합니다. 질문에 대한 모든 질문입니다.
Dave Tweed

1
@DaveTweed 나는이 답변이 High Speed에 적용되었다는 것을 깨달은 후 Full Speed ​​설명을 추가했습니다. 내가 "나갈 수있다"는 것은이 디자인에는 좋지만, 더 빠른 속도로 그 의미를 알고 있다는 점을 분명히 고맙게 생각합니다.
monty

이제 atmega32u4를 480Mbps로 지원하는 방법에 관심이 있습니다.
Dmitry Grigoryev

9

Tom Carpenter가 제안한 멀티플렉서는 좋은 솔루션입니다.

그러나 최고 속도 USB (12Mbps)의 경우 신호의 스텁은 특별히 중요하지 않습니다. 스터브 끝 사이의 거리가 파장의 1/10 미만, 즉 ~ 2 미터 미만으로 유지되면 반사로 인해 파형이 많이 왜곡되지 않습니다.

또한 D + 및 D- 핀의 전압 레벨이 허용 가능한 범위 내로 유지되므로 호스트에 대한 전자적 손상 위험이 크지 않습니다.

남아있는 주된 문제는 두 호스트의 + 5V 핀을 함께 연결하면 큰 전류가 발생할 수 있다는 것입니다. 각 USB 커넥터의 + 5V 핀에서 다이오드를 사용하여 전류가 들어오지 않도록 할 수 있습니다.


4

게으른 전자 설계 방식은 물리적 멀티 커넥터 스위치를 사용하여 어느 것을 사용할지 선택하는 것입니다.

이렇게하면 둘 다 꽂아두고 스위치를 사용하여 사용할 입력을 선택할 수 있다는 이점이 있습니다.


2

이 작업을 수행하는 USB 호환 방법은 없습니다. USB는 두 호스트간에 공유되도록 설계되지 않았으므로 공유하려고하면 잠재적으로 치명적인 상황이 발생할 수 있습니다.

기껏해야 GPIO와 함께 USB 멀티플렉서 또는 스위치 IC를 사용하여 어떤 커넥터가 연결되어 있는지 확인할 수 있습니다. USB 인터페이스에 동시에 연결할 수 없으므로 어떤 USB 연결이 우선해야하는지 결정해야합니다.

또는 대안을보십시오. 한 컴퓨터가 다른 컴퓨터와 통신하게하십시오. 또는 Bluetooth를 사용하거나 Wi-Fi 또는 다른 연결 유형을 사용하십시오.


질문에 설명을 추가했습니다. 한 번에 하나의 포트만 사용되며 NAND 게이트는 "두 연결"시나리오를 간단히 거부하여 우선 순위 문제를 해결할 수 있습니다.
monty

어떤 재앙이 발생할 수 있다고 생각합니까?
jpa

1
@jpa는 두 시스템이 예를 들어 50V가 다른 "접지"전위를 갖는다 고 가정합니다. 둘 다 D에 연결하면 "흥미로운"것일 수 있습니다. 전위가 50mV 만 다르더라도 노이즈 생성 "접지 루프"가 생성되었을 수 있습니다.
alephzero

1
@alephzero 물론, 일반적인 멀티플렉서 또는 스위치 IC조차도 처리하지 못합니다. 그러나 USB 커넥터에서 먼저 연결하는 접지는 대부분 해당 문제를 제거합니다.
jpa

2

이 기능을 갖춘 와콤 타블렛이 있습니다. 기계식 인터록을 사용하여 설명하는 문제를 처리합니다.

위치에 따라 한 포트 또는 다른 포트를 차단하는 플라스틱 슬라이더가 있습니다.

여기에 이미지 설명을 입력하십시오


1

아마도 USB 커넥터를 인클로저의 한쪽에두고 다른 모든 사용자 대면 요소를 대칭으로 복제 및 / 또는 재배치하는 것이 더 쉬울 것입니다. 그런 다음 인클로저를 회전하여 USB 포트가 커넥터를 향하도록하고 다른 모든 요소는 여전히 편리하게 액세스 할 수 있습니다.

다른 옵션은 인클로저의 한 쪽 (양쪽 끝)에 두 포트를 모두 배치하고 사용자가 한 포트 또는 다른 포트를 열도록 이동할 수있는 인클로저 내부에 슬라이딩 스터브를 추가하는 것입니다. 12MHz USB는 별도의 분리 된 포트가 연결되어있을 가능성이 높습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.