You dont have javascript enabled! Please enable it!

Kan Buss

Emner:

  • introduksjon
  • Flere nettverk i en bil
  • KAN nettverk med nodene
  • Ulike typer CAN-hastigheter
  • CAN-buss-signaler
  • Hastigheter og spenningsnivåer
  • Strukturen til CAN-bussmeldingen til en (standard) 11-bits identifikator
  • Strukturen til CAN-bussmeldingen til en (utvidet) 28-bits identifikator
  • Feilgjenkjenning ved bruk av Bitstuffing og CRC & ACK-skilletegn
  • Twisted Pair ledninger
  • Avslutningsmotstander
  • Inngangsport
  • Måling på CAN-bussen

Forord:
Moderne kjøretøy er fullpakket med elektronikk. Kontrollenhetene samler inn og behandler data fra sensorer og styreaktuatorer. Ulike ECUer bruker ofte de samme dataene: dGasspedalposisjonssensoren registrerer posisjonen til gasspedalen. Dette signalet sendes direkte til motorens ECU via ledningene. Motorens ECU er ikke den eneste ECUen som bruker dette signalet:

  • Motorens ECU bruker signalet fra gasspedalposisjonssensoren til å kontrollere gassventilen, når den akselererer for akselerasjonsanrikning ved å aktivere injektorene lenger, justere tenningstidspunktet og om nødvendig. kontroller wastegate- eller VGT-justeringen av turboen;
  • ECU-en til den automatiske girkassen bruker gasspedalposisjonen til å bestemme skiftetidene til clutchene i automatgiret. Hvis gasspedalen trykkes litt ned vil automatgiret gire opp med lavere hastighet enn når gasspedalen trykkes halvveis ned. Ved å plutselig trykke gasspedalen raskt, vil "kick down" skje ved å skifte til et lavere gir og la motoren gå mer turtall;
  • Graden av akselerasjon i en sving kan være en årsak til at ESP-ECU får ESP til å gripe inn ved å redusere motoreffekten og om nødvendig, å sette på bremsen på et spinnende hjul.

Under ESP-intervensjon reduseres motoreffekten ved å (delvis) stenge gassventilen og injisere mindre drivstoff. En indikatorlampe vil også lyse eller blinke i instrumentpanelet for å varsle sjåføren om at ESP-en er i drift.

Ovenstående viser tydelig samarbeidet mellom ulike ECUer. CAN-buss sørger for at ECU-er kommuniserer med hverandre og kan derfor utveksle data med hverandre. CAN er en forkortelse av: Controller Area Network. 

Motor ECU
Innebygd motor-ECU i motorrommet

På 80-tallet fikk biler mer og mer tilbehør og produsenter begynte å installere kontrollenheter. Hver funksjon hadde en egen tråd. Dette resulterte i en kraftig økning i ledningstykkelse og antall pluggforbindelser.
Tykke ledningsnett har den ulempen at det er vanskelig å skjule dem bak innvendig trim og risikoen for funksjonsfeil øker betraktelig.

Med CAN-buss kommuniserer ECU-er med bare to ledninger: CAN-høy og CAN-lav. All kommunikasjon mellom ECU-ene leveres via disse to ledningene. JegDe neste to bildene viser tydelig at antall ledninger på én dør allerede er betydelig redusert ved bruk av CAN-buss.

Dusinvis av kontrollenheter kan kobles til de to CAN-bus-ledningene på CAN-bussen. Alle tilkoblede kontrollenheter kan utveksle data med hverandre.

 

Bildet nedenfor viser et kjøretøy med elleve kontrollenheter (indikert med røde blokker). Disse kontrollenhetene er alle koblet til hverandre med to ledninger; en oransje og en grønn ledning. Disse ledningene representerer CAN-høy og CAN-lav. Hver kontrollenhet har sin egen funksjon og kan kommunisere med en hvilken som helst annen kontrollenhet i nettverket via CAN-bussen. Mer materiell informasjon om kontrollenhetene finner du på siden kontrollenheter.

1. Styreenhet for montering av tilhengerfeste
2. Dørkontrollenhet RA
3. Dørkontrollenhet RV
4.Gateway
5. Komfortkontrollenhet
6. Kontrollenhet for alarmsystem
7. Instrumentpanel
8. Styreenhet for rattstammeelektronikk
9. Dørkontrollenhet LV
10. Dørkontrollenhet LA
11. Kontrollenhet for parkeringsavstandskontroll

