Go Down

Topic: [OT] Interfaccia Protocollo ISO9141-2 (OBD) (Read 2808 times) previous topic - next topic

d407336

Ciao, vi chiedo un aiuto che non c'entra con arduino ma non sò come fare con l'elettronica.
Dovrei costruirmi un'interfaccia per poter collegare una presa OBD con protocollo ISO9141-2 ad un computer, non ad arduino.
Forse qualcuno quì ne sa qualcosa.

Ho trovato questo e penso che sia adatto: http://www.vwitalia.it/forum/f85/guida-realizzazione-dell-interfaccia-iso-9141-2-obd-ii-551.html
Però usa anche un contatto (L-Line) che io non ho (sul pin 15).
Come si legge quà:http://www.diagnostics4u.com/9/diagnostic-information il pin 15 può non esserci:
Quote
ISO metal contacts in pins 4, 5, 7, and 16. (15 may or may not be present)


Cercando ISO9141-2 interface trovo il datasheet di un certo L9637:
Quote
The L9637 is a monolithic integrated circuit containing standard ISO 9141 compatible interface functions.

Ma non ho capito a cosa serve...

Ho visto anche questo schema, che usa solo la K-Line che è quella che ho io:
http://arduino.cc/forum/index.php/topic,57442.0.html
E quì escono già TX e RX.

Come fare?

tuxduino

Non mi pare che la cosa sia poi così OT... ho visto in giro gente che ha messo un arduino+shield lcd in auto per visualizzare gli rpm del motore e altre informazioni, in pratica una replica parziale del display di bordo con selettore funzione.

d407336

Se facessi questo:


senza però mettere la linea L, poi potrei collegarlo al pc, giusto?
ma poi per comunicarci come faccio? basta inviargli dei comandi con un termninale seriale?

d407336

Ho trovato anche questo: STN1110
Qualcuno ne sà qualcosa?

PaoloP


Ho trovato anche questo: STN1110
Qualcuno ne sà qualcosa?


Sembra interessante, considerato che come interprete, il più diffuso e clonato, è l'ELM327 (http://www.elmelectronics.com/obdic.html#ELM327) che però costa di più.

tuxduino

Uno shield OBD con uno di questi chip venderebbe bene secondo me... :P

(ammesso che sia corredato di opportuna libreria come il motor shield della ladyada)

d407336

Questo STN1110 costa 9 dollari, però la spedizione costa 40 dollari, quindi stò cercando delle alternative.
Penso che l'STN1110 sia un pic programmato in modo che faccia da interprete tra l'obd e la seriale del pc, quindi in teoria si potrebbe programmare anche un arduino (o atmega) per fargli fare la stessa cosa, è possibile?

L'STN1110 dovrebbe essere basato su un PIC24HJ128GP502.
Si può aggiornare il firmware di questo chip che però deve avere già il bootloader.
Ho scaricato l'ultimo firmware disponibile e ci sono questi files:
Code: [Select]

NLog.dll
stn1110-3.2.0.bin
stn1110-changelog.txt
StnBootloader.dll
StnFirmwareUpdater.exe
StnFirmwareUpdater.exe.config
StnLib.dll

Secondo voi avendo un programmatore pic è possibile caricargli lo stesso il firmware partendo da questi files o poi senza il bootloader originale non funzionerebbe niente?

Ho trovato anche questo:
http://code.google.com/p/opengauge/wiki/OBDuinoInterface#Interface_for_ISO
Quote
This interface converts the ISO signals for the Arduino inputs. It consists of a small IC (Freescale MCZ33290EF), a 510 ohms resistor, a DB9M that will be plugged with the cable mentioned above, and few wires that connect to the Arduino board.

In pratica questo componente serve per poter collegare arduino all'obd, ma poi comunque non interpreta niente e bisogna scrivere un interprete per arduino?

PaoloP

Si, i dati in arrivo devono essere interpretati in base al protocollo della connesione ISO
Ho visto che sul sito da te indicato c'è qualche esempio --> http://code.google.com/p/opengauge/

d407336

Il componente Freescale MCZ33290EF che c'è quì http://code.google.com/p/opengauge/wiki/OBDuinoInterface#Interface_for_ISO a cosa serve?

PaoloP

Serve da interfaccia tra Arduino e il bus dati della macchina.
Datasheet --> http://cache.freescale.com/files/analog/doc/data_sheet/MC33290.pdf?pspll=1
Quindi a livello elettrico sei a posto. Dal punto di vista software devi sempre far "capire" ad Arduino i dati in arrivo.

d407336

Quindi fà da interfaccia ma non da interprete.
Ho visto che con quel componente si hanno tx e rx a cui collegare l'arduino, servono per una comunicazione seriale?

PaoloP

Il datasheet parla di pin dati senza specificare il protocollo seriale utilizzato.

d407336

Ho trovato anche questo: http://www.st.com/internet/automotive/product/75181.jsp
Però non ho ancora ben capito che cosa fanno in pratica questi componenti... permettono di collegare l'arduino all'obd, ma loro in mezzo cosa ci fanno se non fanno da interprete?

PaoloP

Abbassano il livello del segnale in modo che sia compatibile con Arduino (0 - 5V)

d407336

Se fanno solo questo allora possono essere sostituiti dal circuito che ho messo nel terzo messaggio?

Go Up