직렬 통신 프로토콜 작성 방법
직렬 포트는 비트 단위로 바이트를 보내고 받습니다. 바이트별 병렬 통신보다 속도는 느리지만 직렬 포트는 한 회선에서 데이터를 보내고 다른 회선에서 데이터를 수신할 수 있습니다.
직렬 포트란 무엇입니까?
직렬 포트는 컴퓨터에서 매우 일반적인 장치 통신 프로토콜입니다(범용 직렬 버스 또는 USB와 혼동하지 마십시오). 대부분의 컴퓨터에는 두 개의 RS232 기반 직렬 포트가 있습니다. 직렬 포트는 계측 장비를 위한 일반적인 통신 인터페이스이기도 합니다. 많은 GPIB 호환 장치에는 RS-232 포트도 있습니다. 동시에 직렬 통신 프로토콜을 사용하여 원격 수집 장치에서 데이터를 얻을 수도 있습니다.
직렬 통신의 개념은 매우 간단합니다. 직렬 포트는 비트 단위로 바이트를 보내고 받습니다. 바이트별 병렬 통신보다 속도는 느리지만 직렬 포트는 한 회선에서 데이터를 보내고 다른 회선에서 데이터를 수신할 수 있습니다. 간단하며 장거리 통신이 가능합니다. 예를 들어, IEEE488은 병렬 통신 상태를 정의할 때 장비 라인의 총 길이가 20미터를 초과할 수 없으며 직렬 포트의 경우 두 장치 사이의 길이가 2미터를 초과할 수 없다고 규정합니다. 1200미터.
일반적으로 직렬 포트는 ASCII 코드 문자 전송에 사용됩니다.
통신은 3개의 전선을 사용하여 완료됩니다:
(1) 접지선,
(2) 송신,
(3) 수신 . 직렬 통신은 비동기식이므로 포트는 한 회선에서 데이터를 보내고 다른 회선에서 데이터를 수신할 수 있습니다. 다른 회선은 핸드쉐이킹에 사용되지만 필수는 아닙니다. 직렬 통신의 가장 중요한 매개변수는 비트 전송률, 데이터 비트, 정지 비트 및 패리티입니다. 두 포트가 통신하려면 다음 매개변수가 일치해야 합니다.
a, 비트레이트: 통신 속도를 측정하는 매개변수입니다. 초당 전송되는 비트 수를 나타냅니다. 예를 들어 300보드는 초당 300비트를 보내는 것을 의미합니다. 클럭 주기를 언급할 때 비트 전송률을 언급합니다. 예를 들어 프로토콜에 4800 전송 속도가 필요한 경우 클럭은 4800Hz입니다. 이는 데이터 라인의 직렬 통신 샘플링 속도가 4800Hz임을 의미합니다. 전화선의 일반적인 비트 전송률은 14400, 28800 및 36600입니다. 비트 전송률은 이 값보다 훨씬 클 수 있지만 전송 속도는 거리에 반비례합니다. 높은 비트 전송률은 서로 매우 가까이 배치된 계측기 간의 통신에 자주 사용됩니다. 일반적인 예는 GPIB 장치의 통신입니다.
b, 데이터 비트: 통신 시 실제 데이터 비트를 측정하는 매개변수입니다. 컴퓨터가 정보 패킷을 보낼 때 실제 데이터는 8비트가 아니며 표준 값은 5, 7, 8비트입니다. 설정 방법은 보내려는 정보에 따라 다릅니다. 예를 들어, 표준 ASCII 코드는 0~127(7비트)입니다. 확장 ASCII 코드는 0~255(8비트)입니다. 데이터가 단순 텍스트(표준 ASCII 코드)를 사용하는 경우 패킷당 7비트의 데이터가 사용됩니다. 각 패킷은 시작/중지 비트, 데이터 비트 및 패리티 비트를 포함하여 바이트를 나타냅니다. 실제 데이터 비트는 선택한 통신 프로토콜에 따라 달라지므로 "패킷"이라는 용어는 모든 통신 상황을 나타냅니다.
c, 정지 비트: 단일 패킷의 마지막 비트를 나타내는 데 사용됩니다. 일반적인 값은 1, 1.5, 2비트입니다. 데이터는 전송 라인에서 시간이 측정되고 각 장치에는 자체 시계가 있으므로 통신 중에 두 장치 간에 작은 비동기화가 발생할 수 있습니다. 따라서 정지 비트는 전송의 끝을 나타낼 뿐만 아니라 컴퓨터에 시계 동기화를 수정할 수 있는 기회도 제공합니다. 정지 비트에 사용할 수 있는 비트가 많을수록 다양한 클록 동기화에 대한 허용 범위는 커지지만 동시에 데이터 전송 속도는 느려집니다.
d, 패리티 비트: 직렬 통신의 간단한 오류 감지 방법입니다. 오류 감지 모드에는 짝수, 홀수, 높음, 낮음의 네 가지가 있습니다. 물론 체크 숫자가 없을 수도 있습니다. 짝수 및 홀수 패리티의 경우 직렬 포트는 전송된 데이터가 짝수 또는 홀수 논리 하이 비트를 갖도록 보장하는 값을 사용하여 패리티 비트(데이터 비트 다음 1비트)를 설정합니다. 예를 들어, 데이터가 011이면 짝수 패리티의 경우 패리티 비트가 0이므로 논리적으로 높은 비트 수가 짝수입니다. 홀수 패리티인 경우 패리티 비트는 1이므로 논리적 상위 비트는 3개입니다.
높은 비트와 낮은 비트는 실제로 데이터를 확인하지 않으며 단순히 검증을 위해 논리를 높거나 낮게 설정합니다. 이를 통해 수신 장치는 비트의 상태를 알 수 있고, 잡음이 통신을 방해하는지 또는 전송 및 수신된 데이터가 동기화되지 않았는지 확인할 수 있는 기회를 갖게 됩니다. 직렬 통신 프로토콜은 통신 당사자 간의 계약을 나타냅니다. 이 계약에는 데이터 형식, 동기화 방법, 전송 속도, 전송 단계, 오류 감지 및 수정 방법, 제어 문자 정의 등에 대한 통일된 조항이 포함됩니다. 통신 당사자는 이를 준수해야 합니다. 따라서 통신 제어 절차 또는 전송 제어 절차라고도 합니다. 이는 ISO의 OSI 7계층 참조 모델의 데이터 링크 계층에 속합니다.