O que são TX e RX em relação?


11

Eu tenho trabalhado com um dispositivo que usa comunicação RS232 para um PC. Houve alguma confusão, pois eles definiram seus pinos TX e RX em relação ao dispositivo. Em suas definições, eles costumam significar TX como o pino que envia dados do dispositivo. Na minha opinião, isso deve ser rotulado como RX, porque é o pino no qual o computador recebe.

Como os pinos devem ser definidos? Eles são relativos a cada dispositivo ou relativos ao "controlador"?


6
Eu nunca vi o TX / RX ser de outras perspectivas além da parte remetente. Portanto, TX é o pino que a parte remetente envia e o RX é recebido. Eu nunca encontrei nomes como você sugere.
Morten Jensen

13
A nomeação de pinos RS232 é um caso um pouco especial, porque eles definiram as coisas em termos de DTE (equipamento terminal de dados) e DCE (equipamento de comunicação de dados) e conseguiram causar confusão total. O DCE possui a saída de dados no pino RX e a entrada no pino TX, o DTE é o oposto. Em teoria, o sexo dos conectores deveria lhe dizer o que é o que, na prática, muitos fabricantes erraram para torná-lo um guia menos confiável. Há uma razão pela qual você costumava comprar caixinhas com D9 e D25 de sexos diferentes, com um kit de pequenos fios de ligação em ponte e alguns LEDs nas linhas de sinal comuns.
Dan Mills

1
Quando é seu aniversário, eu não recebo um presente para você.
Ctrl-alt-delor

1
@MortenJensen: bem, se receberem um nome da perspectiva da parte que envia, ambos deverão ser chamados de TX.
user253751

2
@TerryCarmen Não é verdade para o DCE, onde os nomes dos pinos e as direções do fluxo de dados são revertidos de acordo com o padrão. DTE Tx -> DCE Tx e DTE Rx -> DCE Rx, sim, estranho e porcaria, mas é o que é.
Dan Mills

Respostas:


23

Pode ser mais fácil entender, se analisarmos rapidamente como o padrão RS-232 foi originalmente usado.

Nota: Todos os números de pinos abaixo se referem ao conector D original de 25 pinos; a numeração foi alterada no conector de 9 pinos usado em computadores posteriores.

fundo

DTE = Equipamento de terminal de dados - antigamente, esse usualmente seria um terminal ou uma impressora ou um equipamento que os emulas.

DCE = Equipamento de Comunicação de Dados - antigamente, normalmente era um modem ou outra interface WAN.

O pino 2 no conector D original de 25 pinos (descrito na norma como "Dados transmitidos", "Circuito BA", "V24. Número 103") deve ser dado do DTE ao DCE.

O pino 3 no conector D original de 25 pinos (descrito na norma como "Dados recebidos", "Circuito BB", "V24. Número 104") deve ser dado do DCE ao DTE.

Isso significava que o cabo que ligava um terminal e um modem era "direto" - o pino 2 em um terminal (DTE) em uma extremidade do cabo onde os dados se originavam, era conectado ao pino 2 em um modem (ou similar) na outra extremidade do cabo (DCE) em que esses dados foram recebidos. O modem então enviou esses dados usando o link de comunicação para qualquer equipamento que estivesse do outro lado desse link.

O pino 3 "Dados recebidos" foi o sinal de dados na direção oposta - transmitido pelo modem (DCE) no pino 3 e recebido pelo terminal (DTE) no pino 3.

Portanto, você pode ver que a rotulagem do que foi transmitido e do que foi recebido foi do ponto de vista do DTE (ou seja, o terminal). Tudo isso fazia sentido quando as conexões típicas estavam entre um DCE e um DTE.

No entanto, os equipamentos que estamos usando atualmente (mesmo quando não usam RS-232 e, em vez disso, usam uma interface de protocolo TTART ou outra interface UART de tensão) são geralmente todos efetivamente DTE (com uma exceção sendo modems). Conectar o pino 2 (que é uma saída) em um pedaço de DTE ao pino 2 (outra saída) em outro equipamento configurado como DTE, não faz sentido (e ao usar sinais de nível lógico, pode até causar danos ao hardware). É aqui que entra o uso de cabos "cruzados" ou "modem nulo" (ou seja, sem modem).

Sua pergunta

Eu tenho trabalhado com um dispositivo que usa comunicação RS232 para um PC. Houve alguma confusão, pois eles definiram seus pinos TX e RX em relação ao dispositivo. Em suas definições, eles costumam significar TX como o pino que envia dados do dispositivo. Na minha opinião, isso deve ser rotulado como RX, porque é o pino no qual o computador recebe.

Como os pinos devem ser definidos? Eles são relativos a cada dispositivo ou relativos ao "controlador"?

A partir das informações de plano de fundo acima, você pode ver que as etiquetas estão corretas se o dispositivo estiver atuando como DTE (o que é mais, a menos que seja um modem ou outra interface WAN). Em um pedaço de DTE, o pino marcado "dados transmitidos" (2 pino no conector de 25 pinos) se enviar dados. (E, como explicado acima, em um pedaço de DCE (por exemplo, um modem), o pino conhecido como "Dados transmitidos" (pino 2 em seu conector de 25 pinos) é na verdade uma entrada que recebe o sinal do DTE.)

