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