Por que o comprimento máximo do cabo USB é menor que no RS232?


9

Por que precisamos armazenar em buffer o sinal USB se o cabo tiver mais de 5m?
Isso ocorre porque uma queda de tensão no sinal?
Isso é porque gera correntes?


11
O Rs232 usa +/- 12 volts, USB 0-5 volts
mischnic

Respostas:


16

A velocidade da transmissão é importante porque o USB é half-duplex: para transmitir uma resposta, o barramento deve ser girado e os dados transmitidos na outra direção. Portanto, o host envia dados e aguarda uma confirmação ou resposta. Todas as transferências são controladas pelo host. O dispositivo tem um tempo (razoavelmente curto) para responder. Esse tempo é aproximadamente o tempo necessário para duas viagens de sinal ao longo de um cabo de 5m.

(Não consigo encontrar referências neste momento, mas os documentos de especificação relevantes são públicos)

Edit: obrigado psmears por encontrar esta seção

Soluções para cabos e longo curso

  1. Por que existem limites de comprimento de cabo e quais são eles?

R: O comprimento do cabo foi limitado por uma especificação de atraso de cabo de 26ns para permitir que os reflexos se instalassem no transmissor antes do envio do próximo bit. Como o USB usa terminação de fonte e drivers no modo de tensão, esse deve ser o caso, caso contrário, os reflexos podem se acumular e explodir o driver. Isso não significa que a tensão da linha tenha sido totalmente ajustada até o final do bit; com pior caso de subterminação. No entanto, houve amortecimento suficiente até o final do bit que a amplitude da reflexão foi reduzida para níveis gerenciáveis. O comprimento do cabo de baixa velocidade era limitado a 18ns para impedir que os efeitos da linha de transmissão impactassem os sinais de baixa velocidade.

  1. Quero construir um cabo com mais de 5 metros, por que isso não funciona?

A: Mesmo que você violasse as especificações, isso literalmente não o levaria muito longe. Supondo tempos de atraso na pior das hipóteses, um dispositivo de velocidade total na parte inferior de 5 hubs e cabos tem uma margem de tempo limite de 280ps. Reduzir essa margem para 0ps forneceria apenas 5 cm extras, o que dificilmente vale a pena.

Portanto, minha resposta é apenas meio certa: o limite de ida e volta é para uma cadeia de hubs e cabos na pior das hipóteses, para uma profundidade total de 25m.

Dan Neely também é certo que a USB foi sempre suposto ser a solução de menor custo para os periféricos "lento", como teclados, mouses, impressoras etc. Se você queria full duplex para mais velocidade e mais distância, 100baseT ethernet é a escolha natural.


O que faz um cabo USB de 20m. o que aconteceria? você diz que a tensão não muda e a velocidade é importante. Então, o que acontece na caixa de cabos de 20m e o USB não funciona?
usar o seguinte comando

2
O host envia uma solicitação, não recebe uma resposta a tempo e falha ao enumerar o dispositivo na outra extremidade.
Pjc50

4
Você tem certeza disso? De acordo com a especificação USB , o atraso de propagação do sinal ao longo do cabo deve ser <26ns (tabela 7-9); portanto, o sinal leva menos de 5,2 ns / m em um cabo padrão de 5m. O limite para o atraso de ida e volta é de cerca de 1,5 μs. Nessa velocidade, há tempo de sobra para o sinal sair e voltar por um cabo de> 100m. O Fórum de Implementadores USB fornece um motivo diferente para a limitação de 5m.
Psmears

Existe alguma razão para o USB 1.0-2.0 ser half-duplex em vez de full duplex desde o primeiro dia (como o USB 3.0)? Em outras palavras, existem vantagens práticas da metade do que o full duplex?
Tigrou

11
@tigrou de maneira mais ampla, o USB1 adotou opções simples em todos os lugares porque precisava ser barato o suficiente para implementar e competir com as portas RS232 / PS2 / LPT / Game. O silício ficou muito mais barato ao longo dos anos; mas ter um preço maior que o mínimo necessário para ser 'bom o suficiente' para os aplicativos direcionados resultou no USB2 matando o FireWire; e Thunderbolt cada vez mais parecendo natimorto.
Dan Is Fiddling Por Firelight

10

Consulte esta página, /superuser/64744/maximum-length-of-a-usb-cable .

Q1: quanto tempo de um cabo posso usar para conectar meu dispositivo? A1: Na prática, a especificação USB limita o comprimento de um cabo entre dispositivos de velocidade máxima a 5 metros (um pouco menos de 16 pés e 5 polegadas). Para um dispositivo de baixa velocidade, o limite é de 3 metros (9 pés e 10 polegadas).

