pic32obd wireless scanner

Transcript

pic32obd wireless scanner
pic32obd wireless scanner
soluzioni per «meccanici» dell’era digitale
Il progetto: cos’è uno scanner diagnostico?
Il sistema realizzato permette al meccanico di ottenere
rapidamente e in modo centralizzato informazioni dalle
centraline elettroniche dislocate nella vettura (centralina
motore, ABS, airbag, ecc.)
I paramentri in arrivo dalle centraline vengono smistate verso
un unico canale di comunicazione: la presa di diagnosi
OBD.
I dati, da questa prelevati, vengono elaborati e presentati in
veste sintetica, chiara, immediata al fine di essere di reale
supporto all’autoriparatore durante le operazioni di diagnosi
del guasto o nei normali interventi di routine.
Cos’è OBD?
Per OBD (OnBoard Diagnostic) si intende la capacità di un sistema automotive quali auto, moto o altri mezzi di
effettuare una diagnosi autonoma dei propri sistemi elettronici e meccanici. L’autodiagnosi consiste principalmente
in:
1.  monitoraggio dei parametri fondamentali del mezzo.
2.  rilevazione e indicazione all’utente di eventuali anomalie.
Complexity
OBD-III
OBD-II
OBD-I
OBD
3.  Intervento diretto sui sistemi in prevenzione di danni gravi.
80 82 84 86 88 90 92 94 96 98 00 02 04 06 08
Model Year
OBD si è evoluto negli anni e, dai rudimentali sistemi comparsi nei primi anni ’80, ci si proietta ormai verso la sua
terza release. Gli standard OBD, attualmente in versione II, sono promulgati da ISO e SAE.
I protocolli OBD
I documenti dei due enti si preoccupano di definire le specifiche elettriche, logiche e meccaniche dei protocolli OBD.
Dal punto di vista meccanico, OBD-II prevede il connettore J1962, standardizzato da SAE.
Il connettore si compone di 16 poli che implementano le cinque diverse tecnologie di
comunicazione previste per la comunicazione con l’ECU (la centralina motore). Le connessioni possibili sono:
1.  SAE J1850 PWM, SAE J1850 VPW
2.  ISO 15765-2 / SAE J1939 CAN
3.  ISO9141 e ISO14230
I protocolli seriali ISO
Per la realizzazione del progetto ci si è incentrati in particolare sui due protocolli seriali che OBD mette a
disposizione, ovvero ISO 9141 e ISO 14230 (detto KWP2000).
I protocolli condividono lo stesso canale di comunicazione fisico cotituito di due linee distinte, riferite come
Linea K (linea generalmente bidirezionale usata per la comunicazione) La linea K supporta un baudrate massimo
pari a 250kbps. A livello logico, si implementa un UART standard 0÷VBATT.
Linea L (opzionale e unidirezionale, utilizzata per la sola inizializzazione della comunicazione).
Il protocollo prevede sia connessioni con topologia point-to-point sia a bus.
I protocolli seriali ISO
Topologia a bus per i protocolli ISO9141-2 e ISO14230-4:
ECU1
ECU2
OBDII
Connector
bi-directional
unidirectional
ECU3
K-Line
Diagnostic
Tester
(ISO-9141-2
Scan Tool)
L-Line
ECUn
I protocolli seriali ISO
Specifiche logiche-elettriche per i protocolli ISO9141-2 e ISO14230-4:
Il protocollo ISO14230-4
ISO 14230, meglio conosciuto come KeyWord Protocol 2000 (KWP), ratificato da ISO il
15-03-1999, rappresenta l’alternativa a ISO 9141-2 per la diagnosi OBD su bus K-L.
KWP rappresenta di fatto un’evoluzione di ISO 9141-2 ed attualmente rappresenta il
protocollo maggiormente implementato per la diagnosi OBD sui moderni veicoli. Le moderne
implementazioni di KWP avvengono in genere su CAN (KWP over CAN bus)
ISO 14230 si estende su tutti i livelli del modello ISO-OSI, con ISO14230-1 (Physical layer),
ISO14230-2 (Data link layer), ISO14230-3 (Application layer), ISO14230-4 (Requirements).
PIC32 OBD Wireless Scanner
La realizzazione consiste in due schede che implementano uno scanner diagnostico basato su KWP.
Una prima scheda, denominata CAR Board, implementa le funzioni di basso livello per la comunicazione OBD ed è
in grado di comunicare con una seconda stazione di diagnosi, remota, denominata USER Board.
Attraverso la USER Board l’operatore può richiedere da remoto i parametri diagnostici della vettura inviando
appositi comandi verso la CAR Board.
Il collegamento tra le due schede è rappresentato da un link radio wireless Sub-GHz, in banda ISM.
Per controllare con relativa semplicità l’intero sistema di diagnosi, è stato previsto un’apposito applicativo su PC.
CAR Board
La CAR Board ha il compito fondamentale di gestire la comunicazione KWP con l’auto.
La realizzazione della scheda è basata su una soluzione a microcontrollore, un PIC della serie PIC32, di produzione
Microchip.
CAR Board
L’alimentazione della scheda è prelevata dalla porta di diagnosi EOBD, a sua volta prelevata direttamente ai capi
della batteria del veicolo. La tensione che varia da circa 12V a veicolo spento e 13,7V con alternatore in funzione, è
stabilizzata da un primo regolatore switching di tipo step-down (LM2596) alla tensione continua di +5V.
La tensione di +5V è necessaria per l’alimentazione del driver K-L à UART L9637D e per il display HD44780compatibile. A partire dalla tensione di +5V, si ottiene con un regolatore lineare low-dropout LM1117 la tensione di
3,3V necessaria per l’alimentazione del microcontrollore.
CAR Board
Per interfacciare il microcontrollore con il bus K di
KWP è necessario un apposito traslatore di livello.
Si è optato per una delle rare soluzioni integrate
che implementano una tale funzione, il driver
L9637 di ST Microelectronics, che rappresenta un
interfaccia K-L à UART TTL. Gli input destinati ai
moduli UART del PIC sono 5V compatibili e
dunque correttamente interfacciabili con
l’integrato suddetto.
CAR Board: Firmware
Interfaccia radio wireless
Per quanto riguarda la scelta del modulo radio, si è optato per un
modem operante sulla frequenza ISM e specialmente sugli
868MHz. Il modem è un CC1101 di fabbricazione TI.
Presenta le seguenti caratteristiche:
♣ Bande: 300-348 MHz, 387-464MHz e 779-928 MHz
♣ Modulazioni: ASK, OOK, 2-FSK, 4-FSK, GFSK, e MSK.
♣ RX e TX 64 bytes hardware data FIFOs separati.
♣ Potenza di trasmissione fino a +12dBm
♣ Sensibilità: -112 dBm @ 1.2 kBaud, 868 MHz (con consumo di
14.7 mA)
CC1101
Il modem funziona secondo il principio del modulatore universale I-Q.
In digitale vengono implementate tutte le operazioni riguardanti il controllo automatico del guadagno
(AGC), il filtraggio, la demodulazione e la sincronizzazione bit/pacchetto. Per quanto riguarda lo stadio
di trasmissione, il modem si basa sulla sintetizzazione diretta della radiofrequenza, includendo al
proprio interno un VCO LC e uno shifter di fase (π/2) necessario a generare le due componenti I e Q
propedeutiche alla modulazione.
Il modem viene configurato per lavorare con: portante 868 MHZ, modulazione GFSK, deviazione di
frequenza 126.95kHz, 1 canale, 4 byte preambolo, 4 byte sync word, 250kBaud data rate, potenza
TX 10dBm. Così configurato, il modem assorbe circa 16.9mA in ricezione e circa 30mA in
trasmissione.
USER Board
La USER Board ha il compito di impartire i comandi designati dall’operatore verso la CAR Board e di visualizzare i
dati di diagnosi in arrivo da quest’ultima. Anche la USER Board è basata su una soluzione a micrcontrollore.
La fonte di alimentazione primaria per la scheda è fornita dalla porta USB, mentre è comunue prevista la possibilità
di alimentazione esterna con tensione stabilizzata +5V.
USER Board: connessione USB
Per rendere chiaro ed immediato l’utilizzo dello scanner diagnostico, ci si è adoperati per renderne possibile
l’interfacciamento con un computer, dove un applicativo realizzato ad hoc permetta di controllare la stazione di
diagnosi.
Per interfacciare la USER Board con il PC si è implementata una connessione USB di tipo CDC, classe che
permette di gestire la comunicazione nelle stesse modalità con le quali si gestisce un link seriale RS232.
Affinchè la comunicazione sia possibile è necessario che il microcontrollore sia appositamente predisposto e
configurato. Lo stack USB che gestisce la comunicazione a livello microcontrollore è quello della libreria MLA messa
a disposizione da Microchip (MCHPFUSB) nella sua versione 2.9j per PIC32.
USER Board: Firmware
Software di interfaccia utente
Il software di interfaccia utente per PC è sviluppato in C#, linguaggio di programmazione Microsoft della
famiglia .NET sviluppato in ambiente Visual Studio Express 2010.
Il protocollo di basso livello implementato per la comunicazione scheda/PC è il medesimo utilizzato per la
comunicazione della USER Board con il modulo radio, cui si demanda la consultazione. Qui è riportato un esempio
di trama:
Esempio di funzionamento:
Esempio di funzionamento: CAR Board
Esempio di funzionamento: CAR Board
Esempio di funzionamento: CAR Board