Arquivo Linux UART IO

0

Como os bytes recebidos no dispositivo UART são armazenados em alguns dispositivos seriais do Linux / dev / ttyS? Como lê-los?

Qual é o procedimento? Esse arquivo de dispositivo deve ser fechado quando novos dados chegarem?

    
por Junior 28.08.2015 / 13:50

1 resposta

1

Como os bytes recebidos são armazenados?

Do ponto de vista do espaço do usuário, eles não são armazenados.

Como lê-los?

Se você quiser apenas lê-los, basta cat /dev/ttyS... . Mais informações sobre como lidar com interfaces seriais podem ser vistas em várias respostas e comentários nesta página e na Internet, em geral, em segundos de pesquisa. Algumas ideias: serial , screen , minicom , cutecom e ferramentas semelhantes. Esta questão aqui é bastante interessante.

Qual é o procedimento?

Um pouco direto:

  1. Abra o dispositivo
  2. Aguarde dados
  3. Fechar quando terminar

/dev/ttyS* são dispositivos de caractere, eles não se comportam como arquivos regulares em seu sistema de arquivos e, portanto, você não precisa liberá-los ou fechá-los e reabri-los para obter novas informações "gravadas" para eles. O ponto de ter dev-files é ter uma maneira de se comunicar entre o espaço do usuário e o espaço do kernel.

Um pouco mais detalhado, o processo é: Os dados chegarão ao hardware, a interface serial, como pulsos elétricos. O hardware transformará os pulsos elétricos em sinais digitais e os transferirá para o driver HAL (Hardware Abstraction Layer) / Kernel ou controlador encarregado de controlar o hardware. Isso será traduzido para bytes de acordo com a taxa de transmissão e o protocolo usado e armazenado em buffer para continuar o processo. O kernel então esvazia o buffer no dispositivo de caracteres, visível do espaço do usuário como um nó na pasta /dev .

    
por 28.08.2015 / 14:15