그라운드 임베디드 EN 유튜브 구독

노트 / 통신 프로토콜

UART 기초: 클럭 없이 데이터를 보내는 방법

UART가 클럭선 없이 통신할 수 있는 이유와 시작 비트, 데이터 비트, 정지 비트, 보레이트를 정리했습니다.

GROUND EMBEDDED · 정리 노트UART 기초클럭 없이 보내는 법IDLESTART1b01b11b20b30b40b51b60b7STOPIDLE
이 노트의 영상
UART 통신 완벽정리 | 전기전자, 전자과, 임베디드 개발자 필수 시청

UART는 선 두 가닥(TX, RX)으로 데이터를 주고받는 직렬통신입니다. SPI나 I2C와 달리 클럭선이 없습니다. 대신 양쪽이 같은 속도로 보내기로 미리 약속합니다. 이 약속된 속도가 보레이트입니다.

프레임 하나의 구조

아무것도 보내지 않을 때 선은 HIGH 상태로 쉬고 있습니다. 데이터를 보낼 때는 다음 순서를 따릅니다.

순서 구간 레벨 역할
1 시작 비트 LOW "지금부터 보낸다"는 신호
2 데이터 8비트 데이터에 따라 LSB부터 전송
3 패리티 (선택) 계산 결과 간단한 오류 검출
4 정지 비트 HIGH 프레임 끝, 다시 대기 상태로

가장 흔한 설정인 8N1은 데이터 8비트, 패리티 없음, 정지 비트 1개를 뜻합니다. 한 바이트를 보내는 데 총 10비트가 필요합니다.

보레이트와 비트 시간

115200 bps라면 1비트의 길이는 1 / 115200 ≈ 8.68 µs입니다. 수신 쪽은 시작 비트의 하강 에지를 기준으로 삼아, 각 비트의 한가운데에서 값을 읽습니다.

클럭을 공유하지 않기 때문에 양쪽 속도가 조금씩 어긋납니다. 10비트 동안 누적된 오차가 반 비트를 넘으면 엉뚱한 비트를 읽게 되므로, 이론상 한계는 약 5%이고 실무에서는 2% 안쪽으로 맞춥니다.

연결할 때 확인할 것

  • TX와 RX는 서로 엇갈려 연결합니다. 내 TX가 상대 RX로 갑니다.
  • GND를 반드시 함께 연결합니다. 전압은 기준점이 같아야 같은 값으로 읽힙니다.
  • 양쪽 전압 레벨이 같은지 확인합니다. 3.3 V 칩에 5 V 신호를 바로 넣으면 안 됩니다.
  • 글자가 깨져 보이면 가장 먼저 보레이트 설정을 의심합니다.
3D 실험실에서 직접 돌려 보기값을 바꾸며 이 노트의 원리를 확인합니다→PROJECT COURSEI2C로 MPU6050을, UART로 블루투스 모듈을 직접 붙여 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →