Un registro è una struttura costituita da più Flip Flop con il clock in comune che permettono di memorizzare una piccola quantità di bit e di compiere alcune operazioni di traslazione su di essi. Essi sono classificati in base a come vengono scritti o letti i bit da o verso il registro. Abbiamo infatti ingressi ed uscite:
Abbiamo cosi quattro tipologie base di registri:
Alcuni componenti permettono più di una di queste funzioni, fino ai registri universali che permettono in momenti diversi tutte le funzioni.
Analizzare il seguente registro SIPO:
Analizzare alla pagina https://www.digitalelectronicsdeeds.com/demos/demopage_seq.html i seguenti circuiti (scaricabili)
Analizzare i fogli tecnici dei seguenti componenti:
Spesso è necessario trasmettere più bit da un luogo ad un altro, posto ad una certa distanza; è evidentemente possibile usare un conduttore per ciascun bit (trasmissione parallela), ma spesso è conveniente usare un solo filo su cui i bit sono trasmessi uno di seguito all'altro (trasmissione seriale).
Di seguito un'implementazione minimale:
Generare sequenze di bit casuali è un aspetto essenziale di molti algoritmi. Un settore dove questo aspetto è critico è la crittografia.
Il seguente circuito fa uso di un registro a scorrimento e di una porta logica XNOR per generare una sequenza di bit pseudo-casuale (Pseudo Random Binary Sequence, PRBS), cioè che, pur apparendo casuale all'osservatore superficiale, si ripete regolarmente.
Le uscite del registro SIPO sono chiamate tap; la scelta dei quali taps utilizzare è importante e oggetto di approfondite teorie matematiche. Per saperne di più potrebbe essere utile la ricerca con parole chiave PRBS polinomio generatore.
Simulare con Deeds il sistema di trasmissione seriale ed il generatore di sequenze casuali descritti al paragrafo precedente
Arduino permette di trasmettere e ricevere sequenze di bit seriali. Analizzare e sperimentare quanto descritto alla pagina https://www.arduino.cc/reference/it/language/functions/advanced-io/shiftout
Innanzitutto scrivere ed eseguire il codice riportato nella pagina sopra citata. Senza collegare nulla ad Arduino, visualizzare i tre segnali digitali generati dal codice di esempio su un oscilloscopio, individuando come sono stati generati e cosa significano. In particolare analizzare la funzione ShiftOut(). Nella figura di apertura di questa pagina è riportato un esempio di cosa è possibile vedere.
Una volta compreso il funzionamento del codice ed imparato a leggere i dati in uscita, collegare un registro a scorrimento di tipo SIPO a otto bit, per esempio 74HC595 oppure CD4094. Alle uscite del registro è possibile, sebbene non necessario, collegare otto LED con relative resistenze. Quale potrebbe essere lo scopo di questo circuito?
[Approfondimento] Un'attività simile è possibile anche usando un registro a scorrimento hardware presente all'interno di Arduino e parte essenziale di un protocollo indicato con il termine SPI.
[Approfondimento] Utilizzando questo protocollo è possibile anche lo scambio di dati tra due Arduino
Data di creazione di questa pagina: aprile 2021
Ultima modifica: 8 aprile 2021
Appunti scolastici - Versione 0.1014 - gennaio 2023
Copyright 2012-2023, Vincenzo Villa (https://www.vincenzov.net)
Quest'opera stata rilasciata con licenza Creative Commons | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)