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


82

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

답변:


69
  • 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를 낮 춥니 다.

너무 그리운!


1
잘 요약되었습니다. 그런 다음 '부드러운'흐름 제어 xOn / xOff가되었습니다.
n8wrl 2009-06-05

참고 : DTR / DSR은 80 년대 중반 이후 RTS / CTS보다 덜 일반적이되었습니다. Linux 커널은 DTR / DSR을 지원하지 않았습니다. Linux 커널이 DTR / DSR을 지원할 당시에는 232 직렬이 쓸모 없게되었습니다.
david

8
@david 이러한 신호는 RS232로 제한되지 않고 TTL UART에서도 사용됩니다. 그리고 이것들은 구식이 아닙니다.
glglgl

따라서 DTE (컴퓨터) 및 DCE (모뎀) 측면에서 RTS / CTS는 DCE (모뎀)에 데이터가 넘치지 않도록하고 DTR / DSR은 DTE (컴퓨터)에 데이터가 넘치지 않도록합니다. 그 맞습니까?
skinnedKnuckles

@skinnedKnuckles는 내 기억의 최고에 맞습니다. 이 일에 대해 걱정해야했던 지 너무 오래되었습니다.
Mark Ransom 2018 년

30

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


1
나는 반이중에 대해 완전히 잊어 버렸습니다. 나는 콤보 라인 프린터 / 카드 리더기에서 그것을 실제로 본 것을 막연하게 기억합니다. 대답 해 주셔서 감사합니다.
Mark Ransom

이제 superuser.com이 존재하며, 요청 당시 Linux 커널이 DTR / DSR 신호를 지원하지 않았다고 알려줍니다. superuser.com/questions/345005/... . 또 다른 차이점은 DTR / DSR 시그널링이 덜 일반적이거나 스마트 모뎀에서 사용되지 않았습니다.
david

1

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.