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