- Microcontrollore e microprocessore
- Fattori da considerare quando si seleziona una MPU o MCU
- 1. Potenza di elaborazione
- 2. Interfacce
- 3. Memoria
- 4. Potenza
- Conclusione
Il cervello di un dispositivo incorporato, che è l'unità di elaborazione, è un fattore determinante per il successo o il fallimento del dispositivo nel portare a termine le attività per cui è stato progettato. L'unità di elaborazione è responsabile di ogni processo che coinvolge dall'input al sistema, all'output finale, quindi selezionare la piattaforma giusta per il cervello diventa molto importante durante la progettazione del dispositivo poiché ogni altra cosa dipenderà dall'accuratezza di quella decisione.
Microcontrollore e microprocessore
I componenti di elaborazione utilizzati per i dispositivi embedded possono essere suddivisi in due grandi categorie; Microcontrollori e microprocessori.
I microcontrollori sono piccoli dispositivi di elaborazione su un singolo chip che contengono uno o più core di elaborazione, con dispositivi di memoria incorporati accanto a porte di ingresso e uscita (I / O) speciali e generiche programmabili. Sono utilizzati soprattutto nelle applicazioni in cui è necessario eseguire solo attività ripetitive specifiche. Abbiamo già discusso della selezione del microcontrollore giusto per i tuoi progetti embedded.
I microprocessori d'altra parte sono dispositivi informatici di uso generale che incorporano tutte le funzioni dell'unità di elaborazione centrale su un chip ma non includono periferiche come memoria e pin di input e output come il microcontrollore.
Sebbene i produttori stiano ora cambiando molte cose che stanno offuscando il confine tra microcontrollori e microprocessori come l'uso della memoria su chip per microprocessori e la capacità dei microcontrollori di connettersi a una memoria esterna, esistono ancora differenze chiave tra questi componenti e il progettista è necessario scegliere il migliore tra di loro per un particolare progetto.
Ulteriori informazioni sulla differenza tra microcontrollore e microprocessore.
Fattori da considerare quando si seleziona una MPU o MCU
Prima di prendere qualsiasi decisione sulla direzione da prendere in merito al dispositivo di elaborazione da utilizzare per la progettazione di un prodotto embedded, è importante sviluppare le specifiche di progetto. Lo sviluppo delle specifiche di progettazione fornisce una via per la pre-progettazione del dispositivo che aiuta a identificare nei dettagli, il problema da risolvere, come deve essere risolto, evidenzia i componenti da utilizzare e molto altro ancora. Questo aiuta il progettista a prendere decisioni generali informate sul progetto e aiuta a determinare in quale direzione viaggiare per l'unità di elaborazione.
Di seguito sono descritti alcuni dei fattori nelle specifiche di progettazione che devono essere considerati prima di scegliere tra un microcontrollore e un microprocessore.
1. Potenza di elaborazione
La potenza di elaborazione è una delle cose principali (se non la principale) da considerare quando si sceglie tra un microcontrollore e un microprocessore. È uno dei principali fattori che inclinano l'uso dei microprocessori. Viene misurato in DMIPS (Dhrystone Million of Instructions Per Seconds) e rappresenta il numero di istruzioni che un microcontrollore o microprocessore può elaborare in un secondo. È essenzialmente un'indicazione della velocità con cui un dispositivo può completare un'attività assegnatagli.
Sebbene determinare l'esatta potenza di calcolo richiesta dal progetto possa essere un compito molto difficile, è possibile fare un'ipotesi plausibile esaminando le attività, il dispositivo è stato creato per eseguire e quali potrebbero essere i requisiti computazionali di tali attività. Ad esempio, lo sviluppo di un dispositivo che richiede l'uso di un sistema operativo completo o embedded Linux, Windows CE o qualsiasi altro sistema operativo richiederebbe una potenza di elaborazione fino a 500 DMIPS, suonando come un processore? Sì. Inoltre, l'esecuzione di un sistema operativo su un dispositivo richiederà un'unità di gestione della memoria (MMU) che aumenterà la potenza di elaborazione richiesta. Anche le applicazioni dei dispositivi che richiedono molta aritmetica richiedono DMIPS molto elevatie più sono i calcoli matematici / numerici che il dispositivo deve eseguire, più i requisiti di progettazione si inclinano verso l'uso di un microprocessore a causa della potenza di elaborazione richiesta.
Un'altra implicazione principale della potenza di elaborazione che influenza la scelta tra microprocessori e microcontrollori è la complessità o semplicità di cose come le interfacce utente. Oggigiorno è una cosa desiderabile avere GUI colorate e interattive anche per le applicazioni più elementari. La maggior parte delle librerie utilizzate nella creazione di interfacce utente come QT richiedono una potenza di elaborazione fino a 80-100 DMIPS e più animazioni, immagini e altri contenuti multimediali vengono visualizzati, maggiore è la potenza di elaborazione richiesta. Tuttavia, le interfacce utente più semplici su schermi a bassa risoluzione richiedono poca potenza di elaborazione e possono essere alimentate utilizzando microcontrollori, poiché molti di questi oggigiorno sono dotati di interfacce incorporate per interagire con diversi display
Oltre ad alcune delle funzioni principali sopra menzionate, è importante riservare una certa potenza di elaborazione per le comunicazioni e altre periferiche. Sebbene la maggior parte degli esempi sopra riportati tendano a supportare l'uso di microprocessori, sono generalmente più costosi rispetto ai microcontrollori e saranno eccessivi se utilizzati in determinate soluzioni, ad esempio l'utilizzo di un microprocessore da 500 DMIPS per automatizzare una lampadina comporterà il costo complessivo del prodotto superiore al normale e potrebbe alla fine portare al suo fallimento nel mercato.
2. Interfacce
L'interfaccia da utilizzare per collegare i diversi elementi del prodotto è uno dei fattori da considerare prima di scegliere tra un microcontrollore e un microprocessore. È importante assicurarsi che l'unità di elaborazione da utilizzare abbia le interfacce richieste dagli altri componenti.
Dal punto di vista della connettività e delle comunicazioni, ad esempio, la maggior parte dei microcontrollori e dei microprocessori possiede le interfacce necessarie per connettersi ai dispositivi di comunicazione, ma quando sono necessarie periferiche di comunicazione ad alta velocità come l'interfaccia USB 3.0 ad alta velocità, più porte Ethernet 10/100 o porta Gigabit Ethernet, le cose inclinarsi nella direzione del microprocessore poiché l'interfaccia richiesta per supportarli si trova generalmente solo su di essi perché sono più in grado di gestire ed elaborare grandi quantità di dati e la velocità con cui tali dati vengono trasferiti.
L'impatto dei protocolli utilizzati per queste interfacce sulla quantità di memoria richiesta per il firmware dovrebbe essere confermato poiché tendono ad aumentare i requisiti di memoria. È una regola generale che un design basato su microprocessore venga adottato per applicazioni che richiedono connettività ad alta velocità con grandi quantità di dati scambiati, specialmente quando il sistema prevede l'uso di un sistema operativo.
3. Memoria
Questi due dispositivi di elaborazione dati gestiscono la memoria e l'archiviazione dei dati in modo diverso. I microcontrollori, ad esempio, sono dotati di dispositivi di memoria fissi incorporati, mentre i microprocessori sono dotati di interfacce a cui è possibile collegare dispositivi di memoria. Due principali implicazioni di questo sono;
Costo
Il microcontrollore diventa una soluzione più economica, poiché non richiede l'utilizzo di un dispositivo di memoria aggiuntivo mentre il microprocessore diventa una soluzione costosa da adottare a causa di queste ulteriori esigenze.
Memoria limitata
La memoria fissa sul microcontrollore limita la quantità di dati che possono essere memorizzati su di esso. Questa è una situazione non applicabile ai processori poiché di solito sono collegati a dispositivi di memoria esterni. Un buon esempio di quando questa limitazione può essere un problema è quando si sviluppa il firmware per il dispositivo. L'aggiunta di kilobyte aggiuntivi alla dimensione del codice potrebbe richiedere una modifica del microcontrollore da utilizzare, ma se il progetto fosse basato su un processore, dovremo solo cambiare il dispositivo di memoria. Pertanto i microprocessori offrono maggiore flessibilità con la memoria.
Ci sono molti altri fattori basati sulla memoria da considerare, uno di questi è il tempo di avvio (avvio). I microprocessori, ad esempio, memorizzano il firmware su una memoria esterna (di solito una memoria NAND esterna o Flash seriale) e all'avvio, il firmware viene caricato nella DRAM del processore. Sebbene ciò avvenga entro un paio di secondi, potrebbe non essere l'ideale per alcune applicazioni. Il microcontrollore dall'altro impiega meno tempo.
Per considerazioni generali sulla velocità, l' MCU di solito vince grazie alla sua capacità di affrontare le applicazioni più critiche in termini di tempo a causa del core del processore utilizzato in esse, del fatto che la memoria è incorporata e il firmware utilizzato con esse è sempre un RTOS o un bare metal C.
4. Potenza
Un ultimo punto da considerare è il consumo di energia. Sebbene i microprocessori abbiano modalità a basso consumo, queste modalità non sono tante quanto quelle disponibili su un tipico MCU e con i componenti esterni richiesti da un design basato su microprocessore, è leggermente più complesso ottenere modalità a basso consumo. A parte le modalità a basso consumo, la quantità effettiva di energia consumata da un MCU è molto inferiore a quella consumata da un microprocessore, perché maggiore è la capacità di elaborazione, maggiore è la quantità di energia richiesta per mantenere il processore attivo e funzionante.
I microcontrollori tendono quindi a trovare applicazioni in cui sono richieste unità di elaborazione a bassissima potenza come telecomandi, elettronica di consumo e diversi dispositivi intelligenti in cui l'enfasi del design è sulla longevità della durata della batteria. Sono utilizzati anche dove è necessario un comportamento altamente deterministico.
I microprocessori d'altra parte sono ideali per applicazioni industriali e di consumo che richiedono un sistema operativo, sono ad alta intensità di calcolo e richiedono connettività ad alta velocità o un'interfaccia utente con molte informazioni multimediali.
Conclusione
Esistono molti altri fattori che servono come determinanti per la scelta tra queste due piattaforme e tutti rientrano in prestazioni, capacità e budget, ma la selezione complessiva diventa più facile quando è in atto una pre-progettazione del sistema adeguata e i requisiti sono chiaramente indicati. I microcontrollori vengono utilizzati principalmente in soluzioni con un budget BOM molto limitato e con requisiti di alimentazione rigorosi, mentre i microprocessori vengono utilizzati in applicazioni con enormi requisiti di calcolo e prestazioni.