Baud Rate & BPS

김지성·2022년 7월 14일
1

Embedded

목록 보기
21/21

UART에는 Baud Rate의 개념이 있고 Baud Rate를 알기 위해서는 bps개념을 알아야 한다.


1.1 bit단위로 사용할 때의 buad rate

  • bps(bit per second)는 "1초에 전송할 수 있는 비트의 수"이고,
  • cps(characters per second)는 "1초에 전송할 수 있는 바이트의 수"이다.

8bit=1byte이므로 속도로 환산하면 8bps=1cps로 나타낼 수 있다.

  • 1 bps = 1/8 cps = 0.125 cps
    1초에 1bit를 전송했고, 1초에 0.125byte를 전송했다는 의미

  • 8 bps = 1 cps
    1초에 8bit를 전송했고, 1초에 1byte를 전송했다는 의미

예를 들어, 150Mbps로 통신하고 있다고 해보자.
cps로 환산해보면 150Mbps/8bit = 18.75Mcps가 될 것이고 이는 18.75MByte를 의미한다.
전송 속도는 1/150Mbps = ??가 된다.


  • baud rate는 "1초에 얼마나 많은 심볼을 전송하는 가"이다.
    **심볼(symbol) = 의미 있는 데이터 묶음

초창기에는Buad Rate는 1개의 펄스당 1개의 비트만 전송되는 목적으로 사용됐다.
하지만 기술이 발전하면서 bps의 속도가 빨라지게 되면서, 1개의 펄스당 n개의 비트를 전송 할 수 있게 됐다.

일반적인 통신은 1 Buad Rate에 1bps를 사용하는데,

예를 들어 115200 buad rate라면 115200 bps로 통신한다는 뜻이다.
(심볼이 아니라 한 개의 비트이므로 buad rate와 bps의 의미는 같아진다.)

예외적으로 1 buad rate에 2bps를 사용하는 곳도 있는데, 115200 buad rate라면 230,400bit가 전송된다.


1.2 ASCII코드로 사용할 때의 buad rate

아마도 우리가 흔히 사용하게 될 방식이 아닐까 싶다.

ASCII코드는 1byte(=8bit)씩 표현된다. 115200bps로 전송하게 될 경우,
115200bps/8bit = 14400baud rate가 된다. 즉 1초에 14400의 bit를 전송하게 된다.

하지만 여기서 주의해야 할 점이 있다.

UART전송의 경우 Start bit, Stop bit, Parity bit를 포함하여 데이터를 전송하기 때문에 계산이 조금 까다로워 진다.

예를 들어 Start bit(1bit) + Data bit(5~8bit) + Parity bit(1bit) + Stop bit(1bit)로 표현될 수 있으며 총 8~11bit를 전송하게 된다.

즉, 전송 데이터 비트에 따라 baud rate가 변할 수 있다는 뜻이다.


[EX]
Stop bit(1bit) + Data bit(8bit) + Partiy bit(0bit) + Stop bit(1bit) = 10bit이고 115200bps(1초에 115200비트 전송)일 경우, 몇 baud rate인가?

baud rate = 115200 / 10 = 11520
(10bit라는 심볼이므로 bps를 10bit로 나눠야한다.)

bit로 계산한다면 "baud rate와 bps는 같다"라고 말 할 수 있지만, ASCII코드로 계산한다면 "baud rate와 bps는 다르다"라고 말 할 수 있다.


참고자료 :
https://m.blog.naver.com/gmqgufrn/220862079486
https://openstory.tistory.com/66

profile
1139일 남음

0개의 댓글