Microprocessore (MPU) o microcontroller (MCU)?

Microprocessore (MPU) o microcontrollore (MCU)? Quali fattori devono essere presi in considerazione nella scelta del giusto dispositivo di elaborazione per un nuovo progetto?

Cosa sono una MPU e una MCU?

Selezionare il dispositivo giusto su cui basare il tuo nuovo progetto può essere scoraggiante. Il bisogno di creare il giusto equilibrio tra prezzo, prestazioni e consumo di energia ha in sé molte implicazioni. Innanzitutto, vanno fatte delle considerazioni tecnologiche immediate per il progetto che si è in grado di intraprendere, ma se il dispositivo, che sia esso un microcontroller (MCU) o un microprocessore (MPU), diventa la base che fungerà da piattaforma per una serie di nuovi prodotti, in quel caso la decisione può avere delle conseguenze a lungo termine.

Innanzitutto, consideriamo alcune delle principali differenze tra MCU e MPU. Solitamente un MCU utilizza una memoria flash incorporata on-chip in cui memorizzare ed eseguire il proprio programma. Memorizzare in questo modo il programma implica che l'MCU abbia un brevissimo periodo di avviamento e possa eseguire il codice in tempi molto rapidi. L'unico limite pratico nell’uso della memoria incorporata è che lo spazio della memoria disponibile totale è limitato. La maggior parte dei dispositivi MCU Flash presenti sul mercato hanno un massimo di 2 Mbyte di memoria di programma e, in base all'applicazione, questo può rivelarsi un fattore limitante. Gli MPU non hanno vincoli di memoria simili. Si servono di una memoria esterna per fornire il programma e l'archiviazione dei dati. Si servono di una memoria esterna per fornire il programma e la memorizzazione dei dati. Il programma viene solitamente memorizzato in una memoria non volatile, come NAND o Flash seriale, e all'avvio viene caricato in una DRAM esterna per poi iniziare l'esecuzione. Ciò significa che l'MPU non sarà avviato ed eseguito con la stessa velocità di un MCU, ma la quantità di DRAM e NVM che è possibile collegare al processore si attesta sulla gamma delle centinaia di Mbyte e persino Gbyte per NAND. Un'altra differenza è l'alimentazione. Incorporando il proprio alimentatore di energia, ad un MCU servirà solamente un terminale di alimentazione. Rispetto a un MPU che richiede diversi terminali di alimentazione per il core, il DDR e così via. Lo sviluppatore dovrà far fronte a questo servendosi di circuiti di alimentazione aggiuntivi/convertitori di bordo.

Dal punto di vista applicativo, alcuni aspetti delle specifiche di progettazione potrebbero orientare la selezione del dispositivo in modi particolari. Ad esempio, il numero di canali di interfaccia periferici richiesti è maggiore rispetto a quello a cui potrebbe provvedere un MCU? O anche, la specifica stabilisce una capacità d'interfaccia utente che non sarà possibile con un MCU perché non contiene abbastanza memoria on-chip o non ha le prestazioni richieste? Quando si intraprende il primo progetto e si sa tutto questo, è molto probabile che ci siano molte variazioni di prodotto. In tal caso, è possibile che si preferisca un approccio di progettazione basato su piattaforma. Questo darebbe più "spazio" in termini di potenza di elaborazione e di capacità di interfaccia per poter accogliere i futuri aggiornamenti delle funzioni.

Un attributo difficile da determinare è la prestazione di elaborazione richiesta che un dato progetto potrebbe richiedere. La potenza di elaborazione, misurata in termini di Dhrystone MIPS (DMIPS), aiuta a quantificare questi criteri. Per esempio, un microcontroller basato su ARMCortex-M4 come ad esempio SAM 4 MCU di Atmel arriva a 150 DMIPS mentre un processore con applicativo ARM Cortex-A5 (MPU) come ad esempio SAMA5D di Atmel può garantire fino a 850 DMIPS. Un modo per valutare la DMIPS richiesta è quello di cercare le parti dell'applicazione che potrebbero richiedere elevate prestazioni. Eseguire un sistema operativo completo (OS), come ad esempio Linux, Android oppure Windows CE, per l'applicazione richiederebbe almeno 300-400 DMIPS. Per molte applicazioni, potrebbe bastare un RTOS e sarebbe più che adeguata una tolleranza di 50 DMIPS. Usare un RTOS ha anche il beneficio di richiedere poco spazio di memoria; un kernel ha generalmente solo pochi kB. Purtroppo, per funzionare, un sistema operativo completo necessita di un'unità di gestione della memoria (MMU); questa a sua volta specifica il tipo di core del processore da utilizzare e richiede una maggiore capacità del processore.