Med ankomst av CAN buss er det også mulig EOBD mer omfattende. EOBD står for European On Board Diagnosis. EOBD har med utslipp å gjøre. Ulike sensorer i motor og eksos sender informasjon til ECU. Dersom det er feil verdier (på grunn av for eksempel dårlig forbrenning), vil en MIL (Engine Indication Light) lyse. Det er et tegn på at bilen må leses opp. En diagnostisk tester må da kobles til OBD-pluggen for å lese ut feilene. Basert på feilen har ECU lagret en heksadesimal feilkode, som vises av diagnosetesteren som en P-kode eller en feil med tekst (sistnevnte er mer merkespesifikk). Klikk her for mer informasjon om OBD1, OBD II og EOBD.

Flere nettverk i en bil:
Det kan være flere nettverk i en bil. Bildet nedenfor viser en oversikt med forklaring av kontrollenheter i flere nettverk av en BMW 3-serie E90.

K-CAN-, PT-CAN- og F-CAN-nettverkene i bildet ovenfor faller inn under CAN-buss. Forskjellene er hastighetene, spenningsnivåene og applikasjonene. Selv om PowerTrain-CAN og F-CAN har samme høyhastighetshastighet og spenningsnivåer, er forskjellen at PT-CAN brukes til motor- og girstyring, og F-CAN inneholder chassiskontrollenhetene.

KAN nettverk med kontrollenhetene
CAN-bussnettverket består av kontrollenheter som er utstyrt med maskinvare og programvare for å motta, behandle og sende meldinger. En CAN-høy ledning og en CAN-lav ledning brukes til dataoverføring. På bildet nedenfor er CAN-High farget rød og CAN-Low er farget blå.
Kontrollenhetene (også kalt kontrollenheter eller noder) er koblet til disse ledningene. Alle kontrollenheter kan både sende og motta informasjon. Et eksempel på et nettverk er CAN-bussystemet i det indre av bilen; Her kan ulike styreenheter kobles til ett bussystem.

Som et eksempel tar vi et ryggekamera (node ​​5) som er ettermontert. Dette kameraet er montert i nærheten av nummerskiltholderen eller håndtaket. CAN-ledningen kobles til hvor som helst i interiøret. Betingelsen er at kameranoden inneholder riktig identifikator (forhåndsprogrammert av produsenten) fordi de andre kontrollenhetene må gjenkjenne den. Hvis kameraet er registrert på den støttede radioen, er bildet umiddelbart synlig.
Etter programmering av programvaren mottar radioen et signal fra girkassen om at revers er valgt. I det øyeblikket bytter radioen til bildet av ryggekameraet. I det øyeblikket første gir (forover) velges, slås bildet av igjen. Alt dette takket være dataoverføringen til CAN-bussystemet.

Ustøttet utstyr (f.eks. med feil identifikator) kan forårsake problemer. Hvis den sender meldinger som ikke gjenkjennes av andre kontrollenheter, vil det genereres en feilmelding. Denne typen utstyr kan også sørge for at CAN-bussen forblir aktiv etter at tenningen er slått av. Bilen vil da ikke gå i "dvalemodus", noe som vil føre til at batteriet tømmes raskt. Så er det en hemmelig forbruker.

CAN-buss-signaler:
CAN-bussystemet bruker kringkastingsprinsippet; en sender legger en melding på CAN-bussen. Hver node på samme buss mottar meldingen. Avsenderen angir imidlertid i meldingen hvilke noder meldingen er ment for. Alle noder mottar meldingen og gir tilbakemelding (mer om det senere). Nodene som meldingen ikke er ment for, gjenkjenner dette og ignorerer det.

Et CAN-busssignal består av en CAN-høy- og CAN-lavspenning. Bildet nedenfor viser CAN-høy rød og CAN-lav blå. Høy- og lavsignalene er identiske, men speilet fra hverandre. Når bussen blir dominerende, øker spenningen til CAN-høy fra 2,5 til 3,5 volt og CAN-lav synker fra 2,5 til 1,5 volt. I recessiv tilstand (i hvile) er begge spenningene 2,5 volt.

