ePerTutti


Appunti, Tesina di, appunto elettronica

COMUNICAZIONE SERIALE

ricerca 1
ricerca 2

COMUNICAZIONE  SERIALE



L'obiettivo di questa esperienza è quello di riuscire a collegare tra loro due PC per poter eseguire uno scambio seriale di dati tra i due computer. Per poter effettuare una comunicazione seriale tra due PC sono stati fatti due programmi: uno per la trasmissione dei dati ed uno per l'acquisizione degli stessi. Si dovrà quindi scegliere quale computer deve trasmettere e quale deve ricevere i dati. A questo proposito dovrà  essere eseguito il programma per la trasmissione (TR8250) nel computer che è stato scelto per trasmettere i dati, e quello per la ricezione (RI8250) nel computer scelto per ricevere.

Poiché la comunicazione tra i due terminali deve essere di tipo seriale è stata utilizzata per questo scopo l'interfaccia seriale 8250. Questa interfaccia presenta 10 segnali di controllo, può essere programmata per usare il modem oppure no e può funzionare con gli interrupt. I registri di controllo dell'8250 sono i seguenti:


3F8H THR REGISTRO MEMORIZZAZIONE TRASMISSIONE



3F8H RBR REGISTRO DATI RICEVUTI

3F8H DLL DIVISORE DI BAUD RATE (LSB)

3F8H DLM DIVISORE DIBAUD RATE (MSB)

3F8H IER REGISTRO ABILITAZIONE INTERRUZIONI

3F8H IIR REGISTRO IDENTIFICAZIONE INTERRUZIONI

3F8H LCR REGISTRO CONTROLLO LINEA

3F8H MCR REGISTRO CONTROLLO MODEM

3F8H LSR REGISTRO STATO LINEA

3F8H MSR REGISTRO STATO MODEM



I registri da noi utilizzati sono i seguenti: LCR, IER, DLM,DLL, THR, RBR.

Il collegamento tra i due computer è stato fatto mediante l'utilizzo di un cavo seriale come in ura:








 




  TD TD RD RD GND



Il programma di trasmissione funziona nel seguente modo:

Inizializza la porta per la trasmissione a 2400 baud

Controlla che il registro di trasmissione sia vuoto

Se è vuoto scrive il byte in THR e quindi viene trasmesso


Il programma di ricezione funziona così:

Inizializza la porta per la ricezione a 2400 baud

Controlla che il registro di ricezione sia pieno

Se è pieno lo legge


Listato programmi:


TRASMISSIONE (TR8250)


#include<dos.h>

#include<conio.h>

#include<stdio.h>

#include<iostream.h>


main()



RICEZIONE (RI8250)


#include<dos.h>

#include<conio.h>

#include<stdio.h>

#include<iostream.h>


main()

while(stato==0); // CONTROLLA CHE IL REGISTRO DI RICEZIONE

clrscr(); // SIA PIENO

dato=inportb(rbr); // LEGGE IL DATO DA STAMPARE

cout<<'Dato ricevuto : '<<dato;

getch();



Per lo sviluppo di questa esperienza abbiamo impiegato quattro ore senza riscontrare nessun problema rilevante.




Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta