Alcune considerazione sulla linea RS-232
-
Lo swing di tensione tra -V e +V sulla linea RS-232 è
importante per la qualità del segnale.
Però, analizzando un ricevitore (es. 1489) si nota che il suo ingresso
sostanzialmente non fa altro che tagliare il lato negativo.
Lo schema seguente riporta la struttura di ingresso di un ricevitore di
linea del genere 1489.
|
Osserviamo che l' ingresso della linea RS-232 (input A) è
caratterizzato da una resistenza di limitazione e da un diodo che
elimina la componente negativa prima di arrivare alla base del primo
transistor, che, assieme ai successivi, costituisce semplicemente una
catena invertente la cui uscita è collegata alla Vcc dei circuito
logico.
|
Se ne dovrebbe dedurre che il lato negativo della tensione di linea
non è utilizzato e che, di conseguenza, una linea RS-232 potrebbe
essere anche alimentata da un segnale che varia tra la massa e una V+.
E' quindi possibile utilizzare l' uscita di un TTL ?
Anche se possibile, a livello di laboratorio o di prova volante, questo non è, però, corretto, in quanto la tensione
negativa ha lo scopo di garantire un livello al di sotto della tensione di
incertezza in cui il ricevitore potrebbe non essere in grado di identificare
correttamente questo il livello, dato che lo 0 logico è ben al di sotto dei
+3V, quindi nella banda di incertezza del segnale RS-232.
Altrettanto aleatorio potrebbe essere l' uso di interfacce ridotte a soli
transistor senza diodi di protezione; va tenuto presente che sulla linea
RS-232 il segnale può arrivare a +/-25V e, a seconda della situazione della
linea, possono presentarsi impulsi di disturbo di tensione superiore. Dato che
esistono componenti o circuiti ben
collaudati per interfacciare un apparecchio alla linea RS-232, non c'è
ragione per non impiegarli, sopratutto se non si tratta di giocare, ma di realizzare qualcosa di seriamente funzionante.
Per contro, un collegamento a livello TTL è possibile se si
connettono direttamente due UART o microcontroller. Occorre però che la
distanza sia molto breve (decine di cm).
-
E' comune utilizzare come driver/receiver sistemi a pompa di
carico (charge pump) del genere del ben noto MAX232 di Maxim.
Questo tipo di integrati richiede una alimentazione singola (la stessa del
microcontroller, ovvero tipicamente 5V) e genera un range di tensione a
vuoto tra -10V e +10V. I driver a pompa di carico possono essere alimentati anche a 3.3V, il
che origina sulla linea un +/-6V.
Però la corrente erogabile è piuttosto bassa e, considerando cadute di tensione dovute ai collegamenti e
alle tolleranze dei componenti, si deve ritenere che, se è del tutto
adeguata a pilotare il ricevitore della linea, mal si presta ad operazioni
di sottrazione di potenza per alimentare carichi diversi, sopratutto perchè
il livello del segnale potrebbe diventare così ridotto da non consentire
una comunicazione funzionante. Ed è comunque del tutto inadeguato per
alimentare sistemi di programmazione di Flash, che richiedono per sicurezza
un minimo di 12V.
-
Alcuni dispositivi, sopratutto piccoli strumenti portatili,
dispongono di interfacce RS-232 con un driver "passivo", ovvero
che si aspetta di essere alimentato dalla linea seriale, prelevandone la
tensione negativa. In questi casi occorre che l' altro dispositivo abbia
una interfaccia RS-232 realmente in grado di fornire queste tensioni, altrimenti la
comunicazione non sarà possibile.
-
RS-232 non specifica il modo con cui le periferiche sono
alimentate, dato che fa riferimento a modem e simili, che richiedono una
alimentazione separata.
Però, alcuni piccoli dispositivi, come ad esempio il mouse, richiedono
correnti molto limitate e i progettisti hanno deciso di ricavare la loro
alimentazione dai segnali della linea seriale, sfruttando la possibilità
dei drive di fornire una corrente maggiore di quella che serve al
ricevitore. L' operazione, però, non è prevista dallo standard.
A riguardo di questo ultimo punto è necessaria una nota
particolare.
una NOTA
Driver/receiver comuni delle linee RS-232 in origine erano i
noti 1488/1489 o altri chip della famiglia SN75xxx, successivamente sostituiti da componenti
via via più recenti, fino ad
arrivare a quelli con pompa di carico integrata che non richiedono una doppia
alimentazione (ad es. il noto MAX232).
Il trasmettitore dovrebbe essere previsto per non danneggiarsi anche in caso di corto
circuito, che dovrebbe viene limitato a meno di 100 mA.
Ne risulta un sistema estremamente robusto, dove il trasmettitore è in grado
di fornire molta più energia di quella richiesta da un singolo ricevitore.
Da questa considerazione nascono due conseguenze, entrambe non previste
dalla norma.
-
La prima è la possibilità di realizzare sistemi in RS-232 con più di
un ricevitore: basterà far si che l' impedenza dei ricevitori sia alta (e
la capacità di connessione sia bassa) in modo tale da non superare le
capacità del trasmettitore. Per questa ragione gli UART/USART dei
microcontroller possono implementare la modalità asincrona con un nono
bit che funge da selettore di indirizzo in una struttura del genere.
-
La seconda considerazione è quella e la corrente che parte dell'
energia fornibile dal trasmettitore possa esse "rubata" per
alimentare piccoli carichi (sistema di isolamento, adattatori,
segnalazioni, ecc) collegati al cavo dei dati.
Questa ultima considerazione rende possibili varie soluzioni, ma va
considerata nei suoi limiti, che diventano molto restrittivi nelle
apparecchiature più recenti, dove i driver della linea hanno capacità
"energetiche" molto ridotte rispetto ai loro predecessori.
Ne risulta che, applicando carichi "impropri" alla linea, il livello
delle tensioni diventi insufficiente ad alimentare correttamente i carichi
aggiunti e, peggio, vada nell' area di indeterminatezza, rendendo la
comunicazione problematica.
Questo può essere verificato collegando semplici adattatori alimentati dalla
seriale su un PC desktop vecchiotto, dove probabilmente funzioneranno, e su un
recente notebook, dove probabilmente non funzioneranno.
In particolare, riguardo al mondo dei microcontroller, non hanno possibilità
di funzionare i vari programmatori alimentati direttamente dalla seriale in
quanto non sono in grado di erogare la tensione di programmazione sufficiente
a scrivere una Flash (al minimo, 10V, ma, per sicurezza, almeno 12-13V).
Inoltre, i driver di linea RS-232 dei notebook non sono
generalmente in grado di fornire energia extra, anche perchè possono essere
conformi allo standard EIA-562, con tensioni di linea di poco più di 3.6V
Conversione USB /RS-232
Sia per ragioni di mercato che prestazionali, la connessione
seriale tipica del PC (e con esso dei dispositivi che sono collegabili) è
diventata USB.
Di conseguenza, la porta COM è andata sparendo, sopratutto dai
notebook. Notebook che sono utilizzati anche da professionisti per la
connessione sul campo con strumentazione e PLC.
Si è reagito mettendo in commercio degli adattatori da USB a
RS-232.
Ne è risultata una seria problematica, in quanto si tratta di una emulazione
della porta seriale COM: applicazioni scritte per utilizzare i pin di
handshake con diversi scopi, tipico dell' interfaccia con programmatori,
strumenti o altro, hanno poche possibilità di funzionare !!
Ne sa
qualcosa chi programma PLC che, tipicamente, hanno l' acceso alla CPU attraverso
una connessione RS-232 e ha faticato non poco a individuare sul mercato un
dongle adattatore adeguato.
|