Mocking USB



Mais uma vez, ao conectar uma unidade flash USB de alta velocidade na porta USB 3.0, vi a inscrição " Este dispositivo pode funcionar mais rápido ... ". Mas espere, eu já conectei na porta 3.0! O contato é lixo? E em caso afirmativo, como a unidade flash determina a velocidade em que funciona? Afinal, os PCs modernos suportam até três padrões de conexão - USB 1.1, 2.0 e 3.0. É possível “rebaixar” o padrão USB forçando o dispositivo a funcionar, por exemplo, no USB 1.1? Nem todas essas perguntas foram respondidas na rede, e eu decidi descobrir sozinho, ao longo do caminho, diante de situações pouco óbvias.



Downgrade de USB 3.0 para 2.0

Agora você dirá - o que poderia ser mais fácil, basta pegar um cabo USB 2.0 - e você estará absolutamente certo. Se não houver pinos USB 3.0 no cabo ou conector, o dispositivo não terá outra saída a não ser começar na velocidade de USB 2.0:





Mas qual fio desconectado em particular mudará para USB 2.0? O que acontece se você desligar apenas um ou fechar os vizinhos? É interessante ir além do padrão e experimentar!



Para experiências, soldei o USB "mãe" e o USB "pai" com fios na placa de ensaio:





Na foto, não é apenas aquele fio no ar. Descobriu-se que a conexão funciona bem mesmo sem um dos condutores diff SS_TX. casais! (para o par SS_RX, este truque não funciona mais)



Além disso, se você desconectar todos os contatos USB 3.0, exceto SS_TX, o dispositivo continua a acreditar que está conectado ao USB 3.0 e não é detectado no sistema. Para ser honesto, eu tinha certeza de que a conexão neste caso mudaria para o modo 2.0:



aqui SS_RX-, SS_RX + e SS_TX + estão desabilitados.Totalmente,



concluímos que o dispositivo USB 3.0 verifica se há uma conexão SuperSpeed ​​na linha SS_TX, e o transceptor é tão resistente a erros que cuspiu na quebra de uma das falas da dupla. Para garantir que o dispositivo mude para USB 2.0, ambas as linhas devem ser interrompidas: SS_TX- e SS_TX +.



Downgrade de USB para 1.1



USB 2.0 é bom para todos, mas dói muito inteligente. Se você já tentou farejá-lo com um analisador lógico, ou você tem um analisador muito legal ou encontrou um hub USB antigo como este:





Apesar do fato de que a Internet está repleta de perguntas "como fazer o downgrade de USB 2.0 para 1.1", não vi uma solução simples em lugar nenhum:





Vamos olhar mais de perto! De acordo com o padrão USB, a velocidade operacional é consistente no nível do sinal. O dispositivo eleva o nível D para 0,8v, e o host responde com um sinal dente de serra:





Vemos a mesma coisa em nosso "suporte experimental" em um osciloscópio:





Ou seja, você precisa ter certeza de que o host não veja esse aumento de tensão. Então - colocamos o diodo no gap da linha D (Schottky, para minimizar a queda):





Iiii suprime com sucesso o sinal do dispositivo sem interferir na transmissão normal de dados:









E aqui eu tinha certeza que o diodo iria atrapalhar a transmissão de dados na linha e nada funcionaria, mas não - não consegui encontrar um único dispositivo que não funcionasse através de tal "adaptador".



Juntando um rebaixador



Como uma generalização dos experimentos acima, fiz uma troca simples de modo USB passivo - 1.1 / 2.0 / 3.0



Meu desejo de simplicidade às vezes é impossível de conter. Eu queria implementar tudo em um único switch de três posições, assim:







A ideia original era - uma linha de contatos muda D- entre:



  • "Diodo" (USB 1.1)
  • Vazio (USB 3.0)
  • "D-" (USB 2.0)


E outra linha de pinos conecta SS_TX- apenas no modo USB 3.0:



  • Vazio (USB 1.1)
  • "SS_TX-" (USB 3.0)
  • Vazio (USB 2.0)


Mas rejeitei essa ideia por causa de dúvidas - dificilmente todos os dispositivos USB 3.0 serão capazes de funcionar apenas em uma linha diff. casais. Então eu refiz a mudança com um alicate:





Agora, o contato do meio alterna entre os extremos, e na posição do meio a chave fecha dois pares de contatos independentes. Idealmente! Resta soldar e pronto:



TODO: dilua a placa de circuito impresso e faça lindamente



Tudo, agora você pode ter certeza que o pen drive funciona no modo 3.0 (2.0, 1.1), caso contrário ele simplesmente não será encontrado no sistema. Concluindo, testamos nosso leitor de cartão em várias posições de chave.



"3.0":



"2.0":


por algum motivo, a velocidade do USB 1.1 não gostou do Crystal Disk Mark e, como resultado do teste, mostrou zeros



Questão difícil



Existem dois pares de contatos no conector USB 3.0 - USB 2.0 e USB 3.0, já descobrimos que o dispositivo (pen drive, leitor de cartão) primeiro sobe nos pinos 3.0 e, se não funcionar, passa para o modo 2.0.



E se você conectar um dispositivo a 3.0 pinos e outro a 2.0? Qual dispositivo o computador verá?





Tente responder à enquete abaixo antes de olhar sob o spoiler.



Responda
, USB 3.0 SATA- USB 2.0 :













! , USB 3.0 . , Intel.




All Articles