UART 핀 3개 : TX,RX,GND
GND는 통신간의 전압 판별을 위해
연결방법
: TX - RX , RX - TX, GND - GND
USART 핀 4개 : UART 핀 + CLK
UART 데이터 프레임을 정확하게 이해하고 있어야 디버깅 작업이 수월하다.
Simplex 단방향 전송방식
: 데이터의 흐름이 한 방향으로만 한정되어 있는 통신방식 , 일방적인 송수신 , 데이터를 수신만 할 수 있다.Half Duplex 반이중 전송 방식
: 양쪽 방향으로 송수신 가능한 양방향 통신이지만 , 한 번에 하나의 전송만 이루어지도록 설정된다.Full Duplex 전이중 전송 방식
: 데이터를 양방향으로 동시에 송수신 할 수 있는 방식UART : Full Duplex
I2C : Half Duplex
직렬 통신
은 데이터가 1 bit (1 차선 ), 병렬 통신
데이터가 nbit
병렬 통신은 보통 8,16,32
등을 사용
보통 직렬 통신보다 병렬 통신이 빠르지만 , 항상 그런것은 아니다
장거리 및 고속 통신에서는 직렬 >>> 병렬
동기 통신
: 클럭이 있음 , 비트의 수를 클럭으로 구분한다. 두 디바이스가 약속된 클럭에 맞추어 통신을 한다비동기 통신
: 클럭이 없다, 클럭이 없기 때문에, bps 혹은 baudrate를 통해 양 디바이스간 시간을 맞춘다.다음 이미지와 같이 IDLE
은 High
로 셋팅 되어 시작된다.
St
는 데이터를 보내는 시작 신호이고, 비트 수, Parity, Stop
순으로 보내진다.
parity
: 오류 체크 기능
1. 짝수 parity : 1의 개수를 짝수로 맞춤
2. 홀수 partiy : 1의 개수를 홀수로 맞춤
0010 1100 을 보낸다고 하면 수신자가 받기 편하기 0011 0100 으로 반전시켜 전송한다.
또한 8비트만 보내는게 아닌 St, Parity, Stop bit도 함께 보내게 된다.