RS232 통신을 사용하는 장치를 PC로 사용하고 있습니다. 장치와 관련하여 TX 및 RX 핀을 정의함에 따라 약간의 혼동이있었습니다. 정의에서 TX는 장치에서 데이터를 보내는 핀인 TX를 의미하는 데 사용됩니다. 내 마음에 이것은 컴퓨터가받는 핀이기 때문에 RX라고 표시되어야합니다.
핀을 어떻게 정의해야합니까? 각 장치 또는 "제어기"와 관련이 있습니까?
RS232 통신을 사용하는 장치를 PC로 사용하고 있습니다. 장치와 관련하여 TX 및 RX 핀을 정의함에 따라 약간의 혼동이있었습니다. 정의에서 TX는 장치에서 데이터를 보내는 핀인 TX를 의미하는 데 사용됩니다. 내 마음에 이것은 컴퓨터가받는 핀이기 때문에 RX라고 표시되어야합니다.
핀을 어떻게 정의해야합니까? 각 장치 또는 "제어기"와 관련이 있습니까?
답변:
RS-232 표준의 원래 사용 방법을 신속하게 검토하면 이해하기가 더 쉬울 수 있습니다.
참고 : 아래의 모든 핀 번호는 원래 25 핀 D 커넥터를 나타냅니다. 이후 PC에서 사용되는 9 핀 커넥터에서 번호가 변경되었습니다.
배경
DTE = 데이터 터미널 장비 – 예전에는 일반적으로 터미널이나 프린터 또는이를 모방하는 장비입니다.
DCE = 데이터 통신 장비 – 예전에는 보통 모뎀 또는 다른 WAN 인터페이스입니다.
원래 25 핀 D 커넥터 핀 (2) ( "송신 된 데이터"같은 표준에 기재된 "회로는 BA", "V24. 번호 103") 데이터되어야 로부터 DTE 로 는 DCE.
원래 25 핀 D 커넥터 핀 3 ( "수신 된 데이터"로 표준에 기재된 "회로는 BB", "V24. 번호 104") 데이터되어야 로부터 는 DCE 에 DTE.
이것은 터미널과 모뎀을 연결하는 케이블이 "직선"-데이터가 시작된 케이블의 한쪽 끝에있는 터미널 (DTE)의 핀 2가 다른 쪽의 모뎀의 핀 2에 연결되었음을 의미합니다. 해당 데이터가 수신 된 케이블 끝 (DCE). 그런 다음 모뎀은 통신 링크를 사용하여 해당 링크의 다른 쪽 끝에있는 모든 장비로 해당 데이터를 전송했습니다.
핀 3 "수신 된 데이터"는 반대 방향의 데이터 신호-핀 3의 모뎀 (DCE)에 의해 전송되고 핀 3의 터미널 (DTE)에 의해 수신되었습니다.
따라서 전송 된 것과 수신 된 것의 레이블이 DTE의 관점에서 나온 것임을 알 수 있습니다 (예 : 터미널). 이는 일반적인 연결이 DCE와 DTE 사이에있을 때 의미가있었습니다.
(그들은 RS-232를 사용하지 않는 경우에도 대신에 TTL 또는 다른 전압 UART 프로토콜 인터페이스를 사용하는) 그러나 장비의 조각은 우리가이 일을 사용하는 것은 보통 모든 (한 가지 예외 인 모뎀과) DTE 효과적으로. 한 DTE의 핀 2 (출력)를 DTE로 구성된 다른 장비의 핀 2 (또 다른 출력)에 연결하는 것은 의미가 없습니다 (논리 레벨 신호를 사용할 때 하드웨어 손상을 일으킬 수도 있음). 여기서는 "교차"또는 "널 모뎀"(즉, 모뎀 없음) 케이블을 사용합니다.
당신의 질문
RS232 통신을 사용하는 장치를 PC로 사용하고 있습니다. 장치와 관련하여 TX 및 RX 핀을 정의함에 따라 약간의 혼동이있었습니다. 정의에서 TX는 장치에서 데이터를 보내는 핀인 TX를 의미하는 데 사용됩니다. 내 마음에 이것은 컴퓨터가받는 핀이기 때문에 RX라고 표시되어야합니다.
핀을 어떻게 정의해야합니까? 각 장치 또는 "제어기"와 관련이 있습니까?
위의 배경 정보에서 장치가 DTE (대부분 모뎀이나 다른 WAN 인터페이스가 아닌 경우) 로 작동하는 경우 해당 레이블이 올바른지 확인할 수 있습니다 . DTE에서 "전송 된 데이터"라고 표시된 핀 (25 핀 커넥터의 핀 2) 은 데이터를 전송합니다. (그리고 위에서 설명한 것처럼 DCE (예 : 모뎀)에서 "전송 된 데이터"(25 핀 커넥터의 핀 2)로 알려진 핀은 실제로 DTE로부터 신호를받는 입력입니다.)
PC의 직렬 포트도 DTE로 구성됩니다 ( 매우 특이한 직렬 포트가없는 경우 적용 여부는 알 수 없음).
따라서 DTE 장치 (이 장치를 언급 한 장치)를 DTE 장치 (PC)에 연결합니다. 즉, "RS-232 용어, 즉 모뎀이없고"널 모뎀 "또는"교차 된 "RS-232에 DCE가 없습니다. 출력 이 될이 DTE 장치에서 RS-232 "전송 된 데이터"(아마도 TX라고 표시 한 핀) 중 어느 핀이 RS-232에 연결되어 있어야합니다. PC의 데이터 "핀 (DTE 장치)은 입력 이며 다른 방향으로 데이터를 전송하는 경우에는 그 반대입니다.
이것이 당신에게 적용되지는 않지만, 나는 단지 다음과 같이 덧붙일 것입니다. 삶을 좀 더 복잡하게 만들기 위해 일부 제조업체는 DTE 장비를 마치 DCE의 조각처럼 효과적으로 라벨링하여 "도움을"시도합니다. 이들은 데이터 기호 입력 즉, 사용자가 단지 (이것은 DTE가 있다면, 상기 외부 장치로부터 "송신"을 연결하므로 송신 같은 핀 것 그들이 알고 그들의 장비의 "송신"(표시된 핀 거기에서 출력 된 데이터) 입력 ). 따라서 "기기의 Tx를 장비의 Tx에 연결하기 만하면됩니다"라고 말할 수 있습니다. 그들은 도움을 주려고한다고 생각하지만 그러한 라벨은 종종 혼란을 가중시킵니다.
댄 밀스 (Dan Mills) 가 논평에서 언급 한 바와 같이 , RS-232로 성장한 많은 사람들은 자신이 설명한 "브레이크 박스"를 사용하여 약간 다른 RS-232 구현으로 다양한 장비를 연결하는 데 행복한 시간을 보냈습니다 . 이 브레이크 아웃 박스에는 LED가 있으며 어떤 신호가 능동적으로 구동되고 있는지를 보여줍니다 (장비가 DTE 또는 DCE로 구성되어 있는지 빠르게 확인할 수 있습니다 : 해당 장비에서 핀 2가 구동됩니까? 예 = DTE 임). 케이블을 사용하여 다양한 커넥터 핀을 연결할 수 있습니다.
signal name 을 사용하는 많은 버스와 유사한 구성과 달리 직렬 통신은 전통적 으로 핀의 기능 이름 을 사용 합니다 . 따라서 장치가 일부 핀을 통해 전송하면 Tx로 표시됩니다. 수신되면 Rx로 표시됩니다. 분명히 한 장치의 Tx를 다른 장치의 RX와 연결하거나 그 반대로 연결합니다.
이를 이해하기 위해 이야기하고있는 장치에는 "컴퓨터"도 있습니다. 이것이 바로 기본적으로 MCU입니다. 한 컴퓨터에서 다른 컴퓨터의 핀 이름을 지정해야하는 이유는 무엇입니까 (특히 양방향 비동기 통신의 특성을 고려할 때)?
특별한 경우는 문제의 장치가 구형 모뎀이나 최신 FT232 변환기와 같은 통과 장치 인 경우입니다. 컴퓨터와 통신 하기 위해 Tx / Rx 핀을 사용하지 않고 컴퓨터의 통신을 회선 아래 로 전달 하는 데 사용합니다 . 이러한 이유로 핀의 이름은 신호가 전달되는 이름을 따서 명명됩니다.
업데이트 : 요점을 설명하기위한 몇 가지 예가 있습니다.
아마도 오늘날 수백만의 사람들이 Arduino를 사용하고 있으며, 일부는 그것이 어떻게 작동하는지 전혀 모릅니다. 그들은 Tx를 Rx에, Rx를 Tx에, Gnd를 Gnd에 연결합니다. 그들이 종종 알지 못하는 것은 기술적으로 널 모뎀을 생성하여 두 MCU가 서로 통신 할 수 있다는 것입니다.
이제 같은 사람들이 때때로 Arduino에 USB 연결을 추가하려고합니다. 어댑터 또는 변환기 칩에서 TX를 TX로, RX를 RX로 연결합니다. 혼동을 피하기 위해 종종 "TX-IN"및 "RX-OUT"이라는 이름을 사용합니다. 다시 말하지만, 명백하지만 거의 생각하지 않는 것은 기술적 으로이 USB 어댑터가 통과 장치라는 것입니다. RX 핀에서 "말하는"것은 어댑터 자체에서 나오는 것이 아니라 회선의 다른쪽에있는 장치에서 나오는 것입니다. 그리고 무엇을 추측합니까? TX 핀에 연결되어 있습니다.
RS232 장치에는 "마스터 / 슬레이브"또는 "클라이언트 / 서버"관계가 없으므로 일반적으로 장치와 관련이 있습니다. SPI 프로토콜에는 마스터 / 슬레이브 아키텍처가 있으므로 "MISO"(Master In Slave Out) 및 "MOSI"(학생에게 연습으로 남음)라는 레이블이 붙어 있습니다. 그것은 장치 수준에 있습니다. 개별 회로 설계자가 정식 명칭으로 선택할 수있는 것은 말할 수 없습니다.
불행히도 엔지니어에게는 이것이 두 조각의 똥 사이의 수수께끼입니다.
실제 논리적 해결책은 없으며 두 가지 방법 모두 논리적으로 이해할 수 있습니다.
IN, OUT 및 / 또는 화살표로 방향을 나타내는 핀, PCB, IC 레이아웃, 연결 테이블, 소프트웨어에 레이블을 지정하려고합니다. 회로도 등에 "TX-out" "RX-in" "CTS-out" "RTS-in"이라는 단어를 사용하십시오. 이렇게하면 모호성이 완전히 해결됩니다. [일반적으로 TX와 RX의 이름이 올바르게 지정되어야한다고 생각합니다. 즉 TX는 출력이어야합니다].
신호가 절연 장벽을 통과하는 PCB가 있습니다. 화살표를 참고하여 누군가 디버깅하거나 커넥터에 맞추려고하면 신호가 어떤 방식으로 진행되는지 알 수 있습니다.
제어 신호가 더 나쁩니다. (전기 방향뿐만 아니라 논리적 제어 방향도 있습니다)
제어 신호에는 다음과 같은 기능을 명시 적으로 설명하는 설명서가 있습니다. 'CTS (출력)는 장치가 데이터를 수신 할 준비가되었음을 컴퓨터에 알립니다'
때로는 두 가지 방법이 동시에 의미가 있습니다 .RX와 TX의 이름이 칩 자체 관점에서 올바르게 기능하는 칩이 있습니다. 그러나 핸드 셰이크 핀의 이름은 소프트웨어 및 상태 표시등이 참조하기 때문에 연결할 PC 핀과 일치하는 CTS 및 RTS입니다.
최근 몇 년 동안 도움이 된 것은 mf 케이블을 통해 PC 직렬 포트에 직접 연결되는 DE9F 커넥터를 장치에서 사용하도록하는 것입니다. 그것은 과거의 모든 것에 대한 자유를 줄였습니다.
RXD>
화살표 가 핀을 가리키는 방향으로 표시 하고 있습니다 . 이것은 그 핀에서 나오는 신호가 있음을 의미합니다. 확실히 입력이 아닌 출력 이 될 것으로 기대합니다 !