La progettazione e lo sviluppo di sistemi embedded sono guidati dai requisiti applicativi e dalle tecnologie IT. Con la continua innovazione e lo sviluppo della tecnologia microelettronica, il livello di integrazione e il livello di processo dei circuiti integrati su larga scala sono stati continuamente migliorati. In particolare, l’introduzione di un sistema operativo embedded in tempo reale (RTOS) fornisce il supporto di base e una piattaforma di sviluppo ad alta efficienza per lo sviluppo di software applicativo di sistemi embedded complessi.
Processo di progettazione di sistemi embedded
Fase di progettazione
La fase iniziale della progettazione concettuale di un nuovo prodotto prevede una certa lungimiranza del prodotto basata su previsioni di mercato, esigenze dei clienti e sviluppo tecnologico. Quando si pianifica un prodotto, viene elaborato un business case per il prodotto con stime del numero di unità vendute, del prezzo e del profitto. Ciò porta alla creazione di un layout iniziale del prodotto, specifiche di progettazione e un piano di marketing del prodotto. In questa fase, i designer industriali potrebbero anche essere coinvolti per creare un nuovo concetto di packaging del prodotto.
Non dimenticare che il prezzo di vendita deve coprire i costi di marketing, progettazione e sviluppo dell’azienda oltre al costo di produzione di ciascuna unità di prodotto. Ciò dipende dal volume delle vendite, ma un livello di prezzo di due o tre volte il costo di produzione di un’unità di prodotto non è insolito.

Fase di sviluppo
La maggior parte degli sforzi di implementazione hardware e software si verificano alla fine della fase di progettazione e durante la fase di sviluppo. Un’analisi critica delle decisioni di progettazione aiuta a determinare se sia fisicamente possibile implementare un concetto di progetto in base alle specifiche del progetto. Spesso vengono creati modelli elettrici e software prima di analizzare le decisioni di progettazione. Quindi vengono progettati, costruiti e utilizzati un piccolo numero di prototipi per test hardware e software più dettagliati.
fase di produzione
Infine, nella fase di produzione, viene prodotta una grande quantità di prodotto. Innanzitutto, viene solitamente creato un piccolo lotto pilota per ulteriori test e valutazioni prima che inizi la produzione di massa. Gli ingegneri della qualità lavorano continuamente per migliorare la qualità del prodotto e del processo. Gli ingegneri di supporto si occupano delle modifiche che seguono l’introduzione di un nuovo prodotto e forniscono supporto tecnico per il prodotto. Date le attuali tendenze della globalizzazione, la produzione di massa di un nuovo dispositivo embedded spesso avviene in un altro paese dove è più conveniente. Per molti dispositivi embedded, l’intero processo richiede da sei mesi a un anno, ma il mercato competitivo costringe costantemente a un ciclo di vita del prodotto più breve.
Sviluppo di un progetto di sistema embedded
I principali sforzi di sviluppo software e di progettazione ingegneristica si verificano nella fase di sviluppo, che ora verrà descritta in dettaglio. Innanzitutto, i progettisti devono scegliere il processore e il sistema operativo. La scelta di un processore per un dispositivo embedded comporta molti fattori da considerare, come prezzo, prestazioni, consumo energetico e supporto software.

