SISTEMI ELETTRONICI PER LA GENERAZIONE DI SEQUENZE NUMERICHE RANDOM

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SISTEMI ELETTRONICI PER LA GENERAZIONE DI SEQUENZE NUMERICHE RANDOM"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI GENOVA FACOLTÀ DI INGEGNERIA TESI DI LAUREA IN INGEGNERIA ELETTRONICA SISTEMI ELETTRONICI PER LA GENERAZIONE DI SEQUENZE NUMERICHE RANDOM Relatore: Chiar.mo Prof. Sandro Ridella Correlatore: Ing. Paolo Gastaldo Allievo: Raffaelli Simone 9 Giugno 2010 Anno accademico 2009/2010 1

2 Indice... 2 Abstract.4 Dichiarazione del relatore 5 Prefazione... 6 Capitolo 1 Sequenze di numeri casuali Cos è un numero casuale Quanto una sequenza numerica è casuale Scopi della generazione delle sequenze casuali.9 Capitolo 2 Tecniche per la generazione di numeri casuali Cenni storici Tecniche software L algoritmo Middle-Square Generatore lineare congruenziale (LCG) Generatore di Mersenne Twister Funzione random in C Registri a scorrimento con retroazione lineare (LFSR) LFSR di Galois Generatore di Cristoforo Colombo Tecniche Hardware Tipologie del rumore Generatore a laser caotici Decadimento radioattivo Chipset I Chipset C3 Nehemiah Differenze tra generatori Software e Hardware 30 Capitolo 3 Progetto Hardware del dispositivo Sorgente di rumore termico Filtri Blocco di retroazione Potenziometro digitale Architettura RDAC Interfaccia SPI Caratteristiche elettriche Potenziometro AD5293 e Buffer di tensione TL Comparatori Digital Signal Controller TMS320F Architettura del bus di memoria Memoria flash, memoria RAM e ROM Interrupts e timer. 44 Capitolo 4 Test

3 4.1 Frequency test Block frequency test Runs test..53 Capitolo 5 Sviluppo del firmware Ambiente di sviluppo C2000 CodeGeneration Tools Struttura del progetto Scelte progettuali Frequenza di campionamento Buffer Main Loop Caricamento dei buffer Interrupt: depolarizzazione Implementazione Frequency test Implementazione Block Frequency test Implementazione Runs test...71 Capitolo 6 Risultati dei test Test sulla lunghezza del buffer Test senza retroazione Frequency test senza retroazione a 1024 bit Block test senza retroazione a 1024 bit Runs test senza retroazione a 1024 bit Test con retroazione Frequency test con retroazione a 1024 bit Block test con retroazione a 1024 bit Runs test con retroazione a 1024 bit CPS Conclusioni. 108 Appendice 110 A.1 Terminal A.2 Programmazione TMS320F A.3 Codici sorgenti..112 A.3.1 HRBSG_Main.c..112 A.3.2 HRBSG_DefaultISR.c A.3.3 HRBSG_BufferOperations.c..121 A.3.4 HRBSG_Variables.h

4 Electronic devices for random number sequences generation Compared to software generators, hardware random number generators produce sequences of numbers that can be considered purely random. Their applications are numerous and all of great importance in the world of information. They are used to create keys for encryption, to testing electronic devices, to choice variables in computer algorithms, to market research. This hardware random number generator consist of an analog section dedicated to the use of thermal noise source and a digital section capable of processing and transmission of sequences. The battery of NIST, which consists of 15 tests is used to analyze and verify offline the randomness of the number sequence. The graphs and the reports generated from the suite of NIST indicate the degree of unpredictability of these sequences. 4

5 Alla Commissione di Laurea e di Diploma Alla Commissione Tirocini e Tesi Sottopongo la tesi redatta dallo studente Simone Raffaelli dal titolo Sistemi elettronici per la generazione di sequenze numeriche random Ho esaminato, nella forma e nel contenuto, la versione finale di questo elaborato scritto, e propongo che la tesi sia valutata positivamente assegnando i corrispondenti crediti formativi. Il Relatore Accademico Prof. Ridella Sandro 5

6 Prefazione La seguente tesi si basa sull analisi di un generatore hardware di sequenze di bit casuali, denominato HRBSG (Hardware Random Bit Sequence Generator) progettato da R. Tegas. Tale sistema è composto da una sezione analogica dedicata all utilizzo di una sorgente di rumore termico e da una sezione digitale atta all elaborazione e trasmissione delle sequenze. In particolare l obiettivo della tesi è quello di implementare sulla piattaforma DSP che gestisce il generatore, alcuni test di randomicità in grado di testare le sequenze di bit pseudo-random. Sono stati implementati i primi tre test della Nist Statistical Test Suite: il Frequency test, Block test e il Runs Test. Per avere ulteriori informazioni circa qualità del HRBSG, sono state effettuate prove variando alcuni parametri dei tre test e del sistema quali la lunghezza del buffer per l acquisizione di bit, il range di 1 della sequanza, l utilizzo della retrazione. Le sequenze generate vengono successivamente analizzate offline dall intera batteria di test fornita dal NIST (National Institute of Standards and Technology) in grado di verificare la loro reale randomicità attraverso grafici e reports. Ogni fase del progetto è stata analizzata, discussa ed approvata dal Prof. Sandro Ridella e dall Ing. Paolo Gastaldo. 6

7 CAPITOLO 1 7

8 Sequenze di numeri casuali 1.1 Cos è un numero casuale La casualità di un numero è associata al modo in cui esso viene generato. Se tutti i numeri che vengono generati da un processo sono equamente probabili in ogni istante, allora questi numeri sono casuali. In particolar modo questo significa che la conoscenza dei numeri che sono stati generati, non mi da informazioni sui numeri che potranno essere generati in futuro. Questa affermazione equivale a dire che i risultati di un qualsiasi esperimento non possono essere predetti con certezza a priori, cioè l esperimento non è deterministico. Un semplice esempio di evento casuale è il lancio di un dado a 6 facce non truccato. Questo può essere matematicamente modellato come una variabile casuale che assume sei possibili valori 1,2,3,4,5,6. L imprevedibilità del numero ottenuto dopo il lancio conferisce allo stesso una forma di casualità. 1.2 Quanto una sequenza numerica è casuale Una sequenza di numeri casuali è una serie numerica in cui ogni elemento non è assolutamente correlato con gli altri elementi che costituiscono tale sequenza. In altre parole conoscendo un elemento non si può in alcun modo prevedere quelli successivi e tanto meno quelli precedenti. Nella realtà tuttavia non esistono sequenze numeriche veramente random, bensì pseudorandom, vale a dire sequenze le cui caratteristiche si avvicinano a quelle random senza mai raggiungerle. Per questo motivo sono stati creati dei test atti a verificare che tali sequenze pseudo-random abbiano un buon grado di imprevedibilità. Una sequenza è considerata casuale se: Non si riesce a riconoscere in essa alcun modello rappresentato, per esempio, da gruppi di bit che si ripetono in un dato ordine. Non si può fare alcuna previsione su di essa. Non si può dare alcuna descrizione su di essa. 8

9 1.3 Scopi della generazione delle sequenze casuali I numeri casuali vengono utilizzati in molteplici applicazioni, di cui le principali sono [1]: 1. simulazione: i numeri casuali possono essere utili per simulare al computer fenomeni naturali; con questo scopo vengono utilizzati in molti campi, dalla fisica nucleare all ingegneria; 2. campionatura: le sequenze casuali vengono utilizzate spesso per selezionare da un insieme di dati alcuni elementi quando l analisi completa è impossibile o troppo complessa; 3. analisi numerica: sono stati inventati diversi metodi per risolvere problemi molto complessi di analisi numerica tramite l utilizzo di numeri casuali (per esempio, l integrazione di Montecarlo); 4. programmazione al computer: sequenze di numeri casuali vengono spesso utilizzate come dati d ingresso per valutare la complessità e la correttezza di algoritmi; 5. problemi di "decision making": quando per risolvere un certo problema dobbiamo prendere una decisione imparziale, i numeri casuali ci possono aiutare: con questo significato vengono anche utilizzati all interno di algoritmi (ad esempio per la scelta del pivot nel Quicksort, nel metodo di Rabin-Karp per la ricerca di un pattern o nella teoria dei giochi); 6. crittografia: per codificare un messaggio spesso viene utilizzata una sequenza di numeri casuali, in modo che sia possibile decodificare il messaggio soltanto a chi è in possesso della chiave casuale originale. L idea di utilizzare simulazioni probabilistiche per la risoluzione di problemi fisici complessi va attribuita al matematico Stanislaw Marcin Ulam, uno degli scienziati impegnati durante la seconda guerra mondiale nella costruzione della bomba atomica. Ulam fu il primo a proporre l utilizzo di simulazioni casuali per affrontare l enorme 9

10 quantità di problemi complessi che gli scienziati riuniti a Los Alamos dovettero risolvere, ed ebbe questa intuizione mentre giocava a carte. Questo fatto rende evidente come il gioco d azzardo e le simulazioni probabilistiche siano strettamente legate. Le simulazioni di tipo probabilistico prendono il nome di metodo Montecarlo, proprio dal nome del famoso casinò che si trova in questa città. Questo metodo è basato su un algoritmo che genera numeri pseudo casuali, che hanno la stessa distribuzione di probabilità nel fenomeno che si vuole studiare. La simulazione calcola un insieme di possibili realizzazioni del fenomeno studiato, ed una volta ottenuto un insieme rappresentativo, effettua delle misure della grandezza a cui siamo interessati su tale campione [2]. Questo metodo può essere anche utilizzato per il calcolo di integrali estremamente complessi. L efficienza aumenta all aumentare della complessità del problema in esame. In campo fisico un altro fenomeno legato ai numeri casuali è il moto browniano. Quando un fluido si trova all equilibrio termodinamico, le molecole che lo compongono, non sono ferme ma si muovono seguendo un percorso che risulta essere casuale. In informatica i numeri casuali trovano applicazione ad esempio quando si ha la necessità di prendere una decisione imparziale, pensiamo alla scelta del pivot nell algoritmo Quicksort o alla verifica della complessità e dell efficienza di un algoritmo. Possiamo infatti fornire come ingressi dell algoritmo dei dati casuali e osservarne il comportamento. In elettronica i generatori di numeri casuali possono essere utilizzati per testare i dispositivi in un ampio range di frequenza, infatti un tale generatore non è altro che una fonte di rumore bianco con spettro uniforme su un ampia banda di frequenza. Applicando in ingresso ad un dispositivo un tale segnale e misurando l uscita alle varie frequenze si può dedurre la funzione di trasferimento del dispositivo stesso. Ultimo e forse più importante campo di applicazione dei numeri casuali è la crittografia, cioè la disciplina che si occupa di cifrare un informazione in modo che essa sia conosciuta solo da persone autorizzate. Fin dall antichità si sono adottati diversi metodi per cifrare le informazioni. Un esempio è costituito dalla scitala lacedomica (400 a.c.), un bastone su 10

11 cui era avvolta ad elica una striscia di cuoio. Su di essa era inciso il messaggio segreto per colonne parallele all asse del bastone, in modo tale che una volta tolto il nastro dal bastone stesso il testo risultasse incomprensibile, se non si possedeva un bastone di uguale diametro al primo (Fig. 1.1). Fig. 1.1 Scitala lacedomica Altri metodi di cifratura sono i cifrari a sostituzione, in cui le lettere del testo originale vengono sostituite con altre seguendo regole più o meno complesse. Esistono poi numerosi esempi di macchine cifranti, sia manuali nell antichità, che elettromeccaniche in tempi più recenti [3]. Un esempio di interesse di macchina cifrante è costituito dal cilindro di Jefferson,, costituito appunto da un cilindro sul cui asse sono imperniati 36 dischi di ugual diametro liberi di ruotare. Ogni disco riporta le lettere dell alfabeto in ordine diverso incise sul bordo. La cifratura avviene nel seguente modo: il messaggio viene prima di tutto diviso in blocchi di 36 caratteri. Per ogni blocco, i dischi della macchina vengono ruotati in modo tale da far comparire allineati su una riga i caratteri del blocco. Una volta effettuata tale operazione, si sceglie a caso un'altra riga, e si considera la corrispondente sequenza di 36 lettere come il messaggio cifrato. Il ricevente, che possiede un cilindro identico a quello del trasmittente, non deve far altro che ruotare i dischi in modo tale da far comparire il cifrato allineato su una riga. Compiuta questa operazione, deve analizzare le restanti righe. Una sola di queste è una frase di senso compiuto rappresentante il messaggio in chiaro. Fig. 1.2 Macchina ENIGMA Una macchina simile a questa è la famosa Macchina Enigma (Fig. 1.2), impiegata dai Tedeschi durante la Seconda Guerra Mondiale. Attualmente i metodi di cifratura sono per la maggior parte costituiti da algoritmi basati sulla difficoltà della fattorizzazione di numeri sempre più grandi. Nessuno dei metodi che sono stati 11

12 citati fino ad ora viene considerato sicuro, attualmente la tecnica che si ritiene più affidabile è appunto quella che adotta l utilizzo dei numeri casuali. Questa è una tecnica denominata one-time pad, ideata nel 1917 da Gilbert Vernam, che consiste nell effettuare uno XOR fra il messaggio che si vuole cifrare ed una stringa casuale di numeri (chiave), il risultato è un messaggio incomprensibile per chi non è in possesso della stringa casuale con cui si è effettuato lo XOR [4]. Fig. 1.3 Crittografia simmetrica : operazione XOR K : chiave casuale M : messaggio non casuale C : messaggio criptato : M K Questa tecnica ha delle particolari caratteristiche : la chiave di cifratura (la stringa casuale) viene usata una sola volta (da qui il nome one time-pad). deve avere lunghezza pari al messaggio da cifrare. i bit che compongono la chiave non devono essere legati in qualche modo fra loro. la generazione delle chiave deve avvenire in maniera casuale. Da questo si può capire quale sia l importanza di avere a disposizione molti bit casuali in tempi brevi, quando si rende necessaria la protezione di informazioni come dati bancari, dati personali e codici di accesso. 12

13 Bibliografia del capitolo 1 [1] G. Noti, Sistemi elettronici per la generazione di sequenze binarie pseudo-casuali, Ott 2007 [2] W.W.Tsang Random number generation and testing, [3] Crittografia e criptoanalisi, [4] R. Zunino, Introduzione alla crittologia: algoritmi crittografici, Università degli studi di Genova,

14 CAPITOLO 2 14

15 Tecniche per la generazione di numeri casuali 2.1 Cenni storici In origine coloro che avevano bisogno di numeri casuali (per lavori scientifici o per altri motivi) se li procuravano ricorrendo a metodi empirici lenti come il lancio dei dadi o l'estrazione di palline numerate da un'urna. Nel 1927 fu costruita la prima tabella, contenente cifre tratte a caso da un rapporto su un censimento. In seguito furono prese in considerazione anche l'espansione decimale di e e quella di π ma l'idea fu subito accantonata perché, a parte la difficoltà di generare tali cifre, uno studio più approfondito rivelò che la loro casualità era soltanto apparente. In seguito, intorno agli anni '40, furono costruite delle macchine, tra le quali la famosa Ernie (Electronic Random Number Indicator Equipment) del British Post Office, impiegata per la scelta dei numeri della Premium Saving Bonds lottery. Con questo sistema Kendall e Babington-Smith riuscirono a produrre una tavola di oltre cifre aprendo la strada a nuove idee e nuovi studi come la formulazione dei test di frequenza e di oscillazione per controllare la sufficiente casualità di una successione di numeri [5]. Tra le molte tabelle pubblicate una delle più vaste è quella dal titolo "A million random digits with normal deviates" della RAND Corporation, risalente al 1947, creata collegando ad un calcolatore una semplice roulette da gioco. I risultati numerici furono poi accuratamente filtrati e testati prima dell inserimento nella tabella (Fig. 2.1). Fig. 2.1 Tabella della RAND Corporation 15

16 2.2 Tecniche software La crescente diffusione dei computer che si ebbe a partire dai primi anni del '40, fece nascere il desiderio di poter eseguire efficientemente e in tempi rapidi la generazione di numeri impiegando appunto i nuovi calcolatori. Si giunse cosi all'idea della formulazione di un algoritmo o di una serie di operazioni aritmetiche inserite in un processo iterativo che portasse alla generazione di numeri pseudo casuali. Bisognava risolvere un problema di fondamentale importanza: nessun algoritmo deterministico di lunghezza finita è in grado di generare numeri puramente casuali. Una sequenza numerica basata su un algoritmo può essere infatti ricreata fornendo al medesimo algoritmo lo stesso valore iniziale detto seme (primo elemento). Utilizzando opportuni accorgimenti però, è possibile utilizzare operazioni deterministiche per ottenere numeri quasi-casuali generati da algoritmi in grado di superare una serie di test statistici che conferiscono a tali numeri un'apparente casualità. Questi algoritmi implementati in calcolatori vengono chiamati generatori software pseudorandom L algoritmo Middle-Square Nei primi anni dell era dei computer (1946) John von Neumann suggerì il famoso metodo middle-square per generare numeri pseudo casuali distribuiti in modo uniforme [6]. In tale distribuzione uniforme ogni possibile numero in un determinato intervallo è ugualmente probabile. Supponiamo di volere generare un numero casuale di 4 cifre, ossia un numero tra 0000 e Il metodo middle-square richiede come tutti i generatori di numeri casuali un valore iniziale, detto seme dal quale vengono generati i valori successivi. Ad esempio a partire da 1234, elevando tale numero al quadrato abbiamo le otto cifre delle quali teniamo solamente le quattro cifre di mezzo Da queste ripetendo il procedimento otteniamo e quindi 3215 e cosi via. 16

17 Fig. 2.2 Esempi di sequenze deboli Si noti che ogni nuovo numero nella successione è determinato univocamente dal suo predecessore. La successione generata avrà quindi il carattere di apparente casualità, ma ogni successione di numeri generati da questo algoritmo inizierà a ripetersi quando si riavrà il seme (Fig. 2.2). Il totale di numeri della sequenza prima che intervenga una ripetizione è detto periodo della sequenza. La lunghezza di tale periodo può essere considerata una misura della bontà del generatore di numeri pseudocasuali. Sfortunatamente il metodo può degenerare in sequenze con periodi molto brevi, ad esempio a partire dal valore 0 la sequenza ha sempre periodo 1, oppure partendo con 43 con numeri a 2 cifre otteniamo la sequenza 43, 84, 05, 02, 00, 00,... Oggi il metodo middle-square ha un importanza solamente storica, ma nella sua semplicità evidenzia un aspetto importante per la generazione di sequenze utilizzando un calcolatore: la necessità di avere a disposizione molti numeri pseudocasuali in modo rapido. 17

18 2.2.2 Generatore lineare congruenziale (LCG) Nel 1948 venne proposto un generatore di numeri casuali distribuiti uniformemente detto generatore lineare congruenziale o più brevemente LCG che tutt oggi è ancora utilizzato. Anche questo algoritmo ha bisogno di un seme per inizializzare la sequenza di numeri secondo la seguente regola: x n 1 = ( ax n + c ) mod m + (2.1) x n è un valore della successione dei numeri pseudocasuali. m, 0 < m : modulo a, 0 < a < m : moltiplicatore c, 0 < c < m : Incremento (nel caso in cui c=0, si parla di generatore moltiplicativo) x 0, 0 < x 0 < m : seme o valore iniziale Quindi con la notazione mod, x n+1 assume valori interi tra 0, 1, 2,...,m 1. Per esempio le scelte a = 13, c = 0 (ossia generatore puramente moltiplicativo) e m = 31 partendo dal valore iniziale x 0 = 1 otteniamo per n = 30: Tale successione ha periodo 30 (ossia m 1). Tutti i numeri da 1 a 30 compaiono per poi ripetersi. Questo non dipende dalla scelta del seme iniziale se non è nullo. I pregi di questo algoritmo risiedono nell estrema semplicità e velocità di esecuzione una volta implementati al calcolatore. Problemi possono sorgere nei confronti della lunghezza del periodo e della scelta dei parametri a,c e del seme. A tal proposito si considera un esempio in cui viene fatta una scelta errata dei parametri: a = 3, c =6, m =5, x 0 =1, periodo = 4 (m-1); 18

19 Utilizzando la precedente formula: x 0 = 1 ; x 1 = ( )mod5 = 4; x 2 = ( )mod5 = 3; x 3 = ( )mod5 = 0; x 4 = ( )mod5 = 1; x 5 = ( )mod5 = 4; Fig. 2.3 Andamento numerico Al passo x 4 si ottiene il valore 1, ossia il seme. Questo determina il periodo del generatore e di conseguenza l intera sequenza numerica come dimostra la Fig Una delle scelte più popolari è m = , a = 75, c = 0 che garantisce un periodo molto ampio di = Il fatto che m = sia un numero primo è fondamentale al fine di ottenere il massimo periodo, inoltre si riesce a rappresentare senza problemi su un comune computer con registri a 32 bit Generatore di Mersenne Twister Uno dei generatori migliori e più veloci, adatto per l'uso scientifico è il Mersenne Twister (sviluppato nel 1997 da Makoto Matsumoto e Takuji Nishimura) [7]. È stato progettato specificatamente per correggere molti dei difetti riscontrati negli algoritmi più vecchi, ha passato con successo molti test di random ed è in grado di generare numeri pseudo-casuali in qualità molto elevata. Questo generatore deve il nome ad una classe speciale di rari numeri primi denominati, appunto Primi di Mersenne (dal nome del monaco che per primo li studiò nel XVII secolo) e costituita da numeri primi aventi forma 2 n -1. Al momento sono noti solo 42 elementi, di cui il più grande è

20 L algoritmo è una versione più complessa del LCG, non esegue nessuna operazione di modulo, garantisce l equidistribuzione dei numeri generati in 623 dimensioni e soprattutto ha un ampio periodo di Fig. 2.4 Scelta ottimale dei parametri Fig. 2.5 Con m=31, a=13 e c=0 si ottiene una sequenza che difficilmente può essere considerata casuale Funzione random in C Lo standard del linguaggio C (ISO C89) prevede due funzioni dedicate alla generazione di numeri pseudo-casuali: void srand(unsigned seed); int rand(void); La prima funzione inizializza il seme della sequenza, la seconda estrae un numero intero equidistribuito tra 0 e RAND_MAX. Il valore di RAND_MAX dipende dall'implementazione; solitamente è (2 15 1) oppure (2 31 1). I prototipi di queste funzioni sono nell'header stdlib.h. Lo standard non prescrive l'uso di un particolare algoritmo: generalmente viene usato il metodo lineare congruenziale. 20

