비동기 : 상대방이 데이터를 언제 보낼지 모름
동기 : 클럭 신호를 이용해 데이터를 보내기 전 상대방에게 미리 알릴 수 있음
직렬(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, 동기)