데이터계측분석/데이터통신 기술자료

UART 통신 프로토콜

에이티에스 2023. 9. 16. 15:23
728x90

UART는 Universal Asynchronous Receiver/Transmitter의 약자입니다. 두 장치 간에 직렬 데이터를 교환하기 위한 일련의 규칙을 정의합니다. 이름에서 알 수 있듯이 데이터를 보내고 받습니다. UART는 가장 간단한 통신 프로토콜 중 하나입니다. 장치가 서로 통신하는 데 두 개의 전선만 있으면 됩니다. 장치 1의 송신기(TX) 와이어는 디바이스 2의 수신기(RX) 와이어에 연결됩니다. 마찬가지로 장치 2의 송신기(TX) 와이어는 디바이스 1의 수신기(RX) 와이어에 연결됩니다. 접지(GND) 와이어는 두 장치를 동일한 기준 전압으로 유지하는 데 필요합니다. 이 와이어는 장치 간의 모든 유형의 통신에 거의 항상 존재합니다.

 

UART에는 단방향, 반이중 및 전이중의 세 가지 통신 시스템이 있습니다. 단방향에서 데이터는 한 방향으로만 전송됩니다. 반이중에서는 각 측이 데이터를 보낼 수 있지만 한 번에 하나씩만 보낼 수 있습니다. 전이중에서는 양쪽이 동시에 데이터를 보낼 수 있습니다. 이 데이터는 프레임 형태로 전송됩니다.

 

전송 속도

약어의 문자 A에서 알 수 있듯이 UART는 비동기식입니다. 송신기와 수신기 장치는 공통 클럭 신호를 공유하지 않습니다. 이렇게 하면 프로토콜이 단순화되지만 두 장치 모두에 특정 요구 사항이 설정됩니다. 주로 통신을 위해 동일한 전송 속도 또는 미리 준비된 속도를 가져야 합니다. 그렇지 않으면 메시지가 왜곡되고 잘못 해석됩니다.

 

전송 속도는 간단히 말해서 통신 채널에서 정보가 전송되는 속도입니다. 오늘날 가장 일반적인 UART 전송 속도는 4800, 9600, 19200, 57600 및 115200입니다. 전송 속도가 높을수록 사용되는 케이블이 고품질 설치에 더 민감해집니다. 전송 속도가 높으려면 더 짧은 케이블을 사용하는 것이 좋습니다.

 

9600 전송 속도는  장치가 초당 최대 9600비트 또는 1과 0을 전송할 수 있음을 의미합니다. UART 및 대부분의 다른 직렬 통신의 경우 보레이트는 송신기 및 수신기 장치 모두에서 동일해야 합니다.

 

 

반응형

 

UART 작동 방식

UART 통신은 소위 프레임(frame)으로 이루어집니다. 각 프레임은 비트로 구성되어 있는데 한 라인을 통해 순차적으로 전송되는 정보의 조각입니다. 이 비트들은 순서대로 시작 비트, 데이터 비트, 선택적 패리티 비트, 한 개 또는 두 개의 정지 비트를 포함합니다. 모든 비트는 하이(논리 1을 나타냄) 또는 로우(논리 0을 나타냄) 전압을 가질 수 있습니다. 이것들은 때때로 하이를 의미하는 "마크"와 로우 신호를 의미하는 "스페이스"라고 불립니다.

 

 

유휴 상태(데이터를 보내거나 받지 않는 경우)는 고전압입니다. 이 아이디어는 전신에서 가져온 것으로, 선이 높게 유지되어 송신기가 손상되지 않았음을 나타냅니다.

 

다른 통신 프로토콜과 달리 UART에는 컨트롤러 및 주변 장치의 개념이 없습니다. 두 장치만 서로 통신해야 하는 경우 쉬운 인터페이스를 위한 기본 선택입니다.

 

 

시작 비트

UART는 이름에서 알 수 있듯이 비동기식입니다. 이것은 I2C 통신 프로토콜에서와 같이 공유 클럭 라인이 없음을 의미합니다. 데이터가 전송되려고 하는 시기를 나타내기 위해 시작 비트가 먼저 전송됩니다. 기본적으로 이는 신호가 유휴 하이 상태에서 로우 상태로 이동한다는 것을 의미합니다. 시작 비트 이후에는 데이터 비트가 즉시 이어집니다.

 

데이터 비트

데이터 비트는 실제로 메시지를 전달하는 비트입니다. 5개에서 9개 사이의 데이터 비트가 있을 수 있지만 7 또는 8이 가장 일반적으로 사용됩니다. LSB(최하위 비트)가 먼저 있는 회선을 통해 전송됩니다.

 

대문자 S를 UART와 함께 보내고 싶다고 가정해 보겠습니다. 이 문자의 7비트 ASCII 시퀀스는 1010011입니다. 비트를 가장 중요한 것부터 가장 중요한 것 순으로 보내고 싶기 때문에 7비트 시퀀스를 반대로 합니다. 따라서 1100101 될 것입니다.

 

그 수열을 보면, 처음 두 비트가 높고, 그 다음에 두 개의 낮은 비트가 나옵니다. 그 다음은 대문자 S ASCII 수열을 마치기 위해 또 하나의 높은 비트, 그 다음에 낮은 비트, 그 다음은 대문자 S ASCII 수열을 마칩니다.

 

반응형

 

패리티 비트(선택 사항)

