시리얼 통신에서 하드웨어 흐름제어와 소프트웨어 흐름제어가 있는데 그 두개를 제어할려면 어떻게 해야 하나여??? 소스에 나와있는데로 했는데 잘 안되네요... 혹시 하드웨어적으로도 다른 세팅작업이 필요한가여???
혹시 RX, TX를 서로 크로스 해야하는데....좀 더 자세히 말해 보세요
------------- 포탈이는 불사신
시리얼 통신에 제가 아는 내용이 크게 없어서 좀 더 자세하게 질문을 할려고 해도 할수가 없네요
우선 기본적인 통신은 되는데... 하드웨어 흐름제어를 세팅하면 통신이 안되는 현상이 발생합니다. 기본적으로 통신은 된다는 건 케이블 세팅은 완료된거구요.. 하드웨어 흐름제어와 관련하여 좀더 자세한 내용을 알고싶습니다.
/*************************************************** * 가장 심플한 것이 가장 아름다운 것이다. ***************************************************/
결선까지는 기억이 나지 않지만, 하드웨어 흐름제어의 특징은 자신이 송신모드일 때나, 수신모드에 있을 때 등을 특정한 핀에 전기를 흘리는 등의 물리(하드웨어)적 방식으로 상대방에게 알려 줍니다.(핸드쉐이킹이라고 하더군요)
따라서, 9Pin 모두를 사용하고, 이를 사용하려면, 자신의 시리얼 장치에도 하드웨어 흐름제어 스위치를 켜주어야 합니다. (물론 크로스 케이블일 경우 결선도 중요하겠지요)
따라서, 하드웨어 흐름제어를 하는 장치와 그렇지 않는 장치간에는 통신이 안됍니다.
반면, 소프트웨어 흐름제어는 물리적인 장치에 의존하지 않고, 자신이 보내는 패킷 앞뒤에 특정한 신호를 실어서 보내는 겁니다. 이 특정한 신호는 STX(start of text) ETX(end of text)로 불리우며 일반 ASC코드를 사용합니다.(02,03 정도)
따라서 소프트웨어 흐름제어를 사용하는 장치와 사용하지 않는 장치간에도 통신이 가능합니다. 단, 앞뒤에 적절한 아스키 코드값을 실어서 보내주기만 되지요.
고속통신이나 장치간에 크게 노이즈가 유입돼지 않는다면, 하드웨어 흐름제어를 할 필요는 없습니다만, 통신의 안정성은 하드웨어 흐름제어가 더 높지요...
참고가 되셨으면 합니다.
There is no spoon. Neo from the Matrix 1999.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
혹시 RX, TX를 서로 크로스 해야하는데....좀 더 자세히 말해 보세
혹시 RX, TX를 서로 크로스 해야하는데....좀 더 자세히 말해 보세요
-------------
포탈이는 불사신
자세한 질문???
시리얼 통신에 제가 아는 내용이 크게 없어서 좀 더 자세하게 질문을 할려고 해도 할수가 없네요
우선 기본적인 통신은 되는데... 하드웨어 흐름제어를 세팅하면 통신이 안되는 현상이 발생합니다. 기본적으로 통신은 된다는 건 케이블 세팅은 완료된거구요..
하드웨어 흐름제어와 관련하여 좀더 자세한 내용을 알고싶습니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
결선까지는 기억이 나지 않지만,하드웨어 흐름제어의 특징은 자신이 송신
결선까지는 기억이 나지 않지만,
하드웨어 흐름제어의 특징은 자신이 송신모드일 때나, 수신모드에 있을 때 등을 특정한 핀에 전기를 흘리는 등의 물리(하드웨어)적 방식으로 상대방에게 알려 줍니다.(핸드쉐이킹이라고 하더군요)
따라서, 9Pin 모두를 사용하고,
이를 사용하려면, 자신의 시리얼 장치에도
하드웨어 흐름제어 스위치를 켜주어야 합니다.
(물론 크로스 케이블일 경우 결선도 중요하겠지요)
따라서, 하드웨어 흐름제어를 하는 장치와 그렇지 않는 장치간에는
통신이 안됍니다.
반면, 소프트웨어 흐름제어는 물리적인 장치에 의존하지 않고,
자신이 보내는 패킷 앞뒤에 특정한 신호를 실어서 보내는 겁니다.
이 특정한 신호는 STX(start of text) ETX(end of text)로
불리우며 일반 ASC코드를 사용합니다.(02,03 정도)
따라서 소프트웨어 흐름제어를 사용하는 장치와 사용하지 않는 장치간에도
통신이 가능합니다.
단, 앞뒤에 적절한 아스키 코드값을 실어서 보내주기만 되지요.
고속통신이나 장치간에 크게 노이즈가 유입돼지 않는다면,
하드웨어 흐름제어를 할 필요는 없습니다만,
통신의 안정성은 하드웨어 흐름제어가 더 높지요...
참고가 되셨으면 합니다.
There is no spoon. Neo from the Matrix 1999.
댓글 달기