USB 2를 연결하는 칩
Twitter에서 [whitequark]는 흥미로운 디자인, 즉 VL670의 브레이크아웃 보드를 발견하고 강조했으며, 그 유용성과 내부 작동에 대한 광범위하면서도 이해하기 쉬운 글이 함께 제공됩니다. VL670은 USB 2.0 신호를 USB 3.0으로 변환하는 놀라운 문제를 해결하는 칩입니다.
USB 2.0 장치와 USB 3.0 신호만 사용할 수 있는 호스트가 있는 경우 이 칩이 적합합니다. 당황스러울 수도 있습니다. 이것이 왜 필요한가요? 세 개의 차동 쌍 중 하나가 제대로 접촉하지 않는 9핀 USB 3.0 커넥터를 처리해야 한다면 누구나 추론할 수 있는 USB3의 잘 알려지지 않은 어두운 비밀에 관한 것입니다.
파란색 "3.0" 포트가 보이면 실제로는 USB 2와 USB 3입니다. 두 개의 별도 인터페이스가 단일 커넥터에 결합되어 있습니다. USB 3은 PCI-E와 유사한 두 개의 단일 방향 차동 쌍을 사용하는 반면 USB 2는 단일 양방향 쌍을 사용하며 파란색 커넥터의 두 인터페이스는 기본적으로 서로 독립적으로 작동합니다. 단순히 "더 빠른 이전 버전과 호환되는 USB"를 위해 "USB 3.0"을 사용하면 직관에 반하는 많은 의미가 있으며 이는 고통스러운 결과를 초래합니다.
예를 들어, USB 3 허브 IC에는 내부에 두 개의 별도 허브 엔터티가 있습니다. 하나는 USB 3용이고 다른 하나는 USB 2용입니다. USB 3 허브가 USB 3 포트에 연결되어 있어도 여기에 연결된 여러 USB 2 장치는 여전히 침입할 수 없습니다. USB 2 업링크 제한은 480MBps입니다. 더 빠른 업링크를 갖춘 더 빠른 허브가 USB 2 장치 속도 문제를 해결할 것이라고 생각했다면 USB-IF 엔지니어들은 분명히 다르게 생각했을 것입니다. "많은 저렴한 SDR 및 Pi 4 in a box" 설정에 대한 해결 방법을 찾아야 할 수도 있습니다.
재미있는 파티 트릭으로, USB 3 장치 열거는 USB 2만 폴백으로 사용하므로 이론적으로는 8개의 장치(USB 2 장치 4개와 USB 3 장치 4개)를 4포트 USB 3 허브에 연결할 수 있습니다. 실제로 일부 USB 장치는 USB 3 레인만 사용하며 USB 2 레인에도 연결하지 않습니다. 예, 이는 또한 6개의 USB 장치를 Raspberry Pi 4에 연결할 수 있고 OTG 포트를 호스트 모드로 전환하면 7개까지 연결할 수 있음을 의미합니다.
따라서 USB 2와 USB 3 사이에 갇힌 경우 VL670이 기능적인 솔루션입니다. 그러나 표준의 결함을 해결하기 때문에 자체적으로 규정을 준수하지는 않습니다. (USB 표준을 준수하지 않는다고 해서 누구도 막을 수는 없었습니다.)
TaoBao에서 VL670 칩을 사용할 수 있는 것으로 보이는 부품을 주문하고 제작할 수 있는 오픈 소스 개발 보드가 있습니다. 이 칩은 원래 무엇을 위해 만들어졌나요? 분명히 VirtualLink는 꽤 많은 사람들이 죽은 것을 보고 기뻐하는 표준입니다. 앞서 언급한 광범위한 글에서는 더 관련성이 높은 사용 사례에 대해 설명합니다. 그러나 예를 들어 USB 3 신호는 전기적으로 분리하기가 더 쉽다는 것이 밝혀졌습니다!
우리는 USB 3과 USB 2의 특성에 대해 논의했지만 그 의미를 더 명확하게 확립했습니다. USB의 다른 숨겨진 부분에 대해 궁금하신 분은 [Kate Temkin]과 함께 진행한 Hacking USB Hack Chat을 확인해 보세요!