Lunghezza massima del cavo per segnali UART a 3,3 V.


15

Vorrei evitare l'uso di convertitori RS-232 tra due microcontrollori su due schede diverse. Per vari motivi, sono supportati solo UART, ad esempio nessun SPI o I2C, e userò il cavo CAT5E per le prese RJ45 tra le schede. La velocità dei dati sarà di 115200 bps, possibilmente fino a 921600 bps. La terra è collegata insieme ai segnali UART.

Mentre attualmente lo sto lavorando alla massima lunghezza, ne ho bisogno, per la mia educazione, c'è un modo per stimare la lunghezza massima del cavo a cui questo sarebbe affidabile?


Questo lammertbies.nl/comm/info/RS-232_specs.html può essere utile "Se, ad esempio, viene utilizzato un cavo UTP CAT-5 con una capacità tipica di 17 pF / ft, la lunghezza massima consentita del cavo è di 147 piedi."
Kenny,

3
Real RS232 ha un'oscillazione di tensione di oltre 10 Volt tra il segno e lo stato spaziale. E i 147 piedi sono solo per 19200 baud. OP parla di 3V3 UART e da 115200 a 921600 baud: funzionerà solo con cavi relativamente corti.
Turbo J,

2
Posso suggerire tranceiver RS422? Si adatterebbero molto meglio ai cavi twisted pair CAT5E.
Turbo J,

Purtroppo non è un'opzione.
QuestionMan,

Ho una domanda: perché 422 tranceiver non sono un'opzione?
DiBosco,

Risposte:


14

Non esiste una singola risposta sicura. Ha molto a che fare con la lunghezza del cavo, il rumore elettrico circostante e la velocità con cui vuoi andare. Ethernet utilizza il cavo CAT5 per trasmettere a 10 Mbit / s per la varietà più lenta, quindi 1 Mbit / s è facilmente realizzabile se si prendono le dovute precauzioni . Si noti che con Ethernet ogni segnale ottiene la propria coppia attorcigliata e ciascuna coppia viene terminata con cura all'impedenza caratteristica del cavo a ciascuna estremità. Ogni coppia è guidata in modo diverso e interpretata in modo diverso, ed è anche progettata in modo tale da non poter causare loop di massa.

Se fai tutto questo, puoi trasmettere dati da 1 Mbit / s sul cavo CAT5 per lunghe distanze, come 1000 metri. Man mano che fai meno di queste cose, la distanza utilizzabile diminuirà. Se è solo scheda per scheda nello stesso telaio, ad esempio, probabilmente non è necessario fare molto speciale. Se esci dall'unità, potrebbero essere utili driver e ricevitori di linea differenziale.

Prova qualcosa nella tua configurazione e osserva i segnali all'estremità di ricezione per avere un'idea del margine di rumore, regolare secondo necessità. Forse utilizzare un protocollo in grado di rilevare e recuperare dagli errori e tenere traccia della frequenza con cui ciò accade. Ci sono troppi modi per elencare qui senza ulteriori informazioni.


1
Solo perché è possibile ottenere 145m di Ethernet non significa che si otterrebbe lo stesso da un segnale TTL 3.3V attraverso lo stesso cavo solo perché si utilizza una velocità in bit inferiore, vedere la spiegazione nella mia risposta.
Jason Morgan,

2
@Jason: Nota che non ho detto che lo faresti. Ho detto che potresti ottenere lunghe distanze con le dovute precauzioni, come driver e ricevitori di linea differenziali e terminali chiusi.
Olin Lathrop,

3
@Olion: dal tuo post sembri affermare che si tratta più delle caratteristiche di un cavo, piuttosto che del motivo per cui un TTL da 3,3 V non lo percorrerà molto. Per me è un suggerimento comprare un buon cavo, che sappiamo entrambi che è sbagliato.
Jason Morgan,

7

Ethernet utilizza la segnalazione differenziale, un segnale TTL è single-ended.

Ethernet utilizza la pre-enfasi, TTL no.

Ethernet è la modalità corrente, TTL è la modalità tensione.

Ethernet utilizza una tachicca di modulazione che riduce il numero di spigoli, il TTL potrebbe non (lo standard ASYNC no)

Driver e ricevitore Ethernet sono adattati all'impedenza al cavo, a meno che non sia progettato con cura, il TTL non lo sarebbe (e se lo fosse, non sarebbe il TTL!)

Ethernet utilizza un segnale simmetrico (mediante lo scambio) per creare una densità pari a 1. Il seriale ASYNC ha una polarizzazione integrata che carica il cavo e deve essere superato per ottenere un segnale dall'altra estremità.

Per questi motivi, solo perché è possibile ottenere 145m di Ethernet a 1 Gbps non significa che si otterrebbe lo stesso (o anche 1000 volte meno) da un segnale TTL 3.3V sullo stesso cavo.

Consiglio di utilizzare un driver di segnalazione differenziale come RS422, per questo è progettato. Infatti RS422, sebbene funzionare a una tensione più bassa è meglio per le lunghe distanze a causa della segnalazione differenziale (RS232 è single-ended),
Inoltre, i driver e i ricevitori fanno cose intelligenti per migliorare la qualità dei bordi come la pre-enfasi.


L'OP aveva già dichiarato 3 ore prima della risposta che i ricetrasmettitori RS422 non erano un'opzione.
Tcrosley,

3
Sì, so leggere. Posso ancora raccomandare la soluzione corretta. Solo perché al poster non piace sentire la verità, non significa che non debba essere detto.
Jason Morgan,

2
Perché lo chiami sempre TTL? Il titolo dice 3.3V, quindi sicuramente non è TTL. L'unità TTL ha capacità sink / source molto asimmetriche, mentre HCMOS è simmetrico. Può fare la differenza nel guidare un cavo.
Stevenvh,

Che cos'è la "pre-enfasi"?
m.

La pre-enfasi è una tecnica in cui la forza motrice (cioè l'impedenza di uscita) viene modulata durante l'impulso trasmesso. Viene utilizzato per compensare le caratteristiche capacitive e induttive del cavo e dei magnetici nel tentativo di presentare bordi di qualità migliore al ricevitore.
Jason Morgan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.