CAN bus

From OpenCircuits
Jump to navigation Jump to search

The CAN bus is designed to allow low-cost devices to communicate with each other within a vehicle without a host computer.

Higher layer implementations

(in reverse alphabetical order)

Very Simple Control Protocol

SafetyBUS p

SAE J1939

After 1996, most vehicles have a OBD-II data link connector.


NMEA 2000


EmCan Protocol

"Some of the goals of the EmCan protocol are:

  • Hot plugging.
  • Inferred configuration. Sensors report not merely raw ADC counts, but can be queried to discover the physical type of dimension it measures (length, mass, time, force, frequency, etc.) and a scale factor (calibration factor) that can be used to convert the raw data to standard engineering units (meters, kilograms, seconds, Newtons, Hertz, etc.)
  • Uses standard CAN bus frames or a bi-directional byte stream interface
  • Simple enough to be reasonably implemented in a small microcontroller
  • Interoperable. Any EmCan device can be connected to any EmCan bus without harm to the device or the rest of the system."

-- EmCan Protocol Specification

"The current document is a work in progress ... If you are interested in this concept and are willing to discuss details of your system, talk to me. ... Having another implementation in progress as the spec is being finalized would be good for spec development and to test out the reference implementation" -- Olin Lathrop[1]



CAN Kingdom

Further reading

Say something here about how to design "gateway" devices that act like the master of a Local Interconnect Network (LIN) on one side and a CAN bus peer node on the other side...

For a good overview of the CAN bus protocol, see Wikipedia: CAN bus.

For an even more general overview of communications protocols, see Microcontroller Serial Communications Articles.