리눅스 UART IO 파일

리눅스 UART IO 파일

일부 직렬 Linux 장치인 /dev/ttyS에 저장된 UART 장치는 바이트를 어떻게 수신합니까? 어떻게 읽을 수 있나요?

절차는 무엇입니까? 새 데이터가 도착하면 장치 파일을 닫아야 합니까?

답변1

수신된 바이트는 어떻게 저장되나요?

사용자 공간 관점에서 보면 전혀 저장되지 않습니다.

어떻게 읽을 수 있나요?

그냥 읽고 싶다면 괜찮습니다 cat /dev/ttyS.... 직렬 인터페이스를 처리하는 방법에 대한 자세한 내용은 일반적으로 검색 후 몇 초 내에 이 페이지와 인터넷의 수많은 답변과 의견에서 확인할 수 있습니다. 몇 가지 아이디어: serial, screen, minicomcutecom유사한 도구. 이 문제여기더 흥미롭습니다.

절차는 무엇입니까?

아주 간단합니다:

  1. 장치를 켜십시오
  2. 데이터를 기다리는 중
  3. 완료되면 닫습니다.

/dev/ttyS*문자 장치이므로 파일 시스템의 일반 파일과 다르게 동작하므로 새 정보를 "기록"하기 위해 새로 고치거나 닫았다가 다시 열 필요가 없습니다. 개발 파일을 갖는 목적은 사용자 공간과 커널 공간 간의 통신 방법을 제공하는 것입니다.

더 자세히 설명하면 프로세스는 다음과 같습니다. 데이터는 전기 펄스의 형태로 하드웨어, 직렬 인터페이스에 도착합니다. 하드웨어는 전기 충격을 디지털 신호로 변환하고 이를 하드웨어 관리를 담당하는 HAL(하드웨어 추상화 계층)/커널 드라이버 또는 컨트롤러로 전송합니다. 이는 바이트로 변환되어 사용된 전송 속도와 프로토콜에 따라 추가 처리를 위해 버퍼링됩니다. 그런 다음 커널은 버퍼를 /dev폴더의 노드로 사용자 공간에서 볼 수 있는 문자 장치로 플러시합니다.

관련 정보