P2: Por que não consigo usar um cabo com mais de 3 ou 5m? A2: O design elétrico do USB não permite. Quando o USB foi projetado, uma decisão foi tomada para lidar com a propagação de campos eletromagnéticos nas linhas de dados USB de uma maneira que limitava o comprimento máximo de um cabo USB a algo na faixa de 4m. Esse método possui várias vantagens e, como o USB é destinado a um ambiente de desktop, as limitações de alcance foram consideradas aceitáveis. Se você está familiarizado com a teoria das linhas de transmissão e deseja obter mais detalhes sobre este tópico, consulte a seção de sinais USB nas Perguntas frequentes dos desenvolvedores.


11
ainda doesnt explicar nada um monte de informações de nevoeiro
user16307

10
Pode ser nebuloso para você, mas não há uma maneira fácil de explicar a teoria dos sinais na sala que esse formato permite.
Wouter van Ooijen

5
Penso que esta resposta aponta certas razões pelas quais existem limitações. É muito fácil explorar ainda mais essas áreas fazendo uma pesquisa na web. Por exemplo, na teoria das linhas de transmissão. Foi por isso que postei esta resposta.
Mattias Johansson

11
Eu raramente voto negativo, por isso me sinto obrigado a justificar isso agora. Ao contrário do comentário de Wouter van Ooijen, eu realmente não acho que essa resposta forneça algo mais concreto do que uma sugestão possível de pesquisar em "Limitação do comprimento do cabo USB". Além disso, a resposta a que você se refere contém um link morto e, portanto, sua sugestão para uma leitura mais aprofundada nem é tão útil. Se você tivesse encontrado a fonte original correta e citado a partir disso, como psmears e pjc50, seria uma questão diferente - porque isso realmente fornece detalhes de por que essa limitação existe.
Oleksandr R.

5

Não é realmente possível "bufferizar" o USB, pelo menos não no sentido usual da palavra. Normalmente, buffer significa amplificação elétrica e talvez regeneração de sinal.

Com o USB, o host dirige a totalidade do barramento. Um host envia uma solicitação e o dispositivo precisa emitir uma resposta para o host. O início da resposta deve chegar ao host um certo tempo após o término da transmissão da solicitação. Com um cabo muito longo, o atraso de propagação é muito longo para que a resposta chegue ao host a tempo.

Portanto, existem soluções alternativas, e nenhuma delas envolve "buffering" simples, pois o buffer adiciona atrasos adicionais e precisamos, de alguma forma, tornar o host mais tolerante a um atraso maior.

Existem duas classes de soluções alternativas:

  1. Soluções alternativas que inserem hubs físicos ou virtuais. Se um host enumera um hub no barramento, o próprio hub adiciona um atraso extra e há outro cabo potencialmente completo entre o hub e o host. Quaisquer solicitações de dispositivos que se conectam a jusante do hub são agendadas com atrasos adicionais.

    1. Você pode inserir um hub de porta única a cada 4m do cabo, com até 7 hubs em série. A limitação é de 7 níveis de hubs do host para o dispositivo final; portanto, se houver hubs a montante da sua engenhoca, você precisará reduzir o número de hubs de acordo. Muitos hosts USB incluem um hub interno de nível único; portanto, um limite realista seria 28m de cabo, com 6 hubs em série. Todos os hubs, exceto o primeiro, terão que fingir ser auto-alimentados.

    2. Você pode adicionar hubs virtuais, com um transceptor robusto com pré-ênfase, diretamente no plugue que entra no host e depois transmitir o tráfego USB através de um cabo mais longo. Enquanto os sinais recebidos pelo dispositivo no final de um cabo estendido estiverem dentro das especificações, e enquanto o seu receptor puder recuperar os dados enviados pelo dispositivo padrão por um cabo longo, você estará bem. Os hubs virtuais são adicionados para que o host permita um longo atraso - mas é claro que não há hubs físicos, apenas uma representação deles.

  2. Soluções alternativas que emulam um dispositivo que parece "lento" em um nível mais alto de protocolo. É assim que alguns "extensores" USB Cat-5 funcionam. Existem cinco parceiros aqui: o host real (rHost), um dispositivo emulado visto por ele (eDev), um cabo longo, um host emulado (eHost) e os dispositivos que o veem na extremidade do cabo (rDev) .

    Inicialmente, o eDev finge não estar lá. Em algum momento, o eHost vê que um rDev foi conectado. Ele o enumera e encaminha os dados para o eDev. O eDev emula um evento de plug-in e o rHost o enumera. O rHost acredita que vê o rDev, mas apenas o eDev está lá, fingindo. Da mesma forma, o rDev pensa que vê um rHost, mas é apenas um eHost lá, fingindo.

    Eventualmente, o rHost deseja emitir algumas transferências para o rDev que acredita estar lá, para usá-lo. Para transferências IN, o eDev finge não ter dados (respostas com um NAK). A solicitação de transferência é encaminhada para o eHost, que a executa novamente com o rDev. Os resultados são encaminhados de volta ao eDev, que usa os resultados na próxima vez que o host tentar a transferência.

    Para transferências OUT, o eDev precisa adivinhar qual seria o comportamento do rDev. Existem várias heurísticas e comportamentos que podem ser tentados aqui. Uma maneira é o eDev sempre receber os dados e responder com um ACK. A transferência é encaminhada para o eHost, que depois repete a transferência para o rDev. Idealmente, o rDev eventualmente consumirá os dados e os aceitará. Se isso não der certo, ou se o rDev responder com um STALL, o melhor que o eDev poderá fazer é agir dessa maneira na próxima transferência do host. Como alternativa, o eDev sempre pode NAK a transferência, com a suposição geralmente correta de que o host simplesmente tentará a transferência idêntica posteriormente. Embora a transferência original tenha sido NAK-ed, ela é encaminhada para o eHost, que executa a transferência com o rDev. Qualquer que seja a resposta do rDev, ela se torna a resposta do eDev assim que o aprende.

    As implementações realistas começarão com heurísticas conservadoras que envolvem ida e volta completa ao rDev para todas as transferências que podem ser adiadas por um NAK. À medida que as transferências prosseguem, o comportamento esperado do rDev pode ser aprendido e o eDev pode se tornar menos conservador. O "extensor" pode usar o conhecimento de classes USB padrão e algumas classes / conhecimentos de dispositivos / listas negras / listas de permissões específicas de fornecedores para oferecer melhor desempenho também.


