linux uart 통신 예제

augusztus 2, 2019 7:05 de. Közzétette cccccccccccccc

이 예제에서는 9600 비트/s에서 실행되는 UART 칩의 출력에 스코프 프로브를 연결했습니다. UART는 TX 라인에 0x63의 육량 값과 0b 0110 0011의 이진 값을 가진 문자 „c”를 주석으로 발음했습니다. 나는 시리얼 포트에 읽고 쓰는 것에 대해 조금 혼란스럽다. 나는 FTDI USB 직렬 장치 변환기 드라이버를 사용하는 리눅스에서 USB 장치가 있습니다. 내가 그것을 연결하면 /dev /ttyUSB1이 생성됩니다. 리눅스에서 직렬 포트와 같은 하드웨어 구성 요소는 파일처럼 처리되고 /dev 폴더로 탐색하고 ls 명령을 사용하여 파일을 나열하면 파일 system.dev 폴더에서 함께 그룹화되어 다양한 하드웨어에 해당하는 파일을 볼 수 있습니다. 장치. PC 기반 유닉스 시스템은 종종 장치에 대한 DOS / Windows 이름을 모방하고 /dev /comxxx라고 부릅니다. 리눅스 시스템은 일반적으로 직렬 포트 / 개발 / ttySxxx 대신 호출합니다.

새로운 termios API는 이전 termio API를 기반으로하므로 두 개의 termio … API는 많은 유사점을 공유합니다. 용어 API는 또한 처음부터 변화를 겪고있다. 예를 들어 baud 비율을 지정하는 방법이 미리 정의된 상수를 사용하는 것에서 보다 완화된 스키마로 변경되었습니다(상수는 대부분의 구현에서도 계속 사용할 수 있음). 이 가이드는 Linux에서 실행 중인 프로그램에서 직렬 포트를 사용하는 단계별 가이드입니다. 그것은 라즈베리 파이 직렬 포트라즈비안 Wheezy 배포와 함께 작성 되었습니다. 그러나 다른 시스템에서도 동일한 코드가 작동해야 합니다. 리눅스에 대한 libserial도 있습니다. 그것은 용어의 복잡성의 일부를 숨기는 간단한 C ++ 클래스입니다.

기본적으로 라즈베리 파이 3 그리고 라즈베리 파이 제로 W 장치 블루투스를 통해 통신 하는 더 많은 수 /dev/ttyACM0를 사용 하 여, 그래서 헤더에 IO 핀을 제어 하는 직렬 포트를 프로그래밍 하려는 경우, 보조 UART 장치/dev/ttyS0 대신 사용 해야. 이러한 무선 장치에서는 `bdtoverlay=`pi3-disable-bt`로 블루투스를 비활성화하거나 블루투스가 `dtoverlay=`와 함께 미니 UART를 사용하도록 강요하여 GPIO 직렬 포트를 다시 /dev/ACM0으로 전환할 수 있습니다. pi3-miniuart-bt`. 자세한 내용은 https://www.raspberrypi.org/documentation/configuration/uart.md 참조하십시오. 이 문서에서는 이 하드웨어 인터페이스에 몇 가지 장점과 단점이 있습니다. 우리는 또한 팬더 보드 ES의 J3 확장 헤더에 노출 된 UART4 핀에 외부 센서를 연결할 때 리눅스에서 UART 인터페이스와 상호 작용하는 방법을 통해 이동합니다. tty 드라이버 스택은 일반적으로 tty의 이름으로 /dev/에서 장치 노드(이전에 설명한)를 노출합니다. /dev/로 이동하여 모든 장치 노드를 나열하면 여러 tty 장치가 표시됩니다.

여기서는 이러한 모든 tty 장치가 UART를 나타내지 않도록 주의해야 하며, Linux는 이 드라이버 스택을 사용하여 콘솔 인터페이스, ssh 세션 및 기타 문자 기반 인터페이스를 나타냅니다. 그러나 우리가 관심있는 장치 노드는 ttyO3입니다. 팬더보드의 UART4를 노출하는 장치 노드입니다. 이 클럭 신호의 부족으로 인해 우리는 우리를 위해 데이터를 프레임 시작 및 STOP 비트에 의존해야합니다. 이러한 프레임 비트는 데이터 전송에 상당한 양의 오버헤드를 추가합니다.

Kategória: Egyéb kategória

Írta: Gabor