Gli UART assicurano comunicazioni industriali affidabili a lunga distanza su interfacce RS-232, RS-422 e RS-485.
Contributo di Editori nordamericani di DigiKey
2019-05-22
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).
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)..
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).
|
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:
- L'apparecchiatura terminale dei dati abbassa la linea RTS allo stato "1" o "Mark".
- L'apparecchiatura di comunicazione dati porta la linea CTS allo stato "1" o "Mark".
- L'apparecchiatura terminale dei dati porta la linea Data Terminal Ready (DTR) allo stato "1" o "Mark" per la durata del trasferimento dei dati.
- Al termine del trasferimento l'apparecchiatura terminale dei dati riporta le linee DTR e RTS allo stato "0" o "Space".
- 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).
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).
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).
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).
|
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).
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.

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.