Arduino 직렬 통신의 전송 속도
Arduino 코딩은 기본 개념을 이해하고 논리적 구현에 대한 요령이 있으면 매우 간단합니다. 이 기사에서 설명하는이 개념은 전송 속도와 관련이 있습니다. 대부분의 초보 Arduino 코더는 모든 프로그램과 기능에 특정 Baud rate 값을 사용하지만9600
값이 다른 숫자 대신 사용되는 이유를 알지 못합니다. 이 값을 특별하게 만드는 것은 무엇이며 전송 속도의 실제 사용은 무엇입니까?
전송 속도는 단순히 초당 신호 또는 기호 변경 속도입니다. 정의만으로는 이해하기 어렵습니다. 더 시각적 인 해석이 더 좋을 것입니다.
그림 1의 막대 차트를 살펴 보겠습니다. 모든 블록의주기가 1 초라고 가정합니다. 기간이 끝나 가면서 막대 차트의 값이 갑작스럽게 변경됩니다. 첫 번째 막대의 경우 갑자기 가치가 증가합니다. 이 초당 변경을 전송 속도라고하며이 특정 경우의 전송 속도는 1입니다. 신호는 초당 한 번 변경됩니다.
이 새로운 그래프의 경우 신호가 2 월까지 2 번 변경되는 1 월을 고려하십시오. 이것은 2의 전송 속도를 나타냅니다. 이는 또한 포트가 초당 최대 약 2 비트를 전송할 수 있음을 의미합니다. 전송 속도가76800
단위 이상으로 증가하면 최적의 성능을 위해 와이어 길이를 줄여야합니다.
전송 속도와 비트 전송률에는 미묘한 차이가 있습니다. 비트 전송률은 초당 비트 전송률이고 전송률은 초당 신호 또는 기호 변경입니다. 비트 전송률은 전송 속도보다 클 수 있지만 그 반대의 경우도 마찬가지입니다. 전송 속도는 전자 제품, 특히 Arduino 개발 보드와 관련된 DIY 프로젝트와 관련이 있습니다.
C++를 통한 프로그래밍에서 전역 함수로 사용하려면 나중에 사용하기 위해#define BAUDRATE
를 사용하여 의도 한 값을 할당해야합니다. 더 빠른 속도로 데이터를 보내고 받으려면 그에 따라 값을 늘려야합니다. 그러나 마이크로 컨트롤러의 경우 일반적인 값은9600
입니다.
이제 선택 기준은 많은 요인에 따라 달라집니다. 우선 비트율을 높이고 싶다면 보오율을 높여야합니다.
오버 샘플링 기준은 전송 속도와 일치해야합니다. 오버 샘플링 속도를16X
에서8X
로 변경하거나 그 반대로 엄격한 공차 클록이 필요한 경우에도 오류가 발생할 수 있습니다. 속도를 줄이면 오류가 증가하고 시작 비트 에지가 수신 된 비트 에지와 일치하지 않을 수 있습니다.