CAN-bus i diagnosuttag

Volvo S60, S80, V70N (00-08), XC70 (00-08), XC90 relaterade ämnen OBS! vid motorproblem försök att ange vad du har för motor i bilen...

Moderator: Moderatorer


CAN-bus i diagnosuttag

Inläggav andreas 80 mån 21 dec 2009, 20:02

Hej, har en liten teknisk fråga.

Tänkte pilla lite med kommunikation i bilen, en V70n-00.
Hade tänkt lyssna av lite trafik och ev lite annat på CAN nätet.

Nu har jag fått reda på att bussen till diagnosuttaget normalt är stängd och behöver öppnas först.
Detta skall tydligen ske via K-lina.
Tydligen något enkelt meddelande som skickas med jämna mellanrum för att ha CAN-bussen aktiv.

Är det någon här som har kunskap om detta, och hur man kan konstruera en enkel hårdvara som gör det.
Användarvisningsbild
andreas 80
Mekaniker Wannabe
 
Inlägg: 693
Blev medlem: sön 23 sep 2007, 18:43
Ort: Göteborg
Kör: V60 D3 Summum -14



Re: CAN-bus i diagnosuttag

Inläggav CarMan mån 21 dec 2009, 21:51

k-linan andvänder man väll för att läsa av ECM felkoder. ???
Om CAN- nätet är avstängt eller ej i OBD II uttaget vet jag inte. Men det är väl inte svårare än att gå på nån annan stans i systemet, för där är det garanterat på hela tiden.
Om du vill veta mer om mig som person…
http://www.ask.fm/car_man
Snälla bara personliga frågor på denna.

Bil frågor tar vi på forumet! I lämplig tråd, inte på PM
Användarvisningsbild
CarMan
Beroende av Jagrullar
 
Inlägg: 11823
Blev medlem: ons 08 okt 2003, 16:32
Ort: Sverige :)

Re: CAN-bus i diagnosuttag

Inläggav andreas 80 mån 21 dec 2009, 22:05

Nä det går ju komma åt överallt naturligtvis.
Det är ju bara en smidig anslutning just där, vill helst inte skarva någonstans.

Det med K-lina var bara nått jag hörde, att på tidiga modeller fram till ungefär -04 så aktiverade man just diagnosuttagets CAN, med att skicka någon typ av sekvens över K-lina, så att CEM eller något annat relä öppnade den kopplingen.

Ev. så får jag låna en enhet som ska göra detta nu. Men är fortfarande nyfiken på vad den egentligen gör.
Användarvisningsbild
andreas 80
Mekaniker Wannabe
 
Inlägg: 693
Blev medlem: sön 23 sep 2007, 18:43
Ort: Göteborg
Kör: V60 D3 Summum -14

Re: CAN-bus i diagnosuttag

Inläggav CarMan mån 21 dec 2009, 22:57

Det går fortare att gå ut till bilen o mäta om du har can signal konstant i OBD II utaget än att vänta på ett svar här.

K-linan är en kvarleva från den tiden då vi inte hade CAN-när i bilarna.
Om du vill veta mer om mig som person…
http://www.ask.fm/car_man
Snälla bara personliga frågor på denna.

Bil frågor tar vi på forumet! I lämplig tråd, inte på PM
Användarvisningsbild
CarMan
Beroende av Jagrullar
 
Inlägg: 11823
Blev medlem: ons 08 okt 2003, 16:32
Ort: Sverige :)

Re: CAN-bus i diagnosuttag

Inläggav jimDK tis 22 dec 2009, 13:07

Jag är också mycket nyfiken.
Mätningarna kan möjligen göras med hjälp av oscilloskop?
http://www.zeitnitz.de/Christian/scope_en
fungerar mycket bra, har använt det tidigare för andra mätningar.
mätar via ett ljudkort, krävs en PC.
Jag vet inte om CAN signaler är för snabb för ljudkort-sampling?

övervakning av en PPC-kod-läsare vit utläsning kan nog ge några tips :)
previous:740,240,850, current: XC90 2007 + V70 2.4 2004 http://www.xc90.dk VIDA+DICE och PPCII
Användarvisningsbild
jimDK
Mekaniker Wannabe
 
Inlägg: 792
Blev medlem: ons 13 aug 2008, 12:59
Ort: Denmark,Jylland
Kör: XC90 2007+V70 2004

Re: CAN-bus i diagnosuttag

Inläggav andreas 80 tis 22 dec 2009, 14:01

För att logga/skicka CAN-trafik har jag bra instrument/program, så det kommer inte vara något problem.
Visst kan man använda oscilloskop, men det är väldigt tidskrävande att tyda signalerna sedan.

För att lista ut vad som behövs för att öppna bussen till diagnosuttaget skulle det kunna vara användbart dock.
Att logga en PPC-läsare skulle kanske fungera, men jag ska höra mig lite för på annat håll.

Fick låna en box idag som sägs göra detta, men den ser ut att göra annat.
Men jag skall göra ett försök med den senare.

Det är ju verkligen inte nödvändigt att gå genom diagnosuttaget. CAN finns ju överallt i bilen och jag skulle lätt koppla in mig bara jag ville.
Men jag är född nyfiken, och MÅSTE veta hur man gör... :D
Användarvisningsbild
andreas 80
Mekaniker Wannabe
 
Inlägg: 693
Blev medlem: sön 23 sep 2007, 18:43
Ort: Göteborg
Kör: V60 D3 Summum -14

Re: CAN-bus i diagnosuttag

Inläggav jimDK ons 30 dec 2009, 13:13

jap, sant nok, oscilloskop är mycket 'low level'.
finns också någon linux open-source projekt som arbetar med CAN kommunikation.
Jag tycker också att det är bäst att gå genom diagnos-uttaget.

För att logga/skicka CAN-trafik har jag bra instrument/program


hur da? du har en länk eller ett tips du vill dela? Jag skulle gerne vilja bygga ett instrument :) jag har PPC redan.
previous:740,240,850, current: XC90 2007 + V70 2.4 2004 http://www.xc90.dk VIDA+DICE och PPCII
Användarvisningsbild
jimDK
Mekaniker Wannabe
 
Inlägg: 792
Blev medlem: ons 13 aug 2008, 12:59
Ort: Denmark,Jylland
Kör: XC90 2007+V70 2004

Re: CAN-bus i diagnosuttag

Inläggav andreas 80 ons 30 dec 2009, 16:30

Nu tar jag det lugnt under julen, får se vad jag hittar på sedan.

Verktygen jag har tillgång till är inga hemligheter, det är Vector Canalyzer som mjukvara tillsammans med hårdvara från Kvaser just nu. Inget man kan dela med sig av dock.

Tanken var att hitta någon billig krets man kanske kan använda sig av för att göra några grundläggande saker. (Har funderat på en PIC-processor eller en från Atmel, tillsammans med någon interfacekrets.
Men då vill jag att det fungerar med de professionella verktygen först, och att jag har bra förståelse om vad jag gör.
Allt görs som en hobby i mån av tid (vilket jag inte har så mycket) så vi får se hur långt jag orkar komma.
Användarvisningsbild
andreas 80
Mekaniker Wannabe
 
Inlägg: 693
Blev medlem: sön 23 sep 2007, 18:43
Ort: Göteborg
Kör: V60 D3 Summum -14

Re: CAN-bus i diagnosuttag

Inläggav gooose tor 31 dec 2009, 02:30

Överkurs steg 3 ? Vad är det du söker för information. Vad är det för fel på bilen ??

Eller är du av den Nyfikna karaktären som person ?


//Goose
Användarvisningsbild
gooose
Bensin i blodet
 
Inlägg: 1145
Blev medlem: lör 29 sep 2007, 00:53
Kör: Hur som helst...........................

Re: CAN-bus i diagnosuttag

Inläggav jimDK lör 02 jan 2010, 11:54

För min del, jag är bara nyfiken och vill gärna göra några runtime avläsningar och leka med det.
previous:740,240,850, current: XC90 2007 + V70 2.4 2004 http://www.xc90.dk VIDA+DICE och PPCII
Användarvisningsbild
jimDK
Mekaniker Wannabe
 
Inlägg: 792
Blev medlem: ons 13 aug 2008, 12:59
Ort: Denmark,Jylland
Kör: XC90 2007+V70 2004

Re: CAN-bus i diagnosuttag

Inläggav andreas 80 tis 19 jan 2010, 09:43

Ville bara meddela att jag hittat sekvensen nu.
Det är bara att skicka följande 7 byte över K-lina så får man tillgång till CAN-nätet.

De är presenterade hexadecimalt nedan:
84 40 13 b2 f0 03 7c

Använde mig av en vanlig USB -> RS232 omvandlare.
Skapade en omvandlare för att göra om RS232 spänningsnivåer (+/- 10V) till K-lina (0V & +12V)
Körde ett standard terminalprogram med stöd för att skicka Hex-koder istället för Ascii. Ställde in 10400 baud med 8N1.
Nästa steg blir att skapa en enhet som automatiskt skickar det, för man måste skicka var 5:e sekund annars så stänger den bussen igen.
Användarvisningsbild
andreas 80
Mekaniker Wannabe
 
Inlägg: 693
Blev medlem: sön 23 sep 2007, 18:43
Ort: Göteborg
Kör: V60 D3 Summum -14

Re: CAN-bus i diagnosuttag

Inläggav Fred tis 19 jan 2010, 11:46

Jag fattar inte ett spår av det du skriver...men jag applåderar din driftighet! Jag är också säker på att andra kan ha nytta av informationen som du fått fram.

Nu är man ju väldigt nyfiken på vad du har för planer med det du hittat! Vad kan man göra med siffrorna?

Mvh
/Fred
Volvo V70N Bi-Fuel -02
Toyota Celica ST 2000 -76
Fred
Volvotok
 
Inlägg: 2120
Blev medlem: mån 21 jan 2008, 14:08
Ort: Stockholm
Kör: V70N 02, Bi-Fuel Toyota Celica ST2000

Re: CAN-bus i diagnosuttag

Inläggav tbar ons 20 jan 2010, 11:17

Tja,
Det här var ju riktigt intressant. Ser ut att kunna bli ett spännande projekt. Har du lust att fortsätta skriva om hur det fortlöper.
Tänkte du köra något OS/RTOS på processorn?
tbar
Däckkrängare
 
Inlägg: 109
Blev medlem: tor 29 mar 2007, 14:24
Kör: V70_170 -05, Mondeo_hgv -94

Re: CAN-bus i diagnosuttag

Inläggav andreas 80 tor 21 jan 2010, 20:37

Visst kan jag fortsätta skriva om vad jag gör framöver.
Vet inte vad jag kommer köra för typ av program/OS än. Är inte någon mästare på just programmering tycker jag.
Det blir nog en del i taget, så får jag se hur man kan bygga ihop det sedan.

Jag läste just assembler för mikrodatorer när jag studerade, så det är det jag fortsatt med nu.
C/C++ är nog bättre, så jag överväger om jag skall lära mig det.

Så här blev förresten schemat på det jag gjorde för att öppna can nätet
Bild

Och om det finns någon intresserad så har jag programmet jag gjorde för mikroprocessorn (PIC12F675) här.
Allt gjort i microchip's egna miljö, MPLAB IDE.
Som sagt så är jag inte bäst på programmering, så det kunde säkert gjorts på något bättre sätt.
Nästa gång använder jag nog en processor med inbyggd UART, så blir det mycket enklare.
Mina kommentarer flyttade sig lite i sidled när jag kopierade.
Kod: Markera allt
   list p=12f675
#include P12f675.inc
   __config 0x3F94      ;Internal Osc no clk out, WDT off, PUT off, MCLRE internal, BODEN off, CP off, CPD off

;Create variables in RAM area, starting at 0x20
sendbyte EQU 0x20         ;Byte ready to send
bit_count EQU 0x21         ;Counter to keep track of which bit in "sendbyte" is beeing transmitted
byte_count EQU 0x22         ;Counter to keep track of which byte is beeing sent
delay_1 EQU 0x23         ;Delay each bit to establish 10,4k baud
ready_to_send EQU 0x24      ;Used to create delay between sends, ~2sec

   org 0x00            ;Reset vektor
   goto main

   org 0x04            ;Start of Interrupt routine

   BTFSC PIR1,TMR1IF      ;Check if Timer1 interrupt has occured
   GOTO tmr1_int
   retfie

main:
;-----------------------Start init-----------------------
   call    0x3FF                 ; retrieve factory calibration value for internal oscillator
   bsf     STATUS,RP0       ; set file register bank to 1
   movwf   OSCCAL          ; update register with factory cal value
   
   bsf PIE1,T1IE         ;TMR1 interrupt enable
   bsf INTCON,PEIE         ;Enable all perpheral interrupt (TMR1)
   bcf   INTCON,T0IE         ;TMR0 interrupt disable
   BSF   INTCON,GIE         ;Interrupt enable

   movlw 0x00
   movwf ANSEL
   clrf TRISIO            ;Set all pins to output (except GP3/MCLR)
   
   bcf STATUS,RP0

   movlw B'00110001'
   movwf T1CON            ;Setup Timer1, prescler 1:8, int.osc., enabled   

   clrf GPIO            ;Disable all A/D and comparators
   movlw 0x07            ;All pins digital I/O
   movwf CMCON

   call delay
   call delay            ;Delay to make Tx-line idle (+12V)
;------------------ Init Done---------------------------

   clrf byte_count

load_byte:
   movf byte_count,W      ;Load actual table position in work
   call table            ;Load "sendbyte" with data from table
   movwf sendbyte   
   call uart            ;Send "sendbyte"
   incf byte_count,F      ;Prepare to load next byte
   btfss byte_count,2
   goto load_byte
   btfss byte_count,1      ;Check to se that all bytes are sent
   goto load_byte         ;If not go back to "load_byte", to continue with next
   btfss byte_count,0      
   goto load_byte         ;Else goto "end_loop" to wait for next transmission
   clrf byte_count
   goto end_loop
end_loop:
   btfss ready_to_send,2
   goto end_loop         ;Loop to create 2sek delay after each transmission
   goto load_byte         ;Uses Timer1 to create interrupt which increases ready_to_send

;-----------Uart, sends bits located in "sendbyte" register using 8N1 transmission---------
uart:
   clrf ready_to_send   
   movlw 0x09            ;Ready to send 8bits, (use nr of bits + 1)
   movwf bit_count
start_bit:
   bsf GPIO,GP0         ;Startbit = '0V', transistor connected to pin
   nop                  ;will reverse polarity
   nop                  ;so GP0 = '1' --> 0V
   nop                  ;GP0 = '0' --> 12V
   nop
   nop
start_byte:
   call delay
   decfsz bit_count,F      ;If all bits sent proceed to send stop bit
   goto send_bit         ;Else send next bit
stopp_bit:
   nop
   nop                  ;nop used to keep delay of 96us between each bit
   nop                  
   nop
   bcf GPIO,GP0         ;Stoppbit = '1'
   call delay
   return

send_bit:               ;Send bit from last position of sendbyte register
   btfsc sendbyte,0
   goto send_1
   nop
send_0:
   bsf GPIO,GP0
   goto return_sendbit   
send_1:
   bcf GPIO,GP0
   goto return_sendbit
return_sendbit
   rrf sendbyte,F         ;Then rotate right to allow for transmission of next bit
   goto start_byte

delay:                  ;Hardcoded Delay used to create 10400 baud
   movlw 0x1A            ;This is made with regard to the uart above   
   movwf delay_1                 ;Total delay between each bit should be 96uS = 96 instruction cycles at 4MHz clockspeed
delay_loop:
   decfsz delay_1,F
   goto delay_loop
   nop
   return
   

tmr1_int:                                         ;Timer1 interrupt routine
   incf ready_to_send,F                ;Increase counter for delay between tranmissions
   bcf PIR1,TMR1IF         ;Clear interrupt flag for TMR1
   retfie   


table:                  ;Table containing bytes to send.
   addwf PCL,F
   retlw 0x84
   retlw 0x40
   retlw 0x13
   retlw 0xb2
   retlw 0xf0
   retlw 0x03
   retlw 0x7c

   org 0x3ff            ;Oscillator calibration value.
   retlw 0x94            ;!! Please check your value by reading your PIC before programming
   end                  ;Then change this value to match your processor.
Användarvisningsbild
andreas 80
Mekaniker Wannabe
 
Inlägg: 693
Blev medlem: sön 23 sep 2007, 18:43
Ort: Göteborg
Kör: V60 D3 Summum -14

Re: CAN-bus i diagnosuttag

Inläggav nicwei01 mån 01 feb 2010, 20:30

Det här är RIKTIGT intressant! Kommer du att kunna ändra parametrar i befintlig mjukvara i bilens olika noder? Tex. stänga av funktionen aktivering av bakrutetorkare vid backning?
Hjälper till med VIDA
nicwei01
Övningskörning
 
Inlägg: 35
Blev medlem: sön 24 jan 2010, 00:20
Ort: Lidköping
Kör: Volvo V70 T5 2004




Klicka här för att gå till nästa sida av tråden

Klicka här för att se fler Volvo kategorier

Sök på jagrullar.se - Sveriges Volvoforum



Nästa

Återgå till Volvo S60, S80, V70N (00-08), XC70 (00-08), XC90

Vilka är online

Användare som besöker denna kategori: Google [Bot], Kuisma och 33 gäster