시퀀스에 오류가 있는지 또는 데이터가 변경되었는지 확인하기 위해 UART는 선택적 패리티 비트를 사용합니다. 데이터 비트는 일치하지 않는 전송 속도, 장거리 데이터 전송 등과 같은 여러 가지 방법으로 변경할 수 있습니다. 패리티 비트는 마지막 데이터 비트와 정지 비트 사이에서 찾을 수 있습니다. 비트 값은 사용되는 패리티 유형(짝수 또는 홀수)에 따라 달라집니다.

 

짝수 패리티와 홀수 패리티 모두 프레임에 있는 패리티의 수를 확인합니다. 짝수 패리티에서는 패리티 비트를 포함한 총 데이터 비트 수가 짝수가 되도록 패리티 비트가 설정됩니다. 마찬가지로 홀수 패리티에서 이 숫자는 홀수로 간주됩니다.

UART와 함께 대문자 S를 보내는 예로 돌아가겠습니다. ASCII 시퀀스는 0이 3개이고 0이 4개입니다. 짝수 패리티를 사용하면 프레임에 짝수 개의 1이 이미 있기 때문에 패리티 비트는 0이 됩니다. 그러나 홀수 패리티를 사용하면 패리티 비트는 1이어야 하므로 총 1의 수는 홀수입니다.

 

두 장치가 짝수 패리티에 동의하면 수신기는 패리티 비트를 포함하여 짝수 개의 장치를 가져와야 합니다. 수신자가 홀수 개의 데이터를 얻으면 데이터가 손상되고 결국 삭제됩니다. 그런 다음 수신기는 새 프레임이 전송될 때까지 기다립니다.

 

짝수 패리티는 데이터 비트와 패리티 비트를 모두 볼 때 짝수를 의미하고 홀수 패리티는 홀수를 의미합니다.

 

패리티 비트와 관련하여 염두에 두어야 할 두 가지 사항이 있습니다. 첫째, 하나의 대칭 이동된 비트만 감지할 수 있습니다. 둘 이상의 비트가 대칭 이동되면 이러한 변경 내용을 안정적으로 감지할 수 없습니다. 둘째, 패리티 비트는 UART에서 선택 사항이며 항상 사용되는 것은 아닙니다.

 

반응형

정지 비트

데이터 비트와 선택적 패리티 비트가 완료되면 정지 비트가 프레임을 완성합니다. 신호가 높음에서 낮음으로 이동하는 시작 비트와 달리 정지 비트에서는 낮음에서 높음으로 이동합니다. 정지 비트에 도달하기 전에 신호가 높으면 높게 유지됩니다.

 

프레임에는 하나 이상의 정지 비트가 필요합니다. 두 번째, 선택적 정지 비트를 구성할 수 있습니다. 이렇게 하면 수신기가 다음 프레임을 준비하는 데 더 많은 시간을 할애할 수 있습니다. 

 

장점과 단점

다른 통신 프로토콜과 비교할 때 UART는 매우 간단합니다. 그 때문에 소규모 프로젝트에 사용하면 도움이 될 것입니다. 이는 서로 통신하는 장치가 두 개뿐인 경우 특히 분명해집니다. 그러나 세 개 이상의 장치가 있는 프로젝트가 있는 경우 다른 곳을 찾는 것이 더 운이 좋다는 것을 알게 될 것입니다.

 

장점

  • 두 개의 전선만 사용
  • 클럭 신호는 필요하지 않습니다
  • 패리티 비트를 통해 오류 확인 가능
  • 병렬 통신보다 비용이 적게 들고 크기가 작습니다.
  • 약 15 미터의 거리를 지원합니다

 

단점

  • 데이터 프레임은 최대 9비트로 제한됩니다.
  • 여러 컨트롤러 및 주변 장치 통신을 지원하지 않습니다.
  • 더 높은 데이터 전송 속도가 필요한 애플리케이션에는 적합하지 않습니다.
  • 병렬 통신보다 낮은 데이터 전송 속도

장치는 동일한 전송 속도에 있어야 합니다.

 

I2C 및 SPI와 같은 프로토콜은 칩 및 구성 요소에서 UART를 서서히 대체하고 있습니다. 대부분의 최신 컴퓨터 및 주변 장치는 USB 및 이더넷 기술을 대신 사용합니다.

그렇다고 UART가 더 이상 사용되지 않는다는 의미는 아닙니다. 외부 모뎀과 같이 RS-232 인터페이스를 사용하는 장치는 UART가 여전히 사용되는 좋은 예입니다. 마이크로 컨트롤러 및 마이크로 컨트롤러 기반 장치에는 일반적으로 하나 이상의 통합 UART 주변 장치가 있습니다. 특수 UART는 자동차, SIM 및 스마트 카드에서 찾을 수 있습니다. 단순성, 저렴한 비용 및 쉬운 구현으로 인해 UART는 저속, 저처리량 애플리케이션에 사용됩니다. 주로 장치 간 통신의 한 형태로 사용됩니다.

728x90
반응형
그리드형

'데이터계측분석 > 데이터통신 기술자료' 카테고리의 다른 글

I2C 통신 프로토콜  (0) 2023.09.17
SPI 통신 프로토콜  (0) 2023.09.16
CANOpen 네트워크 토폴로지  (0) 2023.09.10
EtherCAT 프로토콜  (0) 2023.05.12
RS-232, RS-422, RS-485의 차이점  (0) 2023.05.12