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

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

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

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

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

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.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

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

1 - I segnali analogici e digitali

1 - I segnali analogici e digitali 1 1 - I segnali analogici e digitali Segnali analogici Un segnale analogico può essere rappresentato mediante una funzione del tempo che gode delle seguenti caratteristiche: 1) la funzione è definita per

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

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

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

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

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

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

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CORRENTE ELETTRICA. La grandezza fisica che descrive la corrente elettrica è l intensità di corrente.

CORRENTE ELETTRICA. La grandezza fisica che descrive la corrente elettrica è l intensità di corrente. CORRENTE ELETTRICA Si definisce CORRENTE ELETTRICA un moto ordinato di cariche elettriche. Il moto ordinato è distinto dal moto termico, che è invece disordinato, ed è sovrapposto a questo. Il moto ordinato

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

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

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

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

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

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

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

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

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

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

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

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

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

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

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

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

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

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

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

Sommario. 1 Codifica binaria delle informazioni. 2 Codifica binaria di informazioni di tipo numerico e aritmetica binaria

Sommario. 1 Codifica binaria delle informazioni. 2 Codifica binaria di informazioni di tipo numerico e aritmetica binaria Sommario Codifica delle informazioni 1 Codifica delle informazioni M. Favalli 2 Codifica di informazioni di tipo numerico e aritmetica Engineering Department in Ferrara 3 M. Favalli (ENDIF) Codici Reti

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

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

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

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

Introduzione. Consideriamo la classica caratteristica corrente-tensione di un diodo pn reale: I D. V γ

Introduzione. Consideriamo la classica caratteristica corrente-tensione di un diodo pn reale: I D. V γ Appunti di Elettronica Capitolo 3 Parte II Circuiti limitatori di tensione a diodi Introduzione... 1 Caratteristica di trasferimento di un circuito limitatore di tensione... 2 Osservazione... 5 Impiego

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

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

RETI DI CALCOLATORI. Crittografia. La crittografia

RETI DI CALCOLATORI. Crittografia. La crittografia RETI DI CALCOLATORI Crittografia La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione,

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

Esercitazioni per il corso di Microonde 2005/2006: CENNI DI TEORIA DELL ERRORE. Ing. Ricci Andrea Simone

Esercitazioni per il corso di Microonde 2005/2006: CENNI DI TEORIA DELL ERRORE. Ing. Ricci Andrea Simone Esercitazioni per il corso di Microonde 2005/2006: CENNI DI TEORIA DELL ERRORE Ing. Ricci Andrea Simone INCERTEZZA DI MISURA - Introduzione X SISTEMA Y Misura > complesso di attività volte alla valutazione

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

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

L architettura del calcolatore (Terza parte)

L architettura del calcolatore (Terza parte) L architettura del calcolatore (Terza parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin I dispositivi periferici periferia parte centrale sottosistema

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

Sensori e trasduttori. Dispense del corso ELETTRONICA L Luca De Marchi

Sensori e trasduttori. Dispense del corso ELETTRONICA L Luca De Marchi Sensori e trasduttori Dispense del corso ELETTRONICA L Luca De Marchi Gli Obiettivi Struttura generale di sistemi di controllo e misura Sensori, trasduttori, attuatori Prima classificazione dei sistemi-sensori

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Codifica dell informazione (parte 1) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente:

Dettagli

Parte II.2 Elaboratore

Parte II.2 Elaboratore Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti

Dettagli

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere; Algoritmi 3 3.5 Capacità di calcolo Il matematico inglese Alan Turing (1912-1954) descrisse nel 1936 un tipo di automi, oggi detti macchine di Turing, e fornì una della prime definizioni rigorose di esecuzione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

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

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

PRIMA LEGGE DI OHM OBIETTIVO: NOTE TEORICHE: Differenza di potenziale Generatore di tensione Corrente elettrica

PRIMA LEGGE DI OHM OBIETTIVO: NOTE TEORICHE: Differenza di potenziale Generatore di tensione Corrente elettrica Liceo Scientifico G. TARANTINO ALUNNO: Pellicciari Girolamo VG PRIMA LEGGE DI OHM OBIETTIVO: Verificare la Prima leggi di Ohm in un circuito ohmico (o resistore) cioè verificare che l intensità di corrente

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Circuiti amplificatori

Circuiti amplificatori Circuiti amplificatori G. Traversi Strumentazione e Misure Elettroniche Corso Integrato di Elettrotecnica e Strumentazione e Misure Elettroniche 1 Amplificatori 2 Amplificatori Se A V è negativo, l amplificatore

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

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

Progettazione e realizzazione di un manipolatore elettromeccanico

Progettazione e realizzazione di un manipolatore elettromeccanico Progettazione e realizzazione di un manipolatore elettromeccanico Hermes Giberti Politecnico di Milano u robotica u La progettazione di un sistema automatico richiede una collaborazione sinergica tra le

Dettagli

Introduzione all Analisi dei Segnali

Introduzione all Analisi dei Segnali Tecniche innovative per l identificazione delle caratteristiche dinamiche delle strutture e del danno Introduzione all Analisi dei Segnali Prof. Ing. Felice Carlo PONZO - Ing. Rocco DITOMMASO Scuola di

Dettagli

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1 LATCH E FLIPFLOP. I latch ed i flipflop sono gli elementi fondamentali per la realizzazione di sistemi sequenziali. In entrambi i circuiti la temporizzazione è affidata ad un opportuno segnale di cadenza

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

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

PLL (anello ad aggancio di fase)

PLL (anello ad aggancio di fase) PLL (anello ad aggancio di fase) Il PLL ( Phase Locked Loop, anello ad aggancio di fase) è un circuito integrato a reazione negativa. E un componente molto versatile e può essere usato come: demodulatore

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

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI Scienza ed industria hanno oggi costituito legami molto forti di collaborazione che hanno portato innovazione tecnologica sia a livello organizzativo-amministrativo

Dettagli

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione: Modulo 1 Le memorie Le Memorie 4 ETA Capitolo 1 Struttura di un elaboratore Un elaboratore elettronico è un sistema capace di elaborare dei dati in ingresso seguendo opportune istruzioni e li elabora fornendo

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

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

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

Per dare una risposta al quesito che abbiamo posto, consideriamo il sistema schematizzato in figura.

Per dare una risposta al quesito che abbiamo posto, consideriamo il sistema schematizzato in figura. Verifica dei postulati di Einstein sulla velocità della luce, osservazioni sull esperimento di Michelson e Morley Abbiamo visto che la necessità di introdurre un mezzo come l etere nasceva dalle evidenze

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

1 - I segnali analogici e digitali

1 - I segnali analogici e digitali 1 - I segnali analogici e digitali Segnali analogici Un segnale analogico può essere rappresentato mediante una funzione del tempo che gode delle seguenti caratteristiche: 1) la funzione è definita per

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

SN76477N. Per la descrizione dei singoli stadi, scegliere nell'elenco:

SN76477N. Per la descrizione dei singoli stadi, scegliere nell'elenco: SN76477N A cura di Federico Battaglin www.febat.com - info@febat.com Il circuito integrato SN76477N (costruito dalla Texas Instruments) è un completo "Complex Sound Generator", ovvero un generatore di

Dettagli

STATISTICA E PROBABILITá

STATISTICA E PROBABILITá STATISTICA E PROBABILITá Statistica La statistica è una branca della matematica, che descrive un qualsiasi fenomeno basandosi sulla raccolta di informazioni, sottoforma di dati. Questi ultimi risultano

Dettagli