The Robert Bosch Corporation came up with the initial implementation of the CAN protocol, which was called CAN 1.2. This version allowed for only an 11-bit message identifier (short ID). Therefore, being a fairly small binary number (only 11-bits), the protocol could only distinguish 2050 distinct different messages (ID numbers).
Latter on in 1993, a new version was introduced, CAN 2.0 that has the standard 11-bit identifier but also an
extended 29-bit identifier mode.

This latter version allowed for millions of distinct message combinations, making for a more robust protocol or data exchange agreement rulebook. The hart of the CAN protocol signal is the data frame. The data frame can be looked at as a from of data burst, where the actual sensor/actuator or any other form of data is disassembled or broken into pieces and sent over the network a couple of pieces at a time.

These data pieces or fragments travel over the network lines inside data frames and each data frame is separate and distinct from each other. In other words, each data frame has its own identifier and different data fragment inside. As soon as the data frames reach their destination
node (specific module (s)), the data fragments are put together again .
The identifier is then discarded and the respective module or modules use the completely reassembled data appropriately. The data frame is composed not only of the two before mentioned pieces identifier and data), but of many other binary bits that make it possible for all this to work together.
In the next part of this article we will be dealing with this information. As a final note of introduction into the CAN protocol, it is important to note that the protocol itself is multi-master.
This means that any node at any particular time could access the network and no one node controls the network. Hence the need for specific and distinct identifiers, which reinforces the
fact that CAN is a message identifier-oriented protocol.

The CAN protocol has been EPA approved for MY 2003 and up vehicle diagnostics and a legal requirement by the year 2008. This means that the old OBD II SAE J1850 protocol compliant scanner will need some modification in order to communicate using the CAN specification. The main problem is the higher speed of the new CAN network, which is about 10 times faster than the protocols in use today.

The new CAN diagnostic systems still use the standard 16 pin OBD II (J1962) connector.
However, the new CAN diagnostics data
line will be on pins 6 and 14, which before have been manufacturer specific. Future vehicles that are not yet CAN compliant might have these two pins blank. The actual scan tool can be connected to the network either directly or through the gateway circuitry.

The Class C implementation of CAN is called CAN C, which is not to be confused with CAN A or CAN B. These two are actually the CAN protocol's Class A and B implementations.
As previously explained, the protocol is separate from the classification. Classification is synonymous with speed and protocol with the data exchange agreement.
The CAN A, B and C networks can all be linked via a gateway within the same vehicle, with the actual gateway circuitry imbedded inside a specific module.

The instrument cluster module or the front control module is a good example of a module with imbedded gateway circuitry. It is also worth remembering that the gateway module is not a separate unit, but this circuitry is part
of another module's PC board.

Another major difference between CAN A and the other CAN implementations is that CAN A runs on only one wire (at much slower speeds) and therefore much cheaper to build. CAN A also uses the vehicle's own ground. While CAN B and C are much faster but run on a two-wire network implementation and do not use the vehicle's ground.

The latter types simply use the two network wires for differential signaling. This means that
the two data signal voltages are opposite to each other and used for error detection by constantly being compared.
In this case, when the signal voltage at one of the CAN data wires go high (CAN H) the other one goes low (CAN L) hence the name differential signaling. Differential signaling is also used for redundancy, in case one of the signal wires shorts out.

Previously, we mentioned that the CAN protocol is a message identifier oriented protocol. Each particular message has what could be considered to be an ID number. Every time this particular node wants to talk, it sends a message ID
(identifier) first and then the corresponding data message.
If a couple of nodes try to talk at the same time, the node with the highest priority message ID number or identifier wins the right to transmit.
This type of identifier arbitration will be explained latter. But, a good example
of this is the CAN networked steering angle sensor, which could be considered a high priority sensor and the power seat module. In the event that these two nodes try to send a communications signal at the same time, the steering angle sensor will win the right to the network.
This happens simply because the SAS messages are of higher priority than the power seat module. In actuality, the SAS message identifiers have a lower binary number, which translates to higher priority. In other words, the lower the identifier's binary number the higher its priority.
As soon as the power seat module sees that there is another node trying to access the network with a higher priority message/lower binary number identifier it simply stops transmission and starts to listen for the particular message.
This also shows that in CAN, the nodes have the ability to both transmit and listen at the same time or CSMA (Carrier Sense Multiple Access) media access method.

Carrier meaning the network lines that carry data
transmission, sense always listening to the network, multiple access that any node can try and access the network at any time so long as it is idle. In other network protocols, for example, a node can only talk in a specific order so it always has to wait its turn. This is not so
with CAN.

