The diagnostic port gateway provides the link between the diagnostic connector and the vehicle networks. In this example, two internal networks are shown, one (in red) associated with safety critical modules such as engine management and the other (in blue) associated with lower priority modules such as body control.
In a CAN network, a transmitter sends a message to all CAN nodes. Each message type has an identifier that is unique throughout the network. All nodes on the network receive the message and each analyses the identifier to determine if the message, and therefore its content, is relevant to that particular node. For example, a body control module would probably not be interested in a message containing the speed of the vehicle, but this type of message would definitely be of interest to a dashboard control module.
As well as identifying the type of message, the identifier also establishes the priority of the message. The lower the value of the identifier, the higher the priority of the message. This scheme enables the bus to arbitrate between messages that are placed on the bus at the same time and ensure that higher priority messages are transmitted before lower priority messages.
There are two versions of the CAN standard that specify different lengths of identifier. CAN 2.0A specifies an 11 bit identifier whereas CAN 2.0B specifies a 29 bit identifier. CAN 2.0B is backwards compatible with CAN 2.0A. It is important when choosing a Scan Tool that it can handle both 11 and 29 bit CAN identifiers.
Note that whilst the EOBD standard defines a 2-wire CAN bus there are manufacturer specific variants such as GMLAN, the single wire CAN bus used by General Motors.
So what are the benefits to the vehicle manufacturer of using CAN as an interface bus within a vehicle?
High Data Rates – CAN uses a two-wire solution (CAN Hi and CAN Lo); this enables higher data rates to be used than would be possible with a single wire solution such as K-Line. For example EOBD specifies a maximum CAN data rate of 500,000 bits per second compared with the K-Line data rate of 10,400 bit/second. The CAN 2.0B specification extends the maximum data rate to 1Mbps (1,000,000 bits per second).
Reliability – CAN has extensive error checking built into the format of each packet of data. The protocol automatically handles collisions of messages on the bus, ensuring that higher priority messages are transmitted before lower priority messages.
Bus based – Multiple controllers may be placed on the same bus, thereby reducing the amount of wiring and the number of connectors in a vehicle. This also means that vehicle designers may add additional modules to the vehicle network without necessarily having to reprogram existing modules.