Come creare dispositivi intelligenti più efficaci: Parte 3 - Prestazioni del processore
Contributo di Editori nordamericani di DigiKey
2018-10-30
Nota dell'editore - Questo articolo in tre parti illustra come è possibile realizzare dispositivi intelligenti più efficaci. La Parte 1 tratta delle tecniche per realizzare progetti a basso consumo mirati a bilanciare potenza e prestazioni. La Parte 2 si occupa delle sfide poste dalla sicurezza trasparente per l'utente. La Parte 3 (questa) prende in esame le specifiche degli MCU necessarie per raggiungere gli obiettivi di progetto.
Gli utenti si aspettano che i dispositivi intelligenti abbiano elevate capacità, siano sicuri e garantiscano una durata estesa della batteria. Per soddisfare queste aspettative, gli sviluppatori possono ora contare su MCU che oltre a offrire memoria sufficiente e consumi contenuti per rispondere ai requisiti immediati di funzionalità, consentono anche aggiornamenti sicuri per il miglioramento delle funzionalità e la correzione dei bug.
Gli MCU, che rappresentano il cuore di dispositivi indossabili e IoT e di altri prodotti portatili intelligenti, non possono prescindere da un giusto mix di alte prestazioni e basso consumo per eseguire applicazioni software sempre più sofisticate in prodotti con fattore di forma contenuto e ridurre al minimo l'esaurimento della carica della batteria. Per l'esperienza dell'utente, è fondamentale poter contare su sicurezza, lunga vita operativa e facilità d'uso.
Questo articolo mostrerà come soddisfare questi requisiti utilizzando una linea di MCU di serie e con un ottimo supporto, offerta da Maxim Integrated.
Cosa si intende per "buona esperienza utente"
Per molti versi, i requisiti degli utenti non sono granché diversi da quelli che fino ad oggi gli sviluppatori hanno cercato di soddisfare. Tuttavia, i progettisti devono affrontare una differenza fondamentale che caratterizza le soluzioni accettabili per i prodotti intelligenti emergenti. Gli utenti si aspettano prodotti sempre più compatti, leggeri e che si adattino comodamente ad essere indossati o che si inseriscano in modo discreto nelle loro abitazioni o aziende. È più probabile che gli utenti accettino un prodotto intelligente che non richieda un'attenzione eccessiva o troppo impegno per utilizzarlo, ricaricarlo e aggiornarlo, sempre senza trascurare il lato sicurezza.
Oltre alla facilità di interazione, gli utenti si aspettano che i prodotti intelligenti conservino grossomodo dimensioni e aspetto - incluso lo "stile" - dei prodotti convenzionali che offrono funzionalità simili. Saranno più propensi ad accettare un dispositivo indossabile per il fitness, ad esempio, che assomigli più a un braccialetto o ad un orologio da polso, che un dispositivo dall'aspetto strano da mettere al polso.
Naturalmente, anche i prodotti che superano la prova di facilità di interazione e stile possono rivelarsi un insuccesso se non sono offrono un valore sufficiente. Un elegante dispositivo indossabile ma con poche informazioni utili non è altro che un braccialetto costoso. Affinché tecnologia e stile si sposino felicemente, è necessario inserire un certo livello di intelligenza invisibile.
Per implementarla, gli sviluppatori devono adattare caratteristiche di livello superiore come una confortevole interazione, un aspetto familiare e informazioni di alto valore da tradurre nei requisiti specifici appropriati per la loro applicazione.
Requisiti estesi
Per il progettista, soddisfare le aspettative degli utenti in materia di facilità di interazione significa assicurare prestazioni sufficienti a produrre rapidamente risultati da software applicativo più sofisticato in esecuzione sul prodotto intelligente. A loro volta, questi requisiti funzionali si traducono nella richiesta di processori in grado di eseguire il software ed estrarre informazioni più utili da un numero crescente di tipologie di sensori.
Grazie a queste informazioni, i dispositivi potranno accedere a informazioni privilegiate che richiedono forti meccanismi di sicurezza capaci di offrire la giusta protezione senza compromettere le prestazioni dell'applicazione.
Oltre a queste esigenze immediate, i dispositivi intelligenti devono far fronte a nuovi tipi di attacchi tramite aggiornamenti software che avvengono in modo invisibile senza gravare sull'utente. Allo stesso tempo, i progetti devono incorporare funzionalità efficaci di risparmio energetico capaci di estendere la durata della batteria senza imporre all'utente batterie voluminose o cicli di ricarica frequenti.
I vari requisiti richiesti per garantire la facilità d'uso sono in sé stimolanti, ma su di essi pesa anche la necessità di soddisfare le aspettative degli utenti in materia di estetica dei prodotti intelligenti. Una batteria voluminosa, un ingombro del progetto eccessivo o un'interfaccia utente poco intuitiva possono smorzare l'interesse dell'utente prima ancora che provi a interagire con il prodotto.
Quando inseriscono l'intelligenza in un progetto, gli sviluppatori devono trovare un equilibrio tra due estremi: forma e funzione. Per raggiungere tale obiettivo, devono qualificare ulteriormente le alternative della loro soluzione, concentrandosi su opzioni in grado di risolvere i conflitti tradizionali tra alte prestazioni e basso consumo, tra funzionalità avanzate e ingombro, e tra flessibilità e sicurezza.
Un altro fattore non trascurabile è il costo. La rapida evoluzione dell'IoT e dei prodotti indossabili e intelligenti fa sì che oltre agli aggiornamenti software lo sviluppatore debba fornire l'hardware per supportare requisiti futuri. Quando pianificano i futuri miglioramenti delle funzionalità, gli sviluppatori devono bilanciare il costo incrementale del dispositivo che potrebbe essere richiesto per aggiungere ulteriore potenza e memoria ai progetti iniziali.
Alla luce di tutti questi requisiti, la migliore opportunità per trovare una soluzione è rappresentata dalla scelta di un MCU idoneo come cuore del progetto di prodotti intrinsecamente intelligenti. Anche se gli MCU a 8 e 16 bit continuano a essere molto diffusi, date le aspettative sempre più elevate degli utenti i prodotti intelligenti devono fornire prestazioni e funzionalità superiori. Di conseguenza, per progetti di sistemi intelligenti sono diventati popolari anche gli MCU a 32 bit. Ad esempio, rispetto agli MCU a 8 o 16 bit, quelli a 32 bit possono completare operazioni fondamentali come la somma di valori a 32 bit con un numero minore di cicli di istruzioni (Listato 1).
Copy
anl PSW, #0E7H ;Register Bank 0
mov a, r0 ;load X low byte into acc
add a, r4 ;add Y low byte
mov r0, a ;save result
mov a, rl ;load X next byte into acc
addc a, r5 ;add Y next byte with carry
mov rl, a ;save result
mov a, r2 ;load X next byte into acc
addc a, r6 ;add Y next byte
mov r2, a ;save result
mov a, r3 ;load X high byte into acc
addc a, r7 ;add Y high byte with carry
mov r3, a
mov C, OV
ret
(A)
mov a, r0
add rl
mov r0, a
ret
(B)
Listato 1: Per eseguire una somma a 32 bit, un MCU a 8 bit richiede un numero molto maggiore di cicli di istruzioni (A) rispetto al numero di cicli (B) di un MCU a 32 bit per la stessa operazione. (Codice per gentile concessione di Maxim Integrated)
La necessità di MCU a 32 bit ad alte prestazioni si fa ancora più pressante quando i progettisti combinano più flussi di dati dei sensori in algoritmi Sensor Fusion. Tra le varie applicazioni, gli algoritmi Sensor Fusion vengono utilizzati per generare l'orientamento preciso e le informazioni sulla posizione interna che sempre più gli utenti si aspettano dai loro prodotti indossabili e mobili. In questo ambiente, le funzionalità di MCU avanzati come quelli della famiglia Darwin di Maxim Integrated risultano essenziali per assicurare intelligenza invisibile.
Assicurare intelligenza invisibile
Gli MCU Darwin sono progettati espressamente per supportare i requisiti dei prodotti intelligenti emergenti. Della famiglia fanno parte MAX32620, MAX32625 e MAX32630, in cui il funzionamento a basso consumo si accompagna a un set completo di funzionalità integrate.
Basati su Arm® Cortex®-M4 a 32 bit con unità a virgola mobile (FPU), gli MCU Darwin combinano un supporto completo per il funzionamento a basso consumo con blocchi specializzati per la gestione delle periferiche, la supervisione dell'alimentazione e la crittografia (Figura 1). Varianti sicure come MAX32631 estendono il supporto per la sicurezza tramite una Trust Protection Unit (TPU) integrata in grado di supportare la riservatezza, l'integrità e l'autenticità in qualsiasi interazione tra il prodotto intelligente e gli host esterni.
Figura 1: Gli MCU Darwin come MAX32630 e la sua variante sicura, MAX32631, combinano prestazioni di elaborazione a 32 bit con un set completo di periferiche, interfacce e blocchi specializzati, tra cui la Trust Protection Unit (TPU) a supporto dei meccanismi di sicurezza chiave in MAX32631. (Immagine per gentile concessione di Maxim Integrated)
Gli sviluppatori possono sfruttare le numerose periferiche analogiche e digitali degli MCU e le interfacce seriali per semplificare la progettazione hardware per i sistemi che utilizzano più sensori. Per la dimostrazione di questo progetto semplificato, Maxim Integrated utilizza il kit di valutazione MAXREFDES100. Il kit comprende una scheda e un progetto di riferimento che illustra l'uso di più sensori, tra cui quello della temperatura corporea umana MAX30205 di Maxim, il front-end analogico (AFE) per ECG MAX30003, il pulsossimetro MAX30101 e altri che verrebbero usati in un tipico prodotto indossabile di fitness.
Sebbene per acquisire dati più complessi servano interfacce flessibili, l'architettura del set di istruzioni di Darwin consente a questi MCU di eseguire rapidamente i complessi algoritmi che sempre più vengono richiesti per estrarre informazioni utili da tali dati. Il set combina istruzioni a 16 e a 32 bit, riducendo l'ingombro del software applicativo pur mantenendo la capacità dell'architettura a 32 bit di eseguire più istruzioni per byte. Oltre alla FPU integrata, l'architettura della CPU Darwin include sia un moltiplicatore-accumulatore (MAC) hardware ad alta velocità, sia capacità di elaborazione parallela SIMD (istruzione singola, dati multipli), per offrire funzionalità di elaborazione dei segnali digitali.
Grazie alla combinazione di istruzioni DSP e virgola mobile, gli MCU Darwin riescono a eseguire più velocemente gli algoritmi ad alta intensità di dati necessari per creare intelligenza nei prodotti di ultima generazione. Allo stesso tempo, gli MCU integrano memorie su chip abbastanza grandi da conservare algoritmi e altro codice applicativo, oltre a un corredo sempre più ricco di software a livello di sistema, compresi kernel in tempo reale, stack di comunicazioni e stack di protocolli di sicurezza. Tra i membri della famiglia di MCU Darwin, gli sviluppatori possono trovare il mix di flash e SRAM più appropriato per la loro applicazione. Gli MCU MAX32630/MAX32631 offrono 2 MB di flash e 512 kB di SRAM. MAX32620 offre 2 MB di flash e 256 kB di SRAM, mentre MAX32625 ha 512 kB di flash e 160 kB di SRAM. Per semplificare l'utilizzo di queste memorie, gli MCU Darwin supportano un'estesa mappa di memoria che combina i vari tipi di memoria e registri mappati sulla memoria in un singolo spazio di indirizzo (Figura 2).
Figura 2: Gli MCU Darwin utilizzano un singolo spazio di indirizzo che contiene sia i vari tipi di memoria che i registri mappati sulla memoria per i loro blocchi funzionali. (Immagine per gentile concessione di Maxim Integrated)
Gli sviluppatori possono estendere ulteriormente la flash disponibile per supportare set di codici o librerie di sistema molto grandi. Gli MCU Darwin supportano operazioni XIP (Execute in Place) che consentono alla CPU di eseguire il codice direttamente dalla flash esterna. Maxim Integrated dimostra questo approccio nel suo progetto di riferimento MAXREFDES100, che include il dispositivo flash S25FS256SAGNFI001 da 32 MB di Cypress Semiconductor.
Grazie alle ampie capacità di memoria e di elaborazione, gli MCU Darwin riescono comunque a soddisfare le esigenze degli sviluppatori in termini di basso consumo. Gli MCU MAX32630/MAX32631, che supportano la più grande memoria integrata tra quelle menzionate qui, possono mantenere i loro 512 kB di SRAM con soli 3,4 μW. In modalità completamente attiva, consumano ancora solo 130 μW/MHz. Possono anche fornire una via di mezzo tra i due valori, con un consumo di 30 μW/MHz in una modalità speciale che utilizza l'unità di gestione periferica integrata (PMU) per abilitare le operazioni periferiche mentre il core della CPU rimane in uno stato di sospensione a consumo molto ridotto.
La capacità degli MCU Darwin di attivare periferiche mentre il processore è in stato di sospensione consente agli sviluppatori di ridurre i consumi limitando il tempo in modalità attiva della CPU. Anziché utilizzare una CPU completamente attiva per eseguire periodicamente il polling dei sensori e trasmettere i risultati a un host, gli sviluppatori possono utilizzare le istruzioni dell'MCU Darwin come Wait for Interrupt, Wait for Event e Sleep on Exit per ridurre al minimo il ciclo di lavoro attivo e contenere di conseguenza il consumo complessivo del sistema (Figura 3).
Figura 3: In un dispositivo indossabile o in un altro sistema di sensori, gli sviluppatori possono ridurre drasticamente i consumi energetici estendendo al massimo il tempo che la CPU passa in stato di sospensione a basso consumo, riattivandola solo per il tempo necessario ad acquisire i dati provenienti dai sensori e trasmetterne i risultati a un host. (Immagine per gentile concessione di Maxim Integrated)
Con un tempo di attivazione di 5 μs, questi MCU riducono la quantità di energia normalmente sprecata da MCU più lenti nella transizione dalla modalità di sospensione alla modalità attiva. In combinazione con i loro stati di sospensione di mantenimento della SRAM, questi dispositivi possono riprendere rapidamente l'elaborazione senza ritardi prolungati e sprechi di energia salvando e ripristinando gli stati mediante la memoria non volatile esterna. Di conseguenza, gli ingegneri possono sviluppare applicazioni di risparmio energetico molto efficienti.
Per supportare lo sviluppo di queste applicazioni, Maxim offre il kit di sviluppo del software (SDK) del firmware MAX326XX, che include driver periferici, driver di supporto della scheda e applicazioni di esempio (Figura 4).
Figura 4: Il kit di sviluppo del software (SDK) del firmware MAX326XX di Maxim Integrated supporta gli sviluppatori di software applicativo con applicazioni di esempio che illustrano l'uso dei driver di scheda e periferica dell'SDK basati sull'API CMSIS (Software Interface Microcontroller Software Interface) Arm Cortex. (Immagine per gentile concessione di Maxim Integrated)
Le librerie di schede e periferiche dell'SDK del firmware MAX326XX si basano sull'API CMSIS (Software Interface Microcontroller Software Interface Standard) Arm Cortex. Il software applicativo interagisce in genere con le librerie di schede e periferiche, ma può interagire direttamente con il CMSIS per arrivare all'hardware sottostante secondo necessità.
Conclusione
Gli utenti si aspettano dispositivi indossabili, IoT e altri dispositivi intelligenti in grado di offrire applicazioni sofisticate in sistemi facili da utilizzare, comodi da indossare e di valore. Per soddisfare queste esigenze, gli sviluppatori hanno bisogno di MCU che mettano assieme funzionalità estese, elaborazione ad alte prestazioni e basso consumo energetico.
Progettata specificamente per soddisfare questi requisiti, la famiglia di MCU Darwin di Maxim Integrated consente agli sviluppatori di creare più facilmente dispositivi con quell'intelligenza invisibile necessaria per soddisfare le aspettative degli utenti.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.