21 2.2.5 Registri a scorrimento con retroazione lineare (LFSR) Una delle tecniche più semplici, ma al tempo stesso più efficienti ed utilizzate per generare numeri pseudo-casuali fa uso dei registri a scorrimento con retroazione lineare (LFSR, Linear Feedback Shift Registers) [8]. Si tratta in pratica di normali registri a scorrimento, in cui lo stato futuro è dato da una combinazione lineare dei bit dello stato presente. La combinazione lineare è ottenuta con l operatore XOR o XNOR. Fig. 2.6 LFSR a 8 bit La Fig. 2.6 mostra la struttura di un LFSR a 8 bit realizzata con XOR: lo scorrimento avviene verso destra e ad ogni aggiornamento il bit più significativo riceve la combinazione lineare dei bit presenti in alcune posizioni. Queste posizioni particolari si chiamano tap, e devono essere scelte con cura (posizioni di colore verde). Il funzionamento del circuito è il seguente: si imposta un valore iniziale (diverso da 0), che costituisce il seme e si aggiorna il registro facendo scorrere i bit di una posizione ogni volta che si vuole ottenere un nuovo numero casuale. Il circuito funziona praticamente come un contatore, fornendo sempre la stessa sequenza di valori pseudo-casuali, che inizia dal valore dato come seme. Dopo un certo numero di iterazioni, la sequenza ricomincia daccapo: la massima lunghezza della sequenza per un LFSR di lunghezza n bit è 2 n -1, ma questo solo se i tap sono stati scelti opportunamente, altrimenti si ottengono delle sequenze più corte. I numeri ottenuti in questo modo sono apparentemente casuali, ed hanno una buona distribuzione uniforme Le posizioni dei tap da utilizzare per ottenere la sequenza di lunghezza massima si possono ricavare da apposite tabelle, in cui sono riportati i valori da utilizzare per ogni data lunghezza dell LFSR (determinare questi valori analiticamente è piuttosto laborioso). 21

22 Tab. 2.1 Posizione dei tap LFSR di Galois Una variante dello schema classico dell LFSR è quello riportato in Figura 3, in cui è mostrata la struttura di un LFSR di Galois [8]. La differenza sostanziale è che gli XOR sono inseriti nel registro, tra un tap e la posizione successiva, e non nel percorso di feedback. La posizione dei tap è comunque la stessa di prima. Il vantaggio di questa seconda configurazione è che risulta più facile da implementare via software, perché richiede mediamente meno istruzioni, ed è più veloce via hardware, in quanto i ritardi di propagazione degli XOR non si sommano. Fig. 2.7 LFSR di Galois a 8 bit 22

23 Fig. 2.8 Implementazione di LFSR di Galois a 8 bit L implementazione di un LFSR nella versione di Galois risulta alquanto semplice nella versione software in C (Fig. 2.9). Bisogna inizializzare il registro con il valore del seme, e poi richiamare la funzione di aggiornamento ogni volta che occorre un nuovo numero casuale. Questa funzione può restituire il valore della variabile e può scalare i bit inserendo un nuovo numero Generatore di Cristoforo Colombo I generatori di numeri casuali più recenti, come quello incluso nella versione MATLAB successive alla 4, non sono basati sul metodo LCG, ma su una combinazione di operazioni di spostamento di registri e manipolazione sui bit (LFSR). Questo nuovo approccio risulta estremamente veloce ed inoltre garantisce periodi incredibilmente lunghi. Nelle ultime versioni MATLAB il periodo è Data la coincidenza dell esponente con la data della scoperta delle Americhe, questo generatore viene comunemente chiamato il generatore di Cristoforo Colombo. 23

24 2.3 Tecniche Hardware Un generatore hardware di numeri casuali è un apparato che produce numeri casuali da un processo fisico. Ciò significa essenzialmente che, a differenza dei generatori software pseudo-random già analizzati, un HRNG (generatori hardware di sequenze casuali) non ha bisogno di uno stato iniziale dal quale partire per generare gli output, rendendo il risultato predicibile. Si può quindi definire i generatori hardware come generatori di numeri casuali non deterministici. Tali dispositivi sono basati tipicamente su fenomeni microscopici, come il decadimento di materiale radioattivo, l effetto fotoelettrico, il rumore termico o altri fenomeni quantistici. Questi processi sono, perlomeno in teoria, completamente imprevedibili, e quest affermazione è suffragata da test sperimentali Tipologie del rumore Il rumore nel campo dell elettronica, è un segnale che generalmente ha un andamento nel tempo non descrivibile in maniera analitica, è quindi possibile studiarlo solo in termini statistici [9]. La generazione del rumore avviene generalmente a causa del movimento irregolare dei portatori di carica che determinano la formazione di una tensione o di una corrente di rumore che è misurabile ai capi del dispositivo. In base all origine e alle caratteristiche il rumore elettronico è suddivisibile in tre grandi categorie: rumore shot, rumore 1\f α e rumore termico. Il rumore shot è un segnale generato da un processo poissoniano dovuto alla granulosità dei portatori di carica che si muovono senza seguire il flusso medio delle altre cariche, dando così origine ad un impulso di corrente associato ad ogni singola carica. Questo tipo di rumore è presente nel dispositivo anche quando ad esso non è applicata nessuna tensione e non è presente un flusso medio di corrente. Il rumore bianco è un particolare tipo di rumore che ha la caratteristica di avere uno spettro di ampiezza costante per tutte le frequenze. Un tale segnale ovviamente è disponibile solo nella teoria, in quanto non esistono dispositivi in grado di generare uno spettro di ampiezza costante per tutte le frequenze tra zero e infinito. Esistono tuttavia sistemi in grado di fornire uno spettro simile al rumore bianco, dove l ampiezza è funzione della particolare 24

25 frequenza e tende a zero con l aumentare di essa, ma è possibile avere un intervallo in cui questa ampiezza è pressoché costante (rumore bianco a tale range). I rumori 1\f α sono generati da una grande varietà di fenomeni reali e al variare di α sono raggruppati in sottocategorie identificate con nomi di colori: rosa (α = 1), rosso (α =2), nero (α > 2), viola (α = -2), grigio (utilizzato in acustica ha andamento in frequenza inversamente proporzionale alle curve psico-acustiche dell orecchio umano medio) e blu (α = -1). Un rumore che ha particolare importanza, perché è intrinseco ad ogni elemento e non è eliminabile, in quanto è presente ad ogni temperatura diversa dallo zero assoluto, è il rumore termico. Questo tipo di rumore, utilizzato anche nella seguente tesi, è la conseguenza dell agitazione termica dei portatori in grado di muoversi liberamente. Il movimento di questi portatori crea ai capi del dispositivo una differenza di tensione che ha valore medio, calcolato su un periodo sufficientemente lungo, pari a 0 Volt ma che istantaneamente è altamente variabile ed è descrivibile, come tutti i rumori, solo in termini statistici. La grandezza che viene utilizzata per descrivere tale rumore è il valore quadratico medio della tensione, pari al valore efficace elevato al quadrato : V n 4 KTBR = (2.2) Dove K è la costante di Boltzmann, T è la temperatura assoluta all equilibrio termico, B è la banda in cui vengono effettuate le misure e R è la resistenza equivalente del dispositivo nell opporsi alla corrente elettrica. L ampiezza dello spettro di un rumore termico è costante per ogni frequenza, perciò un rumore termico è equivalente ad un rumore bianco. La seguente tesi tratta la bontà dei numeri casuali acquisiti attraverso un generatore hardware basato sul rumore termico. 25

26 2.3.2 Generatore a laser caotici Questo generatore è formato da due laser che costituiscono la fonte entropica sfruttata per la generazione delle sequenze [10]. Fig. 2.9 Struttura del generatore a laser caotici In Fig. 2.9, i laser (SL) sono in grado di emettere un singolo fotone per volta che va ad incidere su uno specchio semiriflettente (VR) in grado di lasciarlo passarlo o di rifletterlo con una probabilità esattamente del 50%. Sono necessari 2 fotorivelatori (PD) estremamente sensibili che attivandosi sono in grado di dire se il fotone è stato riflesso o no e in caso affermativo, convertono il segnale luminoso in segnale elettrico. I due laser sono collegati tramite fibre ottiche (F) al circuito elettronico composto da due convertitori analogico-digitale (ADC), uno per ciascun laser, le cui uscite sono poste in ingresso ad una porta XOR che fornisce in uscita i bit generati. Con questi generatori si riesce ad ottenere la randomicità delle sequenze generate, ma il valore 26

27 commerciale del laser e dei fotorilevatori è estremamente elevato e il dispositivo ha dimensioni ragguardevoli Decadimento radioattivo I dispositivi basati sulla radioattività sono formati da un tubo Geiger-Mueller e un microcontrollore che rileva gli eventi generati dal decadimento di un isotopo radioattivo in un certo intervallo temporale e genera in uscita un flusso di bit che è funzione degli eventi (Fig. 2.10). Naturalmente bisogna trattare tutte queste sostanze con le dovute precauzioni in quanto le particelle emesse possono avere energie elevate ed essere molto ionizzanti, inoltre bisogna prevedere anche che il tasso di generazione dei numeri diminuisce esponenzialmente col passare del tempo a causa del tempo di dimezzamento della sorgente radioattiva. Fig Generatore basato sul decadimento radioattivo Chipset I810 Il generatore random di Intel è integrato in un Chipset chiamato i810 che utilizza uno schema convenzionale a due oscillatori [11]. 27

28 Fig Struttura I810 L oscillatore ad alta frequenza genera un segnale base, che sostanzialmente è una sequenza di stati logici alternati ( ). L altro oscillatore (VCO: Voltage Controlled Oscillator) è un dispositivo che lavora normalmente a una frequenza minore rispetto a quello ad alta velocità, ma la cui frequenza reale è modulata da un resistore che serve da fonte principale di entropia. Alcune caratteristiche misurabili di un resistore cambiano infatti per effetto del rumore termico e di altri fenomeni casuali del materiale L oscillatore a bassa frequenza viene utilizzato per guidare il campionamento del segnale alternato su frequenze casuali. Questa operazione viene effettuata dal blocco Super Latch. I bit così generati vengono elaborati dal blocco Digital Corrector ottenendo così una sequenza random. Il blocco Digital Corrector esegue un operazione definita come depolarizzazione di Von Neumann: essa consiste nel considerare coppie di bit e di generare un bit per ogni coppia in base alla figura sottostante. Tab. 2.2 Depolarizzazione 28

29 Nel caso di coppia di bit uguali, non si ottiene nessun bit in uscita. Tale procedura semplice e facilmente implementabile ha il vantaggio di fornire in uscita dei dati statisticamente bilanciati e aumenta la scorrelazione che potrebbe esistere fra bit adiacenti. Nonostante questo miglioramento, l unico svantaggio di tale operazione è la non costanza del data rate con cui le sequenze sono generate. Un analisi dettagliata della progettazione del dispositivo ha dimostrato che la bontà dell output si mantiene costantemente elevata e che il generatore fornisce bit di entropia per ogni bit di output. Inoltre l utilizzo di rumore termico come sorgente casuale invece dei laser caotic, ha il vantaggio di poter utilizzare componenti diffusi ed a basso costo quali diodi o resistenze Chipset C3 Nehemiah Il RNG C3 di VIA, Nehemiah, si basa su uno schema leggermente diverso, che utilizza ancora un set di oscillatori, ma non una fonte distinta di rumore come quella del resistore speciale. Esso invece fa affidamento all agitazione interna degli oscillatori, un effetto che può essere attribuito a numerosi fattori interni (Fig. 2.12) ed esterni e controllato anche da un impostazione configurabile. In questo caso, un analisi distinta condotta dal Cryptography Research trovò che il generatore fornisce entropia di qualità più bassa della sua controparte, compresa tra e 0.95 bit per ogni bit di output. Si tratta di un risultato che pone alcuni rischi, nel caso in cui l output di questo RNG venga utilizzato come completamente casuale (1:1). Fig Elementi di un oscillatore 29

30 2.4 Differenze tra generatori Software e Hardware I generatori software, per quanto possano essere considerati ottimi, sono sempre dei generatori di numeri pseudocasuali. Ciò è dovuto al fatto che si basano su fenomeni deterministici e quindi la generazione dei numeri è caratterizzata da un certo periodo che può essere più o meno lungo a seconda della bontà di tali generatori. Il pregio di questi generatori sta nella symbol rate (o bit rate) ossia nel numero piuttosto elevato di simboli (o bit) per secondo generati. Per questo motivo sono spesso utilizzati nella realizzazione di videogiochi, programmi di simulazione, ecc. Una symbol rate relativamente bassa comporterebbe infatti un rallentamento dell applicazione. Tuttavia questo vantaggio lo pagano in termini di randomicità. I generatori hardware, dato che si basano su fenomeni fisici naturali, risultano essere veramente dei generatori di numeri random. Ciò è dovuto al fatto che tali fenomeni risultano non prevedibili e quindi il periodo di generazione dei numeri risulta essere praticamente infinito. Inoltre, a differenza dei generatori software, non vi è alcuna correlazione tra un numero e l altro. Il pregio di questi generatori è la sicurezza di ottenere sempre dei numeri casuali nonostante una minore symbol rate. Questi valori sono spesso utilizzati nella crittografia per sviluppare chiavi crittografiche o per proteggere dati di natura finanziaria, militare, privata, ecc e che quindi, per ovvie ragioni, non devono essere accessibili ad estranei. 30

31 Bibliografia del capitolo 2 [5] Autori vari, [6] S. Scognamiglio, Sviluppo di algoritmi di test di randomicità per la validazione di sequenze di bit pseudocasuali, Feb [7] M. Caprile, Sistema elettronico con retroazione per la generazione di sequenze binarie casuali, Feb [8] Tecniche di generazione di numeri casuali, [9] G. Brida, Appunti del corso: processi di rumore, [10] R. Tegas, Sistemi elettronici per la generazione di sequenze di bit, Dic 2009 [11] L. De Faveri, Sistema elettronico basato su microcontrollore per la generazione di sequenze di bit casuali, Dec

32 CAPITOLO 3 32

33 Progetto Hardware del dispositivo La seguente tesi si basa sull utilizzo di un generatore hardware di sequenze di bit casuali basato sul rumore termico [12] il cui schema a blocchi è rappresentato in Fig. 3.1 Fig. 3.1 Schema a blocchi HRSGN L elaborazione del segnale, trattando il rumore termico tra diodi come sorgente, estrae un segnale misurabile partendo appunto dalla tensione rumorosa che viene opportunamente amplificato e filtrato. Quindi entra nel blocco comparatore dove viene confrontato con una soglia di riferimento, proveniente dal blocco riferimento (potenziometro digitale AD5293), ed opportunamente elaborata all interno del blocco elaborazione di riferimento (variazione della soglia di tensione del potenziometro). Dal confronto tra i due segnali, il comparatore genera una sequenza di bit casuali che entra all interno del blocco analisi statistica (microcontrollore TMS320F2808), il quale ha il compito di analizzare attraverso alcuni test, la bontà dei numeri casuali acquisiti. Se la sequenza risulta valida (risultato), viene mandata in uscita dal sistema e quindi memorizzata nel PC tramite il software Real Term (trattato nell Appendice), altrimenti, in caso contrario, tale sequenza viene scartata e si passa al blocco retroazione che ha il compito di migliorarne le statistiche andando ad agire sul segnale di riferimento (variazione della soglia). 33

34 L efficacia, la semplicità, l ottimizzazione del progetto e la predisposizione a future espansioni (hardware e software) sono i maggiori pregi di questo circuito. Lo schema circuitale del HRSGN è riportato in Fig. 3.2 Fig. 3.2 Circuito HRSGN 34

35 3.1 Sorgente di rumore termico Fig. 3.3 Diodi zener in parallelo e amplificatore Come sorgente di rumore termico si utilizza una coppia di diodi zener polarizzati inversamente. Il catodo di ciascun diodo è posto in ingresso ad un amplificatore che ha il compito di portare il segnale in entrata (la differenza fra tensioni) dall ordine di qualche microvolt a valori che siano di più facile misurazione. Il segnale in uscita dall amplificatore deve ricalcare il più fedelmente possibile quello in ingresso, in modo da non perdere le caratteristiche di casualità. [13]. L amplificatore operazionale in questione è un INA121PA, un amplificatore per strumentazione, di cui è visibile lo schema circuitale nella Fig

36 Fig. 3.4 Struttura dell amplificatore strumentale La resistenza di guadagno R44 è impostata ad 1 kω che sostituita nella formula di riferimento di calcolo del guadagno porta a: G 50 k Ω 50 k Ω = 1 + = 1 + = R 1 k Ω G 51 (3.1) I condensatori di bypass (C37, C41) vengono utilizzati per eliminare eventuali interferenze col segnale di alimentazione; vengono cosi posti in prossimità di esso. 3.2 Filtri Fig. 3.5 Sezione di adattamento del segnale 36

37 Questa parte del circuito si occupa del filtraggio e dell adattamento del segnale attraverso l amplificatore TL082 che dispone di una banda pari a 3 MHz. Il circuito realizzato (Fig. 3.5) a livello teorico è un filtro passa alto la cui funzione di trasferimento complessiva è: V 1 + = sc 1 + ( R sc + R R ) sc R 1 + sc R O V i (3.2) da cui, sostituendo i valori numerici, si determina la frequenza di taglio inferiore (a -3 db) poco inferiore a 19 khz. In realtà, quello in figura si rivela essere un filtro passa banda la cui funzione di taglio inferiore è esattamente quella appena calcolata mentre quella superiore è data dalla frequenza di taglio dell operazionale. Sono inoltre presenti condensatori di filtro sulle alimentazioni degli amplificatori. 3.3 Blocco di retroazione Il blocco di retroazione costituito dal potenziometro digitale seguito da un buffer è rappresentato in (Fig. 3.6). Fig. 3.6 Blocco di retroazione 37

38 3.3.1 Potenziometro digitale Un potenziometro è un dispositivo elettronico equivalente ad un partitore di tensione resistivo variabile [14]. Un potenziometro digitale viene progettato per essere utilizzato esattamente come uno tradizionale da cui differisce solo per la comodità di poter essere impostato a livello digitale grazie ad un bus di comunicazione seriale (SPI). Viene utilizzato il circuito integrato AD5293 della Analog Devices di tolleranza dichiarata pari al 1%. Questo componente è appunto interfacciato al microcontrollore per mezzo di una Serial Port Interface (SPI) che consente velocità di comunicazione molto più elevate rispetto ad altri comuni bus seriali, tipicamente nell ordine dei Mbit/s. La sua struttura è riportata nella Fig Fig. 3.7 Struttura potenziometro digitale Architettura RDAC Lo stadio di uscita del potenziometro digitale, riportato in Fig. 3.8, è realizzato con tre livelli di partizionamento delle tensioni tra i morsetti A e B (gli estremi del potenziometro) la cui uscita coincide con l uscita W (wiper). Il partizionamento delle resistenze interne avviene grazie a switch analogici realizzati in tecnologia CMOS. 38

39 Fig. 3.8 Stadio di uscita del potenziometro digitale Gli switch analogici vengono chiusi o aperti grazie ad un decoder a 10 bit che permette di ottenere una risoluzione di 1024 step di partizione sul range di tensione fra i terminali A e B. Inoltre la massima tensione duale applicabile a questi è pari a ±15 V. Il potenziometro è gestito e controllato direttamente da un registro non volatile denominato RDAC (da cui prende il nome anche l architettura). Per esempio quando il registro RDAC ha tutti i bit a 0, la tensione in uscita corrisponde alla tensione presente al terminale B. Le applicazioni di questo componente sono diverse, fra cui riportiamo quelle elencate nel datasheet: potenziometro (reostato). resistenza variabile (utilizzando solo due dei tre terminali). convertitore digitale-analogico di precisione. utilizzato per impostare un guadagno variabile negli amplificatori strumentali. controllo del volume in sistemi audio Interfaccia SPI L interfacciamento tra microcontrollore e potenziometro avviene per mezzo del bus di comunicazione seriale SPI. Questo è un sistema di trasferimento dati sincrono (è presente una linea di clock), operante in modalità master/slave. In presenza di più slave, questi 39

40 possono essere abilitati mediante un apposito segnale denominato SS (slave select, chiamato SYNC nella documentazione del AD5293), attivo basso. Oltre a questo gli altri segnali sono: SCLK (serial clock, generato dal master), MOSI (master output slave input con ovvio significato dei termini, chiamato anche DIN sul potenziometro scelto) e MISO (master input slave output, chiamato SDO sul datasheet del componente utilizzato). I dati trasmessi e letti dal microcontrollore al potenziometro possono essere ad 8 o 16 bit. Nel caso del potenziometro digitale utilizzato, sono a 16 bit e formattati nel seguente modo: i due bit più significativi non sono utilizzati e sono fissati a 0; i quattro bit successivi corrispondono alla word di controllo e permettono di identificare il significato dei restanti bit; i restanti 10 bit sono il dato vero e proprio: coincidono con la posizione del potenziometro da impostare (in caso di scrittura) o con la posizione attuale (in caso di lettura). I dettagli in merito ai diversi utilizzi dei bit di controllo e di dato sono descritti nel datasheet del componente Caratteristiche elettriche Il potenziometro digitale AD5293 necessita di due separate alimentazioni: una per la parte digitale, l altra per quella analogica. La prima può essere compresa nel range 2,7 5,5 V e permette l interfacciamento con quasi tutti i microcontrollori esistenti, alimentati tipicamente a 5 o a 3,3 V. La differenza di potenziale applicata fra i pin VDD e VSS è compresa tra 9 e 33 V che sia essa singola o duale e quindi riferita alla massa. Si fa presente che nel datasheet è riportato un valore inferiore pari a ±9 V per la tensione duale: si tiene a precisare che questo è un errore, in quanto il vero limite è pari a ±4,5 V. La tensione applicabile tra i pin A e B deve essere inferiore o uguale ai limiti indicati pur non vincolandoli ad una polarità specifica ovvero A può essere sia ad un potenziale maggiore che minore rispetto a B. 40

41 3.3.5 Potenziometro AD5293 e Buffer di tensione TL082 Gli estremi del potenziometro digitale (A, B) sono collegati alle alimentazioni +5 V e -5 V attraverso delle resistenze da 1 kω [15]. Esse sono state inserite per limitare la corrente assorbita dal potenziometro in caso di guasto. La loro presenza fa sì che l uscita del potenziometro, dunque della soglia impostata, vari tra -4,54 V e +4,54 V a passi di V V O = 9 mv 1024 (3.3) Il dispositivo TL082 viene chiamato buffer di tensione: si ottiene chiudendo in retroazione unitaria un amplificatore operazionale e dà in uscita lo stesso valore di tensione che riceve in ingresso. Lo scopo principale del buffer è quello di separare o disaccoppiare la sorgente del segnale dal resto del circuito. Il disaccoppiamento consente di non assorbire corrente dalla sorgente di segnale, non provocando i cosiddetti "effetti di carico" e aumentare così la capacità di fornire potenza da parte del generatore. Anche in questa parte di circuito sono presenti i condensatori di bypass sulle alimentazioni degli amplificatori (C46, C47, C48, C49, C50, C51). 3.4 Comparatori Come stadio finale vengono posti due comparatori diversi, LM311 [15] e TLV3501 [16] che confrontano il rumore amplificato e filtrato con la soglia impostata dal potenziometro. L uscita di tali dispositivi dà un valore alto (bit a 1) o un valore basso (bit a 0) a seconda del risultato del confronto. La doppia possibilità è stata scelta per poter effettuare prove anche a frequenze più elevate di quelle utilizzate attualmente, al fine di evitare limiti imposti dal comparatore stesso. Inoltre, essendo il pinout dei due comparatori diverso, si ha la possibilità di scelta grazie a dei jumper collegati come in Fig 3.9. Lo stadio di uscita del LM311 è un transistor BJT di cui si utilizza il collettore per il prelevamento del segnale digitale mentre l emettitore (pin 1) è collegato a massa. Per polarizzare correttamente il transistor è quindi necessaria una resistenza tra il collettore 41

