1 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 1-9 CAN-bus CAN-bus-historien 1983 Begynnelsen på CAN-utviklingen. 1985 Begynnelsen på samarbeidet med Intel for å utvikle brikker. 1988 Den første CAN-serietypen fra Intel står til rådighet. Mercedes-Benz begynner med CAN-utvikling for kjøretøysområdet. 1991 CAN tas for første gang i bruk i et seriekjøretøy (Sklassen). 1994 Det innføres en internasjonal standard for CAN (ISO11898). 1997 CAN tas for første gang i bruk i kupeen (Cklassen). 2001 CANs inntog i småbiler (Opel Corsa) i drivlinjen og karosseriområdet. Hva betyr egentlig CAN: CAN står for Controller Area Network Fordeler med CAN-bus: - Utveksling av data i alle retninger mellom flere styreenheter. - Flerbruk av sensorsignaler mulig. - Svært rask dataoverføring. - Lave feilkvoter på grunn av mange kontroller i dataprotokollen. - Ved utvidelser er det som regel bare nødvendig med programvareendringer. - CAN er standardisert i hele verden, dvs. at utveksling av data mellom styreenheter fra forskjellige produsenter er mulig.
2 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 2-9 Hva er en CAN-bus? Man kan forestille seg en CAN-bus som en rutebuss. På samme måte som en rutebuss transporterer mange mennesker, transporterer en CAN-bus mange informasjoner (figur 1). Figur 1 Uten CAN-bus må alle informasjoner ledes via mange ledninger til styreenhetene. Det betyr at det må finnes én ledning for hver enkelt informasjon. Med CAN-bus er antallet ledninger kraftig redusert. Samtlige informasjoner utveksles via maksimum to ledninger mellom styreenhetene. Databussystemets oppbygning: (Figur 2) Aksessnode: I den er mikrokontrolleren, CAN-kontrolleren og (styreenheten) bus-driveren plassert. Figur 2 Mikrokontroller: Har ansvaret for styringen av CAN-kontrolleren og behandler sende- og mottaksdata. CAN-kontroller: Har ansvaret for sende- og mottaksdriften. Bus-driver: Henholdsvis sender og mottar bussnivået. Bus-ledning: Det er en totrådsledning (for begge signaler, CAN-høy og CAN-lav). For å redusere elektromagnetiske forstyrrelser er ledningene tvunnet. Bus-avslutning: Avslutningsmotstander på 120 Ω forhindrer,,ekko ved endene av ledningen og hindrer dermed signalforfalskning.
3 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 3-9 Hvordan virker en CAN-bus? Prinsippet for dataoverføringen kan man forestille seg som følger: Dataoverføringen med CAN-bus fungerer omtrent som en telefonkonferanse. En deltaker (styreenhet) snakker informasjonene (dataene) sine inn i ledningsnettet, mens de andre deltakerne kan høre disse informasjonene. Noen deltakere synes de er interessante og bruker dem. Andre ganske enkelt ignorerer dem. Eksempel: En bil setter seg i bevegelse uten at førerdøra er riktig lukket. For at føreren nå skal kunne advares, trenger f.eks. Check- Control-modulen to opplysninger. - Bilen beveger seg. - Førerdøra er åpen. Informasjonene fanges opp/skapes av henholdsvis dørkontaktsensoren og hjulturtallssensoren og forvandles til elektriske signaler. Disse igjen forvandles av de respektive styreenhetene til digitale informasjoner og sendes så som binærkode gjennom dataledningen til de avleses av mottakeren. I tilfellet med hjulrotasjonssignalet er det også andre styreenheter som trenger det, f.eks. ABS-styreenheten, eller også på noen biler som er utstyrt med aktivt understell. Avhengig av hastigheten kan der nemlig avstanden til kjørebanen forandres for å optimere hvordan bilen ligger på veien. Slik går alle informasjoner via CAN-bus og kan analyseres av enhver deltaker. CAN-bus-systemet er utformet som et multi-master-system, dvs. at alle aksessnoder (styreenheter) er likestilt. De er i like stor grad ansvarlig for bus-aksess, feilhåndtering og avbruddskontroll. Hver aksessnode har den egenskapen at den selvstendig og uten hjelp fra en annen aksessnode har tilgang til den felles dataledningen. Hvis en aksessnode skulle svikte, svikter ikke det totale systemet av den grunn.
4 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 4-9 I multi-master-systemet skjer bus-aksessen ukontrollert, dvs. at så snart dataledningen er ledig, har flere aksessnoder tilgang til den. Men hvis alle informasjoner ble sendt gjennom ledningen samtidig, ville det bli fullstendig kaos. Det kunne bli datakrasj. Altså må noen sørge for orden i systemet. Derfor finnes det i CAN-bus også et klart hierarki som styrer hvem som får sende først og hvem som må vente. Ved programmeringen av aksessnodene fastsettes rekkefølgen for hvor viktige de enkelte dataene skal være. Dermed vil en melding med høyere prioritet slippe igjennom før en melding med lavere prioritet. Når en aksessnode med høy prioritet sender, kopler alle andre aksessnoder automatisk over på mottak. Eksempel: En melding som kommer fra en sikkerhetsteknisk styreenhet som f.eks. ABS-styreenheten, vil alltid ha en høyere prioritet enn en melding fra en girstyreenhet. Funksjonsmåte (bus-logikk) Når det gjelder CAN, skiller man mellom dominante og recessive bus-nivåer. Det recessive nivået har verdien 1 og det dominante verdien 0. Hvis nå flere styreenheter sender dominante og recessive bus-nivåer samtidig, får styreenheten med det dominante nivået sende sin melding først. I eksempelet nedenfor (figur 3) tydeliggjøres enda en gang bus-aksessen. Her vil nå tre aksessnoder overføre sin informasjon via CAN-bussen. Under arbitreringen vil styreenheten S1 avbryte sendeforsøket ved punkt A, siden dens recessive bus-nivå overskrives av de andre styreenhetene S2 og S3, på grunn av dominante bus-nivåer. Av samme grunn avbryter styreenhet S2 sendeforsøket ved punkt B. Dermed kommer styreenhet S3 igjennom og kan overføre sin informasjon.
5 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 5-9 Figur 3 Dataprotokollens oppbygning og funksjon: Dataoverføringen skjer via en dataprotokoll (figur 4) med svært korte mellomrom. Protokollen består av en mengde bits som er ordnet etter hverandre. Antallet bits er avhengig av størrelsen på datafeltet. En bit er den minste informasjonsenheten, åtte bits tilsvarer en byte = en streng. Denne strengen er digital og kan bare ha verdien 0 eller 1. Figur 4 Startfeltet (start of frame) Markerer begynnelsen på en streng og synkroniserer alle stasjoner. Statusfeltet (arbitration field) Består av en streng-identfiserer (11 bits) og en kontrollbit. Under overføringen av dette feltet kontrollerer senderen for hver bit om den fortsatt er berettiget til å sende, eller om en annen stasjon med høyere prioritet sender. Her finner den såkalte arbitreringen sted, dvs. det fastsettes hvilket styresignal som har førsterett ved sendingen. Kontrollbiten avgjør om det dreier seg om en sendt streng eller et svar fra mottakende styreenhet.
6 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 6-9 Kontrollfeltet (control field) Inneholder koden for antall databytes som kan følge i datafeltet. Datafeltet (data field) I datafeltet overføres informasjonen for de andre stasjonene, altså informasjonen om bryterstillinger, sensorsignaler osv. Omfanget av informasjonene kan utgjøre mellom 0 og 8 bytes (8 bits = 1 byte). Sikringsfeltet (CRC field) Tjener til å oppdage overføringsfeil. Kvitteringsfeltet (Ack field) I kvitteringsfeltet signaliserer mottakerne til senderen at de har mottatt den sendte strengen feilfritt. Men hvis det oppdages en feil, får senderen omgående beskjed om det. Denne gjentar så overføringen sin. Sluttfeltet (end of frame) Med dette feltet slutter informasjonsstrengen. Også her kan det meldes om feil som fører til at strengen sendes på nytt. Signalkarakteristikk: På CAN-bus finnes det to signaler: CAN-H (high = høy) og CAN-L (low = lav). De to signalene er speilvendte i forhold til hverandre (figur 5). Figur 5
7 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 7-9 CAN-bus-diagnose: Mulige feil på CAN-bus: Feilsøking: - Brudd på ledningene. - Kortslutning til gods. - Kortslutning til batteri. - Kortslutning CAN-high / CAN-low. - For lav batteri-/forsyningsspenning. - Manglende avslutningsmotstand. - Støyspenninger på grunn av f.eks. en defekt tennspole som kan føre til uplausible signaler. - Kontroller om systemet fungerer. - Les ut feilkode. - Les måleverdiblokken. - Ta opp signal med oscilloskop. - Kontroller nivåspenningen. - Mål motstanden i ledningene. - Mål motstanden i avslutningsmotstandene. Når et feilbilde fremkommer, må de enkelte styreenhetene kobles av CAN-bus etter hverandre. Dermed kan det fastslås hvilken styreenhet som har forårsaket kortslutning eller brudd. Hvis feilen fortsatt er der etter at samtlige styreenheter er tatt av, er det ledningen som er skadet.
8 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 8-9 Sammenlikning riktig bilde feil bilde på oscilloskopet: Riktig bilde: Begge signaler CAN-H og CAN-L er til stede. Feil bilde: Bare ett signal er synlig.
9 Hella KGaA Hueck & Co., Lippstadt 27. november 2003 9-9 CAN-bus-typer i personbil: I dag er det to CAN-bus-typer som brukes i moderne biler. High-speed-bus (ISO 11898) SAE CAN Class C Overføringsrate 125 kbit/s - 1Mbit/s Overføringen av en dataprotokoll varer ca. 0,3 millisekund Bus-lengde opptil 40 meter ved 1 Mbit/s Senderutgangsstrøm > 25 ma Kortslutningsfast Lavt strømforbruk Opptil 30 noder På grunn av sin høye overføringshastighet (sanntidskritisk informasjonsoverføring i løpet av millisekunder) brukes denne bus-typen i drivlinjen, der styreenheter til motor, gir, understell og bremser er koplet i nett. Low-speed-bus (ISO 11519-2) SAE CAN Class B Overføringshastighet 10 kbit/s 125 kbit/s Overføringen av en dataprotokoll varer ca. 1 millisekund Maks. bus-lengde er avhengig av overføringsraten Senderutgangsstrøm < 1 ma Kortslutningsfast Lavt strømforbruk Opptil 32 noder Denne bus-typen brukes i kupeen der komponentene til karosseri- og komfortelektronikken er koplet i nett.