정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

보드 레이트(Baud Rate)에 관해서 질문드립니다
김진하 | 2016-01-13

대부분의 아두이노 강좌나 코드 예제를 보면 Serial.begin() 명령어를 쓸 때 9600 보드 레이트를 쓰더라고요.

 

이게 시리얼 통신의 속도를 설정한다고 알고 있는데 아두이노 공식 홈페이지에 따르면

300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600,  115200

이렇게 설정할 수 있다고 합니다.

 

어떤 예제를 봐도 거의 다 9600을 쓰던데 속도를 높이면 뭐가 달라지나요?

57600, 115200은 고속 통신을 요하는 경우 처럼 특수한 상황(?)에서만 쓴다라고 대략적으로만 알고 있는데

구체적으로 어떤 경우에 9600 이외의 보드 레이트를 사용하는지가 궁금합니다.

 

제가 이런 질문을 드리는 이유는 현재 하는 프로젝트에서 아두이노에 연결된 USB 선이 불가피하게 길어야 해서요

아마 약 20M 정도 됩니다. 중간에 220V 전원을 인가하는 제품이에요.

그런데 이 USB로 시리얼 통신을 하면 불안정할 때가 있더라고요. 잘 될 때도 있고 어느 순간 안 될때도 있고....

그래서 보드 레이트를 빠르게 하면 좀 더 안정적으로 시리얼 통신을 할 수 있는지 궁금합니다 ㅜㅜ

프로필사진

원기옥 2016-01-14 08:39:50

통신속도는 말그대로 통신속도이지 신호의 세기와는 별개입니다. 

 

말씀하신 프로젝트는 USB 케이블 길이가 상당히 긴데요. USB 케이블의 적정 제한 거리를 확인해보심이 좋을 것 같습니다.

특정 제한 길이를 넘어가면 신호 세기나 질이 현저하게 떨어져 제대로된 신호를 받을 수 없습니다. 

 

 

프로필사진

Requiem 2016-01-15 12:49:08

Baud rate 단위는  bps(Bits Per Second)입니다. 초당 비트수라고하죠.. 9600bps라는 것은 1초에 9600bit의 데이터를 전송한다는 것입니다.

보드 레이트를 빠르게 하면 좀 더 안정적으로 시리얼 통신을 할 수 있는지 궁금하시다고 하셨는대, 그렇지는 않습니다. 

원기옥님의 말씀대로 케이블의 적정 제한 거리를 확인 하십시오.

아두이노에서 연결된 USB선으로 시리얼 통신을 안하시고, TX-I, RX-0의 헤더핀으로 UART 통신을 할 수 있습니다.

굳이 USB를 꽂아 USB <-> Level shif를 안하고 TX-I, RX-0의 헤더핀에 점퍼를 꽂아 시리얼 통신이 가능하다는 얘기죠...

다른 방법으로는 산업현장이나 LED를 제어할때 많이 사용되는 422이나 485통신의 회로를 구성해 케이블이 길어지는 것을 대비하여 빵판에 회로를 구성하셔도 좋을 것 같습니다.

이전글   |    오렌지보드 BLE를 구매해서 테스트중인데요. 안드로이드 소스는 다운받기 어렵네요. ... 2016-01-13
다음글   |    라즈베리파이 질문이요 2016-01-15