TX와 RX는 무엇입니까?


11

RS232 통신을 사용하는 장치를 PC로 사용하고 있습니다. 장치와 관련하여 TX 및 RX 핀을 정의함에 따라 약간의 혼동이있었습니다. 정의에서 TX는 장치에서 데이터를 보내는 핀인 TX를 의미하는 데 사용됩니다. 내 마음에 이것은 컴퓨터가받는 핀이기 때문에 RX라고 표시되어야합니다.

핀을 어떻게 정의해야합니까? 각 장치 또는 "제어기"와 관련이 있습니까?


6
TX / RX가 발신자와 다른 관점에서 본 적이 없습니다. 따라서 TX는 송신 파트가 보내고 RX가 수신되는 핀입니다. 나는 당신이 제안한 것처럼 이름을 발견 한 적이 없습니다.
Morten Jensen

13
RS232 핀 이름 지정은 DTE (데이터 터미널 장비) 및 DCE (데이터 통신 장비) 측면에서 사물을 정의하고 완전히 혼동 될 수 있기 때문에 특별한 경우입니다. DCE는 RX 핀의 데이터 출력과 TX 핀의 입력을 가지며 DTE는 반대입니다. 이론적으로 커넥터의 성별은 무엇을 알려 주어야하며 실제로 실제로 제조업체는이를 잘못 이해하여 덜 신뢰할만한 가이드로 만듭니다. 작은 점퍼 와이어 키트와 공통 신호 라인의 일부 LED로 다른 성별의 D9 및 D25가있는 작은 상자를 구입할 수 있었던 이유가 있습니다.
Dan Mills

1
생일이되면 선물을받지 못합니다.
ctrl-alt-delor

1
@MortenJensen 전송 당사자의 관점에서 이름이 지정된 경우 TX라고합니다.
user253751

2
@TerryCarmen 핀 이름과 데이터 흐름 방향이 표준에 따라 반대되는 DCE에는 해당되지 않습니다. DTE Tx-> DCE Tx 및 DTE Rx-> DCE Rx, 예, 이상하고 엉망이지만 그게 그렇습니다.
Dan Mills

답변:


23

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 임). 케이블을 사용하여 다양한 커넥터 핀을 연결할 수 있습니다.


작동하지 않는 경우 일반적인 방법은 케이블의 한쪽 끝에서 핀 2와 3의 연결을 바꾸는 것입니다 (DE-9와 DB25 커넥터 모두에서 작동)
Peter Bennett

2
진실. RS-232 (논리 레벨 신호가 아님)이고 하드웨어 핸드 쉐이킹이없는이 특정 질문과 관련하여, 2 번과 3 번의 핀 교환은 시도해야 할 일입니다 (실수로 두 개의 RS-232 출력을 연결하면 영구적 인 손상). 불행히도 하드웨어 핸드 쉐이킹과 관련하여 문제가 복잡해집니다 (문제는 해당 신호의 다양한 구성에있을 수 있음). 그런 다음 핀 2와 3을 교환하면 문제가 해결되지 않거나 유일한 문제가 해결되지 않을 수 있습니다. 이것은 브레이크 아웃 박스에 대한 기억을 되찾고 문서 에없는 것을 분석 합니다.
SamGibson

1
오 예스, RTS / CTS / DSR / DTR ... 소프트웨어 플로우 제어를 원하는 한 쪽과 RTS / CTS를 원하는 다른 쪽을 좋아하기 전에도 많은 가능성이 있습니다. 그리고 네, 문서는 항상 악취가납니다. 나는 USB (주로 세 가지 유형의 크랩 플러그, 주로 크래프 소프트웨어 스택)에 대해 망설이지 만 '232를 다시 생각하는 것은 완전히 다른 수준의 쓰레기였습니다.
Dan Mills

8

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 핀에 연결되어 있습니다.


이것은 올바르지 않습니다. 표준은 DTE와 DCE (서로 대화하는 두 가지)를 지정하고 TX / RX는 이들 중 하나의 관점에서 지정됩니다 (어떤 것을 잊어 버렸습니다). 이 세부 사항은 수년에 걸쳐 없어졌으며 레이블 사용이 너무 어두워 져 숙련 된 전기 기술자조차도 실수를합니다.
Steve

SamGibson의 답변은 매우 좋습니다.
Steve

2
@Steve "세부 사항이 없어졌습니다"?! RS232의 사양은 웹 전체에 있습니다! DTE와 DCE가 해당 핀을 통해 "서로 통신" 하지 않기 때문에 DTE 측에 지정된 TX / RX 이름은 여러 개의 제어 신호를 사용합니다. 모뎀과 컴퓨터 는 서로 다르게 말할 것이 없습니다 . 모뎀은 단순히 그 신호를 통과시킵니다. 그러나 널 모뎀을 사용하여 두 개의 DTE를 연결할 수 있으며 관점은 어디입니까? 둘 다 컴퓨터이고 서로 대화하고 있으며 OP 질문에 설명 된 상황입니다.
Maple

물론 DTE에서 DTE로 작동합니다. 답변에 DTE 및 DCE에 대한 정보가 포함되어 있지 않은 것이 놀랍습니다 . 답변이 정확한지 이해하는 데 많은 도움 이됩니다. 나는 당신의 대답이 틀렸다고 말했을 때 잘못된 말을했다고 생각하지만, 여기에서 다른 오해를 영속시킵니다. ", 또는 DTE 신호 이름으로 DCE 장비에 레이블을 지정하십시오. 그리고 그 세부 사항을 포함시키지 않으면 조금씩 영속 될 수 있습니다.
Steve

1
@Steve 나는 의도적으로 DTE / DCE에 대한 언급을 피했다. 왜냐하면 당신은 중요하지만 질문 제어 신호와 관련이없는 많은 것을 논의하지 않고 거기에 갈 수 없기 때문이다.
Maple

6

RS232 장치에는 "마스터 / 슬레이브"또는 "클라이언트 / 서버"관계가 없으므로 일반적으로 장치와 관련이 있습니다. SPI 프로토콜에는 마스터 / 슬레이브 아키텍처가 있으므로 "MISO"(Master In Slave Out) 및 "MOSI"(학생에게 연습으로 남음)라는 레이블이 붙어 있습니다. 그것은 장치 수준에 있습니다. 개별 회로 설계자가 정식 명칭으로 선택할 수있는 것은 말할 수 없습니다.


그들은 "DTE / DCE"관계를 가지고 있지만 @Maple이 설명한 것처럼 거기서 멈추었습니다. 실제로 일부 깊은 역사는 그들이 한 일을 설명 할 수 있습니다.
gbarry

이 답변은 사람들이 RS-232를 처리하는 현재의 방식을 정확하게 설명하지만 기술적으로 잘못되었습니다 (@gbarry가 DCE / DTE를 지적함).
Steve

4

불행히도 엔지니어에게는 이것이 두 조각의 똥 사이의 수수께끼입니다.

실제 논리적 해결책은 없으며 두 가지 방법 모두 논리적으로 이해할 수 있습니다.

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 커넥터를 장치에서 사용하도록하는 것입니다. 그것은 과거의 모든 것에 대한 자유를 줄였습니다.


1
당신은 RXD>화살표 가 핀을 가리키는 방향으로 표시 하고 있습니다 . 이것은 그 핀에서 나오는 신호가 있음을 의미합니다. 확실히 입력이 아닌 출력 이 될 것으로 기대합니다 !
파이프

@pipe 커넥터를 기준으로 칩이 회로 기판의 어느 위치에 있는지 고려하면 문서없이 제품을 작업하는 사람에게는 전혀 모호하지 않습니다. 화살표는 신호 흐름을 정확하게 나타냅니다. [흥미로운 언어 학적 포인트 : "out"/ "in"과 달리 화살표는 공간적 맥락 내에서 본질적인 의미만을
지닙니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.