A porta serial do PC também será configurada como DTE (a menos que tenha uma porta serial muito incomum - que não se aplicará aqui, como você saberia se ela se aplicasse).

Portanto, você está conectando o dispositivo DTE (este dispositivo que você mencionou) ao dispositivo DTE (o PC), ou seja, não há DCE na "terminologia RS-232, ou seja, nenhum modem, e o" modem nulo "ou" cruzado "RS-232 Qualquer pino é RS-232 "Dados transmitidos" (provavelmente aquele que você mencionou como rotulado como TX) neste dispositivo DTE, que será uma saída , precisará ser conectado ao RS-232 "Received Dados "no seu PC (também um dispositivo DTE), que é uma entrada (e obviamente vice-versa para transferência de dados na outra direção).

Embora isso não pareça se aplicar a você, acrescentarei: Para tornar a vida mais complicada, alguns fabricantes tentam "ajudar" rotulando efetivamente seus equipamentos de DTE como se fossem um DCE. Eles marcam o pino de entrada de dados como Tx, para que o usuário conecte "Tx" do dispositivo externo (que, se for DTE, será a saída de dados) ao pino marcado "Tx" no equipamento (que eles sabem que é uma entrada ). Assim, eles podem dizer "basta conectar o Tx no seu dispositivo ao Tx no nosso equipamento". Eles acham que estão tentando ajudar, mas essa rotulagem geralmente aumenta a confusão.

Como Dan Mills mencionou em um comentário, muitos de nós que crescemos com o RS-232, passamos horas felizes tendo que conectar vários equipamentos com implementações RS-232 ligeiramente diferentes, usando as "caixas de interrupção" que ele descreveu. Essas caixas de interrupção têm LEDs, que mostram quais sinais estão sendo ativados ativamente (isso rapidamente permite que você veja se o equipamento está configurado como DTE ou DCE: o pino 2 é acionado nesse equipamento? Sim = é DTE) e tem locais onde o jumper curto cabos podem ser usados ​​para conectar os vários pinos do conector.


Prática comum, se as coisas não funcionam, é conexões de swap sobre os pinos 2 e 3 em uma extremidade do cabo (Isso funciona em ambos os conectores DE-9 e DB25)
Peter Bennett

2
Verdade. No contexto desta questão específica, em que é o RS-232 (não sinais de nível lógico) e nenhum handshaking de hardware é mencionado, a troca dos pinos 2 e 3 seria algo a tentar (uma vez que conectar acidentalmente duas saídas RS-232 não deve causar dano permanente). Infelizmente, as coisas ficam complicadas quando o handshaking de hardware está envolvido (pois o problema pode estar nas várias configurações desses sinais). A troca dos pinos 2 e 3 pode não resolver o problema ou o único problema. Isso traz de volta memórias de caixas desagregadas e análise do que não estava na documentação.
SamGibson

1
Ah, sim, RTS / CTS / DSR / DTR ... Tantas e muitas possibilidades, mesmo antes de você se divertir com coisas como uma extremidade querendo controle de fluxo de software e a outra esperando RTS / CTS. E sim, a documentação sempre fedia. Eu me importo com USB (principalmente três tipos de plugues de porcaria, principalmente pilhas de software de porcaria), mas, pensando bem, o 232 era um outro nível de craptastic.
Dan Mills

8

Ao contrário de muitas configurações de barramento, que usam o nome do sinal , a comunicação serial tradicionalmente usa o nome da função para os pinos. Portanto, se o dispositivo transmitir em algum pino, ele será marcado como Tx. Se receber, está marcado como Rx. Obviamente, você conecta o TX de um dispositivo ao RX do outro e vice-versa.

Para colocar em perspectiva, o dispositivo sobre o qual você está falando também possui um "computador", que é basicamente o MCU. Por que um computador deve ditar os nomes dos pinos do outro computador, especialmente considerando a natureza assíncrona bidirecional da comunicação?

O caso especial é quando o dispositivo em questão é do tipo passagem, como um modem antigo ou um conversor FT232 moderno. Eles não estão usando pinos Tx / Rx para se comunicar com o computador, eles os usam para passar a comunicação do computador mais adiante na linha. Por esse motivo, seus pinos recebem o nome dos sinais que chegam.

ATUALIZAÇÃO: Aqui estão alguns exemplos para ilustrar o ponto.

Provavelmente, milhões de pessoas estão usando Arduinos hoje em dia, algumas sem ter a menor idéia de como isso funciona. Eles conectam Tx a Rx, Rx a Tx, Gnd a Gnd e eles estão prontos. O que eles geralmente não percebem é que estão tecnicamente criando modem nulo, o que permite que dois MCUs conversem entre si.

Agora, as mesmas pessoas às vezes querem adicionar conectividade USB aos seus Arduinos. Eles conectam TX a TX e RX a RX no adaptador ou no chip conversor. Observe que os chamados frequentemente "TX-IN" e "RX-OUT" para evitar confusão. Novamente, o que parece óbvio, mas raramente pensado, é que tecnicamente esse adaptador USB é um dispositivo de passagem. O que "diz" no pino RX não é proveniente do próprio adaptador, mas do dispositivo do outro lado da linha. E adivinha? Ele está conectado ao pino TX em algum lugar.


Isto está incorreto. O padrão especifica DTE e DCE (as duas coisas conversando entre si) e TX / RX são especificados da perspectiva de um deles (eu esqueço quais). Esse detalhe foi perdido ao longo dos anos e o uso das etiquetas ficou tão obscuro que até engenheiros elétricos experientes cometem o erro.
Steve

A resposta de SamGibson é muito boa.
Steve

2
@ Steve "Os detalhes foram perdidos" ?! A especificação do RS232 está em toda a web! Os nomes TX / RX especificados para o lado do DTE, porque o DTE e o DCE não estão "conversando" sobre esses pinos, eles usam vários sinais de controle para isso. O modem e o computador não têm nada a dizer um ao outro . O modem simplesmente passa esses sinais. Mas você pode conectar dois DTE usando modem nulo e onde você está, então? Ambos são computadores, estão conversando entre si e essa é exatamente a situação descrita na pergunta do OP.
bordo

DTE para DTE, é claro, funciona. Estou surpreso que você não tenha incluído nenhuma informação sobre DTE e DCE em sua resposta, o que ajuda muito a entender por que sua resposta está correta. Suponho que falei mal quando disse que sua resposta está incorreta, mas isso perpetua o outro mal-entendido aqui - por "os detalhes foram perdidos", quero dizer que a maioria dos engenheiros nem pensa nisso e apenas "tenta até que esteja certo" "ou identifique o equipamento DCE com nomes de sinal DTE. E, sem incluir esse detalhe ajuda a perpetuar isso um pouco ...
Steve

1
@ Steve, evitei mencionar intencionalmente DTE / DCE, porque você não pode ir lá sem discutir muita coisa importante, mas irrelevante para os sinais de controle de perguntas, etc. De qualquer forma, atualizei a resposta com alguns exemplos para tornar as coisas mais claras.
bordo

6

Eles geralmente são relativos ao dispositivo, pois os dispositivos RS232 não têm um relacionamento "mestre / escravo" ou "cliente / servidor". O protocolo SPI possui uma arquitetura mestre / escravo, sendo rotulados como "MISO" (Master In Slave Out) e "MOSI" (deixado como exercício para o aluno). Isso é no nível do dispositivo; Não posso falar com o que os projetistas de circuitos individuais podem escolher como nomes de rede.


Eles têm um relacionamento "DTE / DCE", mas como o @Maple descreve, eles pararam por aí. Na verdade, uma história profunda pode explicar o que eles fizeram.
Gbard #

Essa resposta, embora descreva com precisão a maneira atual como as pessoas tratam o RS-232, está tecnicamente errada (como @gbarry aponta para DCE / DTE).
Steve

4

Infelizmente, para os engenheiros, esse é um enigma entre duas fatias de bosta.

Não existe uma solução lógica real, ambas as formas podem fazer sentido lógico.

Tento rotular pinos, placas de circuito impresso, layouts de IC, tabelas de conexões, software, com as palavras IN / OUT e / ou setas mostrando a direção. Use as palavras "Saída TX" "Entrada RX" "Saída CTS" "Entrada RTS" nos seus esquemas etc. Isso resolve completamente a ambiguidade. [Geralmente penso que TX e RX devem ser nomeados corretamente, ou seja, TX deve ser uma saída].

Aqui está um PCB onde os sinais cruzam uma barreira de isolamento. Observe as setas, para que alguém a depure ou tente encaixar um conector, saiba claramente para onde os sinais estão indo.

insira a descrição da imagem aqui

Os sinais de controle são ainda piores. (além de uma direção elétrica, eles também têm uma direção de controle lógico)

Os sinais de controle possuem uma documentação explicitamente explicando a função: 'CTS (saída) sinaliza ao computador que o dispositivo está pronto para receber dados'

Às vezes, os dois lados fazem sentido ao mesmo tempo: eu tenho um chip em que RX e TX são nomeados corretamente com sua própria função (da perspectiva dos chips). Mas os pinos do aperto de mão são nomeados CTS e RTS correspondentes aos pinos do PC aos quais eles serão conectados, porque é a isso que software e luzes de status se referem.

Algo que ajudou nos últimos anos, é usar dispositivos que usam um conector DE9F que se conecta diretamente a uma porta serial do PC com um cabo mf direto. Isso reduziu o livre para todo o passado.


1
Você está mostrando RXD>com a seta apontando para fora do pino, o que significa que há um sinal saindo desse pino - eu certamente esperaria que isso fosse uma saída , não uma entrada!
pipe

@pipe Se você considerar onde o chip está na placa de circuito, em relação ao conector, isso não é nada ambíguo para alguém que está trabalhando no produto sem documentação. A seta representa com precisão o fluxo do sinal. [linguística ponto interessante: ao contrário "para fora" / "no", setas só tem significado intrínseco num contexto espacial]
Henry Crun
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.