Skip to content
RFrftools.io
Comms

UART 전송 속도 및 프레임 타이밍 계산기

전송 속도, 데이터 형식 및 MCU 클록 주파수에서 UART 프레임 타이밍, 처리량 및 USART BRR 레지스터 제수를 계산합니다.안정적인 직렬 통신을 위해 전송 속도 오류를 식별하십시오.

Loading calculator...

공식

BRR=fclk16×B,Tbit=1B,Nframe=1+D+P+SBRR = \frac{f_{clk}}{16 \times B}, \quad T_{bit} = \frac{1}{B}, \quad N_{frame} = 1 + D + P + S

참고: STM32 Reference Manual RM0008 §27.3.4; ST AN2908

B목표 전송 속도 (bps)
f_{clk}MCU 주변기기 클럭 주파수 (Hz)
BRR전송 속도 레지스터 제수 (정수)
T_{bit}1비트의 지속 시간 (s)
N_{frame}UART 프레임당 총 비트 수 (bits)
D데이터 비트 (bits)
P패리티 비트 (0 또는 1) (bits)
S스톱 비트 (1 또는 2) (bits)

작동 방식

이 계산기는 안정적인 직렬 통신을 위해 UART 전송 속도 제수 값과 타이밍 오류를 결정합니다.임베디드 엔지니어, IoT 개발자 및 하드웨어 설계자는 이를 사용하여 대부분의 수신기에 필요한 2~ 3% 클럭 허용 오차 내에서 마이크로컨트롤러 UART를 구성합니다.UART 표준 (RS-232/EIA-232에서 파생) 에 따르면 각 프레임에는 시작 비트, 5-9 데이터 비트, 선택적 패리티 및 1-2 스톱 비트가 포함됩니다.115200 보드를 대상으로 하는 16MHz MCU는 BRR=8 (16배 오버샘플링) 에서 0.16% 의 오류를 발생시키는 반면, 9600 보드는 BRR=104에서 0.08% 의 오류를 발생시킵니다.연구에 따르면 전송 속도 오류가 3.5% 를 초과하면 매 10프레임 중 1프레임에서 바이트 프레이밍 오류가 발생하는 것으로 나타났습니다.표준 속도 (9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 보드) 는 일반적인 크리스탈 주파수 (8, 12, 16, 20MHz) 에서 제수 반올림 오류를 최소화하기 위해 정의되었습니다.115200 보드의 비트 주기는 8.68마이크로초이므로 안정적인 10비트 프레임 수신을 위해서는 비트당 300나노초 이내의 타이밍 정확도가 필요합니다.

계산 예제

자동차 ECU 설계에는 16배 오버샘플링을 지원하는 20MHz 시스템 클록을 사용하는 115200 보드의 UART 통신이 필요합니다.표준 UART 구현의 약수 공식을 따르면 BRR = f_clk/ (16 x 보드) = 20,000,000/ (16 x 115200) = 10.85입니다.BRR=11로 반올림하면 실제 보드는 20,000,000/ (16 x 11) = 113636 보드가 됩니다.오류 = |115200 - 113636|/ 115200 x 100 = 1.36% 로, 이는 대부분의 UART 수신기 데이터시트에 지정된 최대 2% 를 충족합니다.프레임 구조: 시작 1개+데이터 8개+중지 1개 = 총 10비트로, 초당 11,364바이트의 처리량을 제공합니다.비교하자면, 8배 오버샘플링 (BRR=22) 을 사용하면 오류는 1.36% 로 동일하지만 노이즈 내성은 감소된 113636의 보우드를 얻을 수 있습니다.

실용적인 팁

  • ST 마이크로일렉트로닉스의 AN4908 애플리케이션 노트에 따르면, 가능한 경우 소수 BRR을 사용하여 모든 표준 전송 속도에서 0.5% 미만의 오류를 달성하십시오.
  • 3.3V 로직 오버 케이블이 2미터 이상인 경우 RS-232 사양에 따라 400mV 노이즈 마진을 유지하기 위해 보드 속도를 115200으로 제한합니다.
  • 오실로스코프로 타이밍 확인: 연속 10비트를 측정하고 총 지속 시간이 예상보다 2% 이내인지 확인합니다 (115200 보우드에서 86.8us)

흔한 실수

  • 허용 오차가 50ppm 이상인 크리스탈을 사용하여 25°C에서는 0.005% 의 오차가 발생하지만 극한 온도 (-40°C ~ +85°C) 에서는 합산 오차가 2% 를 초과할 수 있습니다.
  • 100000 보드와 같은 비표준 전송 속도를 선택하면 16MHz 시스템에서는 4.17% 의 오류가 발생하는 반면 115200 보드의 경우 0.16% 의 오류가 발생합니다.
  • 분수 전송률 생성기 (STM32, LPC 등에서 사용 가능) 가 115200 보드에서 오류를 1.36% 에서 0.1% 미만으로 줄인다는 사실을 무시하고

자주 묻는 질문

업계 조사에 따르면 8-N-1 (데이터 비트 8개, 패리티 없음, 스톱 비트 1개) 은 임베디드 애플리케이션의 90% 에서 사용됩니다.이는 80% 의 효율 (총 10비트당 데이터 비트 8개) 을 제공하며 Arduino, Raspberry Pi 및 대부분의 마이크로컨트롤러 프레임워크에서 기본값입니다.
패리티는 프레임당 1비트를 추가하고 (8-N-1 대비 8-E-1 효율성을 80% 에서 72.7% 로 낮춤) 100% 신뢰도로 단일 비트 오류를 탐지하지만 2비트 오류는 감지할 수 없습니다.IEC 61162에 따르면 해양 NMEA 프로토콜은 4800 보드의 균등 패리티를 요구합니다.
결정 허용오차 (일반적으로 20-100ppm, 0.002-0.01% 오차 추가), 정수 약수 반올림 (클록/보드 비율에 따라 0~ 3%), 온도 드리프트 (세라믹 공진기는 크리스탈의 경우 0.003% 에 비해 -40°C ~ +85°C에서 0.5% 드리프트) 의 세 가지 요소가 우세합니다.
예, 하지만 오류가 크게 증가합니다.16MHz에서 250000 전송 속도는 0% 의 오류 (정확한 약수) 를 생성하는 반면 100000 보드는 6.25% 의 오류를 생성합니다 (BRR=10은 100000을 나타내지만 양쪽 끝이 일치해야 함).FTDI FT232R 같은 USB-UART 브리지는 183에서 3백만 사이의 모든 전송 속도를 지원합니다.
표준 UART 트랜시버는 10cm 미만의 PCB 트레이스에서 최대 1Mbaud를 지원합니다.FTDI FT232H 모델은 12Mbaud를 지원합니다.3Mbaud 이상에서는 차동 신호 처리를 사용하십시오 (RS-485 은 TIA-485-A 당 15미터에 걸쳐 10Mbaud 지원).

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

관련 계산기