Gli UART assicurano comunicazioni industriali affidabili a lunga distanza su interfacce RS-232, RS-422 e RS-485.

Di Art Pini

Contributo di Editori nordamericani di DigiKey

Le applicazioni industriali di rilevamento e controllo dischiudono molte sfide per un bus di comunicazione. Ad esempio, l'ambiente industriale è noto per le sue condizioni operative spesso difficili, eppure sono comuni cablaggi di centinaia o migliaia di metri. Le apparecchiature industriali possono essere esposte a notevoli sbalzi termici, rumore elettronico elevato sia sulle linee di alimentazione che su quelle dei dati ed eventi di guasto come interferenze elettromagnetiche (EMI), scariche elettrostatiche (ESD) o cortocircuiti.

La soluzione a questi problemi consiste nell'utilizzare una robusta interfaccia seriale basata su un ricetrasmettitore asincrono universale (UART), chiamato da alcuni fornitori anche elemento di comunicazione asincrono (ACE). Gli UART sono disponibili come dispositivi autonomi, come nel caso di TL16C752D di Texas Instruments, oppure possono trovarsi all'interno di un microcontroller come PIC16F688T-I/SL di Microchip Technology.

Con i driver di linea appropriati, uno UART può lavorare su lunghe distanze: da 15 metri per il bus dati seriali RS-232 fino a 1000 metri per le interfacce RS-485 o RS-422. Tutti e tre questi protocolli sono utilizzati per garantire il controllo a macchine e controller remoti in applicazioni di automazione di fabbrica e sono progettati per ridurre al minimo gli effetti di EMI ed ESD nelle situazioni più difficili.

Questo articolo presenta il contesto in cui nascono questi protocolli di interfaccia di controllo industriale di uso comune e mostrerà come possono essere implementati utilizzando UART e driver di linea.

RS-232

Lo standard delle comunicazioni seriali RS-232 è attualmente noto anche come EIA/TIA-232-F, uno standard della Electronic Industries Association/Telecommunications Industries Association. La lettera F indica l'ultima revisione. Lo standard è identico a quelli V.24 e V.28 dell'Unione internazionale delle telecomunicazioni (UIT). Questa interfaccia era il bus seriale originale sui personal computer. In origine era utilizzata per collegare il computer - detto Data Terminal Equipment (DTE) - a un modem, detto Data Communications Equipment (DCE).

EIA/TIA-232-F definisce uno standard dello strato fisico che comprende livelli di segnale e temporizzazione, segnali di controllo, connettori e cablaggio dei connettori. Non definisce la codifica dei caratteri, il framing e altri aspetti del livello di protocollo. Un tipico bus seriale asincrono includerà UART o ACE, driver di linea, connettori e cavi (Figura 1).

Schema del sistema RS-232 di base di Texas Instruments

Figura 1: Un sistema RS-232 di base include Data Terminal Equipment (DTE) come un computer e Data Communications Equipment (DCE) come un modem. Un dispositivo UART/ACE interfaccia il backplane parallelo del computer con l'interfaccia seriale RS-232. (Immagine per gentile concessione di Texas Instruments)

Un dispositivo UART/ACE converte il bus parallelo interno del computer in un flusso di dati seriali. Fornisce anche il buffering della memoria FIFO di ingresso e uscita, un clock di interfaccia (generalmente denominato generatore di baud rate) e segnali di temporizzazione e di handshake dell'interfaccia. L'ingresso e l'uscita analogici di UART/ACE possono essere bufferizzati da un driver di linea. L'uscita del DTE viene detta segnale del trasmettitore (TX), mentre l'ingresso è detto segnale ricevuto (RX). Il cavo di interfaccia ha una lunghezza massima di 15 m. Dalla lunghezza del cavo dipende la velocità massima di trasmissione dati che può essere utilizzata in modo affidabile sul bus.

L'interfaccia RS-232 collega due dispositivi in full-duplex, il che significa che ogni dispositivo può contemporaneamente trasmettere e ricevere. Il pacchetto di dati seriali RS-232 è costituito da un bit di start, da 5 a 8 bit di dati, da 1, 1,5 o 2 bit di stop e da un bit di parità (Figura 2)..

Schema del pacchetto dati RS-232 (fare clic per ingrandire)

Figura 2: Un pacchetto dati RS-232 costituito da un bit di start, da 5 a 8 bit di dati (8 in figura), un bit di parità (opzionale) e 1, 1,5 o 2 bit di stop. (Immagine per gentile concessione di DigiKey)

Il cavo richiesto per RS-232 deve avere almeno tre fili: uno per la trasmissione, uno per la ricezione e uno per la terra del segnale. La terra è il ritorno per entrambi i conduttori di segnale.

Molte delle caratteristiche dell'RS-232 sono legate alla sua applicazione originale nelle telecomunicazioni. Utilizza una logica negativa con uno stato alto detto "space" e uno stato basso detto "mark". Lo stato neutro o di riposo è alto, per cui l'interconnessione può essere verificata a distanza. Sul lato del trasmettitore uno stato 0, o space, è una tensione compresa tra +5 e +15 V. Lo stato logico 1, o mark, è una tensione compresa tra -5 e -15 V. Sul lato del ricevitore, un livello da 3 a 15 V è uno 0 e da -3 a -15 V rappresenta un 1.

Il trasferimento viene definito asincrono perché non viene trasmesso nessun segnale di clock. RS-232 dipende dall'impostazione di entrambi i lati del bus per uno specifico clock o una specifica velocità di trasmissione. La velocità di trasmissione è una misura del numero di simboli trasferiti al secondo; per RS-232 corrisponde a circa la frequenza di clock. Velocità di trasmissione comuni sono 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800 e 921600 baud.

Più alta è la frequenza di clock, più limitata è la lunghezza del cavo. Ad esempio, a 9600 baud è possibile utilizzare l'intera lunghezza massima di 15 metri del cavo. A velocità di trasmissione più elevate, la lunghezza massima del cavo sarà inferiore.

Segnali di controllo di RS-232

RS-232 ha un numero specifico di segnali di controllo. Questi segnali riportano lo stato dei dispositivi DTE e DCE e implementano un handshake basato su hardware per regolare il trasferimento dei dati (Tabella 1).

Nome del segnale Mnemonico Funzione
Data Terminal Ready DTR Attivato dal DTE quando è pronto a trasmettere dati. Questa linea deve essere attiva prima che il DCE possa attivare il DSR.
Data Set Ready DSR Attivato dal DCE per indicare che il DCE è online.
Carrier Detect DCD Attivato dal DCE quando riceve una portante da un DCE remoto.
Ring Indicator RI Attivato dal DCE quando la linea telefonica remota squilla.
Request To Send RTS Attivato dal DTE quando è pronto per l'invio dei dati.
Clear To Send CTS Attivato dal DCE in risposta a un comando RTS ricevuto. Mantenuto attivo finché l'RTS non viene disattivato e non è stato ricevuto l'ultimo bit di dati.
Linea dati di ricezione RX Ricevere i dati.
Linea dati di trasmissione TX Trasmettere i dati.

Tabella 1: I segnali di controllo e di handshake in RS-232. (Tabella per gentile concessione di DigiKey)

L'handshake hardware è implementato utilizzando i segnali di controllo del flusso Request to Send (RTS) e Clear to Send (CTS) per garantire che entrambi i dispositivi siano pronti a trasferire i dati e che i dati siano stati ricevuti dal dispositivo ricevente. L'handshake hardware viene implementato utilizzando le seguenti azioni:

  1. L'apparecchiatura terminale dei dati abbassa la linea RTS allo stato "1" o "Mark".
  2. L'apparecchiatura di comunicazione dati porta la linea CTS allo stato "1" o "Mark".
  3. L'apparecchiatura terminale dei dati porta la linea Data Terminal Ready (DTR) allo stato "1" o "Mark" per la durata del trasferimento dei dati.
  4. Al termine del trasferimento l'apparecchiatura terminale dei dati riporta le linee DTR e RTS allo stato "0" o "Space".
  5. L'apparecchiatura di comunicazione dei dati riporta la linea CTS allo stato "0" o "Space".

Per controllare il flusso dei dati, RS-232 può anche utilizzare un handshake software, dove i caratteri XON (ASCII DC1, esadecimale 11) e XOFF (ASCII DC3, esadecimale 13) inviati nel flusso dei dati eseguono una sincronizzazione simile dei dati trasferiti.

Diagramma a blocchi funzionali di un dispositivo UART

