In element14 supportiamo da otto anni i progettisti attraverso la comunità element 14. In questo periodo abbiamo assistito in prima persona alla svolta che si è verificata nel mercato dei microcontrollori dovuta ai progressi in campo tecnologico e al lancio dell’architettura a 32 bit che offrono ai progettisti la possibilità di raggiungere livelli impensabili in passato. Un gran numero dei miliardi di dispositivi embedded utilizzati quotidianamente su scala mondiale sono alimentati da microcontrollori legacy a 8 e 16 bit. Molti progettisti di dispositivi embedded si sono formati su queste architetture più vecchie, la cui semplicità, economicità e basso consumo energetico continuano a decretarne il successo malgrado il decollo dei dispositivi a 32 bit. A fronte della diffusione sempre maggiore di questi ultimi, cresce anche l’esigenza di esporre le differenze, i vantaggi e le opportunità offerti dalle architetture più recenti. In occasione di ogni nuovo progetto aumenta il numero di interrogativi: Che cosa mi perdo continuando a utilizzare i dispositivi a 8 bit? Che cosa mi offre concretamente un’architettura a 32 bit? Considerato che i dispositivi a 32 bit si stanno imponendo nelle vendite di Mcu embedded, è arrivato il momento di fare il grande passo prima di essere tagliato fuori? Per fortuna il settore in cui lavoriamo è affascinante proprio perché la spinta all’innovazione non si arresta mai. Grazie alla disponibilità di core come Arm Cortex- M0+, presente in dispositivi prodotti da Freescale, Atmel, Nxp e altri, i processori a 32 bit vantano ormai gli stessi punti di forza degli Mcu legacy oltre a offrire tutta una serie di vantaggi che rendono pressoché irrinunciabile l’upgrading. Il core Cortex-M0+ è stato progettato proprio per favorire al massimo il passaggio dei propri progetti al successivo livello dei 32 bit.
Perché passare ai 32 bit?
Se si chiedesse a uno studente di ingegneria per quale motivo migrare dagli 8 ai 32 bit, si riceverebbe una risposta scontata: perché il numero di bit è superiore di 4 volte, maggiore è sempre meglio. In realtà il quadro non è così semplice, ma esistono molte buone ragioni per adottare i microcontrollori a 32 bit anche in progetti tradizionali a 8 e 16 bit.
- Prestazioni più elevate - Il passaggio a un core a 32 bit può fornire una prestazione da 2 a 40 volte superiore per MHz delle attuali architetture a 8 e 16 bit. L’elaborazione matematica a 32 bit è molto più rapida e la moltiplicazione a 32 bit è a ciclo unico, così come I/O per bit banging ed emulazione di protocolli software. Tutta questa potenza spalanca un nuovo mondo di possibilità con stack software (Usb, Bluetooth, ecc.), Rtos, IU avanzate e molto altro, con ampia disponibilità di potenza elaborativa per la definizione delle funzioni della propria applicazione.
- Maggiore efficienza energetica - Il core Cortex-M0+ è anche straordinariamente efficiente facendo registrare un Coremark/mA quasi doppio rispetto ad altri concorrenti a 16 bit. Grazie alla presenza del core Cortex-M0+ più potente, il sistema embedded assorbe una quantità di energia minore eseguendo i propri task in un tempo più breve e ritornando successivamente al modo sleep. Perfino il consumo nei modi sleep è straordinariamente ridotto, fino a <500nA a livello del più profondo dei 9 modi di alimentazione disponibili nella famiglia Kinetis L Freescale senza contare che, grazie a moduli di periferiche progettati in modo intelligente come quelli presenti nelle famiglie Kinetis, è possibile effettuare un numero maggiore di operazioni senza risvegliare il core, con conseguente ulteriore risparmio energetico.
- Maggiore densità del codice - Che l’uso di un processore a 32 bit faccia diminuire le dimensioni del codice potrebbe sembrare contrario al buon senso ma il core Cortex-M0+ utilizza istruzioni Thumb-2, molte delle quali occupano solo 16 bit di memoria flash. Non bisogna poi dimenticare che la lunghezza di molte istruzioni nei processori a 8 bit è di fatto superiore a 8 bit senza contare che, in base all’applicazione, numerosi byte di istruzioni a 8 bit possono essere sostituiti da un’unica istruzione su un Mcu a 32 bit, come nell’esempio di moltiplicazione a 16 bit riportato di seguito. Di conseguenza la densità del codice può migliorare notevolmente passando a un’architettura a 32 bit che utilizza istruzioni Thumb-2.
- Scalabilità - Il linguaggio assembly, che nel mondo a 8 bit è legato a un’unica specifica architettura fornita da un unico costruttore specifico, non rappresenterà più un ostacolo a fronte dell’evoluzione delle esigenze in termini di progetto e di prestazioni. L’utilizzo di codice C invece di assembly per i dispositivi a 32 bit riduce i tempi di sviluppo e debugging e semplifica ulteriormente il porting del codice su nuovi dispositivi. Infine, visto il numero di microcontrollori Arm a 32 bit diffusi a livello mondiale, le dimensioni dell’ecosistema software continuano a crescere.
Uno nuovo scenario per i 32 bit
Ma… starete pensando: certo, tutto molto bello ma per la mia applicazione io ho bisogno delle dimensioni ridotte, del prezzo contenuto e della facilità d’uso che mi garantiscono gli Mcu a 8/16 bit. Fortunatamente si sta delineando uno scenario completamente nuovo per i microprocessori a 32 bit.
- Dimensioni - Con dimensioni pari a 1,6 x 2 mm, come nella famiglia Kinetis KL03 Freescale, il microcontrollore Arm più piccolo esistente al mondo, prestazioni a 32 bit sono possibili anche in casi di dimensioni estremamente ridotte.
- Costi - Considerato che il prezzo di partenza di alcuni dispositivi è pari a soli 0,49 dollari, gli Mcu a 32 bit possono essere utilmente inseriti in applicazioni in precedenza proibitive sul piano dei costi e, in presenza di una maggiore densità del codice, potrebbe rendersi necessaria una minore capacità di memoria flash.
- Complessità - Anche se può apparire sorprendente, per certi aspetti l’architettura a 32 bit può presentarsi addirittura più semplice. Con 32 bit di spazio di indirizzamento non è più necessario ricorrere al paging ed è possibile accedere direttamente agli indirizzi di memoria. L’architettura del core Cortex-M0+ dispone di un interrupt controller con funzionalità completa, per cui la gestione degli interrupt risulta semplificata. Aggiungeteci anche un trace buffer per facilitare il debugging e solo 56 istruzioni per coloro che desiderano continuare a usare il linguaggio assembly e il “grande balzo” verso la complessità a 32 bit si reduce di fatto a un piccolo saltello.
Lo sviluppo con 32 bit
Uno dei vantaggi principali derivanti dall’uso di un core Arm a 32 bit è la straordinaria quantità di hardware e software abilitanti disponibili sul mercato, tra cui un numero incredibile di compilatori e debugger compatibili. È più semplice riutilizzare hardware e software in caso di scalabilità dei progetti dal core Cortex-M0+ al più potente core Cortex-M4 senza contare che, grazie alla compatibilità a livello di moduli e pin tra gli Mcu Kinetis Freescale, centinaia di dispositivi all’interno delle varie famiglie, lo spostamento lungo la curva prestazioni/flash diventa molto più semplice. Freescale fa compiere un ulteriore passo in avanti all’abilitazione a 32 bit con il tool di modellazione software Processor Expert e il sistema operativo in real time MQX-Lite per consentire ai progettisti di lavorare più rapidamente sui nuovi progetti a 32 bit. Il tool di modellazione software Processor Expert è un tool Gui complementare studiato per la generazione di codice e creazione di driver personalizzati, con conseguente riduzione dei tempi di sviluppo. Il sistema operativo in real time MQX-Lite è una versione semplificata del diffuso Rtos MQX ed è stato studiato specificamente per microcontrollori con meno di 4 kb di memoria. I driver per il Rtos provengono dal tool di modellazione software Processor Expert: poiché si tratta di un subset del sistema operativo in real time MQX i futuri upgrade a dispositivi più potenti ne risultano semplificati. Viene fornito gratuitamente con il tool di modellazione software Processor Expert e per i dispositivi muniti di Usb esiste anche uno stack Usb gratuito.
La prossima fase
Adesso che volete verificare cosa ha da offrire l’architettura a 32 bit, da dove cominciare? Fortunatamente sono disponibili numerose schede che costituiscono un’ottima piattaforma di valutazione a 32 bit a un costo inferiore a quello di una pizza. FRDM-KL05Z è il prodotto ideale per un primo assaggio del mondo a 32 bit ed è pin compatibile con i dispositivi S08 a 8 bit di Freescale. FRDM-KL26Z aggiunge Usb e moduli di periferiche più avanzati mentre FRDM-KL46Z compie un ulteriore passo in avanti con il supporto sia di Usb che di Lcd a segmenti. Nel caso in cui I/O 5V e la solidità elettrica siano elementi critici per la vostra applicazione FRDM-KE02 è proprio il prodotto che fa per voi. Tutte queste 4 schede dalle dimensioni ridotte comprendono core Cortex-M0+ e sono abilitate con il tool di modellazione software Processor Expert, il sistema operativo in tempo reale MQX-Lite, stack Usb gratuiti e altro ancora. Inoltre, grazie a un circuito di debugging denominato OpenSda incorporato nella scheda, un semplice cavo Usb è in grado di fornire tutte le funzionalità di debugging, di comunicazione seriale e di programmazione flash di cui avete bisogno. Tutte queste schede, unitamente alla intera linea di piattaforme di sviluppo Freescale Freedom, sono compatibili con lo scudo Arduino e facilitano l’accesso ai pin I/O analogici e digitali. Il kit di valutazione sensori Mems è un ottimo esempio delle possibilità che possono essere abilitate in quanto abbina una piattaforma di sviluppo Freescale Freedom FRDM-KL25Z a uno scudo di valutazione sensori Mems, per cui i microcontrollori della famiglia Kinetis L hanno accesso a tutta una serie di sensori estremamente avanzati per esplorare il mondo circostante. Lungo l’intero processo di apprendimento è importante tenersi in contatto con altri progettisti ed è in questo senso che la comunità element14 può fornire supporto. Spesso un altro progettista ha già trovato la soluzione di un problema che vi assilla: per questo motivo le comunità on-line possono rivelarsi un’ottima risorsa.
Un futuro a 32 bit
La tecnologia avanza incessantemente e la tendenza che vede l’inserimento di microcontrollori a 32 bit in un numero crescente di applicazioni embedded non può che accelerare. Noi di element14 supportiamo i progettisti in ogni fase del processo di progettazione, dai kit di sviluppo ai prototipi e alla produzione, per consentire loro di prendere in tutta tranquillità la decisione di migrare a una nuova architettura a 32 bit. A fronte di prestazioni più elevate, di una straordinaria efficienza energetica e di una maggiore densità del codice, è arrivato il momento di compiere il primo passo verso un futuro più luminoso a 32 bit.