질문입니다.
1. 라즈베리파이와 아두이노의 시리얼통신에 대한 전체적인 원리를 설명해주세요!!!!!!
질문자채택
라즈베리파이보다 훨씬 빠른 데스크탑에서 보내는 시리얼이든
세계 최고 성능의 슈퍼컴퓨터에서 보내는 시리얼이든
아두이노에서 문제없이 처리합니다.
보레이트 9600bps는 정해진 비트 속도이며
이 처리속도보다 더 빠른 115200bps에서도 아두이노는 아무런 문제없이 처리를 합니다.
//
반대로 생각하세요
아두이노에서는 매 1바이트 수신마다 빠뜨리지 않고 꼬박 꼬박 처리를 할 수 있지만
라즈베리파이나 데스크탑 등 OS가 탑재된 애들은 망할 OS에서 제대로 처리를 하지 못해서
수신이벤트를 매 바이트마다 전달해주지 못합니다.
한가하면 1바이트에서 수신이벤트를 주기도 하지만
좀만 바쁘면 수십바이트 단위로 묶어서 이벤트를 전달하며
115200으로 데이터를 연속으로 쏘면
애들이 정신 못차리고 어플리케이션 창도 잘 못 움직일 정도로 버벅입니다.
정확한 타이밍에 맞춰서 처리를 해야하는 제어에서 PC등을 사용하지 못하고 아두이노나 AVR 같은 MCU를 사용하는 이유도 이 때문입니다.
리즈베리파이는 적은 용량의 소규모 리눅스가 포팅되고, 이런 용도로 사용 할 때에는 설치된 프로그램도 아주 적기 때문에
그나마 아두이노처럼 빠르게 처리할 수 있는 것처럼 보이는 겁니다.
쉬운 예를 하나 들어보죠
아두이노에서는 10us주기에서 1us HIGH 펄스를 정확하게 출력 할 수 있습니다.
이런 제어는 PC나 라즈베리파이에서는 할 수 없습니다.
PC나 레즈베리파이는 빠른 처리속도와 거대한 메모리를 바탕으로 많은 데이터의 처리및 연산 등을 고속으로 할 수 있지만 짧은 주기의 정확한 제어는 아두이노에 비해서 떨어집니다.
OS가 그런 용도에 적합하지 않도록 설계 되었기 때문입니다.
추가문의는 https://www.basic4mcu.com