Qual é a diferença entre / dev / tty * e / dev / bus / usb / 001/002?

4

Quando eu conecto um dispositivo que usa o framework LUFA USB (ou qualquer periférico serial USB) , O Ubuntu cria um arquivo de dispositivo /dev/ttyACM* . Ele também cria um arquivo /dev/bus/usb/001/002 e uma árvore /sys/bus/usb/devices/usb1/1-1/1-1.3/1-1.3.1/ .

Quais são as diferenças entre eles? Eu pergunto porque estou usando o pyudev , que fornece nós de dispositivo como o exemplo /dev/bus/... , mas eu não sabe se isso é diferente do tty. É?

    
por Sedate Alien 18.03.2014 / 12:38

1 resposta

1

A árvore /sys/bus/usb/devices/* descreve a topologia USB completa e contém metadados sobre cada dispositivo.

Os dispositivos /dev/bus/usb/<bus number>/<device number> abordam cada dispositivo de forma simplificada (para que você não precise se preocupar se um dispositivo está conectado diretamente ou através de um ou mais hubs USB, basta escolher o barramento correto) e permite a passagem de USB bruto pacotes de / para o dispositivo. Com um conversor serial USB, você pode enviar um pacote de solicitação e receber uma resposta descrevendo o estado atual das linhas de handshaking da porta serial.

O dispositivo /dev/ttyACM* , por outro lado, oculta a complexidade do barramento USB e permite que você controle a porta serial do periférico serial USB praticamente como uma porta serial conectada diretamente, com todos os recursos de um driver tty estilo Unix. Por causa das latências causadas pelo barramento USB, algumas coisas podem não funcionar tão bem quanto com uma porta serial "real": em particular, tentativas de bater as linhas de controle com temporização precisa podem não funcionar.

    
por telcoM 09.12.2017 / 08:35

Tags