A CAN node (module or sensor/actuator) can send a multitude of possible different messages and those with the highest priority will always win. The important fact to understand is that each identifier number is message oriented and independent of whatever node/module transmits it.

For example, the ECM may have may parameters (messages) to transmit over the network—some of those parameters (messages) will be of high priority (throttle signal, engine speed, etc) and some will be of low priority (A/C compressor switch, battery temperature, etc). The message
containing the “engine speed” data will win network access over the message containing the battery temperature data, even though both data frames came from the ECM.

As a final note, an introduction will be made to a somewhat different media access method called Time Division Multiple Access. This media access scheme uses fixed time slots exclusively reserved for every node according to a fixed time schedule.
This system does not use a master node to control access but simply allows a predetermined amount of access time to each and every node. The main requirement for this system is a very high synchronization of the oscillator, also called system clock. The system clock is derived from an oscillator and synchronized to each node in the network.
The master time-keeper-node or controller is in charge of maintaining a stable clock frequency. The time-keeper-node therefore sends a synchronization message at the right time (according to its internal oscillator) to
all nodes so that each node can synch to it.

The number of nodes, different messages and the transmission bit rate of the network determines the latency time (delay).

Examples of TDMA are systems used in very secured situations such as X-by-wire systems. In X-by-wire, an extreme amount of determinism and security is needed. In these situations,
for example, the Pedal Position Sensor or the Brake Pressure Sensor can not wait too long for any other sensor to finish its transmission.

By using TDMA the system simply already knows the amount of nodes, messages and network
speed (bit rate). This means that the latency time (hold time while waiting for the transmitting node to finish) is already calculated, since each node has a specific
predetermined access time.
Examples of TDMA system protocols are Byteflight, Flexray, and Time-triggered CAN or TTCAN. The Byteflight and Flexray protocols now partly under development could very well mean the future of high speed communications and possible substitutions to the CAN protocol. TTCAN however is simply the CAN protocol implementation of TDMA, since this protocol easily lends itself to time triggered applications.

In TTCAN all nodes are synchronized to a synchronization signal pulse at the beginning of each transmission frame. Each node then can
access the network in the same way as in regular CAN. The higher the node's message binary identifier the lower the media access priority and the longer the node has to wait for access. In other words CAN and TDMA can survive
together in a highly secured reliable high-speed network.

Finally we come to the heart of the CAN protocol, which is the data frame. But first a brief overview.

• The CAN protocol is based on a linear topology with the number of nodes not specified by the protocol.
• The maximum number of nodes is dictated by the actual hardware being used.
• The maximum length of the network is a
function of the data rate or the speed of the network. The faster the network the shorter it has to be and vise-versa.
• CAN networks may use one or two wires for the actual signaling. In class B and C two wires are used.
• CAN is based on message identifiers media access and not node addressing. Whenever a data frame in transmitted, all the nodes receive it. Then, the nodes decide whether the data is relevant to them or not.
• The message identifiers also
dictate the level of their priority. This says that high priority messages can access the bus relatively fast, which makes for very short access time latency.
• CAN is a multi-master protocol. No single node controls the bus. Any node can start transmitting as soon as the bus becomes idle. If multiple nodes try and access the bus at the same time, the node with the higher priority identifier wins
access.
• CAN uses collision avoidance bus-access
(CSMA/CA). Due to the nature of the CAN bus access scheme, no data frame is lost during bus arbitration.
• The CAN
protocol has a short data segment of only 8 bytes. This is sufficient for automotive communications systems. In the
event that very long data streams are transmitted, as in re-programming a module, the long data stream is divided into many consecutive data segments. The short data segment enables the CAN protocol to work in extremely adverse
condition of electromagnetic interference while
guaranteeing very short latency times. In the event of an EMI data frame corruption only the corrupted frame is retransmitted and not the whole data stream.
• CAN has excellent error detection capabilities. Any detected errors lead to an automatic retransmission of the data frame.

CAN uses deactivation of faulty nodes. This feature prevents the faulty node from constantly disturbing the
network traffic.
• CAN is a standardized protocol (Internationally). This allows for decentralized hardware manufacturing, which means that different computer makers can cater to different vehicle manufacturers. Therefore, vehicle manufacturers can buy from different sources
thereby lowering costs.

The bit frame is the center of the actual CAN transmission. The CAN protocol recognizes four types of bit frames.

• Through the data frame, a node transmits data to all the nodes that want to listen.
• Any network node that wants to request data from another node uses the remote frame.
• The error frame is used by all nodes to identify a transmission error and signals all the nodes to ignore the faulty frame.
• The overload frame is used to cause a delay between frames whenever a transmission delay is needed.


Team ZR-1
True Custom Performance Tuning
Teamzr1.com