2011-09-28 3 views
4

하드웨어 핸드 셰이크핸드 셰이크을 열 때 차이점을 확인하려고합니다.직렬 포트 핸드 셰이크. 하드웨어와 핸드 쉐이킹의 차이점은 무엇입니까?

두 경우 모두 RTS/CTS 신호를 제어해야합니다 (단지 하나의 COM 장치로 테스트 한 것 같습니다). 그렇다면 하드웨어 핸드 셰이크와 함께 시리얼 포트를 여는 것과 핸드 쉐이킹하지 않는 것 사이의 차이점은 무엇입니까?

이전의 이해에서 우리가 without handshaking을 작업 할 때 우리는 RTS/CTSDTR/DSR 신호에 신경 쓰지 않습니다. 우리가 원할 때마다 데이터를 보내고받습니다. 내가 틀렸어?

하나 더 질문드립니다. without handshakingfull duplex 모드에서만 작동시킬 수 있습니까?

답변

6

아시다시피, 문제는 "흐름 제어"입니다. Clash 노래처럼 "내가 머물러야합니까, 아니면 가야합니까?".

RTS/CTS는 하드웨어 제어입니다. XON/XOFF는 소프트웨어 제어입니다. 그렇지 않으면 "그냥 계속".

이 링크는 더 설명 할 수 있습니다

http://www.lammertbies.nl/comm/info/RS-232_flow_control.html

난 당신이 "이중"에 대한 "핸드 쉐이크"에 대해 물어 때, 아마도 당신이 의미 의심 :

http://en.wikipedia.org/wiki/RS-232

이전 버전의 사양에서는 RS-232의 RTS 및 CTS 회선 사용이 비대칭입니다. DTE a 을 DCE로 전송하려는 요구를 나타 내기 위해 RTS를 전송하고, 허가는 허가에 대한 응답으로 DCE가 CTS를 표명합니다. 이로써, 필요하지 않을 때 송신기를 사용할 수 없게하는 반이중 모뎀이 허용되며 수신기가 다시 활성화 될 때 수신기에 동기화 프리앰블을 전송해야합니다.

'도움이 되길 바랍니다!

+3

감사합니다. @ paulsm4. 그러나 'RTS/CTS'신호로 작동하는 점에서 차이점을 찾으려고합니다. - '흐름 제어'없이 직렬 포트를 열면 'RTS/CTS'신호를 설정/확인해야합니까? '하드웨어 흐름 제어 '로 시리얼 포트를 열면 수동으로해야합니까? - 포트를 연 다음 'RTS를 높음'으로 설정할 수 있습니까? 그 후에 포트를 만지지 않습니까? 좋은 습관입니까? - 반이중 모드에서 어떻게 데이터 수신을 방지하기 위해 'CTS'신호를 변경할 수 있습니까? 'RTS'와'DTR' 신호를 설정할 수 있고'CTS'와'DSR' 신호 만 체크하는 것 같습니다. –

1

더 많은 데이터를 보낼지 여부를 결정할 때 커널이 CTS/RTS 행에주의를 기울일 지에 대한 차이점이 있습니다. 하드웨어 핸드 셰이 킹이 켜지면됩니다. 이 값을 none으로 설정하면 CTS/RTS 행이 어설 션 상태로 유지 될 수있어 피어가 데이터를 보낼 수 있음을 알 수 있습니다.

관련 문제