Os hubs alternativos não poderiam fingir ser alimentados por barramento? Eu acho que um hub alimentado por barramento pode alimentar um hub com alimentação própria, não é?
supercat

Nada a ver com o barramento - é o atraso total em resposta a um ACK.
Pjc50

@ supercat Sim, pode haver hubs alternativos de simulação. Não importa como você faz isso, desde que a árvore de fingir dispositivo pareça compatível com o host.
Reintegrar Monica

@ pjc50 de acordo com as especificações USB, o atraso máximo de ACK é de cerca de 400ns. O sinal de tempo pode percorrer 40 metros de cobre em ambas as direções. Não é um fator limitante aqui.
ZAB


2

A maioria dos esquemas de transmissão de dados por cabo possui um padrão decente reconhecido internacionalmente que descreve como implementá-los, incluindo uma especificação para a "impedância característica" do cabo (pense nisso como resistência, mas aplica-se à corrente alternada), impedância de terminação (a 'resistência' no final da conexão, necessária para evitar reflexos do seu sinal retornando ao cabo de volta ao remetente), geralmente uma 'taxa de variação' especificada (o tempo que leva para o sinal mudar de uma Estado 0 para 1 estado ou vice-versa) e, portanto, o número máximo de transições entre 0/1 por segundo (ou seja, kbps / Mbps / Gbps) e, por quanto tempo, o cabo pode demorar até a integridade do sinal diminuir o material para de funcionar corretamente.

Comparado ao USB, o RS232 possui todas as especificações do tipo de cabo, impedância característica, taxa de giro, comprimento do cabo, tipo de conector. Certamente, os conectores D de 25 pinos e 9 pinos eram comuns, mas, na realidade, o RS232 foi projetado para todos os tipos de conectores, cabos e produtos sem nenhuma especificação real para dizer o contrário. Na prática, com o RS232, geralmente é possível percorrer distâncias maiores, diminuindo para uma taxa mais baixa de bits por segundo (aka 'baud'). A distância máxima que você pode alcançar também será determinada em grande parte pela impedância do seu cabo, seja ele blindado ou não, terminação no final e assim por diante.

e, ao comparar o RS232 ao USB, você está comparando um 'padrão' da década de 1960 que superou os 115k2 (com raras exceções), com um dos anos 90 e 2000 que começou a 1,5 Mbps, uma ordem de magnitude mais rápida, depois 12Mbps (quase 100x mais rápido) e 480Mbps (quase 5000x mais rápido), mas o que significava que os parâmetros e o comprimento do cabo desempenhavam um papel importante ao fazê-lo funcionar de maneira confiável . Ele foi projetado como um padrão de conexão periférica de desktop; portanto, 5m foram considerados aceitáveis ​​e, em seguida, todos os parâmetros dos cabos e conectores e velocidades foram estabelecidos a partir desse ponto. Se houvesse uma maneira de tornar o USB mais lento, você provavelmente poderia executá-lo em cabos mais longos (sem repetidor).


2
O RS232 pode ter "atingido o limite" em 115K, mas lembro-me de quando havia um link de 110 ou 300 bits por segundo entre um teleprinter e um modem. Os sinais estavam desequilibrados, a tensão oscilava de -12V a + 12V e não havia par trançado, terminação ou blindagem. A essa velocidade, e em distâncias tão curtas, as características do fio não significavam nada. Mais tarde, quando as pessoas queriam enviar a velocidades mais altas em centenas de metros, obtivemos o RS422 e o RS485, que diziam muito mais sobre a linha de fio como transmissão.
Solomon Slow
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.