CAN - BUS                                                a                                                                                                                                                                


 

                                      DIFFERENZE TRA  EOBD e CAN.

Il primo è un protocollo standard che c'è su tutte le auto a partire da una certa dapa in poi che permette di LEGGERE (e non scrivere) dati generici provenienti dall'auto (giri motore, velocità, pressioni dei fluidi e poco altro). La cosa più coma dell'OBD è la possibilità di leggere i codici di errore e volendo resettarli (unica cosa in scrittura che può fare l'OBD).
Il CAN BUS è una specie di rete che unisce tutti i sensori e gli apparati elettrici dell'auto. Da questa rete puoi catturare i messaggi e trasportarli sul pc. Da quì ci passano TUTTI i dati dell'auto.
Mentre l'OBD è un protocollo standard che accomuna TUTTE le auto e da cui si può leggere solo pochi dati, il CAN è diverso da produttore a produttore (anche da modello a modello della stessa casa) ma ti da la possibilità di leggere TUTTI i dati che l'auto gestisce elettronicamente.
Per leggere dati sia OBD che CAN devi avere una interfaccia. Nel caso dell'OBD ne basta una basata su chip ELM327 senza configurazioni e problemi particolari, per il CAN puoi usare sempre la stessa interfaccia ma attaccandoti non alla presa di diagnosi ma bensì ad una terminazione del circuito CAN e di lì andare a trovarti i codici trasmessi via seriale.




    

       Attualmente ci sono 2 possibilità per leggere i dati dal circuito CAN:
 
  • Interfaccia OBD2 basata su ELM 327
  • Interfaccia CanUSB


                                             INTERFACCIA ELM 327

Si può reperire facilmente in rete ed ha un costo molto contenuto. Si usa generalmente per leggere i dati EOBD dalla presa di diagnosi dell'auto.

                                             INTERFACCIA CAN BUS

E' una interfaccia apposita per leggere SOLO i dati CAN (quindi niente dati EOBD). Il sito del produttore è www.canusb.com. Si trova sia in versione USB che seriale. La differenza sostanziale rispetto all'ELM327 è la facilità con cui si riescono a trovare i dati degli eventi.


Come anticipato sopra in genere si usa il connettore dell'autoradio che ha , tra le altre connessioni, anche il CAN.
Le connessioni che dobbiamo trovare sono:

 
  • CAN H
  • CAN L
  • GROUND


Per trovare agevolmente queste connessioni basta andare sul sito della Phonocar e scaricare il manuale di istruzioni per i comandi al volante CAN della vostra auto o di qualsiasi accessorio che deve essere connesso al circuito CAN. In questo modo troviamo agilmente la piedinatura del connettore. Un esempio può essere l'interfaccia Phonocar 4/073 per i comandi al volante. Scaricando il pdf si vedono le piedinature.

 

 

Il Controller Area Network, noto anche come CAN-bus, è uno standard seriale per bus di campo (principalmente in ambiente automotive), di tipo multicast, introdotto negli anni ottanta dalla Robert Bosch GmbH, per collegare diverse unità di controllo elettronico (ECU). Il CAN è stato espressamente progettato per funzionare senza problemi anche in ambienti fortemente disturbati dalla presenza di onde elettromagnetiche e può utilizzare come mezzo trasmissivo una linea a differenza di potenziale bilanciata come la RS-485. L'immunità ai disturbi EMC può essere ulteriormente aumentata utilizzando cavi di tipo twisted pair (doppino intrecciato).

Sebbene inizialmente applicata in ambito automotive, come bus per autoveicoli, attualmente è usata in molte applicazioni industriali di tipo embedded, dove è richiesto un alto livello di immunità ai disturbi. Il bit rate può raggiungere 1 Mbit/s per reti lunghe meno di 40 m. Velocità inferiori consentono di raggiungere distanze maggiori (ad es. 125 kbit/s per 500 m). Il protocollo di comunicazione del CAN è standardizzato come ISO 11898-1 (2003). Questo standard descrive principalmente lo strato (layer) di scambio dati (data link layer), composto dallo strato sottostante (sublayer) "logico" (Logical Link Control, LLC) e dallo strato sottostante del Media Access Control, (MAC) e da alcuni aspetti dello strato "fisico" (physical layer) descritto dal modello ISO/OSI (ISO/OSI Reference Model). I protocolli di tutti gli altri layer sono lasciati alla libera scelta del progettista della rete.
 
Per la connessione fisica si puo' usare un semplice adattatore seriale da saldare:

La piedinatura per la saldatura è data dal manuale di CAN USB

Una volta che le connessioni sono fatte non resta che installare l'interfaccia sul PC!
http://www.canusb.com/documents/canusb_drinst_vcp.pdf

Una volta installata fisicamente l'interfaccia e che i drivers sono ok si entrare nel vivo dell'hack del circuito CAN.

Sul sito www.canusb.com ci sono dei programmi di esempio che permettono di utilizzare l'interfaccia e verificarne il funzionamento. Il software  liberamente scaricabile previa registrazione è CanviaUSB e si scarica da quì: http://www.canviausb.com/CANviaUSB/index.php


Non appena installato il programma bisogna configurarlo:
scegliamo come interfaccia CanUSB e successivamente ci viene chiesta la velocità di lettura. Per la velocità possiamo andare solo a tentativi! Prendiamo la prima velocità, diamo ok e premiamo il tasto play verde in alto sulla barra. Se in Communication Log vedrete scorrere dei dati simili allo screenshot allora avete trovato la velocità giusta! Quella è la velocità di comunicazione del vostro CAN BUS.

Il programma facilita in modo impressionante la ricerca dei codici!
Con l'interfaccia collegata e in play possiamo andare a vedere in maniera più chiara quali sono i sensori che stanno inviando dati andando su Identifiers. Ogni riga rappresenta un indirizzo che sta trasmettendo dati. Alcuni staranno fermi, altri si muoveranno, è normale!

Tenete d'occhio la schermata e provate (a quadro acceso ovvimente!) ad aprire lo sportello oppure a premere su un tasto dei comandi al volante. Vedrete che alcuni valori cambiaranno a seconda di quello che premete!

E' l'ora di prendere un bel foglio di excel e cominciare a segnare tutti i dati associati agli eventi.

Una volta trovato tutto è tempo di programmare!

CANUSB offre agli sviluppatori esempi con codice sorgente in molti linguaggi. Il tutto è reperibile sul sito http://www.canusb.com/downloads.htm

La programmazione è facilitata grazie all'architettura dei driver D2XX che gestiscono molte funzioni autonomamente senza che sia il programmatore a preoccuparsene. Inoltre CANUSB ha la possibilità di essere interrogato tramite interfaccia seriale ed ha dei comandi ASCII a cui risponde similmente a quanto succede con ELM327 (http://www.canusb.com/documents/canusb_manual.pdf)


Una ottima guida per programmare si può trovare direttamente sul sito di ftdichip http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's
_Guide(FT_000071).pdf