일반적인 경우 흐름 제어 옵션을 OFF로 하기 때문에 Baud Rate만 신경을 쓰면 되지만

 

흐름 제어 기능을 사용할 경우에는 평상시처럼 Rx, Tx만으로는 통신이 되지 않는다.

 

 

1. Software Handshaking

 

직렬 통신을 통해 버퍼 사이즈 초과 등으로 인하여 더 이상 데이터를 입력 받지 못할 경우에

입력 측에서 XOFF문자를 보내주면 출력 측에서 데이터 전송을 중단한다.

 

반대로, 추가적인 데이터를 받을 수 있는 경우에 입력 측에서 XON문자를 보내주면

출력 측에서 중단했던 데이터 전송을 재개한다.

 

XON - 아스키코드 문자 DC1, 0x11, Ctrl+Q

XOFF - 아스키코드 문자 DC3, 0x13, Ctrl+S

 

2. Hardware Handshaking

 

마찬가지로 데이터를 입력 받지 못하는 상황이 발생하면 RTS, CTS Pin 출력 상태로 알려준다.

 

RTS(Request To Send) : 수신 측에서 데이터 수신이 가능한 상태이면 Low, 불가능한 상태이면 High를 출력함

CTS(Clear To Send) : 송신 측에서 CTS핀 상태가 Low일 때 데이터를 송신

 

 

하드웨어 흐름 제어를 On 으로 사용하여야 할 때,

 

MCU로 직접 RTS, CTS핀을 제어하여 통신할 수도 있으며 간단하게 이용하려는 경우에는

 

같은 장치끼리 RTS-CTS를 Short시키거나 CTS를 Low로 Pull Down 해 주면

 

흐름 제어를 이용하지 않는 상태처럼 직렬 통신을 이용 가능하다.

 

+ Recent posts