Come interfacciare la logica RS-232 alla logica TTL

annuncio pubblicitario
Come interfacciare la logica RS-232 alla logica TTL
Marco Trentini [email protected]
18 febbraio 2012
Introduzione
A volte si ha la necessità di dover interfacciare la logica RS-232 alla logica TTL. Non è possibile
connettere direttamente i segnali (es. RX-RX, TX-TX e GND-GND) poichè i livelli di tensione
dei segnali sono diversi nelle due logiche (+/- 10-12V per RS-232 e 0/3V per TTL) e quindi si
rischierebbe di guastare ciò che sta dietro alla logica TTL (soprattutto per il livello -12V). È necessario sistemare un piccolo circuito elettronico tra le due logiche affinchè queste possano scambiarsi
i segnali in modo corretto. Questo circuito non deve far altro che adattare i segnali in entrambe le
direzioni.
Perchè tutto ciò?
Con alcuni router l’utente ha la possibilità di configurare tutti i parametri esclusivamente via rete
(telnet e ftp). Tra le varie funzinalità dei router moderni esiste a volte anche la possibilità di
configurare un firewall sia sull’interfaccia di rete, normalmente collegata ad una LAN (o ad un PC)
sia sull’interfaccia collegata alla WAN. Bisogna prestare molta attenzione quando si impostano le
regole sull’interfaccia ethernet: una minima distrazione e si rischia di restare lock-out (chiusi fuori),
senza riuscire più ad accedere via rete alla configurazione del router. In questo articolo verrà preso
in esame il modello della Zyxel Prestige 645R. Questo router ha un tasto di reset, peccato che
questo resetti solo la password, l’ip/mask del router e il dhcp server (incorporato nel router). Le
regole del firewall non sono resettate. Se siete in una situazione di lock-out si hanno tre alternative:
1. spedire il router in assistenza (richiede tempo e denaro, il danno l’avete fatto voi);
2. buttare il router e comprarne uno nuovo;
3. hackerare il router (con meno di 3 euro di materiale).
Hackeriamo
Aprendo il guscio del router (due viti), sul lato posteriore (dove ci sono i vari connettori) si noteranno
4 asticelline metalliche. Dietro a quelle 4 asticelline metalliche c’è una console (non è visibile è un
modo di dire!!) pilotata da una logica TTL grazie alla quale si può accedere alla stessa schermata di
configurazione che è accessibile via rete. Con un multimetro si può verificare che i segnali associati
alle asticelle sono così identificabili:
| * | | |
GND RX TX Vcc
In questo disegno l’asterisco denota proprio la mancanza di un’asticella (vedi l’interno del router).
Sull’interfaccia RS-232 (la porta seriale dell’elaboratore elettronico con architettura x86) i segnali
necessari sono solo 3 dei 9 presenti. In particolare ci serviranno i seguenti:
2
RX
3
TX
5
GND
1
A questo punto dobbiamo costruirci il circuito elettronico in grado di interfacciare la logica RS-232
del PC con la logica TTL presente sul router. Per far ciò ci serviremo di un CI della Maxim:
un RS-232 Transceiver. A seconda del modello di CI in possesso si dovrà progettare un circuito
preciso. Si possono utilizzare due tipi di questo integrato: MAX 232 PCE e Max 3232 PCE. Il
primo richiede una tensione di alimentazione di circa 5V, mentre il secondo richiede una tensione di
alimentazione di circa 3V (la tolleranza in entrambi i casi si aggira attorno a +/-10% ma non oltre!!).
Nel caso si abbia a disposizione un MAX 232 PCE (o uno altamente compatibile) il circuito da
progettare è quello mostrato nella Figura 1.
Poichè l’integrato MAX 232 PCE necessita di un’alimentazione di circa 5V (in continua) non pos-
Figura 1: Circuito elettronico TTL/RS-232 con MAX 232 PCE
siamo utilizzare l’alimentazione dell’interfaccia seriale del router (asticella Vcc) che è di circa 3,3V e
che non deve assolutamente essere collegata da nessuna parte (in questo circuito). L’alimentazione
va presa quindi da una fonte esterna. Personalmente ho utilizzato un trasformatore di tensione
da alternata in continua regolabile, impostato su di un valore di circa 4,75V. Fate attenzione alle
polarità dei 5 condensatori elettrolitici.
Nel caso si abbia a disposizione un MAX 3232 PCE (o uno altamente compatibile) il circuito
da progettare è quello mostrato nella Figura 2.
L’integrato MAX 3232 PCE necessita di un’alimentazione di circa 3V (in continua). In questo caso
possiamo quindi utilizzare l’alimentazione dell’interfaccia seriale del router (asticella Vcc) che è di
circa 3,3V. Fate attenzione alle polarità dei 5 condensatori elettrolitici (per il condensatore indicato in figura come condensatore bypass potete utilizzare un condensatore da 0,1 microF elettrolitico).
In entrambi i circuiti abbiamo a disposizione quattro coppie di ingresso/uscita di commutazione
TTL/RS-232. Per il nostro scopo ci servià solo una coppia ingresso/uscita TTL/RS-232 e una
RS-232/TTL. Prendiamo ad esempio le coppie 11/14 e 9/8. Al pin 11 dovremo collegare il segnale
TX della logica TTL che verrà adattato alla logica RS-232 e sarà reperibile al pin 14 del CI a cui
2
Figura 2: Circuito elettronico TTL/RS-232 con MAX 3232 PCE
dovremo collegare il segnale RX della porta RS-232. Al pin 8 dovremo collegare il segnale TX della
porta RS-232 che sarà adattato alla logica TTL e sarà reperibile al pin 9 del CI a cui dovremo
collegare il segnale RX della porta seriale del router con logica TTL. Non dimenticate di collegare i segnali GND di entrambe le porte (RS-232 e TTL) al segnale GND comune del circuito costruito.
Per collegare i segnali della porta RS-232 al circuito si consiglia di utilizzare una porta DB9 femmina a 90◦ da posizionare vicino al circuito e di costruire un cavo seriale RS-232 maschio/femmina
con i soli 3 segnali necessari (TX,RX e GND). Per collegare i segnali della porta TTL del router al
circuito si consiglia di riprodurre tali asticelle vicino al circuito e quindi di cavallottare le asticelle
con appositi cavi.
Si ricorda inoltre che la piedinatura del CI è quella standard.
16 15 14 13 12 11 10 9
()
1
2
3
4
5
6
7 8
Ecco in Figura 3 come si presenta il circuito.
ATTENZIONE!! Eventuali errori di progettazione potrebbero danneggiare in modo irreversibile
l’hardware posto a monte della logica TTL (in questo caso il router). Prima di collegare il circuito al
router si consiglia di verificare le varie tensioni del circuito ed in particolare si consiglia di verificare
la tensione entrante nella logica TTL (pin 9) che non deve essere assolutamente negativa ne avere
valori oltre ai 5/6 volt di intensità.
Una volta controllato il tutto procedete in questo modo:
3
Figura 3: Circuito elettronico TTL/RS-232 applicato al router Prestige 645R della Zyxel.
• spegnete il router;
• alimentate il circuito (nel caso di alimentazione esterna);
• fate partire il vostro programma di connessione seriale (es. tip per FreeBSD) sulla porta a cui
avete collegato il circuito;
• accendete il router;
A questo punto, se tutto è andato per il verso giusto sul vostro schermo dovrebbe apparire un’immagine simile a quella di Figura 4.
Se riuscite a vedere i messaggi del router sul monitor, è fatta, seguite le istruzioni fino ad raggiun-
Figura 4: Messaggi di boot del router Prestige 645R della Zyxel.
gere la schermata di configurazione del router (Figura 5) che vi permetterà di eliminare tutte quelle
malefiche regole del firewall che bloccavano l’accesso via rete. Se nel programma di connessione
seriale non compare nulla, ricontrollate tutto il circuito e controllate le varie tensioni.
Ringraziamenti e Riferimenti
Un grazie a Tremoto che ha postato su alcuni newsgroup i link di riferimento nei quali è trattato
il problema del router Zyxel Prestige 645R senza console seriale. Un grazie a Google che mi ha
4
Figura 5: Schermata di configurazine del router Prestige 645R della Zyxel.
permesso di trovare il messaggio di Tremoto. Infine un grazie particolare a tutti i partecipanti del
thread sul forum dslreports dal quale sono uscite tutte queste magnificenze elettroniche (aurgathor
è stato formidabile).
Ecco i link principali della discussione e degli schemi.
http://www.maxim-ic.com/appnotes.cfm/appnote_number/374/ln/en
http://www.dslreports.com/forum/remark,6864979∼root=zyxel∼mode=flat
http://www.dslreports.com/forum/remark,6999495∼root=zyxel∼mode=flat
5
Scarica