Onderwerpen:
- Inleiding
- Algemeen
- CAN-netwerk met de nodes
- Verschillende soorten CAN-snelheden
- CAN-bussignalen
- Opbouw van het CAN-busbericht van een (standaard) 11 bits identifier
- Opbouw van het CAN-busbericht van een (extended) 28 bits identifier
- Foutherkenning d.m.v. Bitstuffing en CRC & ACK delimiters
- Twisted Pair bedrading
- Afsluitweerstanden
- Gateway
- Meten aan de CAN-bus
Inleiding:
Op deze pagina worden de basisprincipes van de CAN-bus zo uitgebreid mogelijk beschreven. Een diepgaand onderwerp is: de opbouw van het CAN-bus bericht van een 11- en van een 29-bits identifier (standaard en extended ID). Het meten op de CAN-bus is beschreven op de pagina meten aan het CAN-bussysteem.
Algemeen:
CAN betekent: Controller Area Netwerk.
Met het CAN-bussysteem communiceren alle elektronische apparaten in de auto constant met elkaar. Bij conventionele systemen was voor ieder soort informatie een aparte kabel nodig, maar bij CAN-databussystemen vindt alle informatie plaats via twee kabels, namelijk de CAN-High- en CAN-Low kabel.
Er is wel een verschil tussen de bussystemen; het bussysteem van de voertuigstabilisatie (o.a. ABS) is gescheiden van de comfortsystemen (denk aan de elektronische stoelverstelling). Het bussysteem van de voertuigstabilisatie werkt ook met een veel hogere snelheid dan dat van de comfortsystemen. Hierop komen we verder op de pagina nog terug bij de CAN-snelheden.
Elke CAN-bus deelnemer kan data op de bus zetten die door de andere CAN-bus deelnemers ontvangen wordt.
Auto’s uit de jaren 90 maken vaak gebruik van een K-leiding. Sinds eind jaren ’90 en begin ’00 zijn de auto’s steeds luxer (comfortabeler), veiliger en schoner geworden. Het comfort nam steeds meer toe (stoelverwarming, airconditioning, elektrisch verstelbare buitenspiegels & stuurwiel), maar ook de veiligheid werd steeds meer uitgebreid (ABS, airbags, bandenspanningcontrolesysteem, defecte verlichtingscontrole). Door al deze extra systemen is er ook meer datatransport nodig. Het datatransport gaat via kabels. Bij oudere auto’s zijn tussen elk component en het regelapparaat aparte kabels in de kabelboom verwerkt. De kabelbomen zouden in dit geval onmogelijk dik worden (zie de onderstaande afbeelding). Om dat te voorkomen, gaat het datatransport tegenwoordig bij alle nieuwe auto’s via CAN-bus.
CAN-bus verzorgt dus de dataoverdracht van signalen. De voedings- en massakabels van de componenten zijn uiteraard nog wel aanwezig. Met CAN-bus is het totale aantal draden al flink afgenomen, maar het totale gewicht van alle kabels kan bij zeer luxe auto’s alsnog oplopen tot 100 kg, met een totale draadlengte van ca. 2000 meter.
In deze afbeeldingen is duidelijk te zien dat het aantal draden bij één portier al aanzienlijk afneemt bij het gebruik van CAN-bus.
Het voordeel bij CAN-bus is dat de hoeveelheid bedrading sterk afneemt. Er ontstaan dan dunnere kabelbomen, die makkelijker weg te werken zijn dan de kabelbomen van auto’s die geen gebruik maken van CAN-bus. Doordat dikke kabelbomen minder gemakkelijk zijn weg te werken bestaat er meer kans op doorschuren tegen bijvoorbeeld de carrosserie of het dashboard. Ook is er nu minder kans op storingen doordat er ook minder stekkers zijn waarop de kabels aangesloten zitten.
In de onderstaande afbeelding is een voertuig te zien met elf regelapparaten (de rode blokjes). Deze regelapparaten zitten allemaal met twee draden aan elkaar verbonden; een oranje en een groene draad.Elk regelapparaat heeft zijn eigen functie en kan door middel van CAN-bus met elk ander regelapparaat in het netwerk communiceren. Meer inhoudelijke informatie over de regelapparaten is te vinden op de pagina regelapparaten.
1. Regelapparaat trekhaakinstallatie
2. Portierregelapparaat R.A.
3. Portierregelapparaat R.V.
4. Gateway
5. Comfortregelapparaat
6. Regelapparaat alarmsysteem
7. Instrumentenpaneel
8. Regelapparaat stuurkolomelektronica
9. Portierregelapparaat L.V.
10. Portierregelapparaat L.A.
11. Regelapparaat Park Distance Control
Met de komst van CAN-bus is ook het EOBD meer uitgebreid. EOBD staat voor European On Board Diagnosis. EOBD heeft te maken met de emissies. Diverse sensoren van de motor en de uitlaat geven informatie door aan de ECU. Als er foutieve waarden zijn (doordat er bijv. een slechte verbranding plaatsvindt), gaat er een MIL (Motor Indication Light) branden. Dat is een teken dat de auto uitgelezen moet worden. Er moet dan een diagnosetester aan de OBD stekker verbonden worden die de fouten uitleest. De ECU heeft aan de hand van de storing een hexadecimale foutcode opgeslagen, die door de diagnosetester weergeven wordt als een P-code of een storing met tekst (dat laatste is meer merkspecifiek).
Klik hier voor meer informatie over OBD1, OBD II en EOBD.
CAN netwerk met de nodes:
Het CAN-bus netwerk bestaat uit een CAN-High draad en een CAN-Low draad. CAN-High is rood, CAN-Low is blauw.
De regeleenheden (vanaf nu nodes genoemd) zijn op deze draden aangesloten. Alle nodes kunnen zowel informatie versturen als ontvangen. Een voorbeeld van een netwerk is het CAN-bus systeem in het interieur van de auto; hier kunnen diverse nodes aan één bussysteem aangesloten worden.
Als voorbeeld nemen we een achteruitrijcamera (node 5) die achteraf wordt ingebouwd. Deze camera wordt bij de kentekenplaathouder aangebracht. De CAN-bedrading wordt in het interieur op een willekeurige plek aangesloten. De voorwaarde is wel dat de node van de camera de juiste identifier bevat (vooraf geprogrammeerd door de fabrikant) omdat de andere nodes deze wel moeten herkennen. Als de camera op de ondersteunde radio wordt aangemeld is het beeld direct zichtbaar.
Na het programmeren van de software krijgt de radio een signaal van de versnellingsbak dat de achteruitversnelling is geselecteerd. Op dat moment schakelt de radio om naar het beeld van de achteruitrijcamera. Op het moment dat de eerste versnelling (vooruit) wordt geselecteerd schakelt het beeld weer uit. Dit alles dankzij de dataoverdracht van het CAN-bussysteem.
Er zijn natuurlijk nog talloze voorbeelden te bedenken met functies die door CAN-bus mogelijk worden gemaakt. Met dit voorbeeld hoop ik inzicht te geven in de manier van datacommunicatie en de randapparatuur die op de CAN-bus wordt aangesloten.
Niet ondersteunde apparatuur (met bijv. een onjuiste identifier) kunnen problemen geven. Als deze berichten verzendt die door andere nodes niet herkend worden zal er een foutmelding komen. Ook kan dit soort apparatuur ervoor zorgen dat de CAN-bus actief blijft na het uitschakelen van het contact. De auto gaat dan niet in “sleep mode” waardoor de accu snel leeg zou lopen.
Verschillende soorten CAN snelheden:
- Klasse A:Dit netwerk heeft een communicatiesnelheid tot 10kb/s. Het hoofdzakelijke doel is het verminderen van het aantal verbindingsdraden. De snelheid is niet van belang. De toepassingen kunnen o.a. de raam- en deurbediening, spiegelbediening en elektrische stoelverstelling zijn.
- Klasse B: Dit netwerk heeft een hogere communicatiesnelheid dan klasse A. De snelheid ligt tussen de 10kb/s en de 125kb/s (afhankelijk van het systeem). Enkele toepassingen zijn o.a. de dataverbinding tussen diverse regeleenheden en de aansturing van het dashboard.
- Klasse C: Dit is het snelste type netwerk. Er mag geen tijdvertraging optreden tussen het verzenden en ontvangen van het CAN-busbericht. De snelheid ligt tussen de 125kb/s en de 1Mb/s. Bij het klasse C netwerk worden er hogere eisen gesteld m.b.t. foutdetectie en foutafhandeling. De ontwikkelingskosten liggen daarom ook een stuk hoger dan bij klasse A of B.
CAN-bus signalen:
Het CAN-bussysteem maakt gebruik van het broadcast-principe; een zender zet een bericht op de CAN-bus. Elke node op de zelfde bus ontvangt het bericht. Echter, de zender geeft in het bericht aan voor welke nodes het bericht bestemd is. Alle nodes ontvangen het bericht en geven daarop hun terugkoppeling (later meer daarover). De nodes waarvoor het bericht niet bestemd is herkennen dat en negeren het.
Een CAN-bussignaal bestaat uit het CAN-High (rood) en CAN-Low (blauw) signaal die tegengesteld zijn aan elkaar. De spanningen van de CAN-High zijn van 2,5 naar 3,5 Volt. Van CAN-Low zijn deze van 2,5 naar 1,5 Volt.
In rust zijn de beide spanningen dus 2,5 Volt.
In de afbeelding is een voorbeeld van een meting met een Oscilloscoop te zien. Er is duidelijk te zien dat beide spanningen identiek zijn aan elkaar, alleen in spiegelbeeld.Uiteindelijk is het spanningsverschil in het actieve (dominante) gebied 2 volt. Hiermee wordt het verschil tussen 1,5 en 3,5 volt bedoeld. Het verschil van 2 volt wordt gezien als een 0 (dominant) en het verschil van 0 volt als een 1 (recessief).
Als een (zendende) node de binaire code “0 0 1 0 1 1 0 1” wil verzenden zal deze de genoemde spanningen op de CAN-High en CAN-Low zetten (zie het bovenstaande voorbeeld). De ontvangende node zal deze spanningen weer zien als een binaire code, en zet ze vervolgens om in een hexadecimale code (dat is compacter). De genoemde binaire code zal van hexadecimaal worden omgezet naar D2.
Om binair naar hexadecimaal om te zetten is het gemakkelijk om een tabel van 8 vakjes te tekenen met een dikke streep in het midden. Noem de vakjes aan de rechterkant 1, 2, 4 en 8 (zie de rode cijfers in de afbeelding). Doe dit vervolgens ook aan de linkerkant.
Noteer de cijfers waar een 1 van de binaire code boven staat. Links is dat alleen de 2, rechts zijn dat 8, 4 en 1. Tel alles rechts bij elkaar op (dat maakt 13) en doe het zelfde bij links (dat is nu alleen 2).
Hexadecimaal gaat vanaf 10 over in A. 11 = B, 12 = C, 13 = D. Dat maakt dus uiteindelijk 2D.
Meer informatie over het omrekenen van binair naar (hexa-)decimaal en andersom is te vinden op de pagina Bits en Bytes, Binair, Decimaal en Hexadecimaal. Hier staan duidelijke voorbeelden uitgebreid omschreven.
Opbouw van het CAN-busbericht van een (standaard) 11 bits identifier:
De opbouw van een CAN-busbericht is altijd gebaseerd op de onderstaande afbeelding. In de opbouw zitten wel verschillen; zo zijn de ARB en het CTRL field van een 11 bits identifier en een 29 bits identifier verschillend. De onderstaande informatie heeft betrekking op de 11bits identifier. Ter informatie: een 29 bits identifier heeft ruimte voor meer data dan de 11 bits. Later meer hierover.
De opbouw van het bericht wordt nu eenvoudig samengevat, en later uitgebreid beschreven:
SOF:
Elk CAN-bericht begint met een SOF (start of frame). Wanneer een node een bericht wil gaan verzenden, zal er een dominante bit op de bus gezet worden. De CAN-bus is in rust altijd recessief (een 1, dus zowel de CAN-High als de CAN-Low zijn 2 Volt). De dominante bit (een 0) geeft aan dat andere nodes moeten wachten met een bericht te zenden totdat het hele bericht geplaatst is. Pas na de IFS (Interframe Space) mag de volgende node zijn bericht gaan verzenden. Ook als het een belangrijk bericht is, kan het er niet tussen komen.
Wanneer er 2 nodes tegelijkertijd een bericht willen gaan zenden (wat ze niet van elkaar weten) en dus samen de bus dominant maken door een 0 te plaatsen, bepaalt de ARB (arbitrage) welk bericht voor gaat.
Vanaf hier zal bij elk gedeelte van het CAN-busbericht dat besproken wordt steeds dat stuk aan deze grijze afbeelding worden toegevoegd. Op die manier probeer ik een beetje het overzicht te houden.Het bericht is begonnen met het SOF.
ARB:
Het Arbitration Field van een 11 bits identifier bestaat uit 2 delen; de identifier en het RTR bit.
Identifier:
Stel dat er 2 nodes tegelijk de CAN-bus dominant maken, dan zal de node met het minst belangrijke bericht wachten tot het belangrijke bericht geplaatst is (tot na het IFS). In de identifier van het bericht staat een reeks enen en nullen. Deze getallen zijn door de programmeur bewust toegewezen aan een bericht. De identifier met een 0 in het bericht (dominant) heeft een hogere prioriteit dan die met een 1 in het bericht (recessief). Het bericht met de 0 gaat door, en het bericht met de 1 zal moeten wachten.
Beide identifiers beginnen een bericht te plaatsen van 11 bits. Bij de SOF wordt de dominante bit geplaatst. Daarna zijn de eerste 5 bits van beide identifiers gelijk aan elkaar (0 1 1 0 1). De 6e bit is bij de identifier nummer 2 een 0, en bij de eerste identifier een 1. Dominant overheerst, dus identifier 2 maakt het uiteindelijke CAN-bericht.
Identifier 1 plaatste als 6e bit een 1. De node die de identifier verzendt herkent pas op het moment waarop er door een andere node een 0 op de bus wordt geplaatst dat er 2 nodes tegelijk een bericht verzenden. Op dit moment stopt identifier 1 met zenden en gedraagt deze zich nu als ontvanger. Alhoewel het eerst de bedoeling was dat het bericht dat begon met 0 1 1 0 1 eigenlijk het het bericht was wat deze node wilde verzenden, zal deze het nu als het ontvangen bericht beschouwen. De node luistert vervolgens het gehele bericht af en bepaalt of er iets mee wordt gedaan.
De grijze afbeelding van het SOF wordt nu uitgebreid met het ARB dat uit 2 delen bestaat, namelijk de identifier en het RTR bit:
RTR bit:
De laatste bit van de 11 bits identifier wordt een RTR genoemd; dit is een Remote Transmit Request bit. Deze RTR bit geeft aan of het een data frame of een remote frame is.
0 = Data frame
1 = Remote frame
Een data frame bevat gegevens die worden doorgestuurd naar de nodes die de informatie nodig hebben. Een node kan ook informatie vragen; bijv. wat de koelvloeistoftemperatuur op een bepaald moment is. De node zal dan een 1 plaatsen als RTR bit omdat deze vraagt om de gegevens.
CTRL:
Het Control Field bestaat uit de IDE (Identifier Extension), een R-bit en de DLC. De IDE bit geeft aan of het een standaard (11 bits) of een extended (29 bits) identifier is:
0 = Standaard identifier (11 bits)
1 = Extended identifier (29 bits)
De R-bit is gereserveerd voor in de toekomst en is nu altijd recessief.
Dan volgt de DLC: Een CAN-busnetwerk kan maximaal 8 bytes verzenden. In 1 byte zitten 8 bits, dus in totaal kunnen er 64 bits verzonden worden volgens het standaardprotocol. In het Control Field wordt aangegeven hoe veel data er verzonden wordt. Het zou onzinnig zijn om voor een bevestigingsbitje (1 voor aan of 0 voor uit) een groot bericht met allemaal lege datavelden te versturen. In de daarvoor bestemde DLC (Data Length Code) wordt het aantal bytes vermeld. De DLC is een functie in de programmeersoftware en is dus door de programmeur vooraf bepaalde waarde.
Stel dat er in de DLC 1 byte vermeld staat, dan worden er 8 bits verzonden. Voor korte bevestigingsberichten is dit voldoende.
Voor zeer uitgebreide berichten zal er in de DLC een waarde van maximaal 8 databytes staan.
Het voorbeeld is weer uitgebreid. De IDE, R en DLC zijn toegevoegd.
DATA:
In het data field wordt de uiteindelijke data geplaatst die verzonden moet worden. De grootte is afhankelijk van de waarde van de DLC (Data Length Code). Eerder is al aangegeven dat de DLC maximaal 8 bytes groot is. Elke byte bestaat uit 8 bits, dus in totaal kan het dataveld uit 64 bits bestaan.
CRC:
De Cyclic Redundancy Check bestaat uit een wiskundige berekening, welke met het bericht wordt meegestuurd. De zendende node maakt een berekening van het totale CAN-bericht tot nu toe; de SOF, ARB, CTRL en DATA. De CRC is dus de berekening. Wanneer de ontvangende node het bericht tot en met de CRC binnen heeft gekregen, zal deze de wiskundige berekening tot aan de DATA uitvoeren en vergelijken met de berekening in de CRC. Als deze niet overeenkomt (door een foutieve bit / storing) wordt het bericht niet geaccepteerd en wordt er verzocht om het bericht nogmaals te verzenden (met een bepaald maximum aantal pogingen).Het voorbeeld is uitgebreid met het CRC.
ACK:
Het Acknowledge field dient voor de ontvangstbevestiging. Wanneer de zender het bericht tot aan de CRC heeft verstuurd wordt er een soort pauze ingelast; de zender maakt de bus recessief (met een 0) en wacht totdat er één of meerdere nodes de bus dominant (1) maken. Het maakt niet uit of een of meerdere nodes het bericht ontvangen hebben, want als één node het ontvangen heeft, is het in ieder geval goed verstuurd.Nadat de bus dominant is gemaakt met een 1, wordt het verzenden van het bericht hervat.
EOF:
Het End Of Frame bestaat uit 7 recessieve bits (1 1 1 1 1 1 1). Dit is voor alle regeleenheden een teken dat het bericht is beëindigd.
IFS:
Om storingen te voorkomen wordt er altijd een Inter Frame Space na het EOF toegepast. De IFS bestaat uit 11 recessieve bits. Alle nodes wachten tot deze 11 recessieve bits voorbij zijn voordat zij een bericht gaan verzenden.Na deze 11 recessieve bits kunnen er bijv. weer 2 nodes tegelijk een bericht gaan verzenden. Er wordt dan weer gekeken naar de ARB (Arbitrage) om vast te stellen welk bericht de hoogste prioriteit heeft. De hele cyclus begint dan weer opnieuw.
Opbouw van het CAN-busbericht van een (extended) 28 bits identifier:
De 11 bits identifier is ontworpen in de tijd dat de auto’s nog niet zo veel regelapparaten (nodes) hadden. Al snel kwamen de programmeurs erachter dat ze aan de 11 bits identifier niet genoeg hadden. Deze heeft namelijk maar (2^11) = 2048 mogelijkheden. Daarvan blijven er 2032 unieke combinaties over van de binaire code. Moderne auto’s gebruiken nu veel meer codes dankzij de uitgebreide 28 bits identifier. Dit wordt de extended identifier genoemd.
Hiermee zijn er maarliefst (2^29) = 536870912 combinaties mogelijk. Dit is ruim genoeg voor in de toekomst.
In het CAN-busbericht veranderen dan wel een aantal zaken. Beide identifiers (standaard en extended) worden door elkaar heen gebruikt. In het CAN-bericht wordt dus aangegeven om elke soort het gaat, waarna een lang bericht volgt.
De basis van de 11 bits identifier wordt gebruikt en dient ook als voorbereiding voordat dit doorgelezen wordt; nu worden enkel de wijzigingen aangegeven die het bericht ondergaat wanneer het een 29 bits identifier is.
Het SOF (Start Of Frame) blijft hetzelfde. De zendende node maakt deze dominant wanneer deze begint met een bericht te verzenden.
Daarna volgen de ARB en de CTRL waar de verschillen in zitten.
ARB:
Bij de arbitrage staat er als eerst een standaard 11 bits identifier (dus een deel van de 29 bits). De RTR bit wordt (zoals het bij de 11 bits is) verplaatst naar het einde van de ARB. In plaats van de RTR komt nu het SRR: (Substitute Remote Request). Deze bit is bij een extended identifier altijd recessief (1).
Na het SRR bit komt de IDE bit, welke in de 11 bit identifier in het CTRL (Control Field) staat. Deze wordt nu uit het control field gehaald en bij de extended identifier achter de SRR bit geplaatst.
Ter verduidelijking zijn in de afbeeldingen hieronder de standaard (11-bits) en extended (29-bits) identifiers getoond.


De IDE bit staat voor Identifier Extension. Aan de IDE bit wordt gezien of het een standaard of extended identifier is.
IDE 0 = Standaard (11 bit ID)
IDE 1 = Extended (29 bit ID)
Na de IDE bit komt de rest van de extended identifier. De 11 en 18 bits maken samen 29. Deze kunnen niet als één geheel in het bericht geplaatst worden, omdat het CAN protocol dan niet meer klopt. In principe geeft de IDE bit nu aan dat het bericht in tweeën gedeeld is.
CTRL:
Het Control Field is bij de extended identifier dus gewijzigd. De IDE bit is verplaatst naar de ARB.
De IDE bit wordt vervangen door een R bit (reserve). Deze is standaard recessief. Daarna volgen nog een R bit en de DLC (Data Length Code), welke aangeeft uit hoeveel bytes het bericht zal bestaan.
Ook nu zijn de control fields van zowel de 11-bits als de 29-bits identifiers getoond.


Foutherkenning d.m.v. Bitstuffing en CRC & ACK delimiters:
Bitstuffing:
Om de synchronisatie tussen de zendende en ontvangende nodes optimaal te houden wordt er bitstuffing toegepast. Bitstuffing houdt in dat na 5 identieke bits er een tegengestelde bit wordt toegevoegd. Aan het oorspronkelijk verzonden bericht verandert er geen bitwaarde, maar er wordt een bit toegevoegd.
De ontvanger herkent dit. Na 5 identieke bits zal de ontvanger de 6e bit wissen (zie onderstaande afbeelding).
Het oorspronkelijke bericht van alleen enen wordt verzonden, maar de zender voegt elke 6e bit een 0 toe. De berichtlengte neemt dus wel toe vanwege de nullen (maar deze lengte telt niet mee voor de DLC (Data Length Code). De ontvanger filtert de tegengestelde bits (de nullen) er weer uit en leest vervolgens weer het bericht met alleen enen.
CRC & ACK delimiters:
Na het CRC field en het ACK field worden delimiters geplaatst. Dit is een bit met een bekende waarde voor zowel de zender als de ontvanger. Wanneer er een fout in het bericht ontstaat, zal deze waarde dus verschillen. De ontvanger krijgt dan een andere bitwaarde binnen als verwacht, en markeert het bericht als foutief. De zender zal het bericht nogmaals verzenden.
Twisted Pair bedrading:
Als bekabeling voor de CAN-bus wordt er gebruikt gemaakt van twisted pair kabels. De CAN-High en de CAN-Low kabel zijn dan in elkaar gedraaid zoals op de afbeelding te zien is.
Op deze manier worden storingsinvloeden van buitenaf vermeden; als er een inductie van een paar tienden volt in de ene kabel komt, komt die ook in de andere. Omdat de CAN-bus tegengesteld werkt, zal de storing op de ene bus positief zijn en op de andere negatief. Zo wordt de storing opgeheven, en ondervinden de nodes daar geen hinder van.
Afsluitweerstanden:
In elk CAN-bussysteem worden afsluitweerstanden gebruikt. Deze zitten vaak in de nodes aan het einde van de CAN-busleiding (draad). Deze weerstanden hebben elk een weerstand van 120Ω (Ohm). De vervangingsweerstand wordt gemeten als 60Ω bij een weerstandmeting op de draden.
Deze afsluitweerstanden dienen voor ontstoring; wanneer deze er niet zouden zitten, zou er reflectie ontstaan. Het spanningssignaal gaat door de CAN-busdraad heen, komt aan het einde en kaatst weer terug. Dat laatste wordt voorkomen. De spanning wordt opgenomen in de weerstand. Reflectie zou het weerkaatsen van spanningssignalen kunnen veroorzaken, waardoor de verzonden berichten beïnvloed worden en vervolgens de regelapparaten in storing komen te staan.
Gateway:
De auto is voorzien van een netwerk van regelapparaten (nodes). De gateway verbindt diverse CAN-busnetwerken (denk aan het interieur, de motor / transmissie en het onderstel), de MOST-bus en de LIN-bus met elkaar, waardoor alle netwerken met elkaar kunnen communiceren. Het is dus in feite een knooppunt tussen alle netwerken. De verschillen in snelheid zijn bij een gateway onbelangrijk. Klik hier om naar de pagina te gaan waar de werking en de functies van de Gateway beschreven worden.
Meten aan de CAN-bus:
Er wordt vaak gevraagd of het mogelijk is om de CAN-bus te meten. Dat kan zeker. Er kan een diagnose gesteld worden door de spanningsniveaus op de draden te meten en het spanningsbeeld op de oscilloscoop te controleren. Hoe er gemeten kan worden wordt beschreven op de pagina meten aan het CAN-bussysteem.
FAQs
What causes CAN bus off error? ›
CAN bus errors can occur for several reasons - faulty cables, noise, incorrect termination, malfunctioning CAN nodes etc. Identifying, classifying and resolving such CAN errors is key to ensuring the continued performance of the overall CAN system.
How do you troubleshoot a CAN bus? ›- Disconnect all devices except for the device being tested, then power the device on.
- Measure voltage on any of disconnected plugs between CAN HI and GROUND. The resulting voltage should be between 2.5 and 3.0VDC.
- At the same location, measure voltage between CAN LOW and GROUND.
The CAN Bus bypass relay solves this issue by using a small low current relay that you connect a clean ignition live feed to which in turn powers the accessory. The vehicles reverse light or brake light circuit is only used to switch the bypass relay in turn activating the parking sensor kit or rear camera.
How do you test a CAN bus communication? ›To test, disconnect the device (under test) from the CAN bus. Make sure power is off to the CAN device under test. Measure resistance from CAN HI to Ground and from CAN LOW to Ground. The result should be Mega ohms or open.
How do you recover from a bus off condition? ›How to recovery from Bus-Off? A note is permitted to become error-active (no longer bus-off) when its error counters both set to 0 after 128 occurrences of 11 consecutive recessive bits have been monitored on the bus. The MSCAN module implements two ways to recover from the fault, the automatic and the manual.
What should CAN bus voltage be? ›Standard CAN bus transceivers operate over a limited common mode voltage range that extends from −2V to +7V. In commercial or industrial environments, ground faults, noise, and other electrical interference can induce common mode voltages that greatly exceed these limits.
CAN bus system diagnose? ›The CAN bus is used not only to interchange information between devices connected thereto, but also to enable an OBD standard connector to be used so that that parameters of particular systems and information on errors can be read by means of external diagnostics interfaces.
What causes no communication with ECM? ›In most cases, communication issues can be caused by various reasons including: ignition-key position, connector-voltage issues, incorrect communication protocol, hung ECM, missing or bad data, and OEM-updated ECM software that is unknown to the scan tool.
CAN bus voltage readings? ›State | CAN High voltage | CAN Low voltage |
---|---|---|
Recessive | 2.5 volts | 2.5 volts |
Dominant | 3.5 volts | 1.5 volts |
The bus line is a twisted pair wire with a termination resistor (120 Ohm) on each side. One wire is called CAN High and one wire is called CAN Low. Both wires are needed for proper communication. A device which is connected to the bus is called a 'Node'.
How do you read data from CAN bus? ›
To interpret it, you need to decode the CAN frames into scaled engineering values aka physical values (km/h, degC, ...). Each CAN frame on the bus contains a number of CAN signals (parameters) within the CAN databytes. For example, a CAN frame with a specific CAN ID may carry data for e.g. 2 CAN signals.
What cable is used for CAN bus? ›This is twisted pair of 22 AWG yellow and green wire. This cable is designed to be used as a CAN Bus cable. Can be purchased in a custom length of continuous cable under 99 feet or as spools in fixed lengths.
Do cars still use CAN bus? ›The CAN bus standard is widely accepted and is used in practically all vehicles and many machines. This is mainly due to below key benefits: Simple and Low Cost: ECUs communicate via a single CAN system instead of via direct complex analog signal lines - reducing errors, weight, wiring, and costs.
What is a CAN bus system on a car? ›These days, all modern vehicles, from conventional combustion-powered cars to the latest EVs, feature a Controller Area Network (CAN) bus. It's the electronic communications system that allows different parts of the vehicle to talk to each other, including the engine, the transmission and the brakes.
CAN bus communication basics? ›The CAN bus is a serial communication bus, designed for robust performance within harsh environments, primarily in industrial and automotive applications. It is basically a vehicle bus standard that allows microcontrollers and devices to communicate with each other.
CAN bus communication fail? ›The majority of CANBUS communication problems are caused by poor wiring, incorrect termination, or the use of multiple frequencies on the same bus. The Controller Area Network (CAN) is a bus structure originally designed for automotive applications, but it has also found its way into other areas.
CAN bus communication codes? ›The high-speed CAN bus is a data network that links your ride's control modules that communicate at a relatively fast rate. When your vehicle's powertrain control module (PCM) detects that there's something wrong with a CAN bus circuit or control module, it will trigger the U0001 code.
How do I claim after a bus accident? ›In order to make a bus crash claim, you will need to show that third-party negligence caused your injury. The bus company or public transport company will have a duty of care to all of its passengers. If you're able to prove that their negligence caused your injury, you may be able to claim by suing the bus company.
What is bus off recovery in CAN? ›BusOff is an error state of the CAN Controller. Only Transmitter can switch in the state BusOff, if the Transmit Error Counter exceed 255.
CAN bus failure modes? ›Bus Failure Modes
CAN_H interrupted. CAN_L interrupted. CAN_H shorted to battery voltage. CAN_L shorted to ground.
What bus voltage is too high? ›
This Error occurs when the internal bus voltage exceeds its expected limits. This can be caused by several causes, one of them is that both the solar and battery module are trying to create/maintain the internal bus voltage, causing the voltage to rise rapidly.
CAN bus voltage be high and low? ›The CAN High wire usually fluctuates between 2.5V and 3.5V. The CAN-Low wire usually fluctuates between 2.5V and 1.5V. If you do not have a oscilloscope, you can measure the average voltage with a multi-meter. You will measure around 2,2V for CAN-Low and 2,7V for CAN-High.
Is CAN bus the same as OBD2? ›CAN is a method for communication (like a phone). In particular, the OBD2 standard specifies the OBD2 connector, incl. a set of five protocols that it can run on (see below). Further, since 2008, CAN bus (ISO 15765) has been the mandatory protocol for OBD2 in all cars sold in the US.
CAN bus voltage level at idle condition? ›If you are talking about the ISO11898 spec then when the bus is recessive (idle) the voltage of the CAN_H with respect to ground is 2.5V and CAN_L with respect to ground is also 2.5V.
CAN bus wires shorted together? ›Ensure CAN-High and CAN-Low are not shorted together or shorted to ground or V+. Test to make sure there is no electrical conductivity between CAN-High and ground or CAN-Low and ground (this can happen if one of the wires gets shorted to the shield or gets pinched or sliced by a metal enclosure).
What is the most common failure of an ECM? ›The most common source of ECM failure is in one of the wiring harnesses. If the wires to the transmission or fuel injectors become corroded, they can lose conductivity, leading to a failure. Fortunately, these issues can usually be resolved by replacing the corroded wires.
What are the signs of a failing ECM? ›- Erratic engine behaviour. One of the symptoms indicating that your ECM is not working properly is engine stalling or misfiring. ...
- Inability to start the vehicle. ...
- Poor engine performance. ...
- Inefficient fuel economy. ...
- Warning light. ...
- Engine shuts off.
A faulty ECM can send poor data to your vehicle's transmission control module (TCM). As a result, the vehicle cannot properly shift gears or apply power, causing the shift to feel awkward, delayed, or even jarring. When this occurs, the engine may sporadically become more active or stall out.
How do I know if I have CAN bus? ›If the vehicle warns you when a bulb is out, it is equipped with CAN Bus. The easiest way is to contact the vehicle's supplier or dealership. If you're still not sure, we normally tell customers to remove a light and drive the vehicle to see if it gives a warning.
CAN bus 5V or 3.3 V? ›The CAN bus is referenced to 3.3V, and thus the recessive and dominant voltages are different compared to a more typical 5V CAN transceiver. Microcontrollers only connect to the logic pins of a CAN transceiver, such as TXD, RXD, and STB; they do not interface with the actual CAN bus.
How many volts does it take to start a bus? ›
12.4 volts before you crank. 14.4 running is optimal.
How many cables does a CAN bus have? ›The CAN-bus uses 3 wires (CANH, CANL, GND) for communication between nodes. The CANH and CANL signal form a differential signal pair.
Why do CAN bus wires have to be twisted? ›CAN bus cable consists of a pair of wires known as CAN high and CAN low (indicating high and low speed, respectively). Both wires are twisted tightly together to ensure that electromagnetic interference affects the signal in both wires uniformly, limiting errors.
CAN bus data decoding? ›The rules of CAN-bus messages decoding are described by DBC-files. Each parameter (SPN) has its own decoding rule which you can edit, clone or delete in SPN editor. Depending on the settings, the uploaded log can be either public (open to everyone) or private (default setting).
CAN bus data sniffer? ›CAN Sniffer is a control unit which can be interfaced and monitoring a CAN bus by USB (in this case the card is self-powered) or RS232 interfaces. Its configuration is achieved either through USB (in this case the board is self powered) or through RS232 interface.
CAN bus GPS data? ›CAN Data is a complement to GPS tracking. By reading the data provided by the CAN Bus, when collected by GPS location systems, it can be sent to a tracking platform and processed to generate real-time reports on critical data.
What is the difference between CAN bus and Ethernet? ›In the end, Ethernet provides greater capacity than the CAN bus, at the expense of greater complexity, but still struggles to handle the highest-bandwidth applications such as video. FPD-Link is a technology developed for point-to-point transport of high-bandwidth data.
What color are CAN bus wires? ›CAN is generally wired with yellow and green wire with yellow acting as the CAN-High and green as the CAN-Low signals. Many devices show this yellow and green color scheme to indicate how the wires should be plugged in.
What is the difference between CAN and CAN bus? ›The only difference between the two formats is that the "CAN base frame" supports a length of 11 bits for the identifier, and the "CAN extended frame" supports a length of 29 bits for the identifier, made up of the 11-bit identifier ("base identifier") and an 18-bit extension ("identifier extension").
What are the biggest limitations of the CAN bus? ›Advanced software capabilities require a high-performance hardware foundation, and the current CAN bus networking backbone is stretched to its limit. The biggest problem with CAN is the limited bandwidth it provides.
What is the advantage of using a CAN bus system on a car? ›
The CAN protocol eliminates the need for excessive wiring by allowing electronic devices to communicate with each other along a single multiplex wire that connects each node in the network to the main dashboard.
How CAN I tell if my car has CAN bus wiring? ›Typical places to pick up CAN include the ABS system (look for a pair of twisted wires, but ignore the four wheel speed wires) or on the back of the dashboard (look for a pair of twisted wires). If the vehicle does have CAN Bus on the OBD connector, it will normally be on Pins 6 and 14 as indicated below.
Do you need CAN bus? ›If you're looking to improve not only your style by upgrading to a more modern look, but also interested in boosting the efficiency of your car or truck's lighting system, then a CANBUS bulb is likely your best bet.
CAN bus off error active? ›A node starts out in Error Active mode. When any one of the two Error Counters raises above 127, the node will enter a state known as Error Passive and when the Transmit Error Counter raises above 255, the node will enter the Bus Off state. An Error Active node will transmit Active Error Flags when it detects errors.
What does CAN bus error free mean? ›Since LED bulbs draw far less power than the stock filament bulbs, the vehicle's computer may think that the bulb is out so it'll throw an "error message" or "bulb out" warning the driver that the light is out; thus the name "error free".
What is form error in CAN bus? ›Form Error: this refers to the fixed form of the field. Form check checks the CAN frame sent/received for a standard format. Violation of fixed bit format results in a Form Error. E.g. CRCD, ACKD, EOF have to be recessive bits, and the presence of any dominant bit will automatically be treated as a Form Error.
What is a bus error exception? ›The bus error exception results from anything that causes a failure to complete a bus cycle. It is itself divided in several different groups: Illegal memory access: caused by the processor trying to read memory at a nonexisting address.
CAN bus error checking? ›The error handling aims at detecting errors in messages appearing on the CAN bus, so that the transmitter can retransmit an erroneous message. Every CAN controller along a bus will try to detect errors within a message.
How do I know if my car needs a CAN bus? ›If the vehicle warns you when a bulb is out, it is equipped with CAN Bus. The easiest way is to contact the vehicle's supplier or dealership. If you're still not sure, we normally tell customers to remove a light and drive the vehicle to see if it gives a warning.
Do LED lights need a CAN bus? ›Because LED car bulbs use a lower wattage than other bulbs, the CANbus canceller helps to increase the current safely and without damaging the bulb. This will ensure that your vehicle doesn't bring up any error messages and the LED can work as expected.
What are the 3 main types of error in the field of programming and how CAN we prevent that? ›
- Runtime or Execution Errors. These are errors that occur when a program is executing (i.e. at runtime). ...
- Logic Errors. Logic errors are caused due to flawed reasoning. ...
- Syntax or Compile-Time Errors. These are errors caused due to violations of Java's language rules.
Standard CAN bus transceivers operate over a limited common mode voltage range that extends from −2V to +7V. In commercial or industrial environments, ground faults, noise, and other electrical interference can induce common mode voltages that greatly exceed these limits.
How do you fix bus contention problem? ›To avoid the bus contention problem that occurs after a read bus cycle, i.e, prevent a next address on the bus until the bus is in a tri-state condition, one embodiment inserts idle clock cycles subsequent to a read but not subsequent to a write, The present invention avoids bus contention on a multiplexed bus while ...
What happens if you drive in a bus lane by mistake? ›What are the penalties for driving or parking in a bus lane? While there's no explicit wording as regards penalties for driving in bus lanes, it likely falls under "Failure to comply with traffic lane markings", which can incur one penalty point on payment or three upon conviction in court.
How do you debug a bus error? ›- Compile your code with the -g option. ...
- Then type gdb.
- At the prompt type file nameOfExecutable. ...
- When it gets the bus error, seg fault or whatever, the location in your source code will be displayed. ...
- quit gets you out of the debugger.