# Elettronica applicata/Cicli di trasferimento base

Elettronica applicata
Copertina Tutti i moduli · Sviluppo
    CopertinaElettronica applicata/Copertina
* Circuiti digitali
** Circuiti logiciElettronica applicata/Circuiti logici
** Circuiti sequenziali IElettronica applicata/Circuiti sequenziali I
** Circuiti sequenziali IIElettronica applicata/Circuiti sequenziali II
** Logiche programmabiliElettronica applicata/Logiche programmabili
** Comparatori di sogliaElettronica applicata/Comparatori di soglia
** Generatori di onda quadraElettronica applicata/Generatori di onda quadra
* Bus e interconnessioni
** InterconnessioniElettronica applicata/Interconnessioni
** Modelli a linea di trasmissioneElettronica applicata/Modelli a linea di trasmissione
** Pilotaggio di lineeElettronica applicata/Pilotaggio di linee
** Cicli di trasferimento baseElettronica applicata/Cicli di trasferimento base
** Protocolli di busElettronica applicata/Protocolli di bus
** Collegamenti serialiElettronica applicata/Collegamenti seriali
** Collegamenti seriali sincroniElettronica applicata/Collegamenti seriali sincroni
** Integrità di segnaleElettronica applicata/Integrità di segnale
* Sistemi di acquisizione dati
** Sistemi di conversione A/D e D/AElettronica applicata/Sistemi di conversione A/D e D/A
** Convertitori D/AElettronica applicata/Convertitori D/A
** Conversione A/DElettronica applicata/Conversione A/D
** Convertitori pipeline e differenzialiElettronica applicata/Convertitori pipeline e differenziali
** Condizionamento del segnaleElettronica applicata/Condizionamento del segnale
** FiltriElettronica applicata/Filtri
* Alimentatori e regolatori
** Sistemi di alimentazioneElettronica applicata/Sistemi di alimentazione
** Regolatori a commutazioneElettronica applicata/Regolatori a commutazione
Modifica il sommario
I protocolli di ciclo servono per garantire il corretto trasferimento dei pacchetti di bit tra una sorgente e una destinazione tenendo conto dei vincoli di temporizzazione e dello skew.
La sincronizzazione delle unità può avvenire in due modi:
* macchina a stati asincrona: i cambiamenti di stato possono avvenire in ogni momento;
* macchina a stati sincrona: i cambiamenti di stato possono avvenire solo sui fronti di clock, e la temporizzazione si basa su multipli interi del periodo di clock.

## Ciclo di scrittura

Come destinazione (slave) viene usato un flip-flop di tipo D: l'ingresso D memorizza il pacchetto di bit proveniente dalla sorgente (master) alla transizione LH di un certo segnale di clock.

### Ciclo di scrittura sincrono

Le operazioni avvengono in una sequenza di ritardi predefiniti:
    ${t_{WR}}_{\text{min}}=2t_{K}+t_{SU}+t_{H}$
* la sorgente invia l'informazione;
* la sorgente attende un tempo minimo $t_{SU}+t_{K}$ per garantire il tempo di setup $t_{SU}$ richiesto dal flip-flop di destinazione;
* la sorgente invia il comando di strobe, usato come clock per il flip-flop;
* la sorgente attende un tempo minimo $t_{H}+t_{K}$ per garantire il tempo di hold $t_{H}$ richiesto dal flip-flop;
* la sorgente rimuove i segnali di informazione e di strobe.

#### Svantaggi

* la sorgente deve conoscere i tempi di setup $t_{SU}$ e di hold $t_{H}$ e lo skew $t_{K}$ della destinazione, perché tutta la temporizzazione è controllata dalla sorgente stessa;
* nelle trasmissioni broadcast (scrittura verso più destinazioni), la sorgente deve limitarsi a trasmettere alla velocità consentita dalla destinazione più lenta, avente cioè tempi di setup $t_{SU}$ e di $t_{H}$ massimi, perché la temporizzazione è fissa.

### Ciclo di scrittura asincrono

Le operazioni avvengono in una sequenza basata sull'interazione tra sorgente e destinazione, detta handshake (strobe/ACK):
    ${t_{WR}}_{\text{min}}=t_{K}+t_{SU}+t_{H}+4t_{TX}$
