Linux 직렬 포트는 직렬 통신을 사용하는 확장 인터페이스입니다. 직렬 포트는 컴퓨터에서 일반적으로 사용되는 인터페이스이며 한 쌍이면 통신이 간단합니다. 전송선의 경우 양방향 통신이 가능합니다. Linux는 시스템 호출 open() 또는 close()를 사용하여 직렬 포트를 열거나 닫을 수 있습니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
직렬 인터페이스(Serial Interface)는 한 쌍의 전송선이 필요한 한 쌍의 양방향으로 데이터를 순차적으로 전송하는 것이 특징입니다. 통신이 가능하므로(전화선을 전송선으로 직접 사용할 수 있음) 비용이 크게 절감되며 특히 장거리 통신에 적합하지만 전송 속도가 느립니다.
메시지의 각 데이터 비트를 비트 단위로 순서대로 전송하는 통신 방식을 직렬 통신이라고 합니다.
직렬 통신의 특징은 다음과 같습니다.
데이터 비트의 전송은 비트 순서로 수행되며 하나 이상의 전송 라인으로 완료될 수 있습니다.
비용은 저렴하지만 전송 속도가 느립니다. 직렬 통신의 거리는 몇 미터에서 수 킬로미터까지 다양합니다.
정보 전송 방향에 따라 직렬 통신은 단방향, 반이중 및 전이중으로 더 나눌 수 있습니다.
직렬 포트는 컴퓨터의 직렬 통신을 위한 물리적 인터페이스입니다. 컴퓨터의 역사에서 직렬 포트는 컴퓨터, 단말 장치 및 다양한 외부 장치를 연결하는 데 널리 사용되었습니다. 이더넷 인터페이스와 USB 인터페이스도 직렬 스트림으로 데이터를 전송하지만 직렬 포트 연결은 일반적으로 RS-232 표준과 호환되는 하드웨어 또는 모뎀 인터페이스를 나타냅니다.
직렬 포트(일반적으로 COM 인터페이스라고 함)라고 하는 직렬 인터페이스는 직렬 통신을 사용하는 확장 인터페이스입니다. 직렬 포트는 컴퓨터에서 일반적으로 사용되는 인터페이스로 연결 회선이 적고 통신이 간단하여 널리 사용됩니다. 직렬 포트의 특징은 통신 회선이 간단하다는 것입니다. 한 쌍의 전송 회선만으로 양방향 통신이 가능하므로 비용이 크게 절감됩니다. 특히 장거리 통신에 적합하지만 전송 속도가 느립니다. Linux에는 또한 많은 수의 직렬 포트가 있습니다. 이 기사에서는 Linux의 직렬 포트에 대해 설명합니다.
1. 직렬 포트에 필요한 헤더 파일
1: #include /*표준 입력 및 출력 정의*/
2: #include /*표준 함수 라이브러리 정의*/
3: # include /*Unix 표준 함수 정의*/
4: #include
5: #include
6: #include /*파일 제어 정의*/
7: # include /* POSIX 터미널 제어 정의 */
8: #include /*오류 번호 정의*/
2. 직렬 포트를 열고 닫습니다
직렬 포트 장치 파일의 동작은 기본적으로 다른 파일 작업과 동일합니다. 시스템 호출 open(), close()를 사용하여 직렬 포트를 열거나 닫을 수 있습니다.
Linux에서 직렬 포트 파일은 /dev 아래에 있습니다. 예를 들어 직렬 포트 1은 /dev/ttyS0이고 직렬 포트 2는 /dev/ttyS1입니다.
open(), close() 시스템 호출 프로토타입
1: #include 2: #include 3: #include 4: int open(const char *path, int oflags); 5: int open(const char *path, int oflags, mode_t mode); 6: #include 7: int close(int fildes); 8: 实例:打开串口ttyS0。 9: int fd; 10: /*以读写方式打开串口*/ 11: fd = open( "/dev/ttyS0", O_RDWR); 12: if (-1 == fd){ 13: /* 不能打开串口一*/ 14: perror("open serial port error"); 15: }
3. 직렬 포트 설정
직렬 포트 설정에는 전송 속도 설정, 검사 비트 및 정지 비트 설정이 포함됩니다. 직렬 포트 설정에서는 주로 struct termios 구조체의 멤버 값을 설정하는 것입니다.
struct termios 구조는 다음과 같습니다
1: #include 2: struct termio 3: { 4: unsigned short c_iflag; /* input options输入模式标志 */ 5: unsigned short c_oflag; /* output options输出模式标志 */ 6: unsigned short c_cflag; /* control options控制模式标志*/ 7: unsigned short c_lflag; /* local mode flags */ 8: unsigned char c_line; /* line discipline */ 9: unsigned char c_cc[NCC]; /* control characters */ 10: };
관련 권장사항: "Linux Video Tutorial"
위 내용은 리눅스 직렬 포트는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!