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에 정의되어 있습니다.
The DCE is a modem connecting between the terminal and telephone network. In the telephone network was another piece of equipment which split off to the data network, eg. X.25.
The modem has three states: Powered off, Ready (Data Set Ready is true), and connected (Data Carrier Detect)
The terminal can't do anything until the modem is connected.
When the modem wants to send data, it raises RTS and the modem grants the request with CTS. The modem lowers CTS when its internal buffer is full.
So nostalgic!
The difference between them is that they use different pins. Seriously, that's it. The reason they both exist is that RTS/CTS wasn't supposed to ever be a flow control mechanism, originally; it was for half-duplex modems to coordinate who was sending and who was receiving. RTS and CTS got misused for flow control so often that it became standard.
An important difference is that some UARTs (16550 notably) will stop receiving characters immediately if their host instructs them to set DSR to be inactive. In contrast, characters will still be received if CTS is inactive. I believe that the intention here is that DSR indicates that the device is no longer listening and so sending any further characters is pointless, while CTS indicates that a buffer is getting full; the latter allows for a certain amount of 'skid' where the flow control line changed state between the DTE sampling it and the next character being transmitted. In (relatively) later devices that support a hardware FIFO it's possible that a number of characters could be transmitted after the DCE has set CTS to be inactive.
'Program Tip' 카테고리의 다른 글
Go에서 int와 int64의 차이점은 무엇입니까? (0) | 2020.10.27 |
---|---|
CMD에서 환경 변수 사용 (0) | 2020.10.27 |
Python : Python 목록은 len ()에 대한 개수를 유지합니까, 아니면 각 호출에 대해 계산합니까? (0) | 2020.10.26 |
조인 업데이트를위한 MySQL 구문 (0) | 2020.10.26 |
이전 + n 미터에서 새로운 경도, 위도 계산 (0) | 2020.10.26 |