Per eseguire applicazioni che sono molto intensive, il margine DMIPS necessario deve essere riservato al di là di ogni OS e ad altri compiti di comunicazione e controllo. Quanto più un'applicazione è basata sui numeri, tanto più è probabile che sia necessaria una MPU.

Applicazioni di microcontroller e microprocessori

Che l'applicazione prevista sia rivolta all'elettronica di consumo o all' automazione industriale, l'interfaccia utente (UI) può essere un fattore da considerare attentamente. In quanto consumatori, abbiamo acquisito familiarità e dimestichezza con l'uso di interfacce utente grafiche intuitive e colorate. Le applicazioni industriali usano sempre di più questo metodo di interazione dell'operatore sebbene l'ambiente operativo possa limitare quanto questo sia garantito. Per l'interfaccia utente vi sono diversi fattori. Innanzitutto, il carico di elaborazione richiesto. Per una libreria di UI come Qt, che è ampiamente usata in Linux, 80 -100 DMIPS possono essere sufficienti. Il secondo fattore ha a che fare con la complessità dell'interfaccia. Maggiori animazioni, effetti, contenuti multimediali vi sono, maggiore sarà il numero di modifiche applicate all'immagine che viene mostrata, maggiore potenza di elaborazione e memoria sarà necessaria. E questi requisiti aumentano con la risoluzione, che è il motivo per cui alle applicazioni incentrate sulla UI si adattano meglio gli MPU. D'altra parte, un'interfaccia più semplice con immagini pseudo-statiche a bassa risoluzione può essere coperta da un MCU. Un altro argomento a favore dell'MPU è che generalmente è dotato di un controller LCD TFT incorporato. Pochissimi MCU hanno questa funzionalità. Il controller LCD TFT e alcuni altri componenti di driver esterni devono essere aggiunti esternamente. Quindi, anche se è possibile realizzarlo con un MCU, lo sviluppatore deve considerare il BOM complessivo. Ora sul mercato vengono introdotte alcune MCU Flash con controller LCD TFT integrati, ma è comunque necessario che ci sia abbastanza memoria SRAM integrata per gestire il display.   Per esempio, il formato QVGA 320 x 240 a 16 colori richiede 150 kB di SRAM per alimentare e aggiornare il display. Si tratta di una quantità piuttosto elevata di SRAM da dedicare; pertanto potrebbe essere necessaria una memoria aggiuntiva che va ad aggiungersi al BOM e a colmare il divario con la soluzione MPU. Le interfacce grafiche più complesse ed avanzate, specialmente se usano monitor più grandi di 4,3", potrebbero includere un MPU. Se le MPU sono considerate dominanti quando si tratta di eseguire un'interfaccia utente su uno schermo TFT a colori, le MCU sono le sovrane per il controllo di LCD a matrice di punti o a segmenti e di altri schermi con interfacce seriali.

Collegamento dei dispositivi

Dal punto di vista della connettività, la maggior parte dei dispositivi MCU e MPU sono disponibili con tutte le interfacce periferiche più diffuse. Ma le periferiche di comunicazione ad alta velocità, come ad esempio HS USB 2.0, porte Ethernet 10/100 multiple oppure porte Gigabit Ethernet, si trovano generalmente negli MPU perché sono in grado di gestire ed elaborare meglio grandi quantità di dati. La domanda chiave è se ci sono abbastanza canali disponibili e larghezza di banda per gestire il traffico di dati. A seconda dei protocolli di comunicazione utilizzati, deve essere controllato l'impatto sullo spazio del codice usato con gli stack della terza parte. Le applicazioni che richiedono connettività ad alta velocità, soprattutto in combinazione con l'utilizzo di stack basati sul sistema operativo, richiederanno una progettazione basata su MPU. 

