Freescale Flexis: la migrazione con il Controller Continuum

Freescale è un’azienda leader mondiale nel settore dei sistemi di controllo embedded, pioniere della tecnologia dei microcontrollori e la prima ad aver introdotto delle MCU dotate di memoria flash. La famiglia di MCU Flexis costituisce un ulteriore ed importante passo nella direzione dell’innovazione e della continuità: con esso infatti nasce il Controller Continuum.

Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Che cos’è il Controller Continuum?

La roadmap relativa al Controller Continuum fornisce una compatibilità tra gli step successivi permettendo una semplice migrazione sia nella direzione verso l’alto che verso il basso tra le MCU della famiglia Flexis. Partendo dal dispositivo entry-level RS08, fino ad arrivare al top delle performance con il controllore ColdFire V4, il Controller Continuum aiuta gli sviluppatori a passare agevolmente da un dispositivo al successivo compatibile, dall’entry level fino alla posizione di vertice del continuum. Ciò è possibile perchè tutti I membri della famiglia Flexis condividono package, periferiche, sistemi di sviluppo, reference design, application note, e pin-out comuni: la compatibilità tra le MCU a 8 e 32 bit è proprio l’idea rivoluzionaria che sta alla base della serie di MCU Flexis di Freescale.

Il Controller Continuum viene giustamente definito come un cammino. I clienti possono scegliere la MCU più adatta basandosi sul livello di performance che intendono raggiungere e sul prezzo che ritengono più adatto: se comunque in futuro volessero spostarsi verso un livello maggiore di performance, dovrebbero semplicemente seguire il continuum, un valido aiuto in grado di far risparmiare denaro e tempo fornendo un livello di compatibilità mai visto prima.
La figura seguente illustra il diagramma del Controller Continuum di Freescale. Il punto di partenza è occupato dal core RS08; da qui, muovendosi nella direzione crescente di performance ed integrazione, si possono incontrare le MCU S08 ed il ColdFire V1-4. Il punto di connessione tra I microcontrollori ad 8- e a 32-bit corrisponde alla transizione tra l’S08 ed il ColdFire V1: entrambi condividono delle periferiche e dei sistemi di sviluppo comuni, in modo tale che la migrazione possa essere eseguita facilmente con uno sforzo minimo.
Il controller continuum aiuta a risolvere le difficoltà potenziali che un progettista hardware oppure uno sviluppatore software potrebbero incontrare quando occorra eseguire una migrazione. Una lista di possibili punti critici è la seguente:

  • I tool software possono essere diversi: ne consegue che il codice sorgente deve essere modificato allo scopo di essere compatibile con il compilatore prescelto e con le sue librerie. Inoltre, anche gli strumenti di sviluppo hardware possono essere diversi. Questo fatto comporta costi addizionali e perdite di tempo
  • Le periferiche hardware possono essere diverse: ciò significa che il software di basso livello (tipicamente i driver) dovrà essere riscritto o quantomeno modificato allo scopo di riflettere la nuova architettura dei registri e della memoria. I driver sono molto critici, per cui sarà richiesto del tempo addizionale per la codifica, il debugging ed il testing
  • Il pin-out dei dispositivi il puù delle volte è diverso: ne consegue che il layout della scheda andrà modificato, e potrebbero nascere dei conflitti con altre parti della board
  • L’alimentazione può essere diversa: ciò significa che potrà essere richiesto dell’hardware addizionale per soddisfare i nuovi requisiti di alimentazione.
flexis controller continuum

La serie di microcontrollori Flexis aiuta a prevenire questi tipi di problemi perchè essa dispone di:

  • un unico sistema di sviluppo che agevola la migrazione tra le MCU 8-bit (S08) e 32-bit (CFV1): la stessa versione di CodeWarrior supporta entrambi i core
  • un set commune di periferiche aiuta la migrazione tra i dispositivi ad 8-bit e quelli a 32-bit
  • un layout del pin-out compatibile aiuta il riutilizzo dell’hardware quando occorra muoversi tra I dispositive ad 8-bit e a 32-bit

Freescale ha inoltre definito una roadmap relative al controller continuum, come indicato nella figura seguente. I dispositivi rappresentati con lo stesso colore hanno compatibilità a livello di pin-out e/o di periferiche. Il terzo step della roadmap relative al controller continuum è rappresentato dalla nuova serie di controllori Flexis, la famiglia Flexis AC, indirizzata espressamente al settore delle applicazioni industriali.

La figura seguente mostra l’architettura hardware condivisa tra le MCU S08 e Coldfire V1: poichè entrambi i core condividono le stesse periferiche, la migrazione di un’applicazione da una MCU alla successiva non è un compito difficile, e può essere eseguita usando il sistema di sviluppo CodeWarrior 6.0.

