Microcontrollori per Automotive

In questo articolo analizziamo una soluzione di Freescale (NXP) per sistemi di controllo di iniezione e trasmissione a bordo auto.

La corsa alla riduzione dei consumi e delle emissioni nel settore automotive, sulla spinta, da un lato, della crisi energetica e, dall’altro, della crescente attenzione verso un’economia eco-sostenibile, passa oggi anche attraverso la realizzazione di dispositivi elettronici in grado di garantire adeguate prestazioni e funzionalità di controllo e gestione. In questa linea si inserisce a pieno titolo il nuovo microcontrollore MPC5676R (Figura 1) della serie Qorivva di Freescale (NXP), presentato alla conferenza "Electronic Systems for Motor Vehicles", tenutasi in Germania. Basato sulla tecnologia Power Architecture, dotato di dual-core, l'MPC5676R assicura un incremento delle prestazioni di un fattore 4, raddoppia lo spazio di memoria disponibile e introduce nuove caratteristiche rispetto ai precedenti modelli della serie, consentendo, così, l’integrazione in un singolo controller di tecnologie allo stato dell’arte per applicazioni di iniezione diretta, turbo-charging e drive- by-wire. Scopriamo insieme di seguito le caratteristiche principali di questo nuovo dispositivo di Freescale (NXP).

Figura 1: i nuovi micro MPC5676R di Freescale.

Figura 1: i nuovi micro MPC5676R di Freescale

UN’ARCHITETTURA DUAL-CORE

La Figura 2 mostra uno schema di principio dei principali moduli presenti all’interno del MPC5676R. Come mostrato, l’architettura è di tipo dual-core, con due CPU della serie e200z7 che implementano un’insieme di istruzioni a 32-bit compatibile con la specifica Power Architecture Book E e un register file a 64 bit. Le sole istruzioni floating-point dello standard non sono supportate direttamente in hardware ma emulate in software mediante trap. L’Embedded Floating Point (FPU2) APU implementa, quindi, l’accelerazione hardware dei calcoli in singola precisione. Entrambi i core e200z7 supportano la tecnologia di compressione VLE (Variable Lenght Encoding) per una maggiore densità di codice e dispongono della estensione SPE (Signal Processing Extension) per le operazioni SIMD in precisione fissa e singola mediante registri general purpose. Ogni CPU integra cache separata per istruzioni e dati e una MMU; è previsto un meccanismo per assicurare la coerenza delle cache dei due core presenti a bordo del microcontrollore. La cache (sia quella dati sia quella programma) è di dimensione 16 Kbyte, di tipo 4-way set-associative con dimensione di linea di 32 byte. L’MMU, invece, supporta la traduzione degli indirizzi virtuale e fisico entrambi a 32 bit, con TLB a 32 ingressi, fino a 23 diverse dimensioni di pagina e gestione hardware delle condizioni di miss. Il modulo STCU (Self- Test Control Unit) supporta test LBIST (Logic Buit-In Self Test) dei singoli core (anche durante le normali operazioni), inibendo la programmazione mediante sequenza di chiavi specifica.

Figura 2: architettura dei micro MPC5676R.

Figura 2: architettura dei micro MPC5676R

MEMORIA ON-CHIP

L’area di memoria on-chip del microcontrollore include 6 Mbyte di flash, accessibile in lettura anche durante le operazioni di programmazione ed erase, e 384 Kbyte di SRAM, di cui 48 Kbyte alimentati mediante pin dedicato, così da garantire data retention anche in condizioni di stand-by o drop sulla linea primaria. L’EBI (External Bus Interface) gestisce, invece, l’accesso allo spazio di memoria esterno, con bus dati a 16 bit (o 32 bit in modalità multiplexata) e indirizzamento a 22 bit; sono supportati dispositivi di memoria di tipo flash e SRAM sincroni o asincroni con accesso anche a burst. Il Boot Assist Module dispone, invece, di 4 Kbyte di memoria read-only che contiene il programma di boot del dispositivo. Sono supportate le modalità di boot dalla flash interna, mediante porta SCI o CAN o da memoria esterna connessa mediante interfaccia EBI. Dopo il reset, soltanto uno dei due core della CPU è attivo. L’accesso alle periferiche on-chip è al solito di tipo memory-mapped.

UN INSIEME COMPLETO DI PERIFERICHE

Tra le periferiche principali sono presenti, invece, un controller FlexRay, 4 porte FlexCAN e due canali EQADC per l’acquisizione di segnali analogici. La porta FlexRay supporta comunicazione su singolo canale con data rate programmabile tra 2.5 Mbps e 10 Mbps, buffer configurabile per 128 messaggi con filtro su identificativo di frame o canale. Supporta messaggi con payload di dimensione configurabile fino a 254 byte e funzionalità di zero padding. Le porte FlexCAN sono interamente compatibili con la specifica CAN 2.0B, supportando bit rate programmabile fino a 1 Mbps. Esse integrano ognuna un buffer dedicato fino a 64 messaggi, implementando uno schema di priorità di trasmissione programmabile, il time-stamping dei messaggi mediante timer free-running a 16 bit e la sincronizzazione del tempo di rete attraverso messaggi specifici. I moduli EQADC (Enhanced Queued Analog to Digital Converter) integrano ADC con risoluzione programmabile da 8 a 12 bit e tempo di campionamento fino a 128 periodi del clock fornito al convertitore (con una frequenza massima di 16 MHz). Questo possiede fino a 40 canali multiplexati (16 di questi sono in comune tra i due EQADC presenti a bordo del microcontrollore) configurabili in maniera differenziale, con guadagno programmabile fino a 4x e resistori integrati di pull-up/pull-down di linea per biasing e diagnostica.

