Por que os dispositivos USB precisam de enumeração se puderem ser identificados exclusivamente pela porta do barramento e do hub?

3

Ao mexer no sistema de arquivos Linux / sys, pode-se encontrar todos os dispositivos USB nos diretórios cujos nomes representam os acréscimos físicos dos dispositivos USB.

ls /sys/bus/usb/devices
1-0:1.0  1-1  1-1:1.0  1-2  1-2:1.0  2-0:1.0 usb1  usb2

Agora, a partir do site , descobri que os números representam o caminho físico para o dispositivo, incluindo qualquer hub no caminho:

As the devices go further down in the USB tree, and as more and more USB hubs are used, the hub port number is added to the string following the previous hub port number in the chain. For a two-deep tree, the device name looks like:

root_hub-hub_port-hub_port:config.interface

Portanto, a pergunta é: por que os dispositivos USB passam pela enumeração (e recebem números voláteis atribuídos pelo sistema operacional) se já tiverem uma maneira única de serem identificados, isto é, os números de barramento, hub e porta?

    
por user986730 27.04.2017 / 21:23

1 resposta

3

Eu acho que há alguma confusão. Os números engraçados do Linux parecem ser LIDAS LÓGICAS para dispositivos USB, e são formados depois que o processo de enumeração física é feito. Endereços físicos de USB não têm nenhuma semelhança com os nomes de identificador que você listou, eles são números de 1 a 127 que estão incorporados em cada pacote USB, qualquer coisa nesse intervalo.

O USB original (1.1 e 2.0) é projetado como "topologia de estrela", onde todos os pacotes são BROADCASTED para todos os dispositivos USB na árvore. Portanto, os dispositivos devem ter endereços exclusivos que são atribuídos a eles no processo de enumeração, para poderem decodificar fluxos apropriados. Embora o sistema conheça todos os hubs e portas nos quais os dispositivos estão conectados, ele não determina a rota do pacote; não há informações em pacotes USB sobre números de hub / porta, somente endereços de dispositivos. No entanto, isso pode ser diferente para a arquitetura USB 3.0, na qual os pacotes podem ser roteados explicitamente pelo número do hub / porta, mas o processo de enumeração ainda é necessário por razões de retrocompatibilidade.

    
por 28.04.2017 / 01:20

Tags