Inleiding
Alle studenten laatste jaar professionele bachelor aan het De Nayer Instituut
moeten een project maken tijdens de 6 projectweken aan het begin van het tweede
semester. Projecten zijn te kiezen uit een lijst, of zelf aan te brengen (mits
goedkeuring). Wij hebben er voor gekozen het project "CAN-Analyzer op basis van
LabVIEW" voor onze rekening te nemen. Onze projectcoach die het verloop opvolgt
en ons met raad en daad bijstaat is Koen Moyson. De wagen waarop we ons project
uitvoerden is een gift van Toyota, de Toyota RAV4 D-4D.
Doelstelling.
In dit project is het de bedoeling de wagen en de PC samen te laten werken
via het CAN-protocol, en dan voornamelijk het COMFORT-netwerk uit te lezen en
aan te sturen. In de automobielsector wordt met het comfortnetwerk bedoeld,
alles dat niet met de motor op zichzelf te maken heeft, maar wel met de
secundaire behoeften van een auto. Dit omvat alles zoals lichten,
airconditioning, elektrische ruiten, elektrische spiegels, zetelverwarming, enzo.
ABS en airbags zijn naast motor (engine) en comfort de meest voorkomende
deelnetwerken. Wij gaan onze computers laten functioneren als extra speler in
het comfort-netwerk alsof het een deel van de wagen was.
Wat is CAN nu precies?
CAN is "Controller Area Network", dit is een protocol waarmee digitale
communicatie in de meeste moderne personenwagens gebeurt. Het voordeel van deze
communicatie is dat ze serieel verloopt, er zijn dus maar twee draden nodig die
alles in een lus met mekaar verbinden, ipv een draad die van elke sensor/schakelaar/chip
naar elke actuator/lampje/chip loopt. Dit heeft het aantal kabels, relais en
transistoren in wagens drastisch doen verminderen en maakt diagnose vanop 1
plaats in het voertuig makkelijker.
Bijvoorbeeld: Alle schakelaars die met de
lichten van de wagen te maken hebben komen samen in 1 controller (chip). Deze
zet de signalen om in een serieel signaal dat op het CAN-netwerk gezet wordt.
Elke functie heeft zijn eigen unieke nummer. Zo kunnen ontvangers, verderop in
het netwerk de signalen herkennen. Als het signaal van de lichtbediening herkend
wordt door de lichtsturing zal deze het nodige doen om de lampen op de gevraagde
manier te laten branden. Alle info die op het netwerk zit die niet bestemd is
voor een bepaalde controller wordt door deze genegeerd.

Waarom twee kabels? Alle communicatie binnen de wagen gebeurt over twee kabels - CAN-High en CAN-low - die in mekaar gedraaid zijn, dit noemt men een "twisted pair". Beide kabels hebben in rust een spanning (t.o.v. de minpool van de batterij) van ongeveer 2,5V. Dit is een digitale 0-toestand, wanneer een 1 moet verzonden worden zal de spanning van de ene kabel 1 volt dalen (CAN-low) en van de andere 1 volt stijgen (CAN High). Wanneer men enkel het verschil tussen de twee kabels bekijkt is de 0-toestand gelijk aan 0 volt en de 1 toestand gelijk aan 2 volt. De reden van deze opstelling is enkel en alleen storing zoveel mogelijk uitschakelen omdat een signaal met een snelheid van 1 000 000 bits per seconde, zoals dat van de Toyota RAV4 behoorlijk storingsgevoelig is.

Wat is LabVIEW?
LabVIEW is een software-pakket van National Instruments dat ons in staat stelt te werken met Virtuele Interfacen. Zo kan informatie in een computer ingelezen OF gesimuleerd worden, en vervolgens door een reeks berekeningen aangepast worden en omgezet naar een uitvoer of simulatie. Bijvoorbeeld: We simuleren een draaiknop en laten een wijzertje op het scherm het dubbele van de waarde van de draaiknop aannemen, OF we sluiten een echte draaiknop en een echte wijzerplaat aan op de PC (met behulp van een seriele of parallelle module) en laten deze net hetzelfde doen. Dit is een van de meest simpele mogelijke opstellingen in LabVIEW. Voor ons project zullen een reeks ingewikkeldere procedures aan bod komen.

Om de informatie die op het CAN-systeem van een wagen zit in te lezen in de PC hebben we een USB-module gebruikt van National Instruments, de "NI-CAN 8473-USB", deze stelt ons in staat de info op het CAN-netwerk in te lezen op de PC in LabVIEW. Elke functie heeft zijn unieke code (van 0 tot ongeveer 1600 decimaal), dit noemen we (Arbitrage-)Identifiers omdat ze de functie identificeren. Elke identifier wordt weergegeven samen met de hexadecimale waarde die hij op dat moment heeft, elke waarde beschrijft een toestand. Hier zie je zo een lijst met identifiers en hun waarde op een specifiek moment, de waarde kan tot 500 000 keer per seconde veranderen.
OBD stekker: pin 6 en 14 zijn het CAN-signaal.

Parallel-stekker van NI-CAN module: pin 7 en 2 zijn het CAN-signaal.

Simpel LabVIEW-programma om de data op de CAN-bus weer te geven.
