Le comunicazioni seriali RS232



Documenti analoghi
Comunicazione. Prof. Antonino Mazzeo. Corso di Laurea Specialistica in Ingegneria Informatica

per(il(corso(di(architetture(dei(sistemi(di(elaborazione(

I BUS DI COMUNICAZIONE SERIALI

Trasmissione Seriale e Parallela. Interfacce di Comunicazione. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Prof.

I BUS DI COMUNICAZIONE SERIALI

Progetto e realizzazione di un sistema che rileva la temperatura a distanza

Bus RS-232. Ing. Gianfranco Miele April 28, 2011

Architettura hardware

Interfaccia Seriale RS232-C. prof. Cleto Azzani IPSIA Moretto Brescia

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino. Gruppo H: Sistemi Elettronici Lezione n H - 5: Collegamenti seriali Conclusione

Comunicazioni seriali (parte seconda)

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

ISOLATORE FOTOELETTRICO DI INTERFACCIA SERIALE RS-232

Esame di INFORMATICA

Protocolli di Comunicazione Elettronica dei Sistemi Digitali L-A Università di Bologna, Cesena

Gestione di una UART SOFTWARE.

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Comunicazione codifica dei dati. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Reti di calcolatori ed indirizzi IP

CONVERTITORE SERIALE ASINCRONO RS485 / USB

KEYSTONE. OM8 - EPI 2 Modulo interfaccia AS-i Manuale di istruzione. Indice 1 Modulo Opzionale OM8: Interfaccia AS-i 1

ACCESSO A DRIVE REMOTO TRAMITE MODEM

CONVERTITORE SERIALE ASINCRONO RS232/USB, TTL/USB e RS485/USB CONFIG BOX PLUS

Manuale di installazione del software di Controllo Surv-Controller Ver.3.0

Page 1. ElapC8 04/11/ DDC 1 ELETTRONICA APPLICATA E MISURE. C8: Esempi di collegamenti seriali. Ingegneria dell Informazione

GENERALITÀ. Unità: Canali di comunicazione:

Reti LAN. IZ3MEZ Francesco Canova

Sezione di PWM e Generatore di D/A Converter.

COMUNICAZIONE SERIALE

Cavo VGA (9 Pin / 15 Pin)

Dispositivi di rete. Ripetitori. Hub

RETI E SISTEMI INFORMATIVI

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

Curtarolo (Padova) Italy

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON ADCS1, ADCS CH2, CH1 E CH GO/DONE... 6 ADON...

Guida Rapida all Installazione WLN10 e WLN10HS Server Wireless NMEA

Ing. Gabriele MONTI Seriali

GUIDA ALLE SOLUZIONI

L applicazione dei vettori di collaudo

Introduzione alle misure con moduli multifunzione (DAQ)

Dispensa di Informatica I.1

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

LE RETI: LIVELLO FISICO

INTERFACCIA SERIALE RS232PC

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Le linee seriali. Nomenclatura. Linee Seriali. M. Parvis 1

Lo scenario: la definizione di Internet

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo

ACE SL7000 Lettura remota con interfaccia Ethernet Nota Applicativa

STATE CERCANDO LA CONNESSIONE GIUSTA? MARCONNECT E QUELLA IDEALE

COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

TERMINALE PER IL CONTROLLO ACCESSI LBR 2746/48

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto

Controllo comunicazioni

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

CONTATORI ASINCRONI. Fig. 1

OSCILLATORI AL QUARZO: CONTASECONDI

BARRIERE FOTOELETTRICHE PER MISURA AUTOMAZIONE CONTROLLO

Circuiti amplificatori

Manuale di installazione ed utilizzo del software di Controllo AurCord-Controller Ver.4.0

Creare una Rete Locale Lezione n. 1

Introduzione all acquisizione Dati

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

PXG80-W. Siemens Building Technologies Building Automation. DESIGO PX Controllore Web. con porta modem

SOLUZIONI PER IL CONTROLLO DELLA QUALITA DELL ARIA NEGLI AMBIENTI CHIUSI

Procedura di aggiornamento del firmware Display Remoto IntellyGreenPV

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Corso di Informatica

Calcolo numerico e programmazione Architettura dei calcolatori

Gestione delle Linee di Ingresso Optoisolate.

LABORATORIO DI SISTEMI

Reti di Telecomunicazione Lezione 8

Universal Serial Bus (USB)

1. INTRODUZIONE ETH-BOX

Architettura di un calcolatore

( x) ( x) 0. Equazioni irrazionali

Installazione del trasmettitore. ACom6

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sistema di telegestione per impianti fotovoltaici. L. MIRAGLIOTTA C. LEONE Giuseppe PITTARI CSN APPLICATION NOTE:

TEL32G Sistema di Allarme e Telecontrollo su rete GSM

MANUALE TECNICO E SMS

INTEGRATORE E DERIVATORE REALI

SISTEMI INFORMATIVI AZIENDALI

Registri. «a2» Copyright Daniele Giacomini --

FIRMA DIGITALE RETAIL

Esempio: aggiungere j

La Videosorveglianza Criteri per il dimensionamento dello storage

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Organizzazione della memoria

CPU. Maurizio Palesi

ESERCIZI - SERIE N.1

Logica binaria. Porte logiche.

N.B.: DISPONIBILITA INVERNO 2014 FAQ ACS700 versione 9

* = Marchio registrato da Hilgraeve. Pag 1 di rfcomm@aurel.it

Manuale d uso MULTIPROGRAMMATORE

Sistema di acquisizione dati

Transcript:

Le comunicazioni seriali Le comunicazioni seriali richiedono un minimo di due connessioni elettriche per comunicare dati in una direzione. Una linea dati (generalmente o di trasmissione o di ricezione) ed una linea per la massa. Lo standard più diffuso storicamente per le comunicazioni seriali è la RS232 anche se recentemente diversi standard elettronici più veloci ed affidabili si sono affermati. RS232 Lo standard RS-232 è uno degli standard storici per la comunicazione seriale tra periferiche e nasce dalla necessità di far comunicare telescriventi con sistemi modem. La sua specifica iniziale del 1962 prevedeva connessioni a 19200 bit al secondo su cavi di lunghezza di 20 mt, seguita nel 1969 dallo standard più diffuso chiamato RS-232C. Questo standard ha visto la sua diffusione principale con l introduzione nel primo PC dell IBM, e le sue evoluzioni più recenti del RS422/449 permettono di arrivare fino a 10Mbps su cavi di 2km. I livelli elettrici della RS232 sono compresi tra i 5 ed i 25 volt, ma i valori codificati assumono 5,10,12 e 15V. I bit vengono codificati con valori negativi per l 1 logico (marking) e valori positivi per lo 0 logico (spacing), mentre i valori vicini allo zero non sono associati a valori logici. Il numero di cavi dello standard è costituito da 22 con un connettore 25-pin D ma nella normale comunicazione tra personal computer solo 9 vengono usati e per questa ragione si è diffuso il connottore a 9 pin. Nella denominazione della RS232 si parla di DTE per Data Terminal Equipment e di DCE Data Communications Equipment, dove il DTE corrisponde al personal computer evoluzione dell antico typewriter ed il DCE corrisponde al modem.

Il circuito elettrico equivalente è Poichè I segnali elettrici (livelli di tensione) utilizzati sono molto maggiori rispetto ai livelli utilizzati nei dispositi digitali quali microcontrollori per poter adoperare correttamente la comunicazione seriale tra dispositivi integrati sono nati In genere i segnali utilizzati dai sistemi digitali variano tra 0 e 5 V e non sono quindi direttamente compatibili con la standard EIA RS-232. In commercio esistono appositi traslatori di livello che hanno il compito di fornire sia in trasmissione che in ricezione gli opportuni livelli pur non modificando la forma del segnale trasmesso. Alcuni integrati (per esempio i classici MC1488 e MC1489, introdotti sul mercato dalla Motorola, rispettivamente un trasmettitore ed un ricevitore, ambedue a quattro canali) sono molto usati in sistemi in cui è presente (oltre all'alimentazione logica di 5 V o 3.3 V) un'alimentazione duale a +/- 12 V. Questo integrato, come praticamente tutti i circuiti di questo tipo, contiene un inverter per ciascun canale e quindi nel segnale in uscita o in ingresso uno zero logico appare come 0 volt, cioè in quella che a molti sembra essere la rappresentazione ovvia dei segnali digitali. L'uso di questi integrati è semplice ma non è sempre attuabile a causa della necessità di disporre di tre alimentazioni: si pensi per esempio alle apparecchiature alimentate a batteria. Il MAX232 (ed integrati simili, fu introdotto dalla Maxim ma è attualmente prodotto da molte ditte di semiconduttori) è un circuito integrato che permette il collegamento tra logica TTL o CMOS a 5 V e le tensioni EIA RS-232, partendo solo da un'alimentazione a 5 V.

I segnali fondamentali sono: 2 TD 3 3 RD 2 4 RTS 7 5 CTS 8 6 DSR 6 7 GND 5 20 DTR 4 DB25 DB9 25 Pin Connector on a DTE device (PC connection) Male RS232 DB25 Pin Number Direction of signal: 1 Protective Ground 2 Transmitted Data (TD) Outgoing Data (from a DTE to a DCE) 3 Received Data (RD) Incoming Data (from a DCE to a DTE) 4 Request To Send (RTS) Outgoing flow control signal controlled by DTE 5 Clear To Send (CTS) Incoming flow control signal controlled by DCE 6 Data Set Ready (DSR) Incoming handshaking signal controlled by DCE 7 Signal Ground Common reference voltage 8 Carrier Detect (CD) Incoming signal from a modem

20 Data Terminal Ready (DTR) Outgoing handshaking signal controlled by DTE 22 Ring Indicator (RI) Incoming signal from a modem Male RS232 DB9 9 Pin Connector on a DTE device (PC connection) Pin Number Direction of signal: 1 Carrier Detect (CD) (from DCE) Incoming signal from a modem 2 Received Data (RD) Incoming Data from a DCE 3 Transmitted Data (TD) Outgoing Data to a DCE 4 Data Terminal Ready (DTR) Outgoing handshaking signal 5 Signal Ground Common reference voltage 6 Data Set Ready (DSR) Incoming handshaking signal 7 Request To Send (RTS) Outgoing flow control signal 8 Clear To Send (CTS) Incoming flow control signal 9 Ring Indicator (RI) (from DCE) Incoming signal from a modem Nel protocollo esteso di comunicazione seriale si possono usare i cavi aggiuntivi: RTS messo ad 1 dal DTE per inviare CLS è la risposta del DCE al RTS del DTE DTR è proposta del terminale per indicare di essere pronto a ricevere DSR è la risposta del DCE Il baud rate è la velocità di trasmissione che vale 110-19200 per l UART 8250 e 38400-921600 per il 16550 dipendente però dal clock utilizzato per pilotare il chip. La soluzione più semplice per l invio in RS232 consiste nell uso di soli tre fili RD/TD/GND Attesa del bit di start uguale a 0 Campionamento dei valori T0 + TB/2 + n TB Controllo del bit di parità 1 Controllo del bit di stop (1,1.5,2) di valore pari a 0 La configurazione tipica è 8 bit di dati, nessuna parità ed un bit di stop per un totale di 10 bit

Accuratezza di trasmissione Uno dei problemi possibili nel caso della comunicazione seriale è costituito dalla precisione del baud rate. Si supponga che sorgente e destinazione abbiano due fonti di clock diverse che si discostano per un errore percentuale pari a delta. Sarà pertanto (1+delta) = T2/T1. I campionamenti del segnale sul ricevente (effettuati ai tempi T2, 2T2, 3T2, ) prvocheranno un errore di allineamento rispetto alla trasmissione pari a: T2-T1 =delta*t1 2*T2-2*T1 = 2* delta*t1 3*T2-3*T1 = 3* delta*t1 4*T2-4*T1 = 4* delta*t1 5*T2-5*T1 = 5* delta*t1 Errori via via crescenti man mano che il frame procede. E chiaro che l errore massimo sara` raggiunto sull ultimo bit (N=lunghezza del frame). E perche sia rispettata la condizioni di integrita` di ricezione dovra essere delta * N* < T/2 da cui delta <.5/N Nel caso dei microcontrollori tale errore va conteggiato per assicurarsi che sia trascurabile poichè il baudrate è stabilito attraverso una formula analitica collegata al timer (MCU) del controllore. Nel caso di una trasmissione tipo 8N1 (8bit no parity, 1 bit di stop) delta<5%. Inoltre per tener conto che anche la sorgente di trasmissione possa avere un errore percentuale bisognera tenersi lontano dal limite del 5%. Controllo del flusso Il controllo del flusso della RS232 può avvenire secondo tre diverse modalità: Nessuno: in questo caso si cerca l inizio del bit di start sul canale di ricezione. Con questo sistema si usano solo 3 fili. Hardware: vengono usati i fili RTS/CTS per l invio dal DTE al DCE e DTR/DSR per la ricezione dal DCE Software XON/XOFF: si usano due caratteri 17 (CTRL+Q) e 19 (CTRL+S) per iniziare la

comunicazione Quando si vuol connettere due periferiche (ad esempio due PC) si può procedere ad una configurazione Null-modem. La configurazione Null-modem può essere effettuata in vari modi a seconda del tipo di handshaking scelto, che può essere assente o completo, sulla base del tipo di comunicazione scelta e della velocità massima. La soluzione minimale senza handshaking è la seguente Nei microcontrollori o in altri dispositivi di elaborazione solitamente si ha una interfaccia che si chiama UART o USART che si occupa della trasmissione seriale e parallela. L'acronimo sta rispettivamente per Universal asynchronous receiver/transmitter e Universal synchronous/asynchronous receiver/transmitter ad indicare che la trasmissione effettuata può essere sincrona o asincrona. Una unità UART solitamente contiene le seguenti componenti: un generatore di clock, tipicamente ad un multiplo del bit rate per garantire il campionameno a metà del periodo di bit. shift registers di ingresso e di uscita controllo di trasmissione/ricezione logica di controllo di lettura/scrittura transmit/receive buffers (optional) parallel data bus buffer (optional) First-in, first-out (FIFO) buffer memory (optional) Le porte seriali nel AVR L atmega169 mette a disposizione diverse porte seriali (sia sincrone che asincrone) per le comunicazioni con dispositivi remoti. In particolari due tipi principali di perficeriche sono disponibli: le porte seriali sincrone (che non tratteremo in questo corso) e le porte seriali asincrone. Siccome la Butterfly mette a disposizione un traslatore di livello per la comunicazione sui livelli elettrici RS232 questa porta ci consentirà di connettere direttamente personal computer e schede butterfly senza la necessità di interporre altra elettronica.

Per attivare il modulo delle perte seriali assicurarsi che il relativo bit (PRRUSARTx) di risparmio energetico sia posto a zero. Il funzionamento della porta e del protocollo seriale è stato già visto precedentemente, nel seguito dettaglieremo come impiegare la periferica messa a disposizione dall Atmega per controllare gli stream di input e output. In primo luogo rivediamo lo schema della periferica: Lo schema prevede due moduli (uno di trasmissione e uno di ricezione) affiancati ad un generatore di temporizzazione. Lo schema di temporizzazione è in sostanza un divisore di frequenza il cui comportamento è regolato sia dal calore del registro UBRR che da alcuni bit di controllo. Valgono le seguenti relazioni tra il BAUDRATe e il Valore di UBRR.

Ovviamente il procedimento per calcolare la frequenza di comunicazione (data l approssimazione intera del valore di UBRR) è doppio. Dapprima dal BAUDRATE calcolo il valore del UBRR seguendo la formula nella seconda colonna, quindi utilizzando la prima colonna calcolo il BAUDRATE effettivamente realizzato. Ovviamente dovrò accertare che l errore di frequenza commesso, confrontato con la lunghezza del FRAM sia accettabile per non incorrere in errori di comunicazione (OVERRUN/UNDERRUN). Utilizzando le risorse disponibili possiamo quindi comporre dei frame socondo lo standard della comunicazione seriale, ed in particolare: 1 bit di start; 5, 6, 7, 8, o 9 bit di dati; 1 bit di parità (pari o dispari); 1 o 2 bit di stop. Tra quadre i campi opzionali. Ovviamente i setting per la trasmissione e la ricezione sono identici, quindi una sola copia dei bit di configurazione permette di controllare entrambi i moduli. Prima di vedere i valori ed i significati dei registri ci configurazione, esaminiamo un esempio di operazione in codice C. #define FOSC 8000000 // Frequenza dell oscillatore RC #define BAUD 115200 // frequenza di comunicazione #define MYUBRR FOSC/8/BAUD-1 // Usare delle define per questi valori che sono // poi costanti nel codice aiuta a diminuire spazio e ottimizzare il codice oggetto #define MYUBRRH (MYUBRR/256) #define MYUBRRL (MYUBRR&255) void main( void ) {... /* Imposto il baud rate */ UCSRA = 0x02; // Abilito modalità trasmissione veloce UBRRH = MYUBRRH;

UBRRL = MYUBRRL; /* Abilito moduli di ricezione e trasmissione */ UCSRB = (1<<RXEN) (1<<TXEN); /* Imposto il formato del frame: 8data, 2stop bit */ UCSRC = (1<<USBS) (3<<UCSZ0);... } Descrizione dei registri Reg Mode BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT UDR RD Rxb7 Rxb6 Rxb5 Rxb4 Rxb3 Rxb2 Rxb1 Rxb0 UDR WR Txb7 Txb6 Txb5 Txb4 Txb3 Txb2 Txb1 Txb0 UCSRA RW RXC TXC UDRE FE DOR UPE U2X MPCM UCSRB RW RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 Rxb8 Txb8 UCSRC RW - UMsel UPM1 UPM0 USBS UCSZ1 UCSZ0 UCpol UBRRH RW - - - - UBR11 UBR10 UBR9 UBR8 UBRRL RW UBR7 UBR6 UBR5 UBR4 UBR3 UBR2 UBR1 UBR0 RxbX: bit in ricezione dalla porta seriale TxbX: bit in trasmissione dalla porta seriale RXC: Rx Complete, dati disponibili nel buffer di ricezione (controllo in poll); TXC: Tx Complete, trasmissione completata (per spegnere il device); UDRE: UDR empty. Il registro di trasmissione è pronto per accettare nuovi dati; FE: Frame Error, gli stop bit non tornano DOR: Data Overrun, dati in arrivo e buffer pieno UPE: Parity error (in ricezione ovviamente) U2X: trasmissione a velocità doppia MPCM: Multiprocesso Com Mode, abilita la USART a ricevere solo frame che iniziano con un indirizzo preimpostato. RXCIE, TXCIE, UDRIE: abilitazione interrupt relativi RXEN: abilitazione del ricevitore TXEN: abilitazione del trasmettitore UCSZXXX: numero dei bit di dati 5, 6, 7, 8, 9 Umsel: Modo di operazione: = = Asincrono (default), 1 == sincrono UPMX: Parity mode 0= disabilitato, 1= riservato, 2 = pari, 3= dispari; USBS: numero di stop bit. =0= 1bit stop, 1=2bit stop; UCSZX: 0=> 5, 1=>6, 2=>7, 3=>8, 7 =>9 bit 4,5,6 non permessi UCPOL: in modo sincrono definisce se i campioni vanno prelevati sui fronti in salita. Ovvero sui fronti in discesa (0 = discesa, 1= salita); La tabella di fianco riporta i valori tipici ottenibili con la

butterfly una volta che l oscillatore interno sia stato calibrato per poter funzionare a 8MHz. In alternativa alla programmazione del oscillatore potremo calibrare i valori di UBRR con la frequenza effettiva (non calibrata).