* la sorgente invia l'informazione;
* la sorgente attende un tempo minimo $t_{K}$ per garantire che il comando di strobe arrivi alla destinazione sempre dopo il segnale di informazione;
* la sorgente invia il comando di strobe, che va in ingresso alla logica di controllo P della destinazione;
* trascorso un tempo di trasmissione, la logica di controllo attende il tempo di setup $t_{SU}$ richiesto dal flip-flop;
* la logica di controllo invia il segnale di clock al flip-flop, che memorizza l'informazione;
* la logica di controllo attende il tempo di hold $t_{H}$ richiesto dal flip-flop;
* la logica di controllo invia un ACK alla sorgente per informarla che può rimuovere i segnali di informazione e di strobe;
* trascorso un tempo di trasmissione, la sorgente rimuove i segnali di informazione e di strobe;
* trascorso un tempo di trasmissione, la logica di controllo rimuove il segnale di ACK;
* trascorso un tempo di trasmissione, il segnale di ACK giunge disattivato al lato sorgente.
Lo skew $t_{K}$ è l'unico ritardo che la sorgente deve conoscere: i tempi di setup $t_{SU}$ e di hold $t_{H}$ sono garantiti dalla logica di controllo P della destinazione.

### Ciclo di scrittura semisincrono

Le operazioni avvengono in una sequenza di ritardi predefiniti, a meno che la destinazione non attivi una richiesta di wait per bloccare temporaneamente il ciclo in modo da avere più tempo per completare le sue operazioni.

## Ciclo di lettura

In un ciclo di lettura il master è la destinazione (flip-flop), che inizializza il ciclo e aggiunge ai ritardi il tempo necessario per la richiesta allo slave di ricevere i dati.

### Ciclo di lettura sincrono

    ${t_{RD}}_{\text{min}}=t_{A}+t_{SU}+t_{H}+2{t_{TX}}_{\text{max}}+2t_{TX}$
* la destinazione invia un segnale di richiesta alla sorgente;
* dopo un tempo di trasmissione, è necessario un tempo di accesso $t_{A}$ prima che l'informazione richiesta sia pronta (es. memorie);
* la sorgente invia l'informazione;
* intanto la destinazione, dopo un'attesa pari a due tempi di trasmissione massimi ${t_{TX}}_{\text{max}}$ più il tempo di accesso $t_{A}$, attende il tempo di setup $t_{SU}$ richiesto dal flip-flop;
* il flip-flop memorizza l'informazione al fronte di salita del clock;
* la destinazione attende il tempo di hold $t_{H}$ richiesto dal flip-flop;
* la destinazione rimuove il segnale di richiesta;
* dopo un tempo di trasmissione, la sorgente rimuove il segnale di informazione;
* dopo un tempo di trasmissione, la rimozione del segnale di informazione giunge alla destinazione.

### Ciclo di lettura asincrono

Nel ciclo di lettura asincrono si aggiunge un segnale di ACK che la destinazione deve inviare alla sorgente per comunicare che il segnale di informazione è pronto:
    ${t_{RD}}_{\text{min}}=t_{K}+t_{A}+t_{SU}+t_{H}+4t_{TX}$
* la destinazione invia un segnale di richiesta alla sorgente;
* dopo un tempo di trasmissione, è necessario un tempo di accesso $t_{A}$ prima che l'informazione richiesta sia pronta (es. memorie);
* la sorgente invia l'informazione;
* dopo un tempo pari allo skew, la sorgente invia il segnale di ACK alla destinazione;
* dopo un tempo di trasmissione, il flip-flop memorizza l'informazione al fronte di salita del segnale di ACK;
* dopo un tempo pari ai tempi di setup e di hold richiesti dal flip-flop, la destinazione rimuove il segnale di richiesta;
* dopo un tempo di trasmissione, la sorgente rimuove i segnali di informazione e di ACK;
* dopo un tempo di trasmissione, la rimozione dei segnali di informazione e di ACK giunge alla destinazione.

## Note

* ↑ La trattazione che segue prenderà in esame esclusivamente la macchina a stati asincrona.
* 1 2 3 4 5 6 7 8 9 10 11 Siccome l'operazione è asincrona, non è detto che trascorra il tempo di trasmissione massimo.
* ↑ Siccome l'operazione è sincrona, il master ipotizza sempre tempi di trasmissione massimi, indipendentemente dai tempi di trasmissione che trascorrono effettivamente allo slave.
* ↑ Il ritardo dello skew serve a garantire che il segnale di ACK arrivi quando l'informazione è arrivata in modo stabile alla destinazione anche se il segnale di ACK impiega il tempo di trasmissione minimo e l'informazione impiega il tempo di trasmissione massimo.
* ↑ Si tralasciano i dettagli sulla logica di controllo al lato destinazione.