Sistemi Elettronici Programmabili Collegamenti seriali e paralleli Sistemi Elettronici Programmabili 7-1 Tipi di Collegamento Source Destination Monodirezionale Sour/Dest Sour/Dest Bidirezionale Half Duplex Sour-Dest Sour-Dest Bidirezionale Full Duplex Source Destination Seriale Source Destination Parallela Sistemi Elettronici Programmabili 7-2 Seriale (1) CLKTx CLKRx DataIn DataOut 11010011 11010011 Sistemi Elettronici Programmabili 7-3 Comunicazione Seriale: Tx Tx serializza la WORD inviando i bits che la compongono uno alla volta CLKRx CLKTx DataIn DataOut 11010011 11010011 Data Tx D SET CLR Q Q D SET CLR Q Q D SET CLR Q Q D SET CLR TX Q Q CLK Load Sistemi Elettronici Programmabili 7-4 Comunicazione Seriale: Rx Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono stati ricevuti tutti i bits di cui è composta CLKRx CLKTx DataIn DataOut 11010011 11010011 D RX D SET D Q SET D Q SET Q D SET Q CLR Q CLR Q Rx CLR SET Data Q Q /n CLR Q CLR Q CLK CLK 1 2 3 Sistemi Elettronici n-1 n … … …Programmabili - 1 27-5 Bus: Asincrono Monodirezionale Data Master Protocollo aperto (Slave sempre pronto) Slave Strobe Strobe Data Data i Data i+1 Data i+2 Strobe Data Protocollo chiuso Master Strobe Slave Wait Data Data i Data i+1 Data i+2 Strobe Wait Sistemi Elettronici Programmabili 7-6 Bus: Asincrono Bidirezionale Data Master Strobe(Read) Slave Write Data Z DataM i Z DataM i+1 Z DataS j Z DataS j Z Strobe Write Read Write Sistemi Elettronici Programmabili 7-7 Bus: Asincrono Bidirezionale con Wait Data Strobe Master Slave Write Wait Data DataM i Z DataM i+1 Z DataS j Z Strobe Write Wait Read Write Sistemi Elettronici Programmabili 7-8 Bus: Sincrono Data Master Slave Enable Clock Data X Data i X Data i+1 Data i+2 Enable Clock Sistemi Elettronici Programmabili 7-9 Comunicazione Seriale Asincrona Overhead in ogni word (la comunicazione rallenta) • stato di idle, bit start e bit stop idle start 1 0 0 1 1 0 1 1 baud rate idle stop stop start L’oscillatore locale deve agganciarsi alla frequenza corretta e poi deve correggere la sua fase in base al bit di start DATI: CLOCK: (oscillatore locale non in fase) 0 ? 0 0 1 CLOCK: (oscillatore locale in fase) 0 1 0 0 1 Sistemi Elettronici Programmabili 7-10 Comunicazione Seriale Asincrona T: tempo di bit Problema: n: numero di bits di cui è composta una word • clock shifting ΔF: disallineamento tra i due clock T T 1 n 2 F 1 0 T F n 2 Soluzione: La parola da trasferire deve essere piccola Sistemi Elettronici Programmabili 7-11 Comunicazione Seriale Sincrona CLKRx CLKTx data DataIn DataOut 11010011 11010011 CLK • assenza di overhead (solo dati) • il clock può anche non essere trasmesso Codici: recupero del clock Clock recovery clk dati I dati contengono informazioni anche sul clock COD dati 0 1 1 0 codice Tx Rx campionatore Sistemi Elettronici Programmabili 7-12 Comunicazione Seriale: Codici • Mediamente il tempo in cui il segnale è alto è pari a quello in cui è alto il segnale di clock (non trasferito) • Il clock di campionamento deve essere doppio di quello dei dati iniziali (codifica Manchester) Sistemi Elettronici Programmabili 7-13 Codice di Parità B7 B6 B5 B4 B3 B2 B1 B0 P 1 0 0 1 1 0 0 0 1 Word (in genere char) BER (Bit Error Rate) TX Channel RX B7 B6 B5 B4 B3 B2 B1 B0 PT PL 1 0 1 0 1 1 0 1 0 1 Non è possibile ricostruire quale bit sia errato, la word non può essere corretta Sistemi Elettronici Programmabili 7-14 Pacchetto Header Trailer Checksum Word (Char) Checksum = - (Header + Trailer) mod 2n Checksum + Header + Trailer = 0 1 Individuo la presenza di errori ma non posso dire quale word lo abbia causato Sistemi Elettronici Programmabili 7-15 Correzione di errore Utilizzando la matrice di parità individuo le words corrotte e anche i bits sbagliati (potrei effettuare una correzione) Sistemi Elettronici Programmabili 7-16