Tutorials - Elettronica

 
 

RS-232


I livelli elettrici di RS-232

Del tutto indifferenti per l' utilizzatore IT o di PC, diventa indispensabile la loro conoscenza per chi realizza o lavora a stretto contatto con le strutture hardware dello standard.

La linea RS-232 è, fisicamente, del tipo single ended, ovvero è costituita da un cavo che porta il segnale e da uno di ritorno che è la massa comune di tutti i segnali.
Questa soluzione è meno insensibile ai disturbi e alla struttura del cavo di una differenziale (come ad esempio 422/485), che consente una maggiore distanza di comunicazione, ma, per contro, è molto più semplice e più economica.

Trattandosi di una linea di lunghezza sensibile, essa sarà pilotata da un driver e terminata con un ricevitore.

L’impedenza di uscita del driver deve essere >300 ohm, mentre quella di ingresso del ricevitore deve essere compresa tra i 3 ed i 7 kohm. La corrente in uscita, senza alterazione dei livelli di tensione, deve essere di almeno di 1.6 mA, anche se molti driver possono erogare correnti molto maggiori.
Per contro, la corrente erogata su un corto circuito a massa deve essere minore di 100mA.

Molto importante, la tensione sulla linea RS-232 varia tra una tensione positiva e una negativa rispetto a massa (tensione duale).

Lo standard definisce definisce due livelli che il segnale può assumere:

Stato Livello logico Tensione sulla
linea RS-232
MARK 1 -V tra -3V e -25V
SPACE 0 +V tra +3V e +25V

Qualsiasi livello tra -3V e +3V non è valido (zona di incertezza) e deve essere evitato.

Si tratta di una soluzione del genere NRZ (No Return to Zero), dove un livello logico è rappresentato con un segnale a polarità positiva e l' altro con un segnale a polarità negativa.
In effetti si tratta di una codifica di non ritorno a Zero con inversione, dove l' '1' logico diventa il livello più negativo e lo '0' logico il livello più positivo.
Non si tratta di una vera e propria codifica, dato che i dati non vengono modificati se non nel livello di tensione. Questa situazione è stata scelta in quanto all' epoca di creazione dello standard era uno dei sistemi più robusti, ma nello stesso tempo più semplici.

Lo stato di riposo della linea (idle) corrisponde al valore negativo della tensione, ovvero al logico '1' dal lato TTL.

La tensione in uscita sulla linea RS-232 normalmente nel PC è +/-12V, in relazione alle tensioni generate dall' alimentatore.  
In altri casi dipende dalla natura dell' apparecchio, se alimentato da rete o a batteria, potrà essere maggiore (ad esempio +/-15V) o limitata a valori minori per ridurre le emissioni EMC e favorire maggiori velocità di trasmissione.

Un trasmettitore (driver) riceve il segnale logico dall' UART e fornisce l' adeguata tensione/corrente alla linea, al termine della quale un ricevitore converte questi impulsi a livello logico per i circuiti successivi.

Poichè i circuiti logici lavorano alimentati da una tensione singola, tipicamente 5V, il driver di linea RS-232 è essenzialmente un traslatore di livello che trasforma il segnale logico TTL in un segnale bipolare.

Ad esempio, a lato uno dei quattro gate a doppio ingresso contenuti nel driver RS-232 integrato MC1488.

Osserviamo che l' integrato richiede due alimentazioni, la positiva (Vcc) e la negativa (Vee), che devono essere fornite dall' alimentatore del sistema.
L' ingresso, a livello TTL, viene convertito in una tensione bipolare NRZ tra Vcc e Vee. Una resistenza in serie al pin di uscita limita la corrente in caso di corto circuito, mentre alcuni diodi eliminano le tensioni inverse eventualmente applicate.

E' da osservare che il driver è invertente, ovvero si avrà::

Livello logico Livello sulla
linea RS-232
1 -V
0 +V

Quindi un livello logico '1' corrisponderà sulla linea RS-232 ad una tensione negativa.

Il ricevitore compie l' operazione opposta.

Ecco la struttura interna di uno dei quattro receiver contenuti nell' integrato MC1489.

Si osserva che anche il receiver è invertente.

Una resistenza in ingresso limita la corrente, mentre un diodo elimina la componente negativa del segnale. Un ingresso ausiliario (response control) permette di aggiungere una capacità esterna per ridurre lo slew rate del segnale, questo nella direzione di una limitazione delle emissioni elettromagnetiche; lo standard impone allo lo slew-rate (variazione nel tempo del segnale nel passare da un livello logico all' altro) un limite di 30V/us.
Il segnale viene reso a livello TTL all' uscita.

Dato che sia driver che receiver sono invertenti, il segnale logico in ingresso nel driver sarà reso identico all' uscita del receiver.

Dunque, la trasmissione sulla linea avviene in questo modo: 
ad esempio, inviando il byte di dati 01001110 (4Ehex, carattere ASCII 'N') si ha una sequenza di impulsi, di durata ben determinata dal clock, a livello TTL, in ingresso nel driver.
Questo li trasforma in un segnale bipolare sulla linea.

Il byte viene emesso a partire dal bit meno significativo, preceduto dal bit di Start e seguito da quello di Stop. 

All' altro estremo della linea, il ricevitore ricostruirà il segnale originale a livello logico unipolare, invertendo ed eliminando la componente negativa.

La struttura interna della sezione RS-232 di un dispositivo DTE tipicamente sarà questa: tra l' UART, o il microcontroller, che lavorano a livelli logici (3.3-5V) sarà interposto un sistema di driver/reciever con lo scopo di convertire questa tensione nei livelli bipolari previsti da RS-232.

All' uscita del microcontroller o dell' UART il segnale è a livello logico, ovvero varia tra 0V e 5V (o 3.3V). 

Solitamente driver e receiver sono costituiti da circuiti integrati appositi. Di questi ne esiste un gran numero, dato che molti costruttori forniscono le più diverse soluzioni (vedi link a fondo tutorial). Peraltro si possono realizzare circuiti di interfaccia anche con componenti discreti.

I dievres richiedono una alimentazione duale, +V e -V.

Nel caso di apparecchi alimentati a batteria, è convenienete utilizzare interfacce dotate di pompa di carico che generano le due tensioni di linea a partire da una singola tensione di alimentazione.

Per migliorare la qualità della ricezione, sovente i ricevitori hanno funzione di Schmitt trigger. 

Il numero dei ricevitori e dei trasmettitori necessari dipende dal numero dei segnali usati nella connessione e va da un minimo di un ricevitore ed un trasmettitore per una comunicazione full duplex senza handshake hardware a 3 driver e 5 receiver per il set completo di segnali del connettore a 9 poli.

Per il DCE si avrà la situazione opposta, ovvero quelli che sono pin di ingresso per il DTE diventeranno uscite per il DCE e viceversa.

In queste condizioni, un cavo pin to pin, terminato con un connettore maschio da una parte e femmina dall' altro collegherà con semplicità i due apparecchi.

Anche qui, tra la linea RS-232 e la sezione logica occorre interporre un sistema di driver/receiver che convertano i livelli di tensione.

Si avranno 3 receiver e 5 driver per il set completo di segnali del connettore a 9 poli.

Come accennato, RS-232 è un sistema point-to-point, ovvero adatto a collegare due dispositivi posti alle estremità del cavo e non che prevede una struttura a bus (come invece è in 485), anche se è possibile, entro certi limiti, realizzare sistemi multi drop del genere di quelli possibili con  RS-422, ovvero un trasmettitore a più ricevitori.

I circuiti di driver della linea RS-232 sono, di solito, molto resistenti alle connessioni errate, per cui in genere sopravvivono quando segnali attivi sono collegati a massa o tra di loro.
Per contro va ricordato che la connessione RS-232 non è isolata e mette in contatto le masse dei due dispositivi collegati agli estremi del cavo.

  1. Va notato che il livello di tensione sulla linea NON va mai a 0V, essendo questo valore nell' ambito di incertezza +/- 3V. Quindi la tensione in linea viene commutata tra la massima negativa e la massima positiva, senza incertezze.
    Ne deriva che la linea RS-232 non può essere pilotata direttamente e non può essere ricevuta direttamente da un gate TTL, ma richiede opportuni driver/receiver, o, comunque, un sistema di adattamento della tensione.
      
  2. Va notato anche che il range di tensione nei personal computer è limitato a +/-12V, che sono le tensioni fornite dall' alimentatore, mentre è comune che le tensioni nei portatili siano inferiori e, invece, superiori in apparecchiature telefoniche o industriali, dove è comune un +/- 15V o 24V.
     
  3. ATTENZIONE: carichi induttivi o tensioni indotte derivanti dai cavi non sufficientemente schermati o molto lunghi può provocare tensioni sul ricevitore al di sopra del range di ± 25 V, con conseguenti danni. Occorrere curare la schermatura del cavo ed evitare di farlo passare in prossimità di carichi di commutazione ad alta corrente, come motori elettrici o relè.

 

 


Copyright © afg. Tutti i diritti riservati.
Aggiornato il 23/04/12.