[serial-port] DTR / DSR과 RTS / CTS 흐름 제어의 차이점은 무엇입니까?

DTR / DSR과 RTS / CTS 하드웨어 흐름 제어의 차이점은 무엇입니까? 각각은 언제 사용됩니까? 두 가지 이상의 하드웨어 흐름 제어가 필요한 이유는 무엇입니까? 🙂



답변

  • DTR-데이터 터미널 준비
  • DSR-데이터 세트 준비
  • RTS-전송 요청
  • CTS-Clear To Send

표준에 내장 된 프로토콜이 없었기 때문에 여러 가지 방법으로 작업을 수행 할 수 있습니다. 장비가 구현하는 임시 “표준”을 사용합니다.

이름 만 보면 RTS / CTS가 자연스럽게 어울리는 것 같습니다. 그러나 시간이 지남에 따라 개발 된 요구와는 반대입니다. 이러한 신호는 단말기가 데이터로 가득 찬 화면을 일괄 전송할 때 생성되었지만 수신기가 준비되지 않았기 때문에 흐름 제어가 필요합니다. 나중에 터미널이 호스트에서 오는 데이터를 따라갈 수 없지만 RTS / CTS 신호가 잘못된 방향으로 이동하기 때문에 문제는 역전 될 것입니다. 인터페이스가 직교하지 않고 다른 방향으로가는 해당 신호가 없습니다. 장비 제조업체는 DTR 및 DSR 신호 사용을 포함하여 가능한 한 최선을 다했습니다.

편집하다

좀 더 자세한 내용을 추가하려면 2 단계 계층 구조이므로 “공식적으로”둘 다 통신이 발생해야합니다. 동작은 원래 CCITT (현재 ITU-T) 표준 V.28에 정의되어 있습니다.

여기에 이미지 설명 입력

DCE는 터미널과 전화 네트워크를 연결하는 모뎀입니다. 전화 네트워크에는 데이터 네트워크로 분리 된 또 다른 장비가있었습니다. X.25.

모뎀에는 전원 꺼짐, 준비 ( 데이터 세트 준비 가 참) 및 연결 ( 데이터 캐리어 감지 )의 세 가지 상태가 있습니다.

모뎀이 연결될 때까지 터미널은 아무것도 할 수 없습니다.

모뎀이 데이터를 보내려고 할 때 RTS를 발생시키고 모뎀은 CTS로 요청을 승인합니다. 모뎀은 내부 버퍼가 가득 차면 CTS를 낮 춥니 다.

너무 그리운!


답변

차이점은 다른 핀을 사용한다는 것입니다. 진지하게, 그게 다야. 둘 다 존재하는 이유는 원래 RTS / CTS가 흐름 제어 메커니즘이 아니었기 때문입니다. 반이중 모뎀이 누가 보내고 받는지 조정하는 것이 었습니다. RTS와 CTS는 흐름 제어에 너무 자주 오용되어 표준이되었습니다.


답변

중요한 차이점은 일부 UART (특히 16550)는 호스트가 DSR을 비활성화하도록 설정하도록 지시하면 문자 수신을 즉시 중지한다는 것입니다. 반대로 CTS가 비활성화 된 경우에도 문자가 수신됩니다. 여기서 의도는 DSR이 장치가 더 이상 수신하지 않음을 나타내므로 추가 문자를 보내는 것은 무의미한 반면 CTS는 버퍼가 꽉 찼음을 나타냅니다. 후자는 DTE 샘플링과 전송되는 다음 문자 사이에 흐름 제어 라인이 상태를 변경하는 특정 양의 ‘스키드’를 허용합니다. (상대적으로) 하드웨어 FIFO를 지원하는 이후의 장치에서는 DCE가 CTS를 비활성으로 설정 한 후 여러 문자가 전송 될 수 있습니다.


답변