LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I read VW differential CAN

Hello, this is my first post so my apologies if I did not choose the correct forum topic.

 

I am an engineer developing a test bench for a VW HVAC unit for vehicles ranging from 2006 to 2010 Jetta, Passat, GTI, or Rabbit. These HVAC units use a type of CAN protocol that I am unfamiliar with. It is referenced as "differential" CAN. What I know is it is a dual wire CAN, the baud rate is 100k, and that the termination of the High side is pulled high through a resistor to 12 volts and likewise the Low side is pulled down with a resistor to ground.

 

I am currently using LabView to control a Dearborn Protocol Adapter 5 which is unable to read this type of CAN but has been my primary CAN tool.

 

I am seeking any additional information about how I might be able to read the raw traffic over these CAN lines, or if there is a diagnostic tool that can read this CAN that also has LabView drivers. Or any advice on developing a test bench for VW HVACs.

0 Kudos
Message 1 of 5
(3,386 Views)

Welcome to the wonderful world of CAN.  There are people who have spent their entire careers doing CAN, so don't worry if you feel a bit lost at times.

 

Sounds like you have a decent start.  Dual wire CAN is generally high speed, and 100K baud is slower but a standard speed.  Usually the network has two 120 ohm resistors between CAN high and CAN low.  One resistor on each end of the bus but other designs incorporate capacitors, and resistors to power and ground.  These are all to help reduce signal reflection and the bus will often work just fine without them but may need more retransmits (which is automatic based on the CAN tranceiver)

 

As for hardware.  The cheap solution is NI's 8473.  This uses the older NI-CAN API but works fine for sending and receiving raw CAN frames.  The newer design uses the NI-XNet hardware and an API and have lots of cool features that help off loading the work to the hardware.

 

Most of the time you don't actually want to read and write raw data.  Most people want engineering units.  What is the temperature in degrees C?  Having data like: ID=0x218 Data=0x83 AB FE DE 11 52 87 19 which isn't as useful.  For this you need a way to correlate the raw data coming in to engineering units.  This is usually a DBC or a CAN Database.  NI-XNet has a nice API for handling this but I also wrote a tool that converts from raw to signals, and back given a DBC.  You'll need to refer to the manufacurer for a database or documentation.

 

Both NI-CAN and NI-XNet hardware have a test panel built into MAX that can just view raw data to see if things are hooked up right.

Message 2 of 5
(3,357 Views)

Based on the description of the hardware setup it could also be a low speed CAN, that is more fault tolerant. 

In Low speed CAN the two wires are have a pull-up/pull-down resistors: 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019M18SAE&l=en-US

 

If it is Low speed CAN, you need a Low Speed CAN module. A High speed CAN module, like the 8473, will NOT do the job. 

The NI-USB 8472 can do the job for you

Message 3 of 5
(3,328 Views)

Oh thank you so very much for correcting me, I forgot what the range was for "High speed" and was thinking low speed was 33.3k but that is generally single wire CAN.

0 Kudos
Message 4 of 5
(3,314 Views)

High speed actually have a very low minimum speed. The main thing here is the max speed of the Low CAN and the hardware configuration.

 

Had a case with a Low speed and a High speed CAN device on the same bus, that did not work. Even if they use the same baud rate

 

And yes, you don't see that many Low speed CAN devices, most is High speed.  

0 Kudos
Message 5 of 5
(3,302 Views)