Bus RS-232 Ing. Gianfranco Miele ([email protected]) http://www.docente.unicas.it/gianfranco_miele April 28, 2011 Bus RS-232 28 aprile 2011 Alcune definizioni Comunicazione seriale • Bit trasmessi in sequenza • Basta una sola linea • Più lenta ed economica Comunicazione parallela • Bit trasmessi su più linee • Più veloce e costosa Comunicazione asincrona Ogni sequenza di bit trasporta informazioni sufficienti alla sua decodifica (start,stop,...) Comunicazione sincrona Sono previste linee per la trasmissione di un segnale di temporizzazione Comunicazione punto-punto Comunicazione multipunto Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Alcune definizioni Simplex A B Half duplex A B B A Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Full duplex A B Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Standard RS-232 Definito dalla Electronic Industries Association (EIA) nel 1969 Nasce per l'interconnessione di un calcolatore (DTE, Data Terminal Equipment) ed un modem (DCE, Data Communication Equipment) Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Controllo strumentazione RS-232 Instrument Serial Port RS-232 Cable • Non richiede hardware aggiuntivo • Usa una singola linea • Collegamento PC-PC o PC-Strumento Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Connettori I dispositivi che dispongono di porte RS232 si distinguono in due categorie: - DTE: PC, terminali - DCE: modem, stampanti, ... Esistono connettori a 9 pin (DB-9) ed a 25 pin (DB-25) Il connettore femmina dovrebbe, di norma, essere associato a DCE (Data Communication Equipment), cioè la periferica, il connettore maschio a DTE (Data Terminal Equipment), il computer. Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Il segnale elettrico Il protocollo indica che si possono utilizzare tensioni che vanno da ±5 V a ±15 V, ma la tensione classica usata è di ±12 V, per cui l’ampiezza del segnale è caratterizzata da un valore "alto" pari a circa +12 V, ed un valore "basso" pari a –12 V. Da notare che, nello standard EIA RS-232 un segnale alto rappresenta lo 0 logico ("mark") ed uno basso un 1 ("space"). È quindi una codifica a logica negativa, ossia rovesciata rispetto al comune pensare. Per incrementare l'immunità ai disturbi elettrici l'interfaccia elettrica ha una soglia di commutazione di ±3 V, cioè per passare da uno stato ad un altro non è sufficiente arrivare allo zero, ma dovrà essere superata la soglia dei 3 V di segno opposto. Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 La frame RS-232 La tensione di riposo (IDLE) della linea è negativa (= MARK) • 1 bit di START: segna l'inizio del frame con la transizione MARK > SPACE 7 o 8 bit di dati: codifica binaria con MARK=1 e SPACE=0, bit meno significativo (LSB) trasmesso per primo • • 1 bit di parità: per il controllo degli errori di trasmissione • Parità pari: vale 0 se il numero di 1 nei bit dati è pari, 1 viceversa • Parità dispari: vale 0 se il numero di 1 nei bit dati è dispari, 1 viceversa • Nessuna parità: bit di parità assente • 1, 1.5 o 2 bit di stop: riportano la tensione della linea a IDLE Tensioni: MARK tra -12V e -3V e SPACE tra +3V e +12V Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 La frame RS-232 1 0 1 0 0 1 0 0 1 1 1 1 - 12V Mark IDLE 7 bit dati Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Bit parità Space Start bit + 12V 2 bit di stop Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Parametri di comunicazione • Numero della porta (0 per COM1:, 1 per COM2:, ... ) • Baud rate: velocità di comunicazione in bit/s (compresi i bit di start, stop e parità). Valori tipici: 1200, 2400, 4800, 9600 • Data bits: scelta tra 7 o 8 bit dati • Stop bits: scelta tra 1, 1.5 e 2 bit di stop • Parity: pari (“even”), dispari (“odd”) o nessuna • Flow control: controllo della comunicazione. – Handshake hardware: si usano ulteriori linee (RST e CTS) per fissare inizio e fine di una sequenza di dati – Handshake software: si racchiude il messaggio trasmesso tra due caratteri di controllo XON e XOFF Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Descrizione del segnale Esempio per una comunicazione a 9600 bps e 8N2 Tutte le transizioni appaiono in corrispondenza di multipli di 104 μs (pari ad 1/9600 s, cioè ciascun bit dura esattamente l'inverso del baud rate). La linea si trova inizialmente nello stato di riposo, alta (nessun dato in transito); la prima transizione da alto a basso indica l’inizio della trasmissione (inizia il "bit di start", lungo esattamente 104 μs), a cui segue il bit meno significativo (LSB), dopo altri 104 μs, e così via, per otto volte, fino al bit più significativo (MSB). Da notare che il byte è trasmesso "al contrario", cioè va letto da destra verso sinistra. Segue infine un periodo di riposo della linea di almeno 208 μs, cioè due bit di stop e quindi (eventualmente) inizia un nuovo pacchetto di bit. Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 RS-232 DB9 pinout DB-9M Function Abbreviation Pin #1 Data Carrier Detect CD Pin #2 Receive Data RD or RX or RXD Pin #3 Transmitted Data TD or TX or TXD Pin #4 Data Terminal Ready DTR Pin #5 Signal Ground GND Pin #6 Data Set Ready DSR Pin #7 Request To Send RTS Pin #8 Clear To Send CTS Pin #9 Ring Indicator RI Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Collegamento DTE-CTE Rx PC (DTE) Tx Com Rx Tx Com Modem Linea telefonica (DCE) Nota: Per un DCE • Il connettore Rx è di output • Il connettore Tx è di input Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Collegamento DTE-DTE (null modem) PC (DTE) Rx Rx Tx Tx Com Com PC (DTE) Il cavo deve essere di tipo “null-modem” Alcuni strumenti, come il Fluke 45, richiedono questo tipo di collegamento (cioè sono dei DTE) Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Comunicazione seriale via labview Inizializzazione Scrittura verso la porta Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Comunicazione seriale via labview Lettura dalla porta # caratteri nel buffer di lettura Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Esempio controllo di un multimetro Configurazione Stringa inviata alla seriale: *RST;VDC\n\r Query Lettura del risultato di misura VAL?\n\r Stringa letta dalla seriale: +1.2345E+0 VDC\r\n Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Esempio I/O su RS-232 Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Attesa dell’invio dati Non si possono leggere dati che non siano ancora stati inviati Prima soluzione: attendere il riempimento del buffer (deve essere noto il numero di byte da leggere) Query (Richiesta di dati di misura) Attesa dei dati Lettura dei dati Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino Bus RS-232 28 aprile 2011 Attesa dell’invio dati Seconda soluzione: attendere per un intervallo di tempo sufficiente Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Laboratorio di Sistemi Automatici di Misura Università degli Studi di Cassino