42 stesso e la +3,3 V (e non 5 V, in quanto non tollerata dal microcontrollore): la resistenza può essere quella di pull-up interna al microcontrollore oppure quella esterna prevista sull apposita linea. Il TLV3501 invece ha come stadio di uscita una configurazione push-pull di MOSFET, garantendo dei fronti di commutazione molto più ripidi. Fig. 3.9 Comparatori 3.5 Digital Signal Controller TMS320F2808 Il TMS320F2808 della famiglia F280x di Texas Instruments è stato considerato fino all inizio del 2009 dal produttore stesso appartenente alla categoria dei DSP (digital signal processor) anche se orientato al controllo [17]. Tale orientamento ha fatto sì che all interno dello stesso chip siano state integrate molte periferiche utilizzate in ambito controllistico come ad esempio: uscite PWM (pulse width modulation) utilizzate tipicamente per il pilotaggio dei motori. 42

43 ingressi capture utilizzati quando è necessario acquisire dei segnali trasmessi in PWM. ingressi ADC che permettono l acquisizione di segnali analogici ed evitano l impiego di convertitori analogico-digitale esterni. memoria flash che consente di evitare l utilizzo di memorie esterne per il programma. Nonostante la presenza di tutte le periferiche citate, la CPU è paragonabile sotto diversi aspetti a quella di un classico DSP essendo ad esempio ottimizzata per l esecuzione di operazioni MAC (multiply and accumulate) comuni nell implementazione di filtri digitali. Questo tipo di operazione può essere eseguita singolarmente su dati a 32 bit quindi ottenendo risultati a 64 bit, oppure su operandi a 16 bit offrendo la possibilità di eseguire due operazioni in parallelo. Oltre a questa caratteristica, la velocità di esecuzione delle istruzioni è incrementata dalla presenza di una pipeline. L esecuzione di ogni istruzione è suddivisibile nelle seguenti fasi: fetch (lettura dell istruzione dalla memoria). decodifica e lettura degli operandi. esecuzione dell istruzione. scrittura dei risultati in memoria. Supponendo di avere due istruzioni da dover eseguire, anziché eseguirle sequenzialmente la pipeline permette di ridurre di tempi di elaborazione aumentando il throughput gestendo contemporaneamente due fasi distinte delle diverse istruzioni. Ad esempio, durante la fase di decodifica dell istruzione X può essere elaborata la fase di fetch dell istruzione Y; durante la fase di esecuzione dell istruzione X si può decodificare l istruzione Y caricandone gli operandi dalla memoria e così via Architettura del bus di memoria L architettura del bus di memoria è di tipo Harvard dove, come è noto, i bus di dati e di programma sono separati. Precisamente, i bus disponibili sono: bus di lettura della memoria del programma composto da 22 linee di indirizzo e 32 per i dati. 43

44 bus di lettura della memoria dati composto da 32 linee di indirizzo e 32 per i dati. bus di scrittura della memoria dei dati composto da 32 linee di indirizzo e 32 per i dati. Come è facile intuire, tale architettura consente di eseguire il fetch di un istruzione, scrivere un dato e leggerne un altro nel medesimo ciclo di clock Memoria flash, memoria RAM e ROM Il DSC in questione dispone di una memoria flash di 64 k da 16 bit suddivisa in quattro settori da 16 k 16 bit ciascuno. Vi è la possibilità di utilizzare la flash sia come memoria di programma che come memoria dati. La memoria RAM a disposizione è suddivisa in cinque blocchi come da Tab Tab. 3.1 Memoria RAM del DSP Esiste anche una memoria ROM programmata in fabbrica e contenente il bootloader. L utente ha la possibilità di scegliere da quale periferica caricare il programma da eseguire: quelle disponibili sono la UART, il bus SPI, il bus I2C, il bus CAN, la flash interna, il blocco di RAM M0 ed un eventuale memoria esterna interfacciata su specifici pin Interrupts e timer Vi sono diverse possibili fonti di interrupt per ogni periferica. Alcune risultano essere davvero comode per poter sfruttare completamente le potenzialità del microcontrollore. Al fine di poter gestire i numerosi interrupts possibili è disponibile uno specifico blocco 44

45 denominato Peripheral Interrupt Expansion con cui si possono gestire 96 diverse fonti di interrupt. Quelle a disposizione delle periferiche sono ben 43. Ciascuno dei novantasei interrupt dispone di un proprio vettore memorizzato in un area di RAM specifica. Il vettore, contenente l indirizzo della routine di interrupt da eseguire viene caricato dalla CPU al sopraggiungimento dello stesso. Tutti i novantasei interrupts sono raggruppati in blocchi da 8 e multiplexati verso la CPU tramite 12 linee fisiche interne (da INT1 ad INT12). Sono presenti anche tre linee esterne di interrupt multiplexate sulla linea interna INT13. Il TMS320F2808 mette inoltre a disposizione tre timer a 32 bit con un registro di prescaling a 16 bit. I timer sono registri decrementati ogni N cicli di clock dove N = (periodo di clock) (valore del prescaler). All azzeramento del registro, il timer è nuovamente caricato con il valore del periodo a 32 bit e genera un interrupt verso la CPU su linee fisiche distinte. I timer possono essere gestiti ed utilizzati genericamente, il Timer2 è dedicato al sistema operativo DSP/BIOS eventualmente eseguito sul microcontrollore (non utilizzato in questo studio). In Fig viene riportata l anteprima tridimensionale della scheda realizzata. Fig Scheda del HRSGN 45

46 Bibliografia del capitolo 3 [12] R. Tegas Sistemi elettronici per la generazione di sequenze random di bit, Dic 2009 [13] INA121: FET-Input, Low Power Instrumentation Amplifier. Documentazione disponibile in rete all indirizzo: [14] AD5293: Single Channel, 1024-Position, 1% R-Tol, Digital Potentiometer. Documentazione disponibile in rete all indirizzo: [15] LM311: Voltage Comparator. Documentazione reperibile all indirizzo internet: [16] TLV3501: 4.5 ns Rail-to-Rail, High Speed Comparator. Documentazione disponibile all indirizzo internet: [17] TMS320F bit Digital Signal Controller with Flash. Documentazione disponibile in rete all indirizzo: 46

47 CAPITOLO 4 47

48 Test Lo scopo principale di questa tesi è analizzare le sequenze di bit prodotte dal generatore hardware grazie all implementazione sul controller DSP di alcuni test. Vengono utilizzati i primi tre test della batteria del NIST: Frequency, Block e Runs test. La batteria di test del NIST (National Institute of Standard and Technology), detta Nist Statistical Test Suite, contiene infatti 15 test sviluppati per verificare la randomicità di sequenze binarie arbitrariamente lunghe, prodotte da un qualunque generatore hardware o software [18]. L obiettivo di questi test è di identificare le differenti varietà di nonrandomicità che possono esistere in una sequenza di bit. La batteria di test del NIST comprende i seguenti 15 test [19]: 1. The Frequency (Monobit) Test, 2. Frequency Test within a Block, 3. The Runs Test, 4. Tests for the Longest-Run-of-Ones in a Block, 5. The Binary Matrix Rank Test, 6. The Discrete Fourier Transform (Spectral) Test, 7. The Non-overlapping Template Matching Test, 8. The Overlapping Template Matching Test, 9. Maurer's "Universal Statistical" Test, 10. The Linear Complexity Test, 11. The Serial Test, 12. The Approximate Entropy Test, 48

49 13. The Cumulative Sums (Cusums) Test, 14. The Random Excursions Test, 15. The Random Excursions Variant Test L implementazione dei test su DSC (viene sempre utilizzato un test alla volta) consiste generalmente nel verificare la quantità di bit ad 1 e di bit a 0 presenti nella sequenza. Infatti un numero eccessivo di bit ad 1 oppure a 0 porta ad affermare che la sequenza possa presentare un gran numero di cifre consecutive identiche e quindi non è ritenuta casuale. In questo caso la sequenza di bit viene scartata e viene modificata la soglia di tensione del potenziometro digitale per la successiva acquisizione di bit (retroazione). Con un numero eccessivo di bit ad 1, si deduce che la tensione di soglia impostata sul comparatore mediante il potenziometro digitale abbia un valore troppo basso (Fig. 4.2). Fig. 4.1 Comparatore A/D Fig. 4.2 Comparatore con soglia troppo bassa 49

50 Viene cosi impostata una nuova soglia agendo sul potenziometro digitale in modo opportuno (Fig. 4.3), incrementando il valore relativo alla posizione del potenziometro per la successiva sequenza. Fig. 4.3 Comparatore con soglia corretta Si ritengono valide solo sequenze che presentano una quantità di bit ad 1 (oppure, il numero di bit a 0) compresa in un determinato range. Tale range viene in seguito calcolato in funzione della lunghezza della sequenza da testare e in funzione del test specifico. Nel caso in cui una sequenza di bit passa il test, viene trasmessa al PC tramite il software Real Term (descritto nel dettaglio nell Appendice) ed eventualmente salvata. Fig. 4.4 Retroazione del generatore 50

51 4.1 Frequency (Monobit) Test Il frequency test, detto anche monobit test, si occupa di determinare il numero di 0 e 1 nella sequenza e verificare la loro distribuzione. In altre parole, il suo scopo è di verificare che la quantità di uni e zeri sia approssimativamente la stessa, come ci si può aspettare da una teorica sequenza casuale di bit. Il Test Frequency è alla base dei successivi test di casualità che possono essere svolti su sequenze di bit [19]. Il funzionamento del test consiste nella modifica della sequenza sostituendo a quella originale +1 al posto degli uno e -1 invece degli zero ed esegue la somma. Divide il numero cosi ottenuto per la radice della lunghezza della sequenza e utilizza questo valore come argomento della funzione degli errori complementare erfc() ottenendo cosi il P-value (indice di precisione). Esempio: Sequenza ԑ = Lunghezza n = 1024 ; S n = 1+ (-1) (-1) + (-1)... S obs = S n n (4.1) S obs erfc = = 2 Pvalue (4.2) Affinché la sequenza sia considerata casuale si deve avere n>100 e il P-value deve essere maggiore del P-value impostato di Utilizzando questi calcoli, sono stati trovati i range di 1 per ogni sequenza che passano questo test: 51

52 n = 1024 P-value =0.05 range di 1 [ ] caso ideale N di 1= 512; n = 2048 P-value=0.05 range di 1 [ ] caso ideale N di 1= 1024; Infatti una sequenza in cui N di 1 è 481 oppure 543 (casi limite) supera questo test in quanto il relativo P-value = > Al di sotto di 481 (sopra 543) la sequenza non è considerata casuale e quindi viene scartata. 4.2 Block Frequency Test Il block frequency test verifica la distribuzione degli 1 e degli 0 all' interno della sequenza da analizzare divisa in blocchi non sovrapposti ciascuno di lunghezza M [19]. Questo test esegue operazioni simili al caso del monobit test ma è più specifico in quanto le applica ai singoli blocchi invece che all' intera sequenza. Nel caso in cui sia M=1 questo test è identico al test precedente. Esempio: Sequenza ԑ = Lunghezza n = 1024 (2048); Lunghezza di ogni blocco: M = 32 (64 nel caso n=2048) n N = = 32 (Numero dei blocchi) (4.3) M Viene determinata la proporzione di 1 in ogni blocco (4.4): π i = M j = ε 1 ( i 1 ) M + j M (4.4) 52

53 Poi si calcola il parametro statistico χ 2 (obs) che indica la bontà della proporzione di 1 in ogni blocco: N i = 2 χ ( obs ) = 4 M ( π 1 i 1 2 ) 2 (4.5) Infine viene utilizzata la incomplete gamma function igamc : 2 N χ ( obs ) igamc (, ) = Pvalue 2 2 (4.6) La sequenza è considerata casuale e attendibile da questo test se P-value è maggiore del P-value impostato a Altri requisiti sono n> 100 e M> max( 20 ; n/100 ). Vengono cosi calcolati il range di 1 in ogni blocco per il quale il test è considerato passato: n = 1024 P-value =0.05 range di 1 in ogni blocco [13-19] caso ideale N di 1= 16; n = 2048 P-value=0.05 range di 1 in ogni blocco [28-36] caso ideale N di 1= 32; 4.3 Runs Test Il runs test ha come scopo di determinare se l' oscillazione tra 0 e 1 e viceversa che formano la sequenza ha una frequenza troppo elevata o bassa [19]. Data una sequenza di lunghezza n si contano il numero di uno, lo si divide per n e si sottrae 1/2. Se il valore così ottenuto, in modulo, è maggiore o uguale a 2 / (n) significa che questo test non è applicabile in partenza Esempio: Sequenza ԑ = Lunghezza n = 1024 (2048) Viene calcolata la proporzione di 1 della sequenza lunga n: 53

54 π = j ε j n (4.7) τ = 2 n (4.8) 1 π 2 τ Test non applicabile (4.9) Nel caso contrario,il test è applicabile e si calcola: Vn ( obs ) = 1 + n 1 k = 1 r ( k ) (4.10) k bit (k+1) bit r(k) Tab. 4.1 valore r(k) Viene utilizzata la funzione degli errori complementare erfc con argomento: Vn ( obs ) 2 n π (1 π ) erfc ( ) = 2π (1 π ) 2 n Pvalue (4.11) Questo test considera casuale la sequenza se il P-value è maggiore di 0.05 e n >100. Un grande valore di Vn(obs) indica che l oscillazione nella stringa è molto veloce, mentre un valore piccolo di Vn(obs) indica che l oscillazione è più lenta. Un oscillazione veloce si 54

55 verifica quando ci sono molti cambi (es ). Una sequenza con un oscillazione lenta ha meno variazioni di quanto ci si aspetta in una sequenza random (ad es. in una sequenza di 300 bit si hanno 100 uni seguiti da 73 zeri seguiti da 127 e quindi si hanno solo tre variazioni anziché 150 come ci si aspetta: il test non viene passato). Sono stati calcolati i range di 1 variando la lunghezza del buffer che passano questo test: n=1024 P-value= 0.05 range di 1 nella sequenza [ ] argomento della funzione erfc<1.37; TEST PASSATO n = 2048 P-value=0.05 range di 1 nella sequenza [ ] argomento della funzione erfc<0.00; TEST PASSATO Bibliografia del capitolo 4 [18] A. Rukhin et al., A statistical test suite for Random and Pseudorandom Number Generators for Cryptographic Applications,NIST, Aug [19] NIST National Institute of Standards and Technology, 55

56 CAPITOLO 5 56

57 Sviluppo del firmware In questo capitolo viene presentato lo sviluppo del firmware del generatore HRBSG, creato utilizzando il linguaggio C. Lo sviluppo è stato realizzato con l IDE (integrated development environment) Code Composer Studio v3.3 della Texas Instruments in aggiunta all emulatore XDS Ambiente di sviluppo Code Composer Studio Il Code Composer Studio (nel seguito CCS) è un ambiente di sviluppo realizzato dalla Texas Instruments che consente di realizzare progetti software basati sui DSP e DSC da essa prodotti [20]. A differenza della maggior parte degli IDE esistenti, esso fornisce allo sviluppatore un elevato livello di personalizzazione utilizzando i GEL script. Questi permettono, ad esempio, la creazione di menu in cui è possibile aggiungere comandi utili sia nella gestione ed automatizzazione delle funzionalità dell ambiente stesso. In questo senso offre inoltre la possibilità di interagire direttamente con l hardware su cui si sviluppa consentendo di avere in un unica voce di menu un solo comando anche composto da una sequenza complessa di operazioni permettendo così di velocizzare le operazioni tipiche di una fase di progettazione C2000 Code Generation Tools I Code Generation Tools sono composti da diversi applicativi, quali compilatore, assemblatore, disassemblatore e linker. Alcuni di questi strumenti sono elencati di seguito, a fianco al nome del file eseguibile: compilatore C/C++ (cl2000.exe): consente di ottenere i file in codice assembly partendo dai sorgenti scritti in linguaggio C. assemblatore (asm2000.exe): permette di ottenere dei file oggetto (.obj) per i vari 57

58 file assembly creati. Si ottiene un file per ogni sorgente e non vi sono informazioni in merito alle aree di memoria del programma in cui verranno scritte. disassemblatore (dis2000.exe): consente di ottenere codice assembly a partire dai file oggetto. ottimizzatore dei codici sorgenti (opt2000.exe): programma operante direttamente sui sorgenti al fine di ottimizzare le prestazioni del proprio firmware. linker (ltd2000.exe): consente di ottenere il file binario da scaricare sulla memoria di programma partendo dai diversi file.obj creati dall assemblatore previa rilocazione agli indirizzi di memoria corretti. hex converter (hex2000.exe): consente la conversione dal file binario del programma (programmabile esclusivamente con l emulatore) ad un file in formato standard Intel HEX, programmabile sulla memoria flash con un programmatore seriale oppure scaricabile direttamente su altre memorie esterne. 5.2 Struttura del progetto I nomi dei file che iniziano con DSP280x_ (generalmente header files) sono quelli copiati dall archivio della Texas Instruments (TI) e contengono le strutture dati di tutti i registri del microcontrollore. Possono essere anche sorgenti.c o.asm ed in tal caso contengono funzioni particolari, come ad esempio l inizializzazione del punto di partenza dell esecuzione del firmware oppure funzioni di copia di alcune zone della memoria in altre. Per i files scritti integralmente, si è fatto uso del prefisso HRBSG_ mentre per la desinenza si sono utilizzati nomi indicanti le funzionalità contenute. Ad esempio, il file HRBSG_CpuTimers.c conterrà le funzioni relative al setup dei timer, anche se utilizzate altrove. Di seguito, uno screenshot permette di anticipare ciò che si avrà a disposizione una volta caricato il progetto: 58

59 Fig. 5.1 Organizzazione dei file sorgenti 5.3 Scelte progettuali Frequenza di campionamento Viene inizialmente inizializzato l ordine di grandezza della frequenza di campionamento dei bit. Una frequenza di campionamento troppo lenta rallenterebbe il throughput di dati, magari senza giustificazione, garantendo comunque la possibilità di eseguire qualunque 59

Cenno sui metodi Monte Carlo

Cenno sui metodi Monte Carlo Cenno sui metodi Monte Carlo I metodi probabilistici hanno una lunga storia ma solo dopo il 1944 è iniziato un loro studio sistematico che ha portato a notevoli sviluppi. Attualmente è stato valutato che

Dettagli

Random number generators

Random number generators Statistica computazionale Random number generators www.cash-cow.it Distribuito sotto licenza Creative Common, Share Alike Attribution 2 Indice I. Introduzione II. Processi fisici per la creazione di numeri

Dettagli

Microcontrollore. Ora invece passiamo a spiegare come funzionano i convertitori A/D interni ai microcontrollori

Microcontrollore. Ora invece passiamo a spiegare come funzionano i convertitori A/D interni ai microcontrollori Microcontrollore Il microcontrollore è un sistema a microprocessore completo,integrato in un unico chip, progettato per avere la massima autosufficienza e versatilità. Infatti visto il loro prezzo esiguo,

Dettagli

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni UNIVERSITÀ DEGLI STUDI DI MILANO FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica IL SAMPLE AND HOLD Progetto di Fondamenti di Automatica PROF.: M. Lazzaroni Anno Accademico

Dettagli

5 Amplificatori operazionali

5 Amplificatori operazionali 5 Amplificatori operazionali 5.1 Amplificatore operazionale: caratteristiche, ideale vs. reale - Di seguito simbolo e circuito equivalente di un amplificatore operazionale. Da notare che l amplificatore

Dettagli

Sottopongo la tesi redatta dallo studente Marco Vanacore dal titolo:

Sottopongo la tesi redatta dallo studente Marco Vanacore dal titolo: UNIVERSIT DEGLI STUDI DI GENOVA UNIVERSITÀ Corso di Laurea Triennale in Ingegneria Elettronica Elettronic Tesi di Laurea Test di randomicità per la validazione di sequenze casuali di bit pseudo-random

Dettagli

I Digital Signal Processors 1

I Digital Signal Processors 1 I Digital Signal Processors 1 martedì 11 aprile 2006 in termini rozzi possiamo definirli come dei microcontrollori ottimizzati per avere prestazioni spinte nella realizzazione di filtri di segnali analogici,

Dettagli

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi:

Modulo 8. Elettronica Digitale. Contenuti: Obiettivi: Modulo 8 Elettronica Digitale Contenuti: Introduzione Sistemi di numerazione posizionali Sistema binario Porte logiche fondamentali Porte logiche universali Metodo della forma canonica della somma per

Dettagli

Architetture DSP. Capitolo 6

Architetture DSP. Capitolo 6 Capitolo 6 Architetture DSP Un convertitore analogico-digitale (ADC) trasforma un segnale a tempo continuo in una sequenza di bit; viceversa un convertitore digitale-analogico (DAC) trasforma una sequenza

Dettagli

UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRONICA. Estratto tesi

UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRONICA. Estratto tesi UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRONICA Estratto tesi Realizzazione di un dispositivo per l analisi e la caratterizzazione dei moduli fotovoltaici

Dettagli

IL DSP - Digital Signal Processor

IL DSP - Digital Signal Processor IL DSP - Digital Signal Processor Processore dei segnali digitali 1. Generalità Il Digital Signal Processor (DSP, processore di segnali digitali) è un particolare tipo di microprocessore, ottimizzato per

Dettagli

Applicazioni dell amplificatore operazionale

Applicazioni dell amplificatore operazionale Capitolo 10 Applicazioni dell amplificatore operazionale Molte applicazioni dell amplificatore operazionale si basano su circuiti che sono derivati da quello dell amplificatore non invertente di fig. 9.5

Dettagli

La generazioni di numeri casuali. Fisica dell Informazione

La generazioni di numeri casuali. Fisica dell Informazione La generazioni di numeri casuali Fisica dell Informazione Cifrari composti Ottenuti dall applicazione sequenziale dei metodi precedentemente visti. Non sempre sono i migliori. Il più popolare tra i cifrari

Dettagli

Dipartimento di Fisica Sperimentale Laboratorio di Elettronica

Dipartimento di Fisica Sperimentale Laboratorio di Elettronica Dipartimento di Fisica Sperimentale Laboratorio di Elettronica D.Gamba,P.P.Trapani April 9, 2004 1 1 Circuiti Digitali Integrati: Timer, ADC e DAC In questo Lab. si imparera ad usare alcuni circuiti integrati

Dettagli

Conversione analogico digitale

Conversione analogico digitale Conversione analogico digitale L elettronica moderna ha spostato la maggior parte delle applicazioni nel mondo digitale in quanto i sistemi a microprocessore sono diventati più veloci ed economici rispetto

Dettagli

progettare & costruire di NICOLA DE CRESCENZO

progettare & costruire di NICOLA DE CRESCENZO progettare & costruire di NICOLA DE CRESCENZO GENERATORE di funzionilow-cost Vi proponiamo il progetto di un generatore di funzioni semplice ed economico, ideale per coloro che, essendo agli inizi, vogliono

Dettagli

FRANCESCO MARINO - TELECOMUNICAZIONI

FRANCESCO MARINO - TELECOMUNICAZIONI ESAME DI SAO DI ISIUO POFESSIONALE A.S. 2000/2001 Indirizzo: ECNICO DELLE INDUSIE ELEONICHE ema di: ELEONICA, ELECOMUNICAZIONI E APPLICAZIONI Il candidato, formulando di volta in volta tutte le ipotesi

Dettagli

Architettura del computer (C.Busso)

Architettura del computer (C.Busso) Architettura del computer (C.Busso) Il computer nacque quando fu possibile costruire circuiti abbastanza complessi in logica programmata da una parte e, dall altra, pensare, ( questo è dovuto a Von Neumann)

Dettagli

Arpa Laser. Progetto per il corso di Progettazione Elettronica. Realizzato da Caracciolo Etienne, Piccoli Riccardo, Porro Gabriele

Arpa Laser. Progetto per il corso di Progettazione Elettronica. Realizzato da Caracciolo Etienne, Piccoli Riccardo, Porro Gabriele Arpa Laser Progetto per il corso di Progettazione Elettronica Realizzato da Caracciolo Etienne, Piccoli Riccardo, Porro Gabriele 09/04/2009 DESCRIZIONE DELLO STRUMENTO Il progetto consiste nella costruzione

Dettagli

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto Rossi Pietro Alberto Agenda Introduzione Hardware Software Programmazione, primi passi Protocolli di comunicazione Programmazione Conclusioni Introduzione Il Raspberry Pi è una scheda elettronica impementante

Dettagli

Esami di Stato 2008 - Soluzione della seconda prova scritta. Indirizzo: Elettronica e Telecomunicazioni Tema di ELETTRONICA

Esami di Stato 2008 - Soluzione della seconda prova scritta. Indirizzo: Elettronica e Telecomunicazioni Tema di ELETTRONICA Risposta al quesito a Esami di Stato 2008 - Soluzione della seconda prova scritta Indirizzo: Elettronica e Telecomunicazioni Tema di ELETTRONICA (A CURA DEL PROF. Giuseppe SPALIERNO docente di Elettronica

Dettagli

Articolazione Elettronica. Specializzazione Elettronica ed Elettrotecnica Articolazione Elettronica. Elettronica ed Elettrotecnica - Classe 3^

Articolazione Elettronica. Specializzazione Elettronica ed Elettrotecnica Articolazione Elettronica. Elettronica ed Elettrotecnica - Classe 3^ Articolazione Elettronica Specializzazione Elettronica ed Elettrotecnica Articolazione Elettronica Elettronica ed Elettrotecnica - Classe 3^ Elettrotecnica Tipologie di Segnali Unità di misura delle grandezze

Dettagli

PICLOCK. Classe 4 EA indirizzo elettronica ed elettrotecnica. Ivancich Stefano. Tecnologie e progettazione di sistemi elettrici ed elettronici

PICLOCK. Classe 4 EA indirizzo elettronica ed elettrotecnica. Ivancich Stefano. Tecnologie e progettazione di sistemi elettrici ed elettronici PICLOCK Classe 4 EA indirizzo elettronica ed elettrotecnica Ivancich Stefano Tecnologie e progettazione di sistemi elettrici ed elettronici Istituto tecnico C. Zuccante Mestre A.S. 2013/2014 progetto n

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

Crittografia. Appunti a cura del prof. Ing. Mario Catalano

Crittografia. Appunti a cura del prof. Ing. Mario Catalano Crittografia Appunti a cura del prof. Ing. Mario Catalano La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice. Solitamente, i meccanismi crittografici

Dettagli

Comprendere il funzionamento dei convertitori V/f Saper effettuare misure di collaudo

Comprendere il funzionamento dei convertitori V/f Saper effettuare misure di collaudo SCH 33 Voltmetro a 3 digit Obiettivi Comprendere il funzionamento dei convertitori V/f Saper effettuare misure di collaudo IC1 = CA 3162 A/D converter for 3-Digit Display IC2 = CA 3161 BCD to seven segment

Dettagli

IL TEST JIG PER IL SOTTOSISTEMA COMMS DEL DIMOSTRATORE TECNOLOGICO SATELLITARE

IL TEST JIG PER IL SOTTOSISTEMA COMMS DEL DIMOSTRATORE TECNOLOGICO SATELLITARE IL TEST JIG PER IL SOTTOSISTEMA COMMS DEL DIMOSTRATORE TECNOLOGICO SATELLITARE INDICE 1. Introduzione...3 2. Lista delle abbreviazioni...3 3. Requisiti e architettura del test jig COMMS...4 3.1 I compiti

Dettagli

Le memorie. Introduzione

Le memorie. Introduzione Le memorie Introduzione Una memoria è un sistema elettronico in grado di immagazzinare dati in forma binaria, per poi renderli disponibili ad ogni richiesta. Tale sistema è costituito da un insieme di

Dettagli

CONVERSIONE ANALOGICA DIGITALE (ADC)(A/D) CONVERSIONE DIGITALE ANALOGICA (DAC)(D/A)

CONVERSIONE ANALOGICA DIGITALE (ADC)(A/D) CONVERSIONE DIGITALE ANALOGICA (DAC)(D/A) CONVERSIONE ANALOGICA DIGITALE (ADC)(A/D) CONVERSIONE DIGITALE ANALOGICA (DAC)(D/A) ELABORAZIONE ANALOGICA O DIGITALE DEI SEGNALI ELABORAZIONE ANALOGICA ELABORAZIONE DIGITALE Vantaggi dell elaborazione

Dettagli

2. SINCRONIZZAZIONE (CENNI)

2. SINCRONIZZAZIONE (CENNI) 2. SINCRONIZZAZIONE (CENNI) INTRODUZIONE AL PROBLEMA DELLA SINCRONIZZAZIONE SINCRONISMO DI BIT SCRAMBLING SINCRONISMO DI FRAME INTRODUZIONE Abbiamo visto diverse tecniche in grado di convertire e di trasmettere

Dettagli

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono

Dettagli

L informatica comprende:

L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Introduzione ai Microcontrollori Workshop 08/06/2011 Dott.Ing.Marco Frosini Qprel srl Dott.Ing.Lorenzo Giardina Qprel srl Slide 1 di 27 L'elettronica digitale PRIMA dei microcontrollori Elemento base:

Dettagli

L architettura del calcolatore (Prima parte)

L architettura del calcolatore (Prima parte) L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto

Dettagli

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra.

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra. Appunti di Calcolatori Elettronici Modello di macchina multilivello Introduzione... 1 Linguaggi, livelli e macchine virtuali... 3 La struttura a livelli delle macchine odierne... 4 Evoluzione delle macchine

Dettagli

Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo. Dip switch Pulsante n.a. Octal tri-state buffer IC2 = MM 2114

Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo. Dip switch Pulsante n.a. Octal tri-state buffer IC2 = MM 2114 SCH 31 Scrittura/lettura RAM Obiettivi Strumenti e componenti Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo S1 S5 P1 IC1 = 74LS244 Dip switch Pulsante n.a. Octal tri-state

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Convertitore analogico digitale (ADC) a n bit riceve in ingresso un segnale analogico e lo codifica in un segnale digitale a n bit

Convertitore analogico digitale (ADC) a n bit riceve in ingresso un segnale analogico e lo codifica in un segnale digitale a n bit ingressi analogici Conversione A/D Convertitore analogico digitale (ADC) a n bit riceve in ingresso un segnale analogico e lo codifica in un segnale digitale a n bit Ogni codice binario rappresenta il

Dettagli

ALGEBRA BOOLEANA FONDAMENTI DI INFORMATICA 1. Algebra di Boole. Definizione NOT, AND, OR

ALGEBRA BOOLEANA FONDAMENTI DI INFORMATICA 1. Algebra di Boole. Definizione NOT, AND, OR Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica, Chimica, Elettrica e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011 Docente: Gian

Dettagli

ELETTRONICA. L amplificatore Operazionale

ELETTRONICA. L amplificatore Operazionale ELETTRONICA L amplificatore Operazionale Amplificatore operazionale Un amplificatore operazionale è un amplificatore differenziale, accoppiato in continua e ad elevato guadagno (teoricamente infinito).

Dettagli

SISTEMI DI TELECOMUNICAZIONI

SISTEMI DI TELECOMUNICAZIONI SISTEMI DI TELECOMUNICAZIONI MODI DI TRASFERIMENTO SERVIZI DI TRASFERIMENTO DELL INFORMAZIONE L informazione da trasferire si ipotizza strutturata in IU Costituita da b bit Da consegnare in t secondi Se

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 25 febbraio 2015 1 / 42 INFORMATICA Varie definizioni: Scienza degli elaboratori elettronici (Computer Science)

Dettagli

INFORMATIVA AVVERTENZE

INFORMATIVA AVVERTENZE M.M.Electronics - http://www.mmetft.it M. M. Electronics Michele Marino - michele.marino@mmetft.it Sensore di prossimità a infrarossi V 0.1 Marzo 2008 INFORMATIVA Come prescritto dall art. 1, comma 1,

Dettagli

Il sistema di elaborazione

Il sistema di elaborazione Il sistema di elaborazione Stefano Brocchi stefano.brocchi@unifi.it Stefano Brocchi Il sistema di elaborazione 1 / 37 Informatica Il termine informatica deriva dalle parole informazione e automatica Stefano

Dettagli

Rappresentazione e Memorizzazione dei Dati

Rappresentazione e Memorizzazione dei Dati Rappresentazione e Memorizzazione dei Dati Giuseppe Nicosia CdL in Matematica (Laurea Triennale) Facoltà di Scienze MM.FF.NN. Università di Catania Bit e loro Memorizzazione Definizioni Algoritmo: una

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

DAQ: Segnali. Dal punto di vista della DAQ possiamo catalogare i segnali secondo lo schema seguente:

DAQ: Segnali. Dal punto di vista della DAQ possiamo catalogare i segnali secondo lo schema seguente: DAQ: Segnali Dal punto di vista della DAQ possiamo catalogare i segnali secondo lo schema seguente: Segnali analogici d ingresso (analog input) Segnali analogici d uscita (analog output) Segnali digitali

Dettagli

Conversione A/D. Corso di Misure Elettriche http://sms.unipv.it/misure/

Conversione A/D. Corso di Misure Elettriche http://sms.unipv.it/misure/ Conversione A/D Corso di Misure Elettriche http://sms.unipv.it/misure/ Piero Malcovati Dipartimento di Ingegneria Industriale e dell Informazione Università di Pavia piero.malcovati@unipv.it Piero Malcovati

Dettagli

acquisire informazioni su grandezze analogiche, trasformandole in stringhe di bit

acquisire informazioni su grandezze analogiche, trasformandole in stringhe di bit Convertitori analogico/digitali Un convertitore analogico digitale ha la funzione inversa a quella di un convertitore DAC, poiché il suo scopo è quello di permetter ad un sistema a microprocessore di acquisire

Dettagli

Misure di frequenza e di tempo

Misure di frequenza e di tempo Misure di frequenza e di tempo - 1 Misure di frequenza e di tempo 1 - Contatori universali Schemi e circuiti di riferimento Per la misura di frequenza e di intervalli di tempo vengono diffusamente impiegati

Dettagli

E evidente che le carattteristiche dell OPAMP ideale non possono essere raggiunte da nessun circuito reale. Gli amplificatori operazionali reali

E evidente che le carattteristiche dell OPAMP ideale non possono essere raggiunte da nessun circuito reale. Gli amplificatori operazionali reali E evidente che le carattteristiche dell OPAMP ideale non possono essere raggiunte da nessun circuito reale. Gli amplificatori operazionali reali hanno però caratteristiche che approssimano molto bene il

Dettagli

Circuito di pilotaggio ON OFF con operazionale

Circuito di pilotaggio ON OFF con operazionale PREMESSA Circuito di pilotaggio ON OFF con operazionale A cura del Prof. Marco Chirizzi www.marcochirizzi.it Si supponga di dovere progettare un circuito di pilotaggio ON OFF in grado di mantenere un fluido

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Informatica. Esplicazione del manuale e delle slide. Informatica Appunti Luiss Marco D Epifanio. Marco

Informatica. Esplicazione del manuale e delle slide. Informatica Appunti Luiss Marco D Epifanio. Marco Informatica Appunti Luiss Marco D Epifanio Informatica Esplicazione del manuale e delle slide Marco Liberamente tratto da Introduzione alle tecnologie informatiche e ai sistemi informativi aziendali, McGraw.

Dettagli

Componenti principali di un computer

Componenti principali di un computer Componenti principali di un computer Unità centrale Processore Controller Memoria principale (centrale) Bus Stampante Terminale Periferiche di input/output Memorie di massa (secondarie) 1 COMPONENTI DI

Dettagli

A pplicazioni. Il problema legato all accoppiamento. Guida completa alla progettazione con i segnali video VIDEO DESIGN

A pplicazioni. Il problema legato all accoppiamento. Guida completa alla progettazione con i segnali video VIDEO DESIGN Guida completa alla progettazione con i segnali video Bill Stutz, Franco Contadini Maxim Integrated Products Inc. Sunnyvale CA In questo articolo vengono illustrati il funzionamento dei circuiti di polarizzazione,

Dettagli

Big-wifi Descrizione e modalità d uso

Big-wifi Descrizione e modalità d uso TELECONTROLLO VIA RETE BIG-WIFI Big-wifi Descrizione e modalità d uso Rev.1509-1 - Pag.1 di 10 www.carrideo.it INDICE 1. IL TELECONTROLLO BIG-WIFI... 3 1.1. DESCRIZIONE GENERALE... 3 1.1.1. Uscite open-collector...

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Architettura del PIC 18F452

Architettura del PIC 18F452 Controllo Digitale a.a. 2005-2006 Architettura del PIC 18F452 Ing. Federica Pascucci PIC 18F452 Caratteristiche Frequenza operativa: 40 MHz Memorie: Program FLASH memory: 32 KBytes, 16 K-istruzioni memorizzabili

Dettagli

Il Microcontrollore. Microcontrollore PIC

Il Microcontrollore. Microcontrollore PIC Il Microcontrollore Per realizzare un automatismo l elettronica ci mette a disposizione diverse possibilità. La prima, la più tradizionale, si basa su componenti transistor, mosfet, integrati con porte

Dettagli

Introduzione all acquisizione Dati

Introduzione all acquisizione Dati Introduzione all acquisizione Dati Laboratorio di Robotica Industriale Evoluzione della strumentazione Introduzione all acquisizione dati - 2 Trend nella strumentazione Introduzione all acquisizione dati

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Corso di Sistemi di Elaborazione A.A. 2008/2009

Corso di Sistemi di Elaborazione A.A. 2008/2009 Università di Ferrara Facoltà di Ingegneria Docente: Ing. Massimiliano Ruggeri Mail: m.ruggeri@imamoter.cnr.it mruggeri@ing.unife.it Tel. 0532/735631 Corso di Sistemi di Elaborazione A.A. 2008/2009 Durata:

Dettagli

Cosa è l informatica

Cosa è l informatica Cosa è l informatica Informazione + automatica Scienza del trattamento automatico delle informazioni Insieme dei processi e delle tecnologie che rendono possibile Elaborare (trasformare) l informazione

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Appendice Circuiti con amplificatori operazionali

Appendice Circuiti con amplificatori operazionali Appendice Circuiti con amplificatori operazionali - Appendice Circuiti con amplificatori operazionali - L amplificatore operazionale Il componente ideale L amplificatore operazionale è un dispositivo che

Dettagli

di Heaveside: ricaviamo:. Associamo alle grandezze sinusoidali i corrispondenti fasori:, Adesso sostituiamo nella

di Heaveside: ricaviamo:. Associamo alle grandezze sinusoidali i corrispondenti fasori:, Adesso sostituiamo nella Equazione di Ohm nel dominio fasoriale: Legge di Ohm:. Dalla definizione di operatore di Heaveside: ricaviamo:. Associamo alle grandezze sinusoidali i corrispondenti fasori:, dove Adesso sostituiamo nella

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

ELETTRONICA II. Circuiti misti analogici e digitali 2. Riferimenti al testo. Prof. Dante Del Corso - Politecnico di Torino

ELETTRONICA II. Circuiti misti analogici e digitali 2. Riferimenti al testo. Prof. Dante Del Corso - Politecnico di Torino ELETTRONICA II Circuiti misti analogici e digitali 2 Prof. Dante Del Corso - Politecnico di Torino Parte E: Circuiti misti analogici e digitali Lezione n. 20 - E - 2: Oscillatori e generatori di segnale

Dettagli

Calcolatore: Elaborare: Input: Output: John von Neumann: Device: Embedded: Sistemi programmabili:

Calcolatore: Elaborare: Input: Output: John von Neumann: Device: Embedded: Sistemi programmabili: Autore: Maria Chiara Cavaliere Informatica di base Lezione 1 del 21/3/2016 Il corso di Informatica di base si baserà sulla spiegazione di tre moduli: -Architettura Hardware; -Sistema operativo; Parte teorica

Dettagli

8 Microcontrollori PIC

8 Microcontrollori PIC 8 Microcontrollori PIC 8.1 Descrizione generale Un microcontrollore è un dispositivo elettronico che opportunamente programmato è in grado di svolgere diverse funzioni in modo autonomo. Essenzialmente

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Le infrastrutture Hardware: architettura

Le infrastrutture Hardware: architettura Le infrastrutture Hardware: architettura Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione

Dettagli

GRMN VCO Rev 0 - Thermidor Technologies - Pagina 1. Note sul dimensionamento dei VCO Per sintetizzatore Germinimal

GRMN VCO Rev 0 - Thermidor Technologies - Pagina 1. Note sul dimensionamento dei VCO Per sintetizzatore Germinimal GRMN VCO Rev 0 - Thermidor Technologies - Pagina 1 Note sul dimensionamento dei VCO Per sintetizzatore Germinimal GRMN VCO Rev 0 - Thermidor Technologies - Pagina 1 Indice INDICE INDICE... 1 1. DESCRIZIONE...

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

mendiante un ciclo e finché il segnale rimane alto, si valuta il tempo T3 usando il timer del microcontrollore e una variabile di conteggio.

mendiante un ciclo e finché il segnale rimane alto, si valuta il tempo T3 usando il timer del microcontrollore e una variabile di conteggio. Svolgimento (a) Il sensore di temperatura ha un uscita digitale a 9 bit, emettendo un codice binario proporzionale al valore Temp richiesto. Possiamo pensare si tratti di un dispositivo 1-Wire. Un sistema

Dettagli

Strumenti Digitali. Corso di Misure Elettriche http://sms.unipv.it/misure/

Strumenti Digitali. Corso di Misure Elettriche http://sms.unipv.it/misure/ Strumenti Digitali Corso di Misure Elettriche http://sms.unipv.it/misure/ Piero Malcovati Dipartimento di Ingegneria Industriale e dell Informazione Università di Pavia piero.malcovati@unipv.it Piero Malcovati

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Architettura dei calcolatori I parte Introduzione,

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

9. Conversione Analogico/Digitale

9. Conversione Analogico/Digitale Dipartimento di Ingegneria Elettrica Università di Pavia Corso di Misure Elettriche Capitolo 9 9. Conversione Analogico/Digitale http://ims.unipv.it/~piero/misure.html 9.1. Generalità In un convertitore

Dettagli

Fondamenti di informatica: un po di storia

Fondamenti di informatica: un po di storia Fondamenti di informatica: un po di storia L idea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal, Leibniz) Nell ottocento vengono realizzati i primi

Dettagli

Corso di TECNOLOGIE DEI SISTEMI DI CONTROLLO A.A. 2013/2014, Docente: Ing. Marcello Bonfè SPUNTI PER PROGETTI DI APPROFONDIMENTO (TESINE FACOLTATIVE)

Corso di TECNOLOGIE DEI SISTEMI DI CONTROLLO A.A. 2013/2014, Docente: Ing. Marcello Bonfè SPUNTI PER PROGETTI DI APPROFONDIMENTO (TESINE FACOLTATIVE) NOTE GENERALI: Corso di TECNOLOGIE DEI SISTEMI DI CONTROLLO A.A. 2013/2014, Docente: Ing. Marcello Bonfè SPUNTI PER PROGETTI DI APPROFONDIMENTO (TESINE FACOLTATIVE) 1. Ogni progetto deve essere PERSONALE,

Dettagli

SISTEMA DI ACQUISIZIONE DATI PC-BASED

SISTEMA DI ACQUISIZIONE DATI PC-BASED SISTEMA DI ACQUISIZIONE DATI PC-BASED Un tipico sistema di acquisizione dati di tipo PC-based ha quattro componenti hardware fondamentali (Fig.1): una morsettiera, un cavo, un dispositivo DAQ (Data Acquisition

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

CORSO DI ELETTRONICA DEI SISTEMI DIGITALI

CORSO DI ELETTRONICA DEI SISTEMI DIGITALI CORSO DI ELETTRONICA DEI SISTEMI DIGITALI Capitolo 1 Porte logiche in tecnologia CMOS 1.0 Introduzione 1 1.1 Caratteristiche elettriche statiche di un transistore MOS 2 1.1.1 Simboli circuitali per un

Dettagli

Specializzazione Elettronica ed Elettrotecnica Articolazione Automazione. Elettronica ed Elettrotecnica - Classe 3^

Specializzazione Elettronica ed Elettrotecnica Articolazione Automazione. Elettronica ed Elettrotecnica - Classe 3^ Specializzazione Elettronica ed Elettrotecnica Articolazione Automazione Elettronica ed Elettrotecnica - Classe 3^ Elettrotecnica Tipologie di segnali Unità di misura delle grandezze elettriche Simbologia

Dettagli

Sistema acquisizione dati

Sistema acquisizione dati 12 Sistema acquisizione dati 3.1 Introduzione: Per convertire i segnali analogici trasmessi dai sensori in segnali digitali dobbiamo usare i convertitori analogici digitali o più comunemente chiamati ADC(Analog-to-Digital

Dettagli

I Diodi. www.papete.altervista.org http://elettronica-audio.net76.net

I Diodi. www.papete.altervista.org http://elettronica-audio.net76.net I Diodi Questi componenti sono provvisti di due terminali: il catodo e l'anodo. Il catodo si riconosce perchè sul corpo è stampata una fascia in corrispondenza di tale piedino. Ad esempio, i diodi nella

Dettagli

La prove dinamiche sugli edifici II parte strumentazione e analisi dei segnali

La prove dinamiche sugli edifici II parte strumentazione e analisi dei segnali La prove dinamiche sugli edifici II parte strumentazione e analisi dei segnali Luca Facchini e-mail: luca.facchini@unifi.it Introduzione Quali strumenti vengono utilizzati? Le grandezze di interesse nelle

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Lezione 21 Cenni di elettronica

Lezione 21 Cenni di elettronica Cenni di elettronica Elettronica Acquisizione dati Rivelatori di Particelle 1 Cenni di elettronica Gli apparati del giorno d oggi, sia che siano per targhetta fissa o Collider sono fatti a cipolla ( o

Dettagli

PROSPETTIVE FUTURE DELL INTEGRAZIONE OPTOELETTRONICA

PROSPETTIVE FUTURE DELL INTEGRAZIONE OPTOELETTRONICA CAPITOLO III PROSPETTIVE FUTURE DELL INTEGRAZIONE OPTOELETTRONICA III.1 Introduzione L attività scientifica sugli OEIC è iniziata nel 1979 con un grande progetto negli USA, per la realizzazione di circuiti

Dettagli

Esperimentazioni di Fisica 3 AA 2013-2014. Tracking ADC. M. De Vincenzi

Esperimentazioni di Fisica 3 AA 2013-2014. Tracking ADC. M. De Vincenzi Esperimentazioni di Fisica 3 AA 2013-2014 Tracking ADC M. De Vincenzi 1 Introduzione La digitalizzazione di segnali analogici si realizza tramite dispositivi che vengono detti ADC (acronimo per Analog

Dettagli

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore Dispensa di Fondamenti di Informatica Architettura di un calcolatore Hardware e software La prima decomposizione di un calcolatore è relativa ai seguenti macro-componenti hardware la struttura fisica del

Dettagli

Lez. 2 L elaborazione

Lez. 2 L elaborazione Lez. 2 L elaborazione Prof. Giovanni Mettivier 1 Dott. Giovanni Mettivier, PhD Dipartimento Scienze Fisiche Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via Cintia, I-80126, Napoli mettivier@na.infn.it

Dettagli