De CAN bus werd in de jaren 1980 ontworpen om de communicatie tussen verschillende sensoren en modules te verbeteren in automobielen. Alle apparaten worden op één bus aangesloten en de hoeveelheid kabels kan beperkt worden. |
-
Het systeem heeft als voordeel dat het softwaregestuurd wordt. Wordt er overgegaan in achteruit, dan wordt het signaal op de CAN bus gezet, waar het opgepikt kan worden door de achterlichten (inschakelen achterruit rijlichten) maar ook door de automatische versnellingsbak om eventueel van versnelling te veranderen. De informatie van iedere sensor kan zo in theorie gebruikt worden door ieder apparaat zonder dat er extra kabels nodig zijn. Het volstaat een systeem bij te plaatsen op de bus, zodat die ook de informatie kan gebruiken (inschakelen achteruitcamera). De verbinding is ontworpen om te werken in een gestoorde omgeving. De communicatie gebeurt over een twisted pair die differentieel aangestuurd wordt. Verschillende maximale snelheden zijn mogelijk naargelang de draadlengte. Alle apparaten worden parallel op de bus aangesloten en de bus moet afgesloten worden door een weerstand van 120Ω om weerkaatsingen van het signaal op de draaduiteinde te vermijden. Als er niet gecommuniceerd wordt verkeert de bus in rust (recessieve staat). Als een apparaat een "0" verstuurt, dan gaat de bus in dominante staat. Het is voldoende dat één apparaat een nul verstuurt, en de bus gaat in dominante staat (vandaar de biologische benamingen recessief en dominant). De communicatie gebeurt asynchroon zoals bijvoorbeeld het RS-232 protocol: er is geen master klok, maar van zodra er data verstuurd wordt moet de zender zich houden aan een strikte timing zodat de individuele bits gedetecteerd kunnen worden.
Prioriteit op de busIeder apparaat heeft een eigen adres, en dit adres geeft ook de prioriteit van het apparaat aan. Een node kan enkel zenden als de bus vrij is (recessieve staat).Als een node gaat zenden, dan stuurt die eerst zijn eigen adres uit (hier: 010101), maar blijft ook luisteren op de bus. Als een apparaat met een hogere prioriteit (010011) ook gaat zenden, dan overmeestert zijn adres de bus en moeten andere apparaten stoppen met zenden. Vanaf de 4e bit weet apparaat 1 dat die geen prioriteit heeft en moet hij stoppen met zenden. Een apparaat weet dat er een ander apparaat met een hogere prioriteit ook aan het zenden is, omdat er een ander adres (met hogere prioriteit) op de bus gezet wordt. Dat alle apparaten een eigen prioriteit hebben is belangrijk, zodat een belangrijk bericht (bijvoorbeeld overtoeren motor) niet vertraagd wordt door een minder belangrijk bericht (regensensor). Als een apparaat zijn bericht niet kan uitzenden, dan probeert het opnieuw als de bus vrij is. Het bericht is dus niet verloren. Er kunnen tot 20 à 30 apparaten op een bus aangesloten worden, dit hangt af van de snelheid van het netwerk, de topologie, de storingsgraad en hoe "babbelziek" de apparaten zijn. Moeten er meer apparaten aangesloten worden, dan gaat men het netwerk splitsen. Tussen de twee netwerken wordt er dan een brug geplaatst. Dit kan een gewone "store-and-forward" apparaat zijn (zoals een hub in IP netwerken), maar de brug kan ook selectief berichten laten passeren en adreswijzigingen doen (waardoor de prioriteit van het bericht gewijzigd wordt). Dit is dan meer de funktie van een router in IP terminologie. De adressen van de nodes worden niet gebruikt om een apparaat te identificeren, maar om de prioriteit in te stellen. Alle apparaten kunnen de berichten lezen, en kunnen autonoom beslissen om daarop te reageren. Zelfs in een auto worden er daarom verschillende deel-netwerken gecreëerd (motormanagement - accessoires - dashboard - ...). Het is bijvoorbeeld niet nodig dat de motortemperatuur naar de achterlichten gestuurd wordt, maar wel naar het dashboard (misschien met een verlaagde prioriteit).
Spanningen op de busDe snelle bus heeft een lineaire structuur en wordt aan beide kanten afgesloten door een weerstand van 120Ω. In rust hebben de twee lijnen CAN Hi en CAN Lo een spanning van ongeveer 2.5V. Dit is de recessieve spanning. Een apparaat die moet zenden trekt de CAN Hi lijn naar 3.5V of meer en de CAN Lo lijn naar 1.5V of minder.De snelle bus is in recessieve toestand als de spanning tussen de lijnen minder dan 0.5V is. De bus is in dominante staat als de spanning tussen de lijnen 2V of meer bedraagt. In rust trekken de afsluitweerstanden het spanningsverschil naar 0V, maar de gemiddelde spanning (CAN Hi + CAN Lo) / 2 hoeft niet noodzakelijk 2.5V te zijn. De bus is dan zwevend, maar zenerdiodes beperken de spanningsafwijking. De trage bus heeft een meer vrije structuur waarbij ieder apparaat twee weerstanden heeft. In recessieve staat trekt een weerstand de CAN Hi naar 0V en de CAN Lo naar 5V. In dominante staat trekt een apparaat de CAN Hi naar 5V en de CAN Lo naar 0V. De pullup en pulldown weerstanden moeten en zodanige waarde hebben, dat de totale weerstand (parallel) zo dicht bij 100Ω zit, maar niet lager is. Men heeft een dominante staat als CAN Hi hoger is dan CAN Lo, maar de exacte spanningsniveau's zijn niet van belang. Hoewel de spanning beperkt is tussen 0 en 5V moeten de apparaten spanningspieken van -27 tot +40V verdragen. De interface van de trage bus kan eenvoudiger zijn en de struktuur van het netwerk is meer vrij: men hoeft geen lineaire structuur te hebben met afsluitweerstanden op het einde. Een apparaat is ofwel voorzien voor een trage bus, ofwel voor een snelle bus. De interface van de trage bus kan eenvoudiger zijn en de struktuur van het netwerk is meer vrij: men hoeft geen lineaire structuur te hebben met afsluitweerstanden op het einde. Een apparaat is ofwel voorzien voor een trage bus, ofwel voor een snelle bus. |
Publicités - Reklame