Il protocollo RS232 è uno standard di trasmissione seriale,
molto usato nei computer o da apparecchiature collegate ad esso.
Le porte utilizzate sono principalmente due, la prima a 25 poli (simile alla parallela) chiamata anche DB-25 maschio DTE, e la seconda a 9 poli di tipo maschio DE9P.
Il connettore maschio è riferito al lato computer.
La porta a 25 poli (prima foto) veniva usata in passato ed ora è in
disuso, mentre la porta a 9 poli (seconda foto) la potete trovare dietro il vostro computer o
in qualche apparecchiatura, tipo le casse dei negozi o le apparecchiature meccaniche
presenti nei laboratori di ricerche etc.
Il protocollo si divide in due principali tipi di trasmissione,
sincrona e asincrona.
SINCRONA
La trasmissione sincrona prevede 2 canali, uno per la trasmissione dati ed uno
per la trasmissione del clock (o frequenza di lavoro).
Il dispositivo che trasmette le informazioni è chiamato master,
mentre il dispositivo che le riceve slave.
Il dispositivo si setta automaticamente su master o su slave a
seconda dell'operazione che sta facendo, quindi se deve trasmettere i dati si
posiziona su master e genera la frequenza di clock, mentre se non deve
trasmettere i dati si posiziona su slave e si sincronizza sulla frequenza del
master.
Per una trasmissione corretta tra master e slave, la velocità
dei dati e la lunghezza degli stessi deve essere identica in tutte e due gli
apparati.
Supponiamo di dover inviare il numero 3 alla porta seriale di un
computer, e che la sua porta seriale sia settata con una lunghezza d'informazione di 8 bit ed
una frequenza di 9600 bit per secondo (chiamati anche baud).
Il nostro master dovrà trasmettere il numero 3 rispettando tutti
i parametri dello slave, quindi velocità e lunghezza di dati.
Il numero 3 convertito in binario da 8 bit (perchè 8 è la
lunghezza dei dati scelta) è così composto 00000011, quindi la trasmissione del
numero sarà come in foto.
Ad ogni clock viene inviato un singolo bit, nel primo tempo
viene inviato un bit di sincronizzazione che permette allo slave di capire che
sta per ricevere un informazione dal master (Sync).
Nei tempo che vanno dal 2 fino al 9 viene spedita l'informazione, in questo caso
il numero 3 trasformato in binario 00000011.
Come vedete ad ogni durata di clock dura il bit da trasmettere e
questo dato è di vitale importanza altrimenti
lo slave non riuscirebbe a sincronizzarsi con il master e quindi
l'invio delle informazioni fallirebbe.
ASINCRONA
La trasmissione asincrona prevede un canale per la trasmissione
e un canale per la ricezione, questi canali sono incrociati, ovvero il canale di
trasmissione di uno va nel canale di ricezione dell'altro, come in foto.
I dati da inviare questa volta subiscono un trattamento più
complesso rispetto alla trasmissione sincrona.
I settaggi da usare sono: la velocità di trasmissione, la lunghezza
dell'informazione da inviare, il bit di parità.
Riprendendo l'esempio precedente, ovvero l'invio del numero 3 ad
un computer tramite porta seriale, l'informazione inviata sarà la seguente:
Nel primo tempo abbiamo un bit di start che identifica
l'inizio del byte da inviare, dal tempo 2 al tempo 9 il numero 3 convertito in
binario ed alla fine un bit di stop che identifica la fine
del byte inviato.
Grazie al bit di start e di stop il ricevitore sa quando inizia
e quando finisce un informazione inviata dal trasmettitore.
Il bit di stop può durare un tempo, un tempo e mezzo o due tempi
di clock, nei settaggi troverete 1 - 1,5 - 2.
Ma supponiamo di inviare il numero tre (00000011), e che per
colpa di disturbi od interferenze si riceverà 00000111 e quindi il numero 7,
come possiamo risolvere il problema?
A questo pacchetto si può aggiungere il bit di parità che serve
a controllare se l'informazione inviata è arrivata corretta od
errata e quindi bisogna scartala.
BIT DI PARITA' PARI (even)
Il bit di parità pari porta a paro il numero di bit settati a
uno, supponendo di inviare il numero 00000011, sarà aggiunto un bit a zero
(bit rosso)
perchè il totale dei bit a uno è pari, quindi sarà 000000011.
Se dovevamo inviare il numero 00000111 il bit di parità sarebbe
stato uno perchè il numero di bit ad uno è dispari, quindi
100000111.
In questo modo se l'informazione inviata è 000000011 e
l'informazione ricevuta è 000000111, c'è un errore, perchè il bit di parità deve
essere ad uno e non a zero e quindi il byte viene
scartato.
BIT DI PARITA' DISPARI (odd)
Il bit di parità dispari porta a dispari il numero di bit settati a
uno, supponendo di inviare il numero 00000011, sarà aggiunto un bit a uno perchè
il totale dei bit a uno compreso il bit di parità e dispari , quindi sarà
100000011.
Se dovevamo inviare il numero 00000111 il bit di parità sarebbe
stato zero perchè il numero di bit ad uno è dispari, quindi
000000111.
In questo modo se l'informazione inviata è 000000011 e
l'informazione ricevuta è 000000111, c'è un errore, perchè il bit di parità deve
essere a zero e non a uno, quindi il byte viene
scartato.
LIVELLI ALIMENTAZIONE
I livelli di alimentazione sono diversi, nello standard si prevedono i seguenti livelli:
- 5 V -----+ 5V
-10 V ---- +10V
-12 V ---- +12V
-15 V ---- +15V
Questo indica che il livello più basso del segnale si trova a una tensione negativa e non zero.
Questi livello è utilizzato in tutti i computer, vecchi e moderni e in tutti i circuito elettronici di vecchio tipo, (di solito i nuovi utilizzano i livelli TTL).
La massima tensione applicabile è di 25 Volt e la commutazione avviene a -3V e +3V.
Altri sistemi utilizzano i livelli TTL ovvero da 0 volt a 5 volt, quindi tutte tensioni positive.
Il sistema TTL è molto usato per adattatori seriali o piccole schede di conversione, ultimamante è molto usato a livello amatoriale e non.
VELOCITA' DI TRASMISSIONE
La velocità di trasmisione si misura in bps (bit per secondo ) o in baud (baud rate),in questo caso coincidono, essendo una trasmissione binaria.
Le velocità permesse sono le seguenti:
50
75
110
134
150
200
300
600
1200
1800
2400
4800
9600
19200
38400
57600
115200
230400
460800
500000
576000
921600
1000000
1152000
1500000
2000000
2500000
3000000
3500000
4000000
Attenzione, perchè non tutte le schede supportano le velocità indicate, fate riferimento alle specifiche del costruttore.
NUMERO DI BIT
Il numero di bit che si possono trasmettere possono essere:
6 bit
7 bit
8 bit
Il numero di bit più comune è a 8 bit.
SPECIFICHE PIU' UTILIZZATE
Le specifiche più utilizzate nella trasmissione seriale RS-232 &grave 8N1 9600.
Questa siglia identifica:
8 = 8 bit
N = Nessuna parità
1 = Un bit di stop
9600 = Velocità di trasmissione
PIEDINATURA DELLE PORTE:
Le porte seriali da 25 poli hanno la seguente piedinatura:
PIN 1 Schermatura
PIN 2 TD (Trasmissione dati) DTE → DCE
PIN 3 RD (Ricezione dati) DCE → DTE
PIN 4 RTS (Request To Send) DTE → DCE
PIN 5 CTS (Clear To Send) DCE → DTE
PIN 6 DSR (Data Set Ready) DCE → DTE
PIN 7 SG (Signal Ground) Massa dati
PIN 8 DCD (Data Carrier Detect) DCE → DTE
PIN 9 Riservato
PIN 10 Riservato
PIN 11 Non Assegnato
PIN 12 SDCD (Secondary Carrier Detect) DCD canale secondario
PIN 13 SCTS Secondary Clear To Send) CTS canale secondario
PIN 14 STD (Trasmissione dati secondario) TD canale secondario
PIN 15 TC (Trasmitting Clock) DTE → DCE (temporizzazione generata da DCE)
PIN 16 SRD (Ricezione dati secondario) RD canale secondario
PIN 17 RC (Receiving Clock) DCE → DTE (temporizzazione generata da DCE)
PIN 18 LL (Local Loopback) DTE → DCE
PIN 19 SRTS (Secondary Request To Send) RTS canale secondario
PIN 20 DTR (Data Terminal Ready) DTE → DCE
PIN 21 RL (Remote Loopback) DTE → DCE
PIN 22 RI (Ring Indicator) DCE → DTE
PIN 23 Data Signal Rate Selector
PIN 24 TC (Trasmitting Clock) DTE → DCE (temporizzazione generata da DTE)
PIN 25 Test Mode
Lo schermo è collegato corpo metallico del connettore.
Mentre le porte seriali a 9 poli hanno la seguente piedinatura:
PIN 1 Data Carrier Detect DCD
PIN 2 RD (Ricezione dati) DCE → DTE
PIN 3 TD (Trasmissione dati) DTE → DCE
PIN 4 DTR (Data Terminal Ready) DTE → DCE
PIN 5 SG (Signal Ground) Massa dati
PIN 6 DSR (Data Set Ready) DCE → DTE
PIN 7 RTS (Request To Send) DTE → DCE
PIN 8 CTS (Clear To Send) DCE → DTE
PIN 9 RI (Ring Indicator)
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.