보레이트 계산기 쉽게 이해하기 — 개념과 원리
보레이트와 비트레이트는 자주 혼동됩니다. 보(baud)는 초당 심볼 수이고, 비트레이트는 초당 비트 수입니다. 이 계산기는 직렬 포트(UART)와 변조 링크에서 둘을 서로 바꾸고, UART 프레임 오버헤드, 초당 문자 수, 실제 데이터 전송률, 메시지 전송 시간을 구합니다.
계산 방법
비트레이트 = 보 × log₂M (M은 심볼 상태 수)
잡음 없는 최소 대역폭 = 비트레이트 ÷ (2 log₂M)
UART 프레임 비트 = 시작 1 + 데이터 비트 + 패리티(0 또는 1) + 정지 비트(1 또는 2)
초당 문자 수 = 보 ÷ 프레임 비트
실제 데이터율 = 초당 문자 수 × 데이터 비트
프레이밍 효율 = 데이터 비트 ÷ 프레임 비트
메시지 시간 = 바이트 × 프레임 비트 ÷ 보(UART), 또는 바이트 × 8 ÷ 비트레이트
원리
심볼은 일정 시간 유지되는 하나의 신호 상태입니다. UART 선로는 높음과 낮음 두 상태뿐이라 심볼 하나가 1비트를 나르고 보와 비트레이트가 같습니다. 모뎀과 무선은 QPSK 4개, 16-QAM 16개처럼 더 많은 상태를 써서 심볼마다 log₂M비트를 나릅니다. UART는 문자마다 프레임으로 감쌉니다. 시작 비트는 문자가 온다고 알리고, 정지 비트는 다음 문자를 받을 준비 시간을 줍니다. 이 비트들은 선로 시간을 쓰지만 데이터는 없으므로, 8-N-1 프레임에서 115,200보는 초당 11,520바이트가 됩니다.
예제 풀이
기본값인 UART, 115,200Bd, 데이터 8비트, 패리티 없음, 정지 1비트, 메시지 1,024바이트로 계산합니다.
- 심볼당 비트 = 1, 총 비트레이트 = 115,200bit/s, 최소 대역폭 = 57,600Hz입니다.
- 프레임 = 1 + 8 + 0 + 1 = 10비트입니다.
- 초당 문자 = 11,520, 실제 데이터율 = 92,160bit/s입니다.
- 프레이밍 효율 = 80%, 문자당 시간 = 0.0868ms입니다.
- 메시지 시간 = 1,024 × 10 ÷ 115,200 = 0.089초입니다.
| 보드 레이트 (초당 심볼 수, Bd) | 총 비트율 (bit/s) |
|---|---|
| 28,800 | 28,800 |
| 57,600 | 57,600 |
| 86,400 | 86,400 |
| 115,200 | 115,200 |
| 144,000 | 144,000 |
| 172,800 | 172,800 |
| 230,400 | 230,400 |
결과 해석
직렬 링크 양 끝은 같은 보레이트와 프레임 설정을 써야 합니다. Analog Dialogue는 두 클럭의 차이가 최대 약 10%까지만 허용된다고 설명합니다. 실제 전송에는 문자 사이 쉬는 시간과 프로토콜 오버헤드가 더해지므로 측정 처리량은 보통 계산값보다 낮습니다.
흔한 실수
- 변조 링크에서 보와 bit/s를 같은 뜻으로 쓰는 경우
- UART 처리량을 계산하며 시작·정지 비트를 빼먹는 경우
- 한쪽은 8-N-1, 다른 쪽은 8-E-1처럼 설정이 다른 경우
- 문자가 쉬지 않고 연달아 전송된다고 가정하는 경우
자주 묻는 질문
8-N-1은 무슨 뜻인가요?
데이터 8비트, 패리티 없음, 정지 1비트로, 시작 비트를 포함해 문자당 10비트입니다.
9600보는 9600bit/s와 같나요?
UART에서는 같고, 변조 링크에서는 심볼당 비트 수에 따라 다릅니다.
패리티는 왜 쓰나요?
문자당 1비트를 더 써서 1비트 오류를 검출할 수 있습니다.
출처: L. Frenzel, "What's the Difference Between Bit Rate and Baud Rate?", Electronic Design (updated 2024) · E. Peña and M. G. Legaspi, "UART: A Hardware Communication Protocol", Analog Dialogue 54(4), Analog Devices, 2020