Datalogger Unit Thesis

download Datalogger Unit Thesis

of 32

description

Development of a datalogger unit, read all the data via CAN BUS and sent them to an access point, all the data are also saved in a SD card

Transcript of Datalogger Unit Thesis

  • Cairo Fabrizio & Morero Sandro

    31/05/2011

    Monografia Datalogger Unit

  • Pagina 2

  • Pagina 3

    Ringraziamenti

    Per la buona riuscita del presente progetto, si ringraziano il tutor accademico Marcello Chiaberge,

    il Faculty Advisor del Team, nonch tutor aziendale, Andrea Tonoli, il Division Leader Francesco

    Laviola e tutti i ragazzi del Team, in particolar modo quelli della Control Division.

  • Pagina 4

  • Pagina 5

    Sommario

    Questo documento rappresenta, allo stesso tempo, la descrizione e latto conclusivo dell attivit

    di tirocinio svolta presso la Squadra Corse del Politecnico di Torino, in qualit di Team Members;

    essa fa parte del progetto, ben pi imponente, dellautomobile da corsa denominata SCXX,

    partecipante ad alcuni eventi motoristici appartenenti alla formula SAE, una categoria riservata a

    vetture realizzate in ambiti universitari.

    L attivit di progetto stata svolta ricorrendo molto frequentemente ai concetti ed ai metodi

    studiati nei corsi di Circuiti Elettronici, Elettronica Applicata e Filtri e reti non lineari;

    ciononostante, la realizzazione effettiva di un sistema reale, unita alla metodologia di lavoro

    scelta, ovvero in collaborazione con altri laureandi o laureati in ingegneria, specializzati nelle pi

    disparate discipline, si rivelata essere un percorso formativo molto istruttivo, soprattutto sul

    piano pratico.

    Al termine del progetto, una quantit di tempo e lavoro non trascurabile stata dedicata alla

    realizzazione pratica dello stesso, ai test di funzionamento e di affidabilit, fino alla posa in opera

    del prodotto finito; questo ha anche consentito di acquisire molte conoscenze riguardo ad aspetti

    industriali e commerciali della produzione, i quali, spesso, in ambito puramente accademico, non

    vengono presi assolutamente in considerazione.

    Il sistema di acquisizione dati realizzato aderente alle specifiche richieste, ed attualmente

    montato sulla vettura; esso viene utilizzato, unitamente alla centralina di controllo motore fornita

    dalla ditta Magneti Marelli, come valido strumento di indagine durante i test in pista, ed in seguito

    verr impiegato durante gli eventi di gara veri e propri, in quanto facente parte del sistema di

    telemetria, sviluppato dal Team appositamente per queste situazioni.

  • Pagina 6

    Indice

    Ringraziamenti ........................................................................................................................... 3

    Introduzione .............................................................................................................................. 7

    La Formula SAE ....................................................................................................................... 8

    SCXX: il progetto del Politecnico di Torino ............................................................................... 8

    L elettronica di bordo ............................................................................................................. 9

    CAN bus ................................................................................................................................... 10

    Sistema di telemetria ............................................................................................................... 13

    Progetto dell hardware ........................................................................................................... 15

    Alimentazione ...................................................................................................................... 15

    Sensori ................................................................................................................................. 16

    Breack Press ...................................................................................................................... 16

    Speed ................................................................................................................................ 17

    Spring ................................................................................................................................ 19

    Steer Angle ........................................................................................................................ 20

    Beacon .............................................................................................................................. 21

    Collegamento Ethernet ............................................................................................................ 22

    Il microcontrollore ................................................................................................................... 25

    Progetto del software .............................................................................................................. 26

    Appendice A ............................................................................................................................. 29

  • Pagina 7

    Introduzione Con questo capitolo introduttivo si intende presentare il contesto in cui si svolta l attivit di

    tirocinio, evidenziando le peculiarit dell ambiente di lavoro, le motivazioni che hanno portato

    alla realizzazione del progetto ed il relativo inserimento nell ottica generale che governa l intero

    sistema, rappresentato dall automobile nella sua completezza.

    Lo scopo dellesperienza che ci stata proposta consiste nel progetto e nella realizzazione di una

    centralina di bordo dedicata all archiviazione e trasmissione di un certo numero di parametri

    dinamici della vettura, provenienti da opportuni sensori e trasduttori e dalle altre centraline. La

    fase di archiviazione avviene attraverso un microcontrollore della serie dsPIC, il quale provvede ad

    inviare i dati ottenuti sul bus di comunicazione di bordo, per il quale stato adottato lo standard

    CAN, studiato appositamente per applicazioni di tipo automotive. Inoltre gli stessi dati vengono

    memorizzati su una scheda di memoria di tipo SD Card ed inviati ai box, grazie all ausilio, oltre che

    del dsPIC, di un Ethernet Controller della serie ENC. Uno schema illustrativo mostrato in figura.

    Nella stessa centralina, oltre al datalogger unit, sono presenti un access point ed una radio che

    permette una comunicazione dai box con il pilota.

    CAN bus

    Local network

    Wireless

    Memory card

  • Pagina 8

    La Formula SAE

    Il Politecnico di Torino, da ormai alcuni anni, pu contare su un discreto numero di studenti, i

    quali, animati dalla propria passione per il mondo delle corse, ma anche da una certa dose di

    buona volont e spirito di sacrificio, si uniscono a formare il Team Squadra Corse PoliTO, o pi

    brevemente la Squadra Corse, dedicando a questa attivit gran parte del proprio tempo. Essa ha la

    finalit di progettare e realizzare interamente una vettura da corsa conforme alle regole della

    Formula SAE, che una manifestazione motoristica dedicata a Teams composti unicamente da

    studenti universitari, consistente in una serie di eventi a carattere agonistico, che si svolgono

    principalmente su circuiti americani ed europei; la partecipazione a queste competizioni molto

    imponente, e si possono contare centinaia di squadre, rappresentanti degli atenei di tutto il

    mondo, che solitamente partecipano solamente ad un sottoinsieme di eventi, come nel nostro

    caso, essenzialmente per problemi logistici.

    Ogni appuntamento della Formula SAE si tiene nell arco di un week-end, e consta di una serie di

    prove, statiche e dinamiche, atte a verificare la bont del progetto presentato e le prestazioni

    effettivamente raggiungibili; in particolare, i criteri di valutazione adottati dalla commissione di

    giudici di gara sono i seguenti:

    Costi di produzione

    Presentazione del progetto

    Soluzioni ingegneristiche adottate

    Accelerazione massima su una distanza di 75 m

    Tenuta in curva su un circuito ad 8, con raggi di curvatura pari a circa 7.6 m

    Guidabilit

    Consumo di carburante su un percorso di 22 Km

    Affidabilit su un percorso di 22 Km

    Si pu quindi intuire facilmente come ogni minima parte di progetto debba essere studiata

    attentamente e debba rispondere a requisiti molto stringenti, nell ottica di costruire un prodotto

    finito che sia in grado di ottenere una buona valutazione sotto tutti gli aspetti richiesti.

    SCXX: il progetto del Politecnico di Torino

    L attuale Team del Politecnico di Torino composto da circa cinquanta studenti, afferenti

    soprattutto ai corsi di Ingegneria dell Autoveicolo, i quali hanno realizzato la cosiddetta SCXX,

    nome di battesimo della vettura studiata e prodotta in questa stagione; essa raccoglie in eredit

    un elevato numero di caratteristiche tecniche della precedente SCX.

  • Pagina 9

    Le principali innovazioni tecnologiche implementate sulla SCXX, rispetto al modello precedente,

    riguardano:

    Riduzione del peso di circa 15 Kg

    Adozione di nuovi materiali (rivoluzione delle masse non sospese)

    Telemetria wireless bidirezionale

    L elettronica di bordo Come si pu facilmente intuire, alla base di questo processo evolutivo posto un utilizzo intensivo

    di apparecchiatura elettronica di bordo; di comune accordo con tutti i responsabili del progetto,

    stato scelto di realizzare, con un approccio modulare, una serie di unit indipendenti, ognuna

    dedicata a svolgere una serie di compiti ben definiti. Esse, ad esclusione della centralina di

    controllo del motore, la quale viene acquistata dalla ditta specializzata Magneti Marelli, sono state

    studiate completamente dagli studenti che compongono la Control Division del Team.

  • Pagina 10

    CAN bus

    Il CAN-bus (Controller Area Network) uno standard seriale per bus di campo di tipo multicast,

    utilizzato per collegare diverse unit di controllo elettronico (ECU). Data la sua elevata affidabilit

    dal punto di vista della sicurezza e la sua invulnerabilit ai disturbi causati da onde

    elettromagnetiche, questo protocollo in particolar modo utilizzato in ambito automotive, come

    bus per autoveicoli, anche se attualmente applicato in molti sistemi industriali di tipo embedded.

    Esso pu raggiungere una velocit di 1 Mbit/s per reti non pi lunghe di 40 m (per reti pi lunghe

    la velocit diminuisce) e presenta un notevole vantaggio economico dal punto di vista del

    cablaggio, altrimenti richiesto.

    Il CAN trasmette dati secondo un modello basato su bit dominanti (0 logico) e bit recessivi (1

    logico). Se un nodo trasmette un bit dominante e un altro un bit recessivo verr trasmesso il bit

    dominante. Con questa tecnica, quando viene trasmesso un bit recessivo, e contemporaneamente

    un altro dispositivo trasmette un bit dominante, si ha una collisione, e solo il bit dominante

    visibile in rete, mentre tutte le altre collisioni sono invisibili. In questo modo si cos sicuri che

    ogni volta che si impone una differenza di potenziale, tutta la rete la rileva, e quindi "sa" che si

    tratta di un bit dominante.

    La comunicazione via CAN avviene attraverso pacchetti di informazioni (detti anche frames),

    suddivisi in campi, ognuno dei quali ha una sua funzione precisa. Di seguito vengono presentati un

    grafico e una tabella che descrivono la composizione del frame:

  • Pagina 11

    Nome del campo Lunghezza (numero di bit) Funzione

    Start of frame 1 Indica lavvio della sequenza di trasmissione

    Identificatore 11 Identificatore (unico) dei dati

    Richiesta remota trasmissione 1 Deve essere un bit dominante

    Bit aggiuntivo identificazione 1 Deve essere un bit dominante

    Bit riservato 1 Riservato

    Codice di lunghezza dati 4 Numero di byte per codificare ciascun dato (0-8 byte)

    Campo dati 0-8 byte Dati da trasmettere (la lunghezza specificata dal campo DLC)

    CRC 15 Controllo di parit

    Delimitatore CRC 1 Deve essere un bit recessivo

    Slot ACK 1 Il trasmettitore invia un bit recessivo e ogni ricevitore pu confermare la ricezione con un bit dominante

    Delimitatore ACK 1 Deve essere un bit recessivo

    End of frame 7 Devono essere bit recessivi

    L istante in cui un messaggio viene considerato valido differente per il trasmettitore e il

    ricevitore. Per quanto riguarda il trasmettitore il messaggio valido se non vi alcun errore fino

    alla fine dell End of Frame. Se un messaggio danneggiato avverr automaticamente la

    ritrasmissione dello stesso, in base alle priorit e non appena il bus inattivo. Invece per il

    ricevitore il messaggio valido se non vi alcun errore fino al penultimo bit dell End of Frame.

    Nella tabella sottostante sono riportate le specifiche della SCXX:

    SCXX

    Data per frame 4 data of 16 bits

    CAN frame length 360 bit

    # packets sent every 10 ms 12

    Minimum bitrate about 440 kbps

  • Pagina 12

    La tabella seguente descrive il database CAN, che riguarda il contenuto in byte di ogni pacchetto e

    del relativo ID, ovvero il numero che identifica un singolo pacchetto:

    CAN ID UDP PORT

    Centralina Byte 1

    Byte 2

    Byte 3

    Byte 4

    Byte 5

    Byte 6

    Byte 7

    Byte 8

    110 46000 Marelli RPM Throttle CarSpeed Barrel (Gear Pos)

    120 46001 Marelli T_Air T_Oil T_Water P_Oil

    130 46002 Marelli P_Fuel VBatt NiveauEssence (livello benzina)

    MAP

    210 46010 IMU X_Axis_Acc Y_Axis_Acc Z_Axis_Acc -

    220 46011 IMU X_Axis_Gyro Z1_Axis_Gyro Y_Axis_Gyro Z2_Axis_Gyro

    310 46020 PowerBox Gear Gear Up ELV Gear Down ELV

    Clutch ELV

    320 46021 PowerBox Brake Pressure R

    PWM1 PWM2 PWM3

    330 46022 PowerBox Speed RL Speed RR Spring RL Spring RR

    410 46030 Dashboard Clutch Toggle AGS Toggle Rain Light Aux Toggle

    420 46031 Dashboard Map Selected Traction Control

    AF Ratio -

    510 46040 DLU Speed FL Speed FR Spring FL Spring FR

    520 46041 DLU Brake Pressure F

    Steer Angle Log Status -

    530 46042 DLU LapTime - -

  • Pagina 13

    Sistema di telemetria

    Come si pu vedere dalla figura, la comunicazione con i box avviene attraverso un sistema

    wireless: il datalogger collegato attraverso un cavo ethernet ad un access point, il quale manda i

    pacchetti ai box attraverso unantenna.

    Dopo aver ricevuto i dati il datalogger genera dei pacchetti UDP: ogni pacchetto formato da un

    identificatore di 4 bit pi un campo opzionale di 8 bit e da 10 timestamp per 4 sensori diversi, per

    un totale di 132 byte (compreso il campo opzionale, 124 senza). Per ogni timestamp vengono usati

    4 byte, mentre per ogni sensore vengono utilizzati 2 byte. Il pacchetto successivo avr altri 10

    timestamp di altri quattro sensori diversi e cos via.

  • Pagina 14

    Di seguito viene riportata la tabella che rappresenta un pacchetto UDP creato dal datalogger

    durante la trasmissione:

    Una volta che il pacchetto stato creato viene inviato in broadcast alla rete wireless e ricevuto dal

    telemetrista ai box che collegato alla stessa LAN dellaccess point. Per la trasmissione wireless si

    usa il protocollo WiFi 802.11b che raggiunge una velocit di trasmissione di 11 Mb/s. Nella

    tabella sottostante sono riportate le specifiche della trasmissione dei dati attraverso WiFi:

    SCXX

    Packet payload 122 byte

    Packet length 164 byte

    Efficiency 74%

    # packet sent every 100 ms 12

    Minimum bitrate about 158 kbps

    Un importante novit di quest anno il real time telemetry system. Grazie a questo sistema vi

    la possibilit di salvare ogni sessione di lavoro contenente i relativi dati in un file CSV: se ad

    esempio si volesse conoscere la temperatura dell olio di qualche minuto fa basta andare a cercare

    il corrispondente file e caricarlo.

  • Pagina 15

    Progetto dell hardware

    Il sistema composto da varie parti; per prima cosa si descrive la parte relativa allalimentazione

    del circuito che servir per tutti i componenti utilizzati, andando via via a trattare tutti i blocchi

    principali nel particolare.

    Alimentazione

    Il circuito alimentato dai 12V che arrivano dalla batteria della macchina. Questa tensione deve

    essere modificata in modo da poter alimentare tutti i componenti presenti nel circuito, che hanno

    bisogno di alimentazioni differenti: si vogliono avere 3.3V , 5V, 5.6V e 12V.

    Di seguito viene presentata la parte di circuito relativa allalimentazione :

    lo zener allingresso serve per stabilizzare la tensione ed evitare che eventuali picchi all ingresso

    rovinino i dispositivi collegati in parallelo ad esso. Il condensatore da 100u in parallelo

    allalimentazione invece ha lo scopo opposto e viene chiamato condensatore di by-pass: viene

    usato come serbatoio per eventuali buchi di tensione che si possono verificare. Grazie a questi

    due elementi si pu dire di avere una tensione stabilizzata a 12V.

    Le tensioni di 3.3V, 5V e 6.5V vengono create utilizzando dei convertitori DC-DC, dotati di efficienti

    protezioni interne contro sovratensioni e cortocircuiti in uscita.

    Infine presente un LM2941T, che un regolatore di tensione utilizzato per avere 12V stabili in

    uscita.

  • Pagina 16

    Sensori

    Alla centralina del datalogger arrivano dei sensori che rilevano alcune grandezze fisiche utili per i

    test e per la messa a punto della macchina. Il datalogger creer poi dei pacchetti da inviare ai box

    che verranno letti dal software di telemetria e che permetteranno ai componenti della squadra di

    ottimizzare lo stato della macchina. Qui di seguito vengono descritti questi stessi sensori collegati

    al datalogger e il loro funzionamento.

    Breack Press

    Questo sensore della Magneti Marelli permette di determinare il livello di pressione del freno da

    parte del pilota: viene utilizzato un OPS04, che in grado di misurare pressioni fino a 8.1 MPa. In

    pratica esso fornisce in uscita una tensione che va dai 0.5V a pressione nulla ai 4.5V per pressioni

    di 8.1MPa.

    D

    In questa figura viene presentato il circuito di condizionamento del sensore, composto da un

    inseguitore di tensione, che ha la funzione di disaccoppiare la sorgente del segnale dal resto del

    circuito, e da un filtro di secondo ordine di tipo Sallen-Key, utilizzato per non trasmettere eventuali

    disturbi.

    E alimentato a 5V con una corrente che deve essere

    minore di 10mA.

    Il suo tempo di risposta di circa 10ms; si deduce

    quindi che la frequenza massima di variazione della

    tensione di uscita non pu superare i 100Hz.

  • Pagina 17

    Speed

    Un altro sensore utile quello relativo alla velocit; viene utilizzato un ATS665, costituito da due

    sonde di Hall che percepiscono i cambiamenti magnetici creati da un elemento ferromagnetico.

    Al variare della velocit di una ruota dentata composta da un materiale ferromagnetico viene

    generato un campo magnetico, la cui intensit varia al variare della velocit del disco. Questo

    fenomeno produce un onda quadra, il cui periodo appunto determinato dal movimento

    rotatorio della ruota dentata.

    Questo dispositivo viene alimentato da una tensione di 3.3V e

    presenta una corrente di uscita di circa 8mA.

    composto da due sonde di Hall che misurano il gradiente

    magnetico creato da un materiale ferromagnetico; questo

    stesso gradiente viene convertito in un segnale analogico di

    tensione e infine si avr all uscita un segnale digitale.

  • Pagina 18

    Dalle figure si vede che il materiale ferromagnetico genera unonda quadra che viene convertita in

    una sinusoide dal sensore di velocit. Il circuito di condizionamento ha il compito di trasformare

    questa stessa sinusoide in un segnale digitale.

    Di seguito viene presentato il circuito di condizionamento del sensore:

    Visto che il microcontrollore lavora

    soltanto in un certo range di ampiezza e

    frequenza, il circuito di condizionamento

    serve ad attenuare il modulo del segnale

    inviato dal sensore ed a tagliare le

    frequenze pi alte.

  • Pagina 19

    Spring

    Sulla macchina sono presenti due sensori di spring, ovvero i sensori che rilevano il livello di

    compressione delle sospensioni. Essi sono presenti negli ammortizzatori anteriori, che sono quelli

    che subiscono il maggiore sforzo soprattutto in curva.

    Essi sono composti da un potenziometro che varia la propria impedenza al variare del grado di

    compressione dellammortizzatore, e sono fatti in una lega di alluminio e acciaio inox, resistente

    alle alte temperature e al fuoco.

    La figura seguente descrive il sensore nei suoi particolari

    Essi lavorano ad una temperatura compresa tra

    i -30 e 100 gradi centigradi e non possono

    essere collegati a cavi maggiori di un metro, in

    modo da non avere troppe interferenze

    dallesterno.

  • Pagina 20

    Il circuito di condizionamento lo stesso del brake-press, in particolare composto da un

    inseguitore di tensione che ha la funzione di disaccoppiare la sorgente del segnale dal resto del

    circuito e da un filtro di secondo ordine di tipo Sallen-Key, che ha la funzione non trasmettere

    eventuali disturbi.

    Steer Angle

    Lo steer-angle un potenziometro lineare da 10k e alimentato a 5V, esso viene utilizzato per

    controllare il grado di sterzo del volante.

    Anche per questo sensore il circuito di condizionamento composto da un inseguitore di tensione

    e da una cella Sallen-Key, come si pu vedere dalla figura:

  • Pagina 21

    Beacon

    Questo sensore della Magneti Marelli composto da un ricevitore ottico a infrarossi, viene

    utilizzato per calcolare i tempi di giro nel circuito.

    Esso invia un impulso da 0 a 5V solo quando riceve il proprio codice dal trasmettitore a infrarossi,

    che sar posto a bordo pista.

    Langolo di ricezione del raggio a infrarossi va da -37 a +37; limpulso che invia da 0V a 5V con

    una durata di 0.5S se riceve il codice per almeno 5mS. Va alimentato da una tensione che pu

    andare da 10V a 15V con una corrente di 50mA.

    La figura seguente descrive le dimensioni del sensore:

    Questo sensore il MT907/D,

    quando riceve il proprio codice invia

    limpulso e un indicatore led posto

    sul sensore viene acceso.

    Il suo circuito di condizionamento

    composto da un solo partitore di

    tensione, in quanto il

    microcontrollore vuole una tensione

    di circa 3.3V e luscita del sensore

    d una tensione da 5V.

  • Pagina 22

    Collegamento Ethernet

    Il datalogger si collega allantenna tramite un access-point, che premette il collegamento tra pi

    dispositivi wireless. Il collegamento con laccess point avviene tramite cavo ethernet di tipo UTP

    categoria 5 con presa RJ-45. Per comunicare attraverso la rete ethernet viene utilizzato un

    dispositivo che crea i pacchetti da inviare ai box, di nome enc28j60. Esso permette la

    comunicazione con la rete ethernet in quanto conosce i protocolli delle reti LAN.

    Esso riceve segnali attraverso ingressi SPI e crea pacchetti validi per la rete ethernet, collegato al

    microcontrollore con lingresso SPI.

    Ci vuole un oscillatore esterno da 25MHz, il

    livello di tensione valodo 3.3V circa ma

    sono tollerati anche 5V.

    LENC28J60 soddisfa tutte le soddisfa tutte le

    specifiche del protocollo ethernet IEEE 802.3.

    La comunicazione con il controllore avviene

    tramite SPI e interrupt

  • Pagina 23

    Nella figura seguente viene descritto il collegamento del microcontrollore allenc28j60 e alla presa

    RJ-45:

    Ora viene descritto il formato del pacchetto che crea il dispositivo:

    Un preambolo di 7 bit viene creato

    automaticamente per ogni pacchetto

    inviato, indica linizio del pacchetto e

    viene scartato quando il pacchetto viene

    ricevuto, come anche il start-of-frame, in

    quanto non contengono informazioni utili

    per il controllore.

    Source e destination address contengono

    lindirizzo fisico dei dispositivi che stanno

    comunicando e che si stanno scambiando

    i pacchetti; attraverso queste due parti

    del pacchetto possibile sapere dove

    devono andare i pacchetti.

  • Pagina 24

    Type/lenght indica il protocollo utilizzato nella creazione del pacchetto oppure la sua lunghezza.

    Data contiene il dato che oggetto della comunicazione tra i dispositivi, la parte principale del

    pacchetto.

    Il padding un campo utilizzato per aggiungere dei bit se il pacchetto troppo corto, in modo da

    soddisfare le regole per i pacchetti nel protocollo di rete.

    CRC viene utilizzato per il controllo degli errori.

  • Pagina 25

    Il microcontrollore

    Il microcontrollore il dispositivo principale del progetto, ogni sensore con il proprio circuito di

    condizionamento si collega al microcontrollore e il segnale del sensore viene inviato ai box. Tutto

    questo avviene grazie al firmware che stato scritto dal programmatore.

    Per questo il microcontrollore viene utilizzato per ogni centralina presente nella macchina e

    cambiando il codice possibile cambiare le sue funzioni.

    Il microcontrollore scelto il DSPIC33FJ128GP802, il quale viene utilizzato per tutte le centraline,

    le sue caratteristiche sono:

    case SDIP a 28 pin alimentazione a 3.3V architettura a 16 bit

    128 KB di memoria Flash

    16 KB di memoria RAM

    5 timer

    4 ingressi di tipo capture

    4 uscite di tipo PWM

    2 interfacce SPI

    1 interfaccia I2C

    10 ingressi analogici a 10 bit

    1 interfaccia CAN

    il prossimo paragrafo descrive il software che permette al microcontrollore di effettuare le sue

    operazioni.

  • Pagina 26

    Progetto del software

    La principale modifica apportata al software riguarda la memorizzazione dei dati ricevuti dai

    sensori sulla SD card. Di seguito abbiamo riportato il vecchio e il nuovo codice per mettere in

    risalto l efficienza della soluzione adottata. Infatti per ridurre i tempi di ricerca del punto da cui

    partire per memorizzare i dati si scelto di adottare l algoritmo di ricerca dicotomico, uno dei pi

    efficienti da questo punto di vista.

    do {

    isEmptySector = MCisEmptySector(offset);

    if (!isEmptySector)

    offset++;

    } while (!isEmptySector);

    do

    {

    m = (offset + offset_max)/2;

    isEmptySector = MCisEmptySector(m);

    isEmptyNextSector = MCisEmptySector(m);

    if (!isEmptySector && !isEmptyNextSector)

    offset = m + 1;

    else

    offset_max = m - 1;

    } while (offset

  • Pagina 27

    Verranno ora descritte le parti pi importanti del firmware, in quanto molte parti non sono

    descrittive del funzionamento del controllore ma sono uguali per ogni centralina.

    I pacchetti devono poi essere inviati alla rete LAN e al CAN, la parte di codice seguente descrive

    come vengono creati i pacchetti

    evidente come il primo dato presente in ogni pacchetto il numero che identifica il pacchetto, in

    questo modo dai box possibile capire a cosa si riferiscono i dati presenti nel pacchetto ed cos

    interpretare i diversi dati ricevuti.

    Ogni pin del controllore deve essere configurato nel modo giusto, in quanto i pin dei

    microcontrollori non possono essere utilizzati in pi modi diversi secondo le diverse funzioni che

    deve eseguire, ad esempio una porta pu essere definita come ingresso digitale o analogico,

    oppure ingresso o uscita.

    Nel file hosts.h viene definito il

    database can, dove per ogni

    pacchetto che il datalogger deve

    inviare viene definita una porta. Ad

    ogni pacchetto e quindi ad ogni

    porta vengono associati quattro

    sensori, ovvero i segnali dei sensori

    che verranno inviati nello stesso

    pacchetto.

  • Pagina 28

    Di seguito viene presentato un esempio:

    Queste sono le parti principali della programmazione del microcontrollore.

    Il progetto stato tutto descritto, mentre nella parte finale verranno presentati i circuiti completi.

    In questo caso alcune porte

    vengono definite come ingressi 0x1,

    altre come uscite 0x0.

  • Pagina 29

    Appendice A

    Le prossime due figure A.1 e A.2 rappresentano gli schemi progettati con il software Eagle, mentre

    la figura A.3 rappresenta lo schema utilizzato per svolgere lo stampato.

    La figura A.4 rappresenta il circuito completo.

    Figura A.1

  • Pagina 30

    Figura A.2

  • Pagina 31

    Figura A.3

  • Pagina 32

    Figura A.4