TL16C752D di Texas Instruments è un doppio UART con FIFO in ricezione e in trasmissione a 64 byte in grado di ricevere e trasmettere fino a 3 megabit di dati al secondo (Mbit/s) (Figura 3).

Schema a blocchi funzionali del doppio UART TL16C752D di Texas Instruments a 3 Mbit/s.

Figura 3: Lo schema a blocchi funzionali del doppio UART TL16C752D di Texas Instruments a 3 Mbit/s mostra i FIFO a 64 byte e le linee di interfaccia. (Immagine per gentile concessione di Texas Instruments)

Ogni sezione dello UART ha un proprio generatore di baud rate controllato dal software. L'interfaccia bus dati esegue la conversione dei dati da paralleli a seriali e alimenta entrambe le sezioni del doppio UART. Ogni sezione ha linee di controllo indipendenti. TL16C752D funziona con tensioni di alimentazione da 1,8 a 5,5 V in un intervallo di temperatura da -40 °C a 85 °C.

UART basati su microcontroller

Molti microcontroller, come PIC16F688T-I/SL di Microchip Technology, includono interfacce dati seriali per la comunicazione con monitor, convertitori esterni analogico/digitale (ADC) e digitale/analogico (DAC) o altri microcontroller (Figura 4).

Schema del microcontroller CMOS PIC16F688T-I/SL di Microchip Technology

Figura 4: Il microcontroller CMOS PIC16F688T-I/SL di Microchip Technology include un'interfaccia seriale che utilizza un ricevitore/trasmettitore sincrono/asincrono universale avanzato (EUSART). (Immagine per gentile concessione di Microchip Technology)

Il modulo EUSART, a volte chiamato interfaccia di comunicazione seriale (SCI), può essere configurato come collegamento dati seriali asincrono full-duplex o sincrono half-duplex. Il modulo EUSART in PIC16F688T-I/SL contiene tutti i registri a scorrimento, i generatori di clock e i buffer di dati necessari per eseguire un trasferimento di dati seriali in ingresso o in uscita indipendente dall'esecuzione del programma del microcontroller. Ha un buffer di ricezione a due caratteri e uno di trasmissione a un carattere. L'interfaccia asincrona full-duplex è utile per comunicare con periferiche esterne come un monitor; questa è l'applicazione primaria per questa interfaccia nel microcontroller.

Driver di linea

I driver di linea potenziano il funzionamento degli UART bufferizzando i segnali di trasmissione e di ricezione. Sono utili perché funzionano su tutta la specifica del livello di tensione RS-232. Un esempio di questo dispositivo è il doppio transceiver RS-232/TIA/EIA-232-F MAX232DR di Texas Instruments (Figura 5).

Schema del doppio driver/ricevitore MAX232DR di Texas Instruments per bufferizzare un doppio UART TL16C752D

Figura 5: Applicazione del doppio driver/ricevitore MAX232DR per bufferizzare un doppio UART TL16C752D MAX232DR può tollerare tensioni in ingresso fino a ±30 V, mentre le uscite sono protette contro i cortocircuiti verso terra. (Immagine per gentile concessione di Texas Instruments)

Il driver di linea/ricevitore MAX232DR ha dei vantaggi nelle applicazioni industriali in cui sono richieste tensioni più elevate. Può reggere a tensioni di ingresso fino a ±30 V. Il dispositivo include un generatore di tensione capacitiva che utilizza quattro condensatori esterni per fornire livelli di tensione RS-232 da -5 a -7 V e da +5 a +7 V alle uscite da una singola alimentazione a 5 V.

Segnalazione differenziale

RS-232 utilizza connessioni a terminazione singola per la linea di trasmissione e di ricezione. Con queste connessioni, le tensioni di segnale vengono misurate dalla linea alla terra. In ambiente industriale le linee di segnale RS-232 captano molti disturbi elettrici, il che limita la lunghezza del bus. Una soluzione classica per rimediare a questa limitazione è l'uso della segnalazione differenziale.

Un bus differenziale è costituito da due fili per ogni segnale, la cui misurazione avviene prendendo la differenza di tensione tra i due fili. Dato che rumore e diafonia in genere sono comuni a entrambe le linee di segnale, la misurazione della differenza sottrae questi segnali quasi identici, riducendone significativamente l'ampiezza. Inoltre, i cavi differenziali sono anche schermati per ridurre ulteriormente la captazione di rumore e interferenze.

Esistono due standard di bus dati comuni che utilizzano linee di segnale differenziale: RS-422 (TIA/EIA-422) e RS-485 (TIA/EIA-485). Quest'ultimo è il bus seriale industriale più diffuso. Questi standard utilizzano linee di trasmissione a doppino intrecciato in cui i dispositivi collegati possono essere distanti tra loro fino a 1200 m. Entrambi gli standard hanno una velocità massima di trasmissione dati di 10 Mbit/s. Confronto fra i tre bus seriali (Tabella 2).

Standard RS-232 RS-422 RS-485
Configurazione della linea Terminazione singola Differenziale Differenziale
Tipo di trasferimento Full-duplex Full-duplex Half-duplex (2 fili)
Full-duplex (4 fili)
Segnali utilizzati TX, RX, RTS, CTS, DTR, DSR, DCD, Terra TXA, TXB, RXA, RXB, Terra Dati A, Dati B, Terra
Topologia bus Punto-punto Punto-punto Multipunto
Numero massimo di dispositivi collegati 1 10 (in modalità ricezione) 32
Lunghezza massima 15 m a 9600 bit/s 1,2 km a 100 Kbit/s 1,2 km a 100 Kbit/s
Velocità massima di trasmissione dati 1 Mbit/s 10 Mbit/s 10 Mbit/s
Sensibilità del ricevitore ±3 V ±200 mV ±200 mV

Tabella 2: Confronto delle caratteristiche degli standard RS-232, RS-422 e RS-485. (Tabella per gentile concessione di DigiKey)

La differenza tra RS-422 e RS-485 è data dal fatto che RS-485 può funzionare con un massimo di 32 ricetrasmettitori (utilizzando espansori di bus se ne possono aggiungere altri) mentre RS-422 è limitato a soli 10 ricevitori sul bus. RS-485 in modalità full-duplex richiede quattro fili, invece dei due per il funzionamento half-duplex e RS-422 (Figura 6).

Schema delle topologie full-duplex (sinistra) e half-duplex di un'interfaccia RS-485

Figura 6: Topologie full-duplex (sinistra) e half-duplex di un'interfaccia RS-485 Il computer, o dispositivo master, è mostrato in rosso; gli altri dispositivi sono in blu. (Immagine per gentile concessione di Texas Instruments)

Il cablaggio del bus differenziale utilizza due conduttori per ogni linea di segnali di trasmissione o ricezione, come mostrato nella figura. Il funzionamento full-duplex richiede quattro fili, mentre quello half-duplex ne richiede solo due. Data la maggiore velocità sia di RS-422 che di RS-485, le linee di trasmissione devono essere terminate a ogni estremità. Per il doppino intrecciato, i resistori di terminazione RT sono di 120 Ω. Come si può dedurre dalla doppia configurazione UART del circuito di interfaccia TL16C752D, ha una modalità RS-485. Questo è il motivo per cui molti UART e relativi driver di linea utilizzano la doppia configurazione.

I livelli di tensione sul lato del trasmettitore per RS-422 sono di ±6 V mentre quelli per RS-485 vanno da -7 a +12 V. Nel ricevitore la sensibilità è di ±200 mV per entrambi gli standard.

Conclusione

Le tre interfacce seriali RS-232, RS-422 e RS-485 offrono un'ampia possibilità di scelta per comunicazioni seriali affidabili su distanze sia brevi che lunghe. Gli UART costituiscono la base per tutti e tre gli standard e facilitano l'implementazione di comunicazioni seriali nei progetti, specie quelli destinati ad ambienti industriali difficili.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Art Pini

Art Pini

Arthur (Art) Pini è un autore che contribuisce ai contenuti di DigiKey. Art ha conseguito una laurea in ingegneria elettrica presso il City College di New York e un master in ingegneria elettrotecnica presso la City University di New York. Ha oltre 50 anni di esperienza nell'elettronica e ha lavorato in ruoli chiave di ingegneria e marketing presso Teledyne LeCroy, Summation, Wavetek e Nicolet Scientific. È interessato nella tecnologia di misurazione e ha una vasta esperienza con oscilloscopi, analizzatori di spettro, generatori di forme d'onda arbitrarie, digitalizzatori e contatori.

Informazioni su questo editore

Editori nordamericani di DigiKey