Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Seite 18

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 18 — #18 i 1.1. SISTEMI EMBEDDED i 18 Questa funzionalità è molto spesso ottenuta con l’inserimento di un componente elettronico chiamato watchdog, che resetta il computer a intervalli regolari; il software, periodicamente, procede a riazzerare il timer interno del componente. 1.1.2 Progetto di Sistemi Embedded Nel progetto di un moderno e affidabile sistema embedded è possibile individuare due caratteristiche fondamentali: la riprogrammabilità e lo spazio occupato. Difatti sarebbe utile pensare a un sistema dedicato in grado di essere riadattabile, nel caso ad esempio ci fosse la necessità di aggiornare il sistema. Nei sistemi embedded classici sia a elementi discreti che basati su ASIC il design è appunto uno e uno soltanto. Nel caso in cui si abbia la necessità di cambiare le specifiche occorrerebbe riprogettare completamente il sistema globale. D’altra canto, però, i sistemi ASIC consentono l’ottimizzazione più avanzata poiché l’hardware occupa lo spazio strettamente necessario, rendendo quindi il sistema di controllo facilmente integrabile. La risposta a queste due esigenze è stata trovata utilizzando le Logiche Programmabili e i microcontrollori. Una logica programmabile è un componente elettronico in grado di esplicare una funzionalità selezionabile da utente e ottenibile mediante un insieme di strumenti software. Un progetto può essere realizzato e verificato in alcuni giorni mentre, volendo seguire lo stesso percorso con la tecnologia classica relativa agli ASIC (gate-array o standard-cell), sono richieste diverse settimane di sviluppo. Le logiche programmabili sono, ad oggi, presenti per il 70% dei nuovi progetti di sistemi elettronici, grazie alla possibilità di sviluppare sistemi con una funzionalità di base, in grado di essere aggiornata in seguito con un’eventuale riprogrammazione della logica. Il concetto di logica programmabile deriva da quello delle ROM. In queste si ha che per una determinata combinazione di ingressi (linee di indirizzo) si ottiene in uscita una prefissata sequenza di bit (dato memorizzato nella corrispondente locazione di memoria). Gli indirizzi di ingresso hanno, per una memoria, un valore tipicamente sequenziale. Di conseguenza possono essere presenti combinazioni non necessarie per il progetto in corso ma che comunque occupano spazio e di cui bisogna comunque configurare lo stato iniziale per evitare problemi durante la fase di sviluppo. le logiche programmabili attualmente presenti sul mercato possiamo dividerle, dal punto di vista architetturale, in tre tipologie: -PLD Programmable Logic Device i i i i