Ci sono, tuttavia, alcuni errori comuni che andrebbero evitati allo scopo di ottenere una migrazione dell’applicazione senza problemi, riducendo così i problemi relativi al porting. Alcuni consigli utili per raggiungere questo obiettivo sono i seguenti:

  • non utilizzare (oppure rimuovere) il codice in-line assember. Le MCU ad 8-bit S08 ed il ColdFire V1 a 32-bit hanno infatti diversi set di istruzioni, per cui il codice in-line assember produrrebbe degli errori a livello di compilazione nel caso fosse attuata una migrazione. Le istruzioni in-line assembler andrebbero perciò sostituite con istruzioni in linguaggio C
  • Assegnare i vettori di interrupt usando le dichiarazioni di interrupt presenti nei file header di CodeWarrior. L’S08 ed il Coldfire V1 hanno tabelle dei vettori di interrupt diverse, e queste risiedono in locazioni di memoria differenti: se I vettori di interrupt vengono assegnati usando le direttive rese disponibili da CodeWarrior, tutto il lavoro di migrazione viene eseguito dal compilatore ed il codice sorgente risulta anche più leggibile
  • I riferimenti alla memoria ed alle periferiche andrebbero sempre eseguiti usando la direttiva Register_Bitname presente nei file header di CodeWarrior. L’S08 ed il ColdFire V1 hanno infatti mappe di memoria differenti, per cui i riferimenti alla memoria di tipo assoluto andrebbero evitati: lasciamo che sia il linker di CodeWarrior a fare questo lavoro per noi
  • Evitare di utilizzare dei ritardi software basati sul numero di cicli macchina. Le MCU S08 e ColdFire V1 eseguono lo stesso codice con tempistiche differenti: le istruzioni dell’S08 vengono infatti eseguite alla velocità del bus, mentre le istruzioni del Coldfire V1 vengono eseguite alla frequenza della CPU. I ritardi software basati sull’istruzione NOP o similari andrebbero evitati oppure rimossi e sostituiti con ritardi software basati sulle temporizzazioni hardware prodotte dalle periferiche specifiche come il TPM e l’RTC

La famiglia di microcontrollori Flexis AC

Questa nuova famiglia di MCU, che include I modelli AC128 e AC256, rappresenta il terzo step nella roadmap relativa al controller continuum. Il S08AC128 (microcontrollore ad 8-bit basato sul core S08) ed il MCF51AC256 (controllore a 32-bit embedded basato sul ColdFire) sono progettati per consentire un’agevole migrazione e sono ideali per applicazioni di tipo industriale.
Le sue caratteristiche si possono così riassumere:

  • Prestazioni soddisfacenti in termini di EMC/EMI, che li rendono ideali per applicazioni in ambienti con elevato livello di rumore
  • watchdog timer (modulo COP) dotato di un clock indipendente e di codice a ridondanza ciclica (CRC) in grado di aumentare il livello di sicurezza dell’applicazione in ambienti ad elevato rumore
  • power-on reset di tipo attivo, rilevamento di bassa tensione di alimentazione con indicazione di warning per proteggere il sistema da failure legate all’alimentazione non stabile
  • appositamente progettato per migliorare le prestazioni in applicazioni di controllo motori, riducendo allo stesso tempo il numero di componenti esterni richiesti
  • operatività tra 5.5V e 2.7V
  • timer e convertitore analogico-digitale integrati sul chip che fanno della famiglia Flexis AC la soluzione ideale per sistemi di controllo motori
  • l’MCU AC256 dispone inoltre di un bus CAN per la connessione in rete. Anche questo protocollo può avvalersi di un generatore di codice a ridondanza ciclica per aumentarne la sicurezza

CodeWarrior Development Studio V6.2

Il sistema di sviluppo per microcontrollori CodeWarrior V6.2 di Freescale è uno strumento integrato progettato per consentire la migrazione di un’applicazione con soli pochi click del mouse. Quando occorre spostarsi verso un altro controllore all’interno del controller continuum di Freescale, è possibile ricorrere all’utilizzo del tool MCU Change Wizard. Tramite il Wizard è possibile selezionare il nuovo microcontrollore (sia con lo stesso tipo oppure con un’architettura diversa) ed il tipo di connessione; fatto questo, CodeWarrior automaticamente riconfigura l’applicazione per la nuova MCU, selezionando i corretti tool di sviluppo (compilatore, assembler, linker), e gli appropriati file di supporto (file header, librerie e file per il linker). Il compilatore per il ColdFire V1 ha inoltre una funzionalità che segnala il codice che richiede di essere ispezionato e convertito manualmente (ad esempio le istruzioni assembler e le routine di risposta agli interrupt).

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Riferimenti
The Controller Continuum

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend