• Non ci sono risultati.

Lo Slave Processing Block è la parte di BMS Slave che si occupa di raccogliere i dati ottenuti dai componenti dello Slave Measure Block (SMB) per elaborarli, effettuando conversioni o correzioni, e poi inviarli al BMS Master, che si occupa di stimare lo stato della batteria e di controllarla.

Lo SPB utilizzato per il prototipo è una scheda OM13056 LPCXpresso™ con il microcontrollore LPC1549 Cortex-M3 della NXP Semiconductors®. È stata utilizzata una scheda di sviluppo per limitare la quantità di hardware di cui occorre verificare il funzionamento.

Figura 41 - Foto della scheda LPC1549 LPCXpresso™

Tale microcontrollore dispone di risorse e prestazioni ben superiori a quelle richieste per lo SPB del BMS Slave, ma è stato utilizzato solamente per verificare il funzionamento della scheda su cui è presente lo Slave Measure Block. Il firmware con cui è stato programmato il microcontrollore, essendo scritto in linguaggio C, è facilmente trasferibile su qualsiasi altro microcontrollore.

4.2.

Schema di comunicazione

Il microcontrollore comunica con i vari circuiti integrati presenti sulla scheda dello SMB tramite protocollo SPI e segnali d’interruzione hardware, grazie ai quali riesce a capire quando le conversioni dei chips sono pronte. Il TDC, purtroppo, a differenza dell’ADC e del RDC, non dispone di tale meccanismo, per cui è necessario generare internamente al microcontrollore una interruzione periodica che avverte quando è possibile rileggere il chip. È presente anche una comunicazione con il BMS Master, attraverso un protocollo ancora da definire. È possibile comunicare con la scheda del BMS Slave anche da un computer attraverso la porta seriale (USART), grazie alla quale sono state trasmesse tutte le misure dei test.

4.3.

Funzionamento del Firmware

Il microcontrollore configura i diversi circuiti integrati presenti sulla scheda e poi, periodicamente, legge i dati digitalizzati da questi, effettuando le dovute conversioni numeriche.

Come periferiche, il microcontrollore usa la General Purpose Input Output (GPIO) per leggere i segnali 𝑂𝑉𝑅𝐹𝐿𝑊̅̅̅̅̅̅̅̅̅̅̅̅, 𝐹𝐴𝑈𝐿𝑇̅̅̅̅̅̅̅̅̅ e 𝐷𝑅𝐷𝑌𝑂𝑈𝑇̅̅̅̅̅̅̅̅̅̅̅̅̅̅ dell’ADC e il segnale 𝐷𝑅𝐷𝑌̅̅̅̅̅̅̅̅ del RDC, il Recursive Interrupt Timer (RIT) per richiamare la funzione di lettura del TDC, due Serial Peripheral Interface (SPI) per parlare con ADC, RDC e TDC, la Universal Synchronous- Asynchronous Receiver/Transmitter (USART) per comunicare con il computer.

I segnali 𝐷𝑅𝐷𝑌𝑂𝑈𝑇̅̅̅̅̅̅̅̅̅̅̅̅̅̅ dell’ADC e 𝐷𝑅𝐷𝑌̅̅̅̅̅̅̅̅ del RDC sono utilizzati come segnali d’interruzione (Ready Interrupt) che innescano le procedure di lettura dei rispettivi dispositivi. Poiché il TDC non possiede segnali per informare il microcontrollore quando una nuova conversione è pronta, si usa il RIT per generare internamente al microcontrollore un segnale periodico d’interruzione con periodo pari al tempo di conversione del TDC. Meccanismi d’interruzione sono impiegati anche per iniziare la trasmissione dati tra BMS Slave e BMS Master/computer.

Le due periferiche SPI utilizzate hanno differente configurazione e vanno a velocità diversa. RDC e TDC hanno la stessa velocità e medesime polarità di clock (CPOL e CPHA), per cui possono condividere la stessa periferica SPI senza problemi usando due differenti Chip

Select (CS).

L’ADC va ad una velocità superiore rispetto agli altri due convertitori e ha polarità di clock opposte, per cui, dedicandogli una periferica SPI apposita, non c’è mai il bisogno di riconfigurare le impostazioni delle periferiche dopo l’avvio del sistema.

I codici delle misure ottenuti sono elaborati con le formule descritte nei precedenti capitoli in modo da ottenere indirettamente i valori delle grandezze d’interesse (tensioni e temperature). Agendo sui parametri e le costanti utilizzate nelle conversioni numeriche è possibile correggere eventuali errori sistematici di misura (offset error, gain error).

4.4.

Età dei campioni

L’acquisizione dei dati dei tre chips collegati e le loro conversioni sono effettuate continuamente, senza conservare nulla in memoria. Qualora il Master o il computer richiedano le misure allo SPB, questi risponde inviando le ultime misure ottenute, se disponibili. Il periodo di campionamento dei dati è quindi è circa uguale alla frequenza con cui il BMS Master o il computer richiedono i dati. I dati acquisiti possono avere un’età uguale al tempo di conversione del dispositivo 𝑇𝑐𝑜𝑛𝑣 sommato alla quantità di tempo che intercorre tra quando l’interruzione relativa al nuovo dato disponibile giunge al microcontrollore e quando effettivamente questi arrivano al BMS Master o al computer.

𝐴𝐺𝐸 = 𝑇𝑐𝑜𝑛𝑣+ 𝑇𝐷𝑒𝑣𝑇𝑜𝑆𝐸𝐵+ 𝑇𝑒𝑙𝑎𝑏𝑜𝑟𝑎𝑡𝑖𝑜𝑛+ 𝑇𝑆𝐸𝐵𝑇𝑜𝑀𝑎𝑠𝑡𝑒𝑟 (199) Ovviamente, l’età media dei campioni è tanto minore quanto più frequentemente fornisce dati il relativo dispositivo, ma ci sono comunque dei limiti dati dalla velocità delle comunicazioni SPI e dalla velocità del processore.

Si noti che, poiché i vari dispositivi di digitalizzazione, lo SPB e il BMS Master/computer sono sistemi asincroni tra loro, 𝑇𝐷𝑒𝑣𝑇𝑜𝑆𝐸𝐵, 𝑇𝑒𝑙𝑎𝑏𝑜𝑟𝑎𝑡𝑖𝑜𝑛, 𝑇𝑆𝐸𝐵𝑇𝑜𝑀𝑎𝑠𝑡𝑒𝑟 sono quantità aleatorie che dipendono dall’istante in cui arrivano le varie interruzioni hardware.

Misurando tale intervallo temporale grazie al System Clock Timer (SCT), si può stimare che su 1000 campioni si hanno le seguenti statistiche.

Dispositivo max(𝑇𝑐𝑜𝑛𝑣) (ms) 𝐴𝐺𝐸𝑎𝑣𝑔 (ms) 𝐴𝐺𝐸𝑣𝑎𝑟 (ms) 𝐴𝐺𝐸𝑀𝐴𝑋 (ms)

ADC 2 0,8694 0,2858 1,9369

RDC 17,6 8,0311 21,6579 16,1357

TDC 100 ≤ 100 0,3371 ≤ 100

Tabella 4 - Statistiche sull’età dei campioni ottenuti dai vari dispositivi di conversione

Si può notare che la totale asincronia tra i sistemi comporta un ritardo variabile tra l’acquisizione del campione e il suo arrivo a destinazione. I dati sopra riportati sono stati acquisiti richiedendo i dati dal computer con LabVIEW 2015 circa ogni 100 𝑚𝑠. Richiedendo i dati con una frequenza maggiore è possibile aumentare la “freschezza” media dei campioni, poiché si accorcia la distanza temporale massima tra quando il campione arriva al microcontrollore e quando esso viene prelevato. D’altro canto, non si può richiedere i dati dal microcontrollore con una frequenza maggiore di quella con cui sono convertiti dai vari chip di conversione digitale.

Per quanto riguarda il TDC, l’età dei campioni ha una varianza contenuta in quanto la lettura dei dati è richiamata periodicamente sotto il comando del microcontrollore, che richiede dati con la stessa frequenza con cui li converte il TDC. Inoltre, l’età media e l’età massima dei campioni del TDC variano casualmente tra 0 e 100 𝑚𝑠 a seconda dell’istante in cui parte la prima interruzione periodica che richiama la lettura della termocoppia. Il TDC infatti si accende in un momento totalmente diverso da quello in cui parte la prima interruzione di lettura del microcontrollore.

Di seguito si può visualizzare una possibile interpretazione riguardo alla successione temporale delle azioni compiute dal microcontrollore.

Documenti correlati