Bildet ovenfor viser et eksempel på en måling med et oscilloskop. Det kan tydelig sees at begge spenningene er identiske med hverandre, bare i speilbilde. Til syvende og sist er spenningsforskjellen i den aktive (dominante) regionen 2 volt. Dette refererer til forskjellen mellom 1,5 og 3,5 volt. Forskjellen på 2 volt regnes som 0 (dominant) og forskjellen på 0 volt regnes som 1 (recessiv).

Hvis en (sende) node ønsker å sende den binære koden "0 0 1 0 1 1 0 1", vil den påføre de nevnte spenningene til CAN-High og CAN-Low (se eksempelet ovenfor). Den mottakende noden vil igjen se disse spenningene som en binær kode, og deretter konvertere dem til en heksadesimal kode. Nevnte binære kode vil bli konvertert fra heksadesimal til 2D.

For å konvertere binær til heksadesimal er det enkelt å tegne en tabell med 8 bokser med en tykk linje i midten. Navngi boksene til høyre 1, 2, 4 og 8 (se de røde tallene på bildet). Gjør så dette på venstre side også. Skriv ned tallene med en 1 i binærkoden over dem. Til venstre er det bare 2, til høyre er det 8, 4 og 1. Legg alt til høyre sammen (13) og gjør det samme til venstre (2). Heksadesimale endringer fra 10 til A, 11 = B, 12 = C, 13 = D. Det gjør til slutt 2D.

Mer informasjon om konvertering fra binær til (heksa)desimal og omvendt finner du på siden Binær, desimal og heksadesimal. Her er klare eksempler beskrevet i detalj.

Hastigheter og spenningsnivåer:
I kjøretøy kan vi møte CAN-bussnettverk med forskjellige hastigheter:

  • Høy hastighet: ECUer relatert til stasjonen, inkludert motorelektronikk, girkasse, ABS/ESP, EBS (nyttekjøretøy);
  • Middels eller lav hastighet: interiørelektronikk som instrumentpanel, radio, klimakontroll, parkeringsbrems, hengerfeste.

De to bildene nedenfor viser CAN-høy- og CAN-lav-signalene til høyhastighets CAN-bussen. I hvile er spenningen til begge signalene 2,5 volt. For å sende en melding øker CAN-høyden fra 2,5 til 3,5 volt og CAN-laven reduseres fra 2,5 til 1,5 volt.

CAN høyhastighet (1)

Nedenfor kan du igjen se signalet fra CAN høyhastigheten, som nå er zoomet inn (50 mikrosekunder per divisjon), hvor scope for signalet over ble satt til 200 mikrosekunder per divisjon.

CAN høyhastighet (2)

Innen komfortelektronikk er den høye kommunikasjonshastigheten mindre viktig. Karakteristisk for CAN-bussen med middels eller lav hastighet, spenningsnivåene i hvile og ved generering av en melding er som følger:

  • CAN-høy er 5 volt i hvile og faller til 1 volt;
  • CAN-low er 0 volt i hvile og stiger til 4 volt.

Under målingen der nulllinjene til kanalene A og B er satt i samme høyde, kan man se at spenningene har blitt "glidd inn i hverandre". Dette gjør det vanskelig å lese renheten til CAN høye og lave signaler.

CAN lav hastighet (1)

For å vurdere renheten til meldingene, anbefales det å forskyve nulllinjene. På bildet nedenfor er kanal A sin nulllinje flyttet ned og kanal B er flyttet opp. Dette betyr at de avbildede signalene er separert og en klarere progresjon av spenningene kan sees.

CAN lav hastighet (2)

Strukturen til CAN-bussmeldingen til en (standard) 11-bits identifikator:
Strukturen til en CAN-buss-melding er alltid basert på bildet nedenfor. Det er forskjeller i strukturen; for eksempel er ARB- og CTRL-feltet til en 11-bits identifikator og en 29-bits identifikator forskjellige. Informasjonen nedenfor gjelder 11-bits identifikator. Til din informasjon har en 29-bits identifikator plass til mer data enn de 11 bitene. Mer om dette senere.

Strukturen til meldingen er nå enkelt oppsummert, og beskrevet i detalj senere:

SOF:
Hver CAN-melding starter med en SOF (start av ramme). Når en node ønsker å sende en melding, vil en dominerende bit bli plassert på bussen. CAN-bussen er alltid recessiv i hvile (en 1, så både CAN-High og CAN-Low er 2 Volt). Den dominerende biten (en 0) indikerer at andre noder bør vente med å sende en melding til hele meldingen er lagt ut. Først etter IFS (Interframe Space) får neste node sende sin melding. Selv om det er et viktig budskap, kan det ikke gå glipp av det.
Når 2 noder ønsker å sende en melding samtidig (som de ikke vet om hverandre) og dermed sammen gjøre bussen dominerende ved å sette en 0, avgjør ARB (arbitrasjon) hvilken melding som har forrang.

Fra nå av vil hver del av CAN-bussmeldingen som diskuteres ha den delen lagt til dette grå bildet. På den måten prøver jeg å holde oversikt. Meldingen startet med SOF.

ARB:
Voldgiftsfeltet til en 11-bits identifikator består av 2 deler; identifikatoren og RTR-biten.
Identifier:
Anta at 2 noder samtidig gjør CAN-bussen dominerende, så vil noden med minst viktig melding vente til den viktige meldingen er postet (til etter IFS). Identifikatoren til meldingen inneholder en serie med enere og nuller. Disse numrene er bevisst tildelt en melding av programmereren. Identifikatoren med 0 i meldingen (dominant) har høyere prioritet enn den med 1 i meldingen (recessiv). Meldingen med 0 vil fortsette, og meldingen med 1 må vente.

Begge identifikatorene begynner å legge ut en melding på 11 biter. Med SOF plasseres den dominerende biten. Da er de første 5 bitene av begge identifikatorene like (0 1 1 0 1). Den 6. biten er en 2 for identifikator nummer 0, og en 1 for den første identifikatoren. Dominant dominerer, så identifikator 2 lager den endelige CAN-meldingen.
Identifikator 1 plasserte en 6 som bit 1. Noden som sender identifikatoren gjenkjenner kun at 0 noder sender en melding samtidig når en annen node setter en 2 på bussen. På dette tidspunktet slutter identifikator 1 å sende og oppfører seg nå som en mottaker. Selv om meldingen som begynner med 0 1 1 0 1 opprinnelig var ment å være meldingen denne noden ønsket å sende, vil den nå behandle den som den mottatte meldingen. Noden lytter så til hele meldingen og bestemmer om den skal gjøres noe med den.

Det grå bildet av SOF er nå utvidet med ARB, som består av 2 deler, nemlig identifikatoren og RTR-biten:

RTR bit:
Den siste biten av 11-bits identifikatoren kalles en RTR; dette er en Remote Transmit Request-bit. Denne RTR-biten indikerer om det er en dataramme eller en ekstern ramme.
0 = Dataramme
1 = Ekstern ramme

En dataramme inneholder data som videresendes til nodene som trenger informasjonen. En node kan også be om informasjon; eks hva kjølevæsketemperaturen er på et bestemt tidspunkt. Noden vil da sette en 1 som RTR-bit fordi den spør etter dataene.

CTRL:
Kontrollfeltet består av IDE (Identifier Extension), en R-bit og DLC. IDE-biten indikerer om det er en standard (11 bits) eller en utvidet (29 bits) identifikator:
0 = Standard identifikator (11 biter)
1 = Utvidet identifikator (29 bits)

R-biten er reservert for fremtiden og er nå alltid recessiv.

Så kommer DLC: Et CAN-bussnettverk kan sende maksimalt 8 byte. Det er 1 bits i 8 byte, så totalt 64 biter kan sendes i henhold til standardprotokollen. Kontrollfeltet indikerer hvor mye data som sendes. Det ville være meningsløst å sende en stor melding med alle tomme datafelt for en bekreftelsesbit (1 for på eller 0 for av). Antall byte er oppgitt i den aktuelle DLC (Data Length Code). DLC er en funksjon i programmeringsprogramvaren og er derfor en forhåndsbestemt verdi av programmereren.
Anta at 1 byte er oppgitt i DLC, så sendes 8 biter. For korte bekreftelsesmeldinger er dette tilstrekkelig.
For svært omfattende meldinger vil DLC inneholde en verdi på opptil 8 databyte.

Eksemplet er utvidet igjen. IDE, R og DLC ​​er lagt til.

