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.