안녕하세요. 취업한 공대누나입니다.
오늘은 개발 중에 가장 많이 사용하는 통신 중에 하나라고 볼 수 있는
UART통신에 대해 공부해보도록 하겠습니다.
UART는 학부생 때도 다뤄봤던 걸로 기억합니다.
1. UART란?
Universal Asynchronous Receiver/Transmitter의 약자입니다.
간단하게 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 것입니다.
예를 들어서 1111 0000 이라는 데이터를 송수신 한다고 했을 때
병렬 통신은
1
1
1
1
0
0
0
0
을 동시에 전송하는 반면
직렬 통신은 1->1->1->1->0->0->0->0을 순서대로 전송하게 됩니다.
이러한 병렬 통신을 직렬 방식으로 바꿔 데이터를 전송하는 것입니다.
그렇다면 이제 Asynchronous(비동기)가 무엇일까요?
우선 동기(Synchronous)에 대해 먼저 설명하도록 하겠습니다.
동기 모드는 데이터 동기화를 위해 별도의 클럭 신호가 전송이됩니다.
그래서 그 클럭에 맞춰 데이터 송수신을 진행하게 되는 것입니다.
비동기는 별도의 클럭 신호가 전송되지 않습니다.
데이터를 시작할게!라는 의미로 start bit와 끝낼게!라는 stop bit를 통해
데이터의 동기화가 이루어지게 됩니다.
또한 이를 위해 서로 BaudRate(보레이트)를 정해 놓고 통신을 하게 됩니다.
Baud rate란 1초당 얼마나 많은 데이터를 보내냐는 것을 의미합니다.
예를 들어서 신호가 1bit인데 9600 Baudrate라고 하면 1초에 9600개의 데이터를
송신 또는 수신할 수 있는 것입니다.
즉, 서로의 통신 속도를 일정하게 해서 통신을 하게 됩니다.
동기 모드에서는 start bit와 stop bit가 필요하지 않아서 데이터 전송 효율 자체는 높을 수 있으나
별도의 클럭 핀이 필요하다는 단점이 있습니다.
2. UART 프로토콜
위에서 말한 것처럼 처음에 Start bit가 있고 마지막에 Stop bit가 있는 것을 확인할 수 있습니다.
그림처럼 High로 신호를 유지하고 있다가 Lowr가 되는 시점이 Start구나 라는 것을 알게 됩니다.
그리고 8비트 데이터를 보낸 후 Parity 비트를 보낼 수도 있습니다.
Parity bit라는 것은
데이터 전송 과정에서 오류가 생겼는지를 알기 위해 추가되는 비트입니다.
스타트 비트와, 스탑 비트, 패러티 비트까지
총 8비트를 보내는데 실제로는 11bit내지 12bit의 시간을 소모하게 되는 것입니다.
오늘은 UART에 대해 여기까지 알아보았습니다.
다음에 기회가 된다면 시리얼 통신 프로그램을 통해
실제로 통신을 하는 방법에 대해 포스팅 해보도록 하겠습니다.
'전자 공학 > 기타' 카테고리의 다른 글
PCB란?(1) (0) | 2020.11.19 |
---|---|
PCB 아트웍(Artwork)이란?(1) (6) | 2020.11.17 |
SMPS란? 원리 및 방식 (1) | 2020.11.16 |
RS-232란? 직렬통신, 신호선 (0) | 2020.11.15 |
USB란?(1) (1) | 2020.11.12 |