Automotive CAN BUS Simulator

Thread Starter

bwilliams60

Joined Nov 18, 2012
1,442
Good Afternoon. I am looking to repair modules which are part of the CAN BUS system on cars, trucks etc. I know a fair bit of information about CAN BUS but feel I may only be scratching the surface. I want to be able to run instrument clusters, heaters etc from vehicles which are controlled by the CAN BUS so they would only have power and ground, and two CAN wires, Hi and Lo.
My question is, can I do this successfully and what else do I need to do it? I can build a test bench using all the components tied into it from a vehicle for one which seems big and bulky especially when there are several modules from several vehicles.
My second thought is to record a known good signal from a vehicle, Sniff out the module I am working with, separate that data and then feed it back into the repaired module via PC.
Is this possible and if so, what else do I need? Specifically please. Thank you in advance.
 

Papabravo

Joined Feb 24, 2006
21,228
What you need is a device in your PC or laptop that can send and receive arbitrary CAN bus message traffic. Then you need enough documentation or experimental data to know what messages to send and what responses to expect. Trying to do this at the signal level may or may not be possible since you have to contend with a CRC calculation and bit stuffing. Best to leave that stuff to the CAN controllers. As to the software, I recommend that you put together a "little language" which involves shorthand tokens for particular messages and their parameters. Associate them with function keys so you can probe the device 1 message at a time without retyping the message. Include looping, and execution from script files and you have the basis for a really useful tool.
 

picoamp

Joined Sep 13, 2018
22
Maybe it is a bit too late to post answers into this old threat, but i was looking to have the same as the threadstarter.
As i understand him, he wants to reverse-engineer module functions by their conversation on the bus.

Like Papabravo said, you need a CAN-Interface to be able to communicate from your PCs software to a CAN-Bus. If you decide to use an SLCAN-compatible version, you are also be able to use OpenSource libraries/software/drivers for it. The key is to transform data from the CAN into an easy interpretable format by software and vice versa. This format contains the Message-ID (which is also the priority of the message, the lower the more relevant), the type of message (normal, extended, remote, ...) and of course the message bytes. The data oftenly is sent via USB, where the USB-Endpoint on the PC may look like an serialport for the software.

Keep in mind that it is not the bus controlling anything, it is only a transportation media, like an Ethernet-Infrastructure. It is the content and it's meaning to the modules.
 
Top