scegli il processore
I produttori forniscono manuali che descrivono i loro processori e in genere forniscono agli sviluppatori uno sviluppo completo di una scheda di riferimento che può essere utilizzata come punto di partenza quando si sviluppa un nuovo progetto di computer che utilizza questo processore. Una descrizione dettagliata di ciascun processore, dispositivo di memoria e tutti i chip richiesti esula dall’ambito di questa guida, ma alcune delle proprietà hardware più generali che influiscono direttamente sulla creazione del software verranno discusse in seguito.
collega i dispositivi hardware al processore
Dopo che il progettista hardware del sistema embedded ha selezionato il processore e i relativi dispositivi di memoria, il passo successivo è aggiungere i dispositivi I/O hardware e la corrispondente struttura bus necessaria per connettere i dispositivi richiesti al processore. La progettazione di dispositivi embedded implica la selezione e la connessione dell’hardware richiesto per vari dispositivi I/O richiesti nel nuovo progetto.
Test, debug e riprogettazione
Dopo aver inserito attentamente lo schema del progetto, viene progettata una scheda a circuito stampato (PCB) per il dispositivo embedded utilizzando un sistema di progettazione assistita da computer (CAD) di schede a circuito stampato. Questo strumento importa le informazioni di connessione dei pin da uno schema elettrico e le utilizza per progettare e testare i conduttori di rame utilizzati per connettere i circuiti integrati (IC) su una scheda a circuito stampato. Vengono create diverse schede a circuito stampato, riempite con i componenti necessari e quindi utilizzate per eseguire test software estesi sul nuovo progetto. Eventuali errori di progettazione hardware rilevati durante i test richiederanno una modifica dello schema elettrico, una modifica del progetto della scheda a circuito stampato e una nuova versione. Ciò aumenterà il ciclo di produzione di schede a circuito stampato e test, il che aumenterà di conseguenza il tempo di sviluppo.
scegli il sistema operativo
Gli strumenti di sviluppo software vengono solitamente forniti con il sistema operativo. Poiché il sistema operativo è scritto in C/C++, la generazione di un nuovo sistema operativo richiede un compilatore, un editor di collegamento, un debugger e strumenti di immagine binaria. Gli stessi strumenti vengono solitamente utilizzati per lo sviluppo di applicazioni.
Lo sviluppo del software avviene in parallelo allo sviluppo hardware per ridurre il tempo totale di sviluppo del prodotto. Ciò diventa ancora più importante data la sempre più rapida durata del ciclo di vita dei dispositivi embedded odierni. Per lo sviluppo e il test del software, è possibile utilizzare strumenti di emulazione e schede computer embedded con hardware simile che esegue lo stesso sistema operativo prima che sia disponibile una nuova piattaforma hardware. Poiché la maggior parte del codice è scritta in C/C++/C#, la maggior parte del software può persino essere sviluppata e testata su un altro processore o emulatore. Il codice viene quindi ricompilato per il nuovo processore per l’ultimo ciclo di sviluppo e test quando è disponibile un nuovo hardware.
Una volta completato lo sviluppo del software, è possibile trasferirlo su un dispositivo reale per il test e il rilascio finale. Windows Embedded CE dispone di un emulatore ARM insieme a strumenti di sviluppo. L’emulatore consente di eseguire il software su un PC a una velocità molto più elevata rispetto all’hardware reale. L’emulatore può essere utilizzato per il debug e il profiling del software e può anche essere utilizzato per lo sviluppo di software per dispositivi remoti.
Tecnologie di memoria per dispositivi embedded
La maggior parte dei dispositivi embedded attualmente utilizza due tipi di memoria, SDRAM o talvolta SRAM per la memoria principale e Flash o ROM per la memoria non volatile. SDRAM ha un costo per bit di memoria significativamente inferiore rispetto a SRAM, ma richiede un controller hardware più sofisticato per i cicli di aggiornamento dinamico della memoria periodici. Una delle decisioni più importanti che devono essere prese all’inizio del processo di progettazione è la quantità di memoria di ciascun tipo di cui il dispositivo ha bisogno.
Memoria SDRAM
SDRAM è l’abbreviazione di Synchronous Dynamic Random Access Memory. Utilizza una tensione di lavoro di 3,3 V e una larghezza di banda di 64 bit. È anche la memoria mainstream per molto tempo, dal chipset 430TX al chipset 845, tutti supportano SDRAM. La SDRAM blocca la CPU e la RAM insieme attraverso lo stesso clock, in modo che la CPU e la RAM possano condividere un ciclo di clock e funzionare in modo sincrono alla stessa velocità. Il fronte di salita di ogni impulso di clock avvia il trasferimento dei dati e la velocità è superiore del 50% rispetto alla memoria EDO.
Memoria Flash
Il sistema operativo e i programmi applicativi sono solitamente memorizzati in memoria flash, poiché la maggior parte dei dispositivi embedded non dispone di un dispositivo a disco rigido.
I dispositivi di memoria flash memorizzano i dati su chip flash. I chip flash contengono un modello di elettroni che si muovono in un ciclo. Gli elettroni sono memorizzati nella cella di memoria e si muovono avanti e indietro tra i diversi bit di dati sul chip. Il numero di bit è misurato da quanto velocemente gli elettroni si muovono tra le celle, o bit.
Quando viene apportata una modifica a un bit, viene scritto nel bit successivo. Se due bit vengono modificati contemporaneamente, vengono aggiunti due nuovi byte al programma e così via.
SDRAM vs Flash
SDRAM è più veloce della memoria flash, rendendola ideale per applicazioni che richiedono un accesso rapido ai dati.
SDRAM consuma meno energia della memoria flash, rendendola ideale per dispositivi portatili.
SDRAM è più costosa della memoria flash, rendendola meno ideale per applicazioni in cui il costo è un problema.
La memoria flash è più durevole della SDRAM, quindi è spesso utilizzata in applicazioni in cui i dati devono essere memorizzati per lunghi periodi di tempo.
La memoria flash ha una velocità di lettura molto più lenta rispetto alla SDRAM.
La memoria flash supporta solo un numero limitato di operazioni di scrittura, quindi l’utilizzo di un sistema di memoria virtuale con paging su richiesta (come in un PC desktop) con memoria flash (invece di un disco rigido) che funge da dispositivo di scambio di pagine di memoria virtuale di solito non viene utilizzato nei dispositivi embedded.




