UART 란?

김지성·2022년 9월 22일
0

Embedded

목록 보기
20/21

비동기 : 상대방이 데이터를 언제 보낼지 모름
동기 : 클럭 신호를 이용해 데이터를 보내기 전 상대방에게 미리 알릴 수 있음

직렬(Serial) 통신 종류 : I2C통신, SPI통신, UART통신


UART(Universal Asynchronous Receiver and Transmitter, 비동기)

  • 속도는 빠르지만 상대방이 데이터를 언제 전송하는지 알 수 없음
  • 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터 전송

Q : 신호가 0(Low)에 있을 경우 "0110 1101"이란 데이터를 수신할 경우?
A : "0110 1101"을 그대로 수신할지 "110 1101"로 0을 빼먹고 수신할지 모름

1) 위와 같은 문제를 해결하기 위해서 "시작 비트(Start Bit, 시작할게!)와 정지 비트(Stop Bit, 멈출게!)"가 필요하다.

2) 송수신의 통신 속도를 맞춰주기만 하면 된다.

Baud rate : 1초당 얼마나 많은 데이터를 보낼 것인가를 물어보는 것이다. 예를 들어 1bit를 9600 baud rate로 보낸다면 1초에 9600개의 데이터를 송신 또는 수신할 수 있다.
즉 서로의 통신 속도를 일정하게 함으로써 통신을 한다.

시작 비트는 항상 Low이고 종료 비트는 항상 High임을 알 수 있다. 그리고 8bit 데이터를 보낸 후 Parity bit를 보낼 수 있다.

Partiy bit : 데이터 전송 과정에서 오류가 생겼는지 알기 위해 추가되는 비트


USART(Universal Synchronus/Asynchronous Receiver and Transmitter, 동기)

  • 비동기와 동기의 차이는 클락 신호(Clock Pulse)의 차이점이다. 클락은 외부 신호로 처리될 수 있고, 내부적으로 펄스를 발생시킬 수 있다.
  • 데이터를 구분 할 필요없이 클락의 유무만 체크하면 되므로, 데이터 송수신 효율이 높다는 장점이 있다. 즉, 비동기보다 더 높은 전송 속도를 허용한다.
  • 하지만 클락 핀을 추가로 요구하기 때문에 구조적 어려움 & 비용 문제를 가지고 있다.
profile
1139일 남음

0개의 댓글