Newsgroup: it.hobby.elettronica.digitale
Titolo: CANBUS su peugeout

Salve a tutti, sono possessore di una pegeout 407, dotata di comunicazione 
CAN BUS tra le periferiche interne, ho individuato sotto il volante, 
svitando le viti che chiudono la plastica protettiva del piantone dello 
sterzo un connettore che mi da accesso alla rete can bus. Con il dsPic 
riesco a leggere i codici e i dati sul canbus, sono del tipo:
ID 1074 dati: 10 0F 68 AD AA 45 00 00 80 00
ID 1074 dati: 10 00 00 AD AA 45 00 00 80 00
ID   660 dati:  43 FE F6 11 4A 1D 00 00
ecc...
vorrei riuscire ad azionare qualcosa con il pic, tipo inserire la freccia a 
destra, o alzare e abbassare un finestrino, tramite comandi can bus.
Qualcuno ha una vaga idea di come si possa fare? come posso individuare il 
codice esatto?
grazie e ciao,
leo 

 ha scritto nel messaggio 
news:1Kure.1702$yM4....@twister2.libero.it...


 ha scritto nel messaggio
news:1Kure.1702$yM4....@twister2.libero.it...


 Puoi dirmi dove hai trovato lo schema per l'interfaccia.
Lo schema è semplicissimo basta usare un pic con l'interfaccia canbus
integrata tipo un dsPic5013 o dsPIC30F6014
 e il chip del phisical layer del canbus che è il MPC2551
dal lato "digitale" :
colleghi il RXD del MCP2551 al CANRX del PIC
colleghi il TXD del MCP2551 al CANTX del PIC
dal lato canbus colleghi con un doppino CAN_H e CAN_L del MCP2551 al can bus
dell'auto.
metti una resistenza di pull down verso massa da 4K7 sul pin 8 dell'MCP2551
e sei a posto.
Il resto è tutto software.... |-)
La difficoltà maggiore l'ho trovata nel capire come funzione il canbus del
PIC con tutti i suoi registri di
configurazione.
Altro punto critico: devi allineare la frequenza del canbus del PIC con
quella dell'auto. io l'ho fatto
guardando con l'oscilloscopio il bit-rate del canbus auto che era di circa
115KBit/s
ma mi sono bloccato sull'interpretazione dei codici e sul come comandare i
dispositivi dell'auto.
Per ora mi accontenterei anche solo di leggere lo stato alcune periferiche
come temperatura motore o
velocità/giri motore...
ciao.
Leo


 codice esatto?
Devi per forza scriverti un CAN monitor, ossia un programmino che ti
permetta di vedere i messaggi in tempo reale (ad esempio interfacciando il
dsPIC al PC tramite seriale). Dopodiché vai a tentativi: attivi la freccia
e guardi quale messaggio cambia, giri lo sterzo e guardi quale messaggio
cambia, eccetera.
Per esperienza personale posso dirti che cercare di reperire la mappatura
CAN da fonti "ufficiali" è un'impresa sostanzialmente vana.
-- 
asd


Ma tu sei riuscito a cavare qualche ragno dal buco? hai già fatto qualcosa
di simile? perchè io ho già fatto qualche prova simile ma è
ardua.
Per esempio come fai ad essere sicuro della sincronizzazione del clock del
tuo can bus con quello dell'auto?
Hai qualche codice, o qualcuno ce l'ha?
ciao,
Leo

 tuo can bus con quello dell'auto?
Cosa intendi con "il clock dell'auto"? Il protocollo CAN è asincrono, e
comunque nelle automobili non ho mai visto applicazioni "time critical"
controllate via CAN che richiedessero una sincronizzazione particolare con
qualcosa.
-- 
asd

 particolare con qualcosa.
Mi riferivo al bitrate del Can bus. Quello della peugeout ha un bit rate di
circa 62,5Kbit/s
Nelle impostazioni del pic bisogna regolare il vari registri del baud rate
generator per
allinearsi al bit rate dell'auto....
ciao,
Leo.

 Mi riferivo al bitrate del Can bus.
Ah, ok, non avevo afferrato. Beh, tieni conto che un minimo di discrepanza
non dovrebbe causare problemi, credo che ogni pacchetto si sincronizzi per
conto suo.
-- 
asd

 conto suo.
Smanettando con i vari registri riesci a costruire una quantità esagerata
di bitrate. Ma le periferiche CAN hanno un contatore di errori. Risulta 
quindi
facile fare un programma che si auto adatta alla velocità del bus. In linea 
di
massima puoi precostruirti i settaggi per le velocità più comuni, 1M, 500k, 
250k,
125k etc... Parti da una e quando il contatore di errori va in overflow (in 
genere
l'evento scatena anche un interrupt) capisci che il settaggio è sbagliato e 
passi
al successivo. Se finisci la lista dei settaggi prefissati (difficile) puoi 
tentare con
la forza bruta provando tutte le combinazioni....
Oppure potresti provare con un oscilloscopio a determinare il bitrate.
Se vuoi essere sicuro di aver beccato il bitrate giusto controlla che il 
contatore
di errori stia praticamente sempre a 0.
La presa che hai trovato (simile a una preda 'D' di colore verde???) molto
probabilmente è la presa dell'OBD. In qesto caso potresti riuscire a trovare
qualcosa sul protocollo in rete (è uno standard almeno per i messaggi 
principali).
Tieni inoltre presente che molti messaggi non vengono continuamente spediti
dall'ECU sul CAN ma sono a richiesta (usando il remote frame). Ti conviene
in questo caso provare tutte le combinazioni per "scovare" i messaggi
su richiesta. Se il protocollo è a 11 bit, 2048 combinazioni te la cavi in 
poco
tempo (con qualche ripetizione e 1 combinazione al secondo ci impieghi meno
di un'ora a provarli tutti). Se il protocollo ha l'ID a 29 bit... o hai la 
fortuna
di beccare i messaggi giusti o vinci al superenalotto. In genere nella vita 
di una
persona capita al massimo solo uno dei due avvenimenti.... Auguri :-P
Per esempio le ECU Marelli (almeno le più vecchie MF4 etc..) hanno l'ID
a 11 bit.... Giusto Dalai ;-)
-- 
***** By The Overkill !!! *****