Un altro aspetto chiave che determinerà la scelta tra una MCU e una MPU è la necessità di un comportamento deterministico/in tempo reale dell'applicazione. Per via del processore core usato in un MCU, come anche il flash incorporato e considerato il software usato, che è un RTO oppure un C bare metal, l'MCU prenderà definitivamente la guida di questo aspetto e coprirà alla perfezione le applicazioni più critiche e deterministiche.

Modalità di potenza e prestazioni di MPU e MCU

Un ultimo punto da considerare è il consumo energetico. Mentre gli MPU hanno modalità di bassa potenza, non esistono molti MCU simili. Con un hardware esterno di supporto, un MPU ha un fattore aggiuntivo, e impostare un MPU in modalità di bassa potenza potrebbe essere leggermente più complesso. Inoltre, il consumo attuale di un MCU è relativamente più basso rispetto ad un MPU, in modalità di bassa potenza per esempio con un SRAM e un mantenimento registrato, possiamo considerare un fattore tra 10 e 100. Questo, ovviamente, è direttamente correlato all'ammontare di RAM richiesto dal sistema operativo e quindi occorre energia per riprendere il funzionamento nell'immediato. Le decisioni coinvolte nella scelta tra un approccio a base MCU oppure MPU sono molte e coinvolgono le prestazioni, la disponibilità e il costo del BOM. In termini generali, le MCU tendono a essere utilizzate in soluzioni ottimizzate in termini di costi, in cui è essenziale un controllo rigoroso della BOM e del risparmio energetico.   Gli MPU tendono a essere utilizzati per applicazioni ricche di funzionalità e ad alte prestazioni. Gli MCU tendono a essere usati in applicazioni a potenza molto bassa come ad esempio telecomandi, prodotti elettronici di consumo e parchimetri intelligenti, dove l'enfasi della progettazione è sulla durata alla batteria e l'interazione con la UI è limitata o inesistente. Vengono utilizzati anche quando è richiesto un comportamento altamente deterministico. Gli MPU sono ideali per le applicazioni industriali e consumer basate sul sistema operativo che possono presentare un'elevata intensità di calcolo e richiedono una connettività multipla ad alta velocità o un'interfaccia utente completa.

La scelta di un fornitore che offra prodotti MCU e MPU altamente compatibili e che permetta di migrare facilmente verso l'alto e verso il basso, massimizzando il riutilizzo del software, offre il miglior ritorno sull'investimento nel tempo.


Ti sei già registrato?
Iscriviti per ricevere offerte speciali, novità sui prodotti e gli ultimi sviluppi del settore.

Articoli correlati

Ultime notizie

Sorry, your filter selection returned no results.

Non perderti le ultime novità sull'elettronica

Abbiamo aggiornato la nostra Politica sulla privacy. Ti preghiamo di verificare le modifiche apportate. Facendo clic su "Accetto", dichiari di accettare la Politica sulla privacy e i Termini di utilizzo di Arrow Electronics.

Il nostro sito web mette i cookies sul vostro dispositivo per migliorare la vostra esperienza e il nostro sito. Leggete altre informazioni sui cookies che usiamo e su come disabilitarli qui. I cookies e le tecnologie di tracking possono essere usati per scopi commerciali.

Con un click su “Accept”, voi consentite l'inserimento dei cookies sul vostro dispositivo e l'uso da parte nostra di tecnologie di tracking. Per avere altre informazioni e istruzioni su come disabilitare i cookies e le tecnologie di tracking, clickate su “Read More” qui sotto. Mentre l'accettazione dei cookies e delle tecnologie di tracking è volontaria, una loro disabilitazione potrebbe determinare un funzionamento non corretto del sito web, ed alcuni messaggi di allarme potrebbero essere per voi meno importanti.

Noi rispettiamo la vostra privacy. Leggete qui la nostra politica relativa alla privacy