Entrambe le periferiche EQADC sono, inoltre, direttamente connesse a un modulo di elaborazione dati dedicato che implementa fino a 12 filtri di decimazione (con fattore di decimazione fino a 16), basati su MAC a 16-bit per il calcolo di filtri IIR di ordine 4 o filtri FIR di ordine 8. I diversi filtri possono, inoltre, essere connessi in cascata per realizzare filtri più estesi. Connettività seriale high-speed è garantita mediante i moduli dedicati DSPI (Deserial Serial Peripheral Interface) in grado di supportare trasmissione full-duplex, sincrona, in modalità master o slave, con clock di linea fino a 40 MHz. La periferica può essere programmata per gestire, ad esempio, connessioni SPI. I moduli ESCI (Enhanced Serial Communications Interface), invece, implementano una porta di comunicazione LIN master con capacità di trasferimento dati DMA. L’I/O è gestito mediante i moduli EMIOS (Enhanced Modular Input/Output Subsystem), con fino a 32 canali per modulo, configurabili nelle più diverse e comuni modalità come GPIO, input/output PWM, pulse/edge counter, etc. L’ETPU (Enhanced Time Processing Unit) è, invece, un coprocessore intelligente, semi- autonomo in grado di gestire funzionalità di controllo timing. Il modulo opera parallelamente alle CPU eseguendo codice proprio presente in memoria.

INTERCONNESSIONE MEDIANTE CROSS-BAR SWICTH CON PROTEZIONE DELLA MEMORIA

I diversi moduli presenti on-chip sono interconnessi mediante cross bar switch AMBA (XBAR), con bus dati a 64 bit, in grado di gestire trasferimenti concorrenti di master diversi verso diverse periferiche e gestione dell’arbitraggio nell’accesso simultaneo a una stessa risorsa mediante priorità programmabile. Una unità MPU (Memory Protection Unit) dedicata implementa le funzioni di controllo di accesso in memoria mediante la cross bar switch monitorando i diversi trasferimenti in corso, valutandone la relativa validità sulla base di un insieme di descrittori che permette di inibire l’accesso ad aree riservate o protette. Due moduli EDMA (Enhanced Direct Memory Access controller) supportano, infine, trasferimenti memoria-memoria con intervento minimale delle CPU; essi includono un motore DMA e memoria SRAM dedicata per l’allocazione dei descrittori dei singoli trasferimenti, consentendo di programmare fino a 64 diversi canali per ogni controller.

BASSI CONSUMI E RANGE DI TEMPERATURA ESTESO

Il MPC5676R è realizzato in tecnologia a 90 nm ed è integrato in package PBGA a 416 o 516 pin, di dimensioni 27 x 27 mm. Esso è qualificato per operare nel range di temperatura (di giunzione) compreso tra -40 °C e +150 °C , supporta una massima frequenza di lavoro delle CPU fino a 184 MHz, con una dissipazione di potenza nominale inferiore a 1.4 W e la possibilità di ulteriore riduzione grazie alle diverse modalità di power saving implementate, tra cui, ad esempio, il clock gating dei moduli non usati o la riprogrammazione del PLL per ridurre la frequenza di lavoro interna.

TOOL DI SVILUPPO STANDARD

Per quanto concerne l’ambiente di sviluppo, è ovviamente supportato dai tool della precedente serie MPC5500, inclusi l’ETPU Development Suite e una Special Edition del CodeWarrior Development Studio. Esso implementa un’interfaccia di debug compatibile con lo standard Nexus Class 3+ ed è supportato da RAppID per la generazione automatica delle funzioni di inizializzazione. Da terze parti sono disponibili, quindi, soluzioni più complete, come ad esempio per applicazioni OSEK (Open Systems and their Interfaces for the Electronics in Motor Vehicles) e AUTOSAR. Caratteristiche e prestazioni del MPC5676R possono essere valutate mediante la scheda di sviluppo MPC567XEVB (Figura 3), che consiste di una scheda madre connessa a un adapter dove è presente il socket per alloggiare il microcontrollore. La scheda madre ha un ingresso di alimentazione a 12 V, 2 canali CAN e 2 di tipo FlexRay, 2 porte SCI, 1 interfaccia LIN, 3 potenziometri per il controllo di tensioni analogiche locale, 1 DIP swicth a 8 posizioni e 4 pulsanti generici oltre a un header a pin per espansioni utente e un’area di prototyping (con linea di alimentazione a 5 V e massa). La scheda socket esiste in due diversi modelli, di cui una con il solo adaptor per il microcontrollore e l’altra dotata invece di memoria SRAM esterna accessibile da quello.

Figura 3: la scheda di sviluppo MPC567XEVB.

Figura 3: la scheda di sviluppo MPC567XEVB

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend