Sei sulla pagina 1di 5

&RQYHUWLWRUH56Ø56 KWWS9LQFHQ]R9IUHHZHERUJ

&RQYHUWLWRUH56Ø56
'LVFODLPHU
,OFRQWHQXWRGLTXHVWRILOHqIRUQLWR$6,6DVRORWLWRORGLGDWWLFRHVHQ]DJDUDQ]LDDOFXQDLPSOLFLWDRHVSOLFLWD7XWWL
LQRPLGLSURGRWWLHGLWWHVRQRSURSULHWjGHLOHJLWWLPLSURSULHWDUL
/DGLVWULEX]LRQHGLTXHVWRILOHqIDWWLVDOYLLGLULWWLGLWHU]LOLEHUDHJUDWXLWDDFRQGL]LRQHGLQRQDSSRUWDUHPRGLILFKH
H GL FLWDUH OD IRQWH (
 YLHWDWR O
XVR FRPPHUFLDOH GL WXWWR R SDUWH GHO SUHVHQWH ILOH VDOYR HVSUHVVD DXWRUL]]D]LRQH
VFULWWD

Questo circuito permette la conversione bidirezionale tra due formati seriali molto popolari:
l’RS232, presente in tutti i personal computer ed in genere identificata come porta COMx, e
l’RS485, molto utilizzato in ambiente industriale per realizzare piccole reti di microcontrollori o
sensori intelligenti. Per una panoramica dei due formati, potete fare riferimento al tutorial sulle
interfacce seriali presente sul sito http://VincenzoV.freeweb.org.

Questo circuito utilizza per la commutazione tra trasmissione e ricezione il pin RTS della porta
seriale del PC. Infatti lo standard RS485 è uno standard half-duplex, cioè la trasmissione dei dati
è bidirezionale ma non contemporanea: occorre quindi che il PC indichi in modo esplicito se si
trova in ricezione o trasmissione. L’utilizzo di un pin della RS232 per la selezione della
direzione ha il vantaggio di non richiedere modifiche o tarature anche nel caso di cambiamento
della velocità di trasmissione. Lo svantaggio è quello di richiedere necessariamente la scrittura di
software specifico, con qualche possibile problema di sincronizzazione se si utilizza un sistema
operativo non real-time come Windows 95 o NT. Da notare che tale convertitore non funziona
con software commerciali quali in terminale di Windows. Sul sito è presente anche un circuito
simile in cui la commutazione di direzione è realizzata automaticamente in hardware.

Qualche nota relativa al software. Come ho detto occorre impostare esplicitamente la direzione
del flusso di dati attraverso il pin RTS. I passi da compiere per la trasmissione sono i seguenti:

1. Attivare la trasmissione forzando alto il pin RST

2. Inviare il byte o i byte da trasmettere con le normali


funzioni utilizzate per la seriale

3. Attendere lo svuotamento del buffer di trasmissione


Pagina 1 di 5
&RQYHUWLWRUH56Ø56 KWWS9LQFHQ]R9IUHHZHERUJ

4. Disattivare la trasmissione forzando basso il pin RTS

La scrittura di questo algoritmo è banale in ambiente DOS o utilizzando un microcontrollore ma


diventa problematico in ambiente Windows in quanto il tempo che intercorre tra il comando di
disattivazione della trasmissione e l’effettiva disattivazione è non deterministico e comunque non
breve (ho misurato sotto WinNT diversi mS, fino a diverse decine). I problemi potrebbero
nascere qualora un altro dispositivo volesse utilizzare la rete in questo periodo: la troverebbe
infatti occupata (tipico il caso di un microcontrollore che invia la risposta ad un comando
proveniente dal PC, risposta che potrebbe partire anche poche centinaia di microsecondi dopo il
bit di stop).

L’unica avvertenza è quella di non fidarsi dei bit di stato dell’UART ma attendere la completa
ricezione dei byte trasmessi da parte dello stesso PC che li invia.

Per la ricezione non ci sono invece problemi, in quanto è sempre attivata (anche quando il PC
trasmette dati, causando un eco dei byte trasmessi, utile per rilevare eventuali conflitti).

Una raccolta di SW scritto in TurboC la trovate nel tutoria sulle interfacce seriali asincrone
presenti sul sito http://VincenzoV.freeweb.org. Per la configurazione della porta occorre
assicurarsi che non vi siano attivati controlli di flusso hardware

L’alimentazione del circuito è di 8..12Vdc, non stabilizzata. È previsto anche un connettore per il
–12V (opzionale) ma tale tensione non è utilizzata dal circuito e potrebbe servire solo per
alimentare eventuali circuiti esterni.

3HU TXDOXQTXH FRPXQLFD]LRQH SRWHWH ULQWUDFFLDUPL DOO¶LQGLUL]]R GL HPDLO VincenzoVilla@iname.com ,Q


SDUWLFRODUH VDUj PROWR JUDGLWD OD VHJQDOD]LRQH GHJOL HUURUL H GHOOH RPLVVLRQL QRQFKp GHL SDVVDJJL FKH DSSDLRQR
RVFXULHSRFRFRPSUHQVLELOL9LVLWDWHLOVLWRhttp://VincenzoV.freeweb.org SHUHYHQWXDOLQXRYHYHUVLRQLGLTXHVWRILOH
RSHUDOWUHLQIRUPD]LRQLVXOO¶HOHWWURQLFDDPDWRULDOH

Convertitore RS232 Ø RS485 – Ver. 1.0


Vincenzo Villa – giugno 1998

Pagina 2 di 5
&RQYHUWLWRUH56Ø56 KWWS9LQFHQ]R9IUHHZHERUJ

1 4 C1 1u tantalio

C2 1u tantalio

C4 1u tantalio

C5 1u tantalio

2 1 C3 2u2 tantalio

3 1 D1 Zener 5.1V

4 1 D2 LED

5 1 JP1 Connettore 2 poli, passo 5mm

6 1 JP2 Connettore 3 poli, passo 5mm

JP3 Connettore 3 poli, passo 5mm

7 1 P1 Connettore DB9

8 3 R1 1K

R2 1K

R3 1K

9 1 R4 330R

10 1 U1 Max232

11 1 U2 Max485

Tutti i componenti sono di facile reperibilità. Qualora non fossero disponibili i due integrati
prodotti da Maxim, possono essere richiesti campioni gratuiti al sito http://www.maxim-ic.com

Pagina 3 di 5
&RQYHUWLWRUH56Ø56 KWWS9LQFHQ]R9IUHHZHERUJ

I disegni sono in scala 1:1. Qualora si intenda utilizzare direttamente il disegno delle piste “lato
rame” per realizzare il PCB, occorre tenere presente che è visto dal lato componenti e che quindi,
nel caso di uso della fotoincisione, è necessario stampare su un foglio di acetato ed esporre
lasciando il disegno a diretto contatto del rame, cioè capovolto rispetto a quanto visibile in questa
pagina, informazione peraltro ricavabile dalla scritta presente.

Pagina 4 di 5
A B C D E

4 4

VCC
U1
&RQYHUWLWRUH56Ø56

P1
1u
C1+ U2

+
C1 R2 R1
C1- 1K 1K
C2+ RO

+
Rx 1u JP1
Rts C2 C2- T1OUT RE B
Tx T2OUT B A 1
3
R1IN R1OUT A 2 3
R2IN R2OUT DE RS485
DI
T1IN Max485 JP2
T2IN +12
Max232 1
RS232 2
3
R4 Power out
VCC 330R -12 JP3

VCC V+ 1
R3 2
1K 3
+ C3 + C4 + C5 Power ni
2u2 1u 1u D1

D2 5V1
2 2
VCC V-
LED

1 1

Tit
le
Convertitore RS232/RS485

Size Document Number Rev


A 1.0

Date: Thursday, June 25, 1998 Sheet 1 of 1


A B C D E
KWWS9LQFHQ]R9IUHHZHERUJ

Pagina 5 di 5

Potrebbero piacerti anche