Updated: April 25, 2020 2. 시리얼 통신 규격Notice: 본 포스트는 IoT (1) - 시리얼 통신 포스트의 후반부 내용과 이어집니다. 이전 포스트에서는 시리얼 통신에 대한 간략한 개념과 비동기식 시리얼 통신 (이하 UART 통신) 에서 어떤 식으로 데이터를 전송하는지에 대해 언급하였다. 다음 데이터 프레임 (포맷) 그림에서 각 영역(i.e. UART 통신에서 데이터 프레임의 시작과 끝이 Start bit와 Stop bit라는 것은 알고 있지만, 위 그림에서 볼 수 있듯이 Start bit 이외의 영역은 크기가 고정되어 있지 않음을 확인할 수 있다. 따라서, UART 인터페이스로 정보를 주고 받기 위해서는 사전에 통신 규격을 동일하게 설정해줘야 한다. 2.1 비동기식 시리얼 통신 규격UART 통신을 이용하기 위해서는 크게 다음의 두 가지 항목을 사전에 정의해줘야 한다.
2.1.1 보드 레이트 (Baud rate)먼저, Baud rate 값은 신호의 전송 속도를 명시한다. UART 통신에서는 별도의 클럭을 이용하지 않기 때문에 어디서부터 어디까지를 하나의 신호로 판단해야할 것인지를 알아야 하고, 이는 곧 신호의 전송 속도와 연관된다.
따라서, 정상적으로 데이터를 주고받기 위해서는 사전에 Baud
rate 값을 이용해 통신 속도를 명시해줘야 한다. 일반적으로 Baud rate 의 단위로는 주로 사용되는 표준 bps 값: UART 인터페이스의 통신 속도를 Baud rate 라고 소개하였고 보편적으로도 그렇게 언급되지만, 실제로 Baud rate 는 초당 전송 가능한 Symbol (의미있는 데이터의 묶음)의 개수를 정의하는 단위이다. 예를 들어, Notice: 혹시나 2.1.2 프레임 사이즈 (Size of each frame field)다음으로, 전송 속도와 함께 데이터 프레임 각 영역 (field)의 사이즈도 정의해줘야 한다. 일반적으로 Data bit는
2.2 아두이노 예제아두이노 통합 개발환경 ( 위 그림에서 2.3 시리얼 통신 프로그램
다음은 Tera Term 프로그램을 이용해 아두이노 보드의 값을 출력하는 과정의 예이다. 먼저, 프로그램을 실행 시킨 뒤 디바이스를 선택한 뒤에는 아래 그림에서 볼 수 있듯이,
위의 예제를 통해 다른 시리얼 통신 프로그램에서도 정상적으로 정보를 주고 받을 수 있음을 확인하였다. 추가적으로, 정상적으로 통신이 된다는 것은 시리얼 통신 규격이 일치한다는 것을 의미하므로, Referecnce https://learn.sparkfun.com/tutorials/serial-communication http://blueheartscabin.blogspot.com/2014/01/baud-rate-bit-rate.html |