답변:
USB는 반이중이기 때문에 전송 속도가 중요합니다. 응답을 전송하려면 버스를 돌리고 다른 방향으로 데이터를 전송해야합니다. 따라서 호스트는 데이터를 전송하고 승인 또는 응답을 기다립니다. 모든 전송은 호스트에 의해 제어됩니다. 그런 다음 장치는 응답 할 시간이 상당히 짧습니다. 이 시간은 대략 5m 케이블을 따라 두 번의 신호 트립에 걸리는 시간입니다.
(이번에는 참고 문헌을 찾을 수 없지만 관련 사양 문서는 공개입니다)
편집 : 이 섹션 을 찾는 psmears 덕분에
케이블 및 장거리 솔루션
- 케이블 길이 제한이있는 이유는 무엇입니까?
A : 케이블 길이는 26ns의 케이블 지연 사양에 의해 제한되어 다음 비트가 전송되기 전에 송신기에서 반사가 안정되도록합니다. USB는 소스 터미네이션 및 전압 모드 드라이버를 사용하기 때문에, 그렇지 않으면 반사로 인해 드라이버가 쌓일 수 있습니다. 이것은 라인 전압이 비트의 끝까지 완전히 안정화되었음을 의미하지는 않습니다. 최악의 경우 언더 언. 그러나 반사 진폭이 관리 가능한 수준으로 감소 된 비트의 끝에 충분한 감쇠가있었습니다. 전송 라인 효과가 저속 신호에 영향을 미치지 않도록 저속 케이블 길이는 18ns로 제한되었습니다.
- 5 미터보다 긴 케이블을 만들고 싶습니다. 왜 안되나요?
A : 사양을 위반하더라도 문자 그대로 적용 할 수 없습니다. 최악의 지연 시간을 가정하면 5 개의 허브 및 케이블 하단에있는 최고 속도 장치의 타임 아웃 마진은 280ps입니다. 이 마진을 0ps로 줄이면 5cm 만 추가 할 수 있으므로 문제가되지 않습니다.
그래서 내 대답은 반 오른쪽입니다. 왕복 제한은 최악의 허브와 케이블 체인에 대한 것이며 총 깊이는 25m입니다.
또한 Dan Neely는 USB가 항상 키보드, 마우스, 프린터 등과 같은 "느린"주변 장치를위한 가장 저렴한 솔루션이라고 생각했습니다. 더 빠른 속도 와 거리를 위해 전이중을 원한다면 100baseT 이더넷이 자연스럽게 선택됩니다.
이 페이지 ( /superuser/64744/maximum-length-of-a-usb-cable)를 참조하십시오 .
Q1 : 장치를 연결하는 데 얼마나 오래 케이블을 사용할 수 있습니까? A1 : 실제로 USB 사양은 최고 속도 장치 간의 케이블 길이를 5 미터 (16 피트 5 인치 미만)로 제한합니다. 저속 장치의 경우 제한은 3 미터 (9 피트 10 인치)입니다.
Q2 : 왜 3m 또는 5m보다 긴 케이블을 사용할 수 없습니까? A2 : USB의 전기 설계는 허용하지 않습니다. USB를 설계 할 때 USB 케이블의 최대 길이를 4m 범위로 제한하는 방식으로 USB 데이터 라인에서 전자기장 전파를 처리하기로 결정했습니다. 이 방법에는 여러 가지 장점이 있으며 USB는 데스크탑 환경을 대상으로하기 때문에 범위 제한이 허용되는 것으로 간주되었습니다. 전송 회선 이론에 익숙하고이 주제에 대한 자세한 내용을 보려면 개발자 FAQ의 USB 신호 섹션을 살펴보십시오.
적어도 일반적인 단어의 의미로는 USB를 "버퍼링 (buffer)"할 수 없습니다. 일반적으로 버퍼링은 전기 증폭 및 신호 재생을 의미합니다.
USB를 사용하면 호스트가 전체 버스를 구동합니다. 호스트는 요청을 보내고 장치는 호스트에 응답을 발행해야합니다. 요청의 전송이 완료된 후 특정 시간에 응답의 시작이 호스트에 도착해야합니다. 케이블이 너무 길면 전파 지연이 너무 길어 응답이 호스트에 도달하기에 너무 깁니다.
따라서 해결 방법이 있으며 버퍼링에 추가 지연이 발생하기 때문에 간단한 "버퍼링"과 관련된 것은 없으며, 호스트가 더 긴 지연에 더 잘 견딜 수 있도록해야합니다.
해결 방법에는 두 가지 클래스가 있습니다.
물리적 또는 가상 허브를 삽입하는 해결 방법 호스트가 버스의 허브를 열거하면 허브 자체에 추가 지연이 발생하며 허브와 호스트 사이에 다른 전체 길이 케이블이있을 수 있습니다. 허브에서 다운 스트림으로 연결되는 장치에 대한 요청은 추가 지연으로 예약됩니다.
최대 4 개의 허브를 직렬로 연결하여 케이블의 4m마다 단일 포트 허브를 삽입 할 수 있습니다. 제한은 호스트에서 최종 장치까지 7 단계의 허브로 제한되므로, 업스트림에 허브가있는 경우 그에 따라 허브 수를 줄여야합니다. 많은 USB 호스트에는 단일 레벨의 내부 허브가 포함되어 있으므로 실제 제한은 28m의 케이블이며 6 개의 허브가 직렬로 연결됩니다. 첫 번째 허브를 제외한 모든 허브는 자체 전원 공급을 가장해야합니다.
호스트에 들어가는 플러그에 바로 프리 앰 퍼시스가있는보다 강력한 송수신기를 사용하여 가상 허브를 추가 한 다음 더 긴 케이블을 통해 USB 트래픽을 전송할 수 있습니다. 이러한 확장 케이블의 끝에서 장치가 수신 한 신호가 사양 내에 있고 수신기가 긴 케이블을 통해 표준 장치에서 전송 한 데이터를 복구 할 수있는 한 문제가 없습니다. 호스트가 긴 지연을 허용하도록 가상 허브가 추가됩니다. 물론 물리적 허브는 없습니다.
더 높은 수준의 프로토콜에서 "느린"것처럼 보이는 장치를 에뮬레이트하는 대안. 이것이 Cat-5 USB "확장기"의 작동 방식입니다. 여기에는 5 개의 파트너가 있습니다 : 실제 호스트 (rHost), 여기에 보이는 에뮬레이트 된 장치 (eDev), 긴 케이블, 에뮬레이트 된 호스트 (eHost), 그리고 케이블의 맨 끝에있는 장치 (rDev) .
처음에는 eDev가 존재하지 않는 척합니다. 때때로 eHost는 rDev가 연결되어 있음을 확인합니다. eDev는 열거하고 데이터를 eDev로 전달합니다. 그런 다음 eDev는 플러그인 이벤트를 에뮬레이트하고 rHost가이를 열거합니다. rHost는 rDev를보고 있다고 생각하지만 eDev 만 존재합니다. 비슷하게, rDev는 그것이 rHost를 본다고 생각하지만, 단지 eHost 만 존재합니다.
결국, rHost는 그것을 사용한다고 생각되는 rDev로 일부 전송을 실행하려고합니다. IN 전송의 경우 eDev는 데이터가없는 것으로 가장합니다 (NAK로 응답). 전송 요청은 eHost로 전달되고 rDev로 다시 실행됩니다. 이 결과는 다음에 호스트가 전송을 시도 할 때 결과를 사용하는 eDev로 다시 전달됩니다.
OUT 전송의 경우, eDev는 rDev의 동작이 무엇인지 추측해야합니다. 여기서 시도 할 수있는 다양한 휴리스틱과 동작이 있습니다. 한 가지 방법은 eDev가 항상 데이터를 수신하고 ACK로 응답하는 것입니다. 전송은 eHost로 전달 된 다음 rDev로 전송을 재생합니다. 이상적으로 rDev는 결국 데이터를 소비하고 ACK합니다. 이것이 성공하지 못하거나 rDev가 STALL로 응답하는 경우 eDev가 할 수있는 최선의 방법은 호스트에서 다음 전송시이 방법으로 수행하는 것입니다. 또는 eDev는 항상 호스트가 나중에 동일한 전송을 다시 시도한다는 올바른 가정을 통해 전송을 NAK 할 수 있습니다. 원래 전송은 NAK-ed 였지만 eHost로 전달되고 rDev를 사용하여 전송이 실행됩니다. rDev의 답이 무엇이든 eDev가 알게 되 자마자 답장이됩니다.
현실적인 구현은 NAK가 연기 할 수있는 모든 전송에 대해 rDev 로의 전체 왕복이 포함 된 보수적 휴리스틱으로 시작됩니다. 전송이 진행됨에 따라 rDev의 예상 동작을 학습 할 수 있으며 eDev는 덜 보수적 일 수 있습니다. "확장자"는 표준 USB 클래스에 대한 지식과 일부 공급 업체별 클래스 / 장치 지식 / 블랙리스트 / 화이트리스트를 사용하여 성능을 향상시킬 수 있습니다.
케이블을 통한 데이터 전송 방식은 대부분 케이블의 "특성 임피던스"(저항으로 생각하지만 AC에 적용됨), 종단 임피던스 ( 연결이 끝날 때 '송신기쪽으로 케이블을 다시 수신하는 신호 반사를 피하기 위해 필요한 연결 저항'의 '저항', 종종 지정된 '슬 루율'(신호가 신호에서 전환되는 데 걸리는 시간) 0- 상태에서 1- 상태로 또는 그 반대로), 따라서 초당 0/1 (즉, kbps / Mbps / Gbps) 사이의 최대 전환 수, 따라서 신호 무결성이 저하되기 전에 케이블이 얼마나 오래 지속될 수 있습니까? 물건이 제대로 작동하지 않습니다.
RS232는 USB와 비교하여 케이블 유형, 특성 임피던스, 슬 루율, 케이블 길이, 커넥터 유형에 대한 모든 사양을 제공합니다. 물론, 25 핀 및 9 핀 'D'커넥터가 일반적이지만 RS232는 실제로 다른 언급이없는 모든 종류의 커넥터 및 케이블 및 제품에 설계되었습니다. 실제로 RS232를 사용하면 일반적으로 더 낮은 초당 비트 수 (일명 'baud')로 떨어 뜨려 더 먼 거리를 갈 수 있습니다. 달성 할 수있는 최대 거리는 케이블의 임피던스, 쉴드 여부, 끝의 종료 여부 등에 따라 결정됩니다.
RS232와 USB를 비교할 때, 115k2에서 거의 최고를 기록한 1960 년대 (드문 예외는 제외)의 '표준'과 1.5Mbps에서 시작된 1990 년대와 2000 년대의 하나의 표준을 훨씬 더 빠르게 비교하고 있습니다. 12Mbps (거의 100 배 빠름), 480Mbps (거의 5000 배 빠름)이지만 케이블 매개 변수와 케이블 길이가 안정적으로 작동하는 데 중요한 역할을했습니다 . 데스크탑 주변 장치 연결 표준으로 설계되었으므로 5m가 수용 가능한 것으로 간주 된 다음 케이블 및 커넥터 및 속도의 모든 매개 변수가 해당 지점에서 내려졌습니다. USB를 느리게 만드는 방법이 있다면 더 긴 케이블 (리피터없이)에서 USB를 실행할 수 있습니다.