DATA:
De endelige dataene som må sendes plasseres i datafeltet. Størrelsen avhenger av verdien til DLC (Data Length Code). Det har allerede blitt indikert at DLC er maksimalt 8 byte. Hver byte består av 8 biter, så totalt kan datafeltet bestå av 64 biter.

CRC:
Den sykliske redundanssjekken består av en matematisk beregning, som sendes med meldingen. Avsendernoden beregner den totale CAN-meldingen så langt; SOF, ARB, CTRL og DATA. Så CRC er beregningen. Når mottaksnoden har mottatt meldingen til og med CRC, vil den utføre den matematiske beregningen frem til DATA og sammenligne den med beregningen i CRC. Dersom dette ikke stemmer (på grunn av feil bit/feil) blir ikke meldingen akseptert og det blir bedt om å sende meldingen på nytt (med et visst maksimalt antall forsøk). Eksemplet er utvidet til å omfatte CRC.

ACK:
Bekreft-feltet tjener til bekreftelse av mottak. Når avsenderen har sendt meldingen til CRC, settes det inn en slags pause; senderen gjør bussen recessiv (med 0) og venter til en eller flere noder gjør bussen dominerende (1). Det spiller ingen rolle om en eller flere noder mottok meldingen, for hvis en node mottok den, ble den sendt. Etter at bussen er gjort dominerende med en 1, gjenopptas meldingsoverføringen.

EDF:
End Of Frame består av 7 recessive bits (1 1 1 1 1 1 1). Dette er et tegn for alle kontrollenheter at meldingen er avsluttet.

IFS:
For å forhindre forstyrrelser, brukes alltid et Inter Frame Space etter EOF. IFS består av 11 recessive bits. Alle noder venter på at disse 11 recessive bitene skal passere før de sender en melding. Etter disse 11 recessive bitene kan for eksempel 2 noder sende en melding samtidig. ARB (arbitrasjon) blir så sett på igjen for å bestemme hvilken melding som har høyest prioritet. Hele syklusen starter så på nytt.

Strukturen til CAN-bussmeldingen til en (utvidet) 28-bits identifikator:
11-bits identifikatoren ble designet på et tidspunkt da bilene ennå ikke hadde så mange kontrollenheter (noder). Programmererne oppdaget snart at 11-bits identifikatoren ikke var nok for dem. Dette har bare (2^11) = 2048 muligheter. Av disse gjenstår 2032 unike kombinasjoner av binærkoden. Moderne biler bruker nå mange flere koder takket være den utvidede 28-biters identifikatoren. Dette kalles den utvidede identifikatoren.
Dette betyr at ikke mindre enn (2^29) = 536870912 kombinasjoner er mulig. Dette er mer enn nok for fremtiden.
En rekke ting vil endre seg i CAN-bussmeldingen. Begge identifikatorene (standard og utvidet) brukes om hverandre. CAN-meldingen indikerer derfor hvilken art det dreier seg om, deretter følger en lang melding.
Grunnlaget for 11-bits identifikatoren brukes og fungerer også som forberedelse før den leses gjennom; nå vises bare endringene som meldingen gjennomgår når den er en 29-bits identifikator.
SOF (Start Of Frame) forblir den samme. Sendingsnoden gjør den dominerende når den begynner å sende en melding.
Dette etterfølges av ARB og CTRL der forskjellene ligger.

ARB:
Under voldgift vises en standard 11-bits identifikator først (dvs. en del av de 29 bitene). RTR-biten flyttes (som den er med de 11 bitene) til slutten av ARB. RTR er nå erstattet av SRR: (Substitute Remote Request). Denne biten er alltid recessiv (1) for en utvidet identifikator.
Etter SRR-biten kommer IDE-biten, som er i 11-bits identifikatoren i CTRL (kontrollfeltet). Denne er nå fjernet fra kontrollfeltet og plassert bak SRR-biten i den utvidede identifikatoren.

For klarhets skyld viser bildene nedenfor standard (11-bit) og utvidet (29-bit) identifikator.

Standard 11-bits identifikator
Utvidet 29-bits identifikator

IDE-biten står for Identifier Extension. IDE-biten bestemmer om det er en standard eller utvidet identifikator.
IDE 0 = Standard (11 bit ID)
IDE 1 = Utvidet (29 bit ID)

Etter IDE-biten kommer resten av den utvidede identifikatoren. De 11 og 18 bitene utgjør til sammen 29. Disse kan ikke plasseres som én helhet i meldingen, fordi CAN-protokollen da ikke lenger er korrekt. I utgangspunktet indikerer nå IDE-biten at meldingen er delt i to.

CTRL:
Kontrollfeltet er derfor endret for den utvidede identifikatoren. IDE-biten er flyttet til ARB.
IDE-biten erstattes av en R-bit (reserve). Dette er recessivt som standard. Dette etterfølges av en R-bit og DLC ​​(Data Length Code), som indikerer hvor mange byte meldingen vil bestå av.

Igjen vises kontrollfeltene til både 11-biters og 29-biters identifikatorer.

CTRL fra 11-bit IDE
CTRL fra 29-bit IDE

Feilgjenkjenning ved bruk av Bitstuffing og CRC & ACK-skilletegn:
Litt fylling:
For å opprettholde optimal synkronisering mellom sende- og mottaksnodene, brukes bitstuffing. Bitstuffing betyr at etter 5 identiske biter legges en motsatt bit til. Ingen bitverdiendringer i den opprinnelig sendte meldingen, men en bit legges til.
Mottakeren gjenkjenner dette. Etter 5 identiske biter vil mottakeren slette den 6. biten (se bildet nedenfor).

Den opprinnelige meldingen til kun én sendes, men avsenderen legger til en 6 hver 0. bit. Meldingslengden øker på grunn av nullene (men denne lengden teller ikke for DLC (Data Length Code). Mottakeren filtrerer ut de motsatte bitene (nullene) og leser deretter meldingen igjen med bare ettaller.

CRC- og ACK-skilletegn:
Skilletegn plasseres etter CRC-feltet og ACK-feltet. Dette er litt med kjent verdi for både avsender og mottaker. Hvis det oppstår en feil i meldingen, vil denne verdien avvike. Mottakeren mottar da en annen bitverdi enn forventet og markerer meldingen som feil. Avsenderen vil sende meldingen på nytt.

Twisted Pair Kabling:
Twisted pair-kabler brukes som kabling for CAN-bussen. CAN-High- og CAN-Low-kabelen tvinnes deretter sammen som vist på bildet. På denne måten unngås forstyrrelser utenfra; hvis en induksjon på noen tidels volt kommer inn i den ene kabelen, vil den også komme inn i den andre. Spenningsforskjellen mellom CAN høy og lav forblir imidlertid den samme. På denne måten blir feilen løst og ECU-ene påvirkes ikke av den.

Terminasjonsmotstander:
Avslutningsmotstander brukes i alle høyhastighets CAN-bussnettverk. Disse er ofte innlemmet i nodene på enden av CAN-busslinjen (ledning) eller i ledningen. Disse motstandene har hver en motstand på 120Ω (Ohm). Erstatningsmotstanden måles til 60Ω ved måling av motstand på ledningene.

Disse avslutningsmotstandene tjener til interferensundertrykkelse; Hvis disse ikke var der, ville refleksjon oppstå. Spenningssignalet går gjennom CAN-bussledningen, når enden og spretter tilbake. Sistnevnte forhindres. Spenningen registreres i motstanden. Refleksjon kan føre til at spenningssignaler spretter tilbake, noe som påvirker meldingene som sendes og deretter føre til at kontrollenheter ikke fungerer.

Inngangsport:
Bilen er utstyrt med et nettverk av kontrollenheter (noder). Gatewayen kobler sammen ulike CAN-bussnettverk (som interiøret, motoren/transmisjonen og chassiset), MOST-bussen og LIN-bussen, slik at alle nettverk kan kommunisere med hverandre. Så det er faktisk et knutepunkt mellom alle nettverk. Forskjellene i hastighet er uviktige med en gateway. Klikk her for å gå til siden hvor driften og funksjonene til gatewayen er beskrevet.

Måling på CAN-bussen:
Folk blir ofte spurt om det er mulig å måle CAN-bussen. Det er absolutt mulig. En diagnose kan stilles ved å måle spenningsnivåene på ledningene og sjekke spenningsvisningen på oscilloskopet. Hvordan målinger kan tas er beskrevet på siden måling på CAN-bussystemet.

Relatert side: