One example of this would be the ABS node. The ABS node receives the vehicle speed from the wheel speed sensors and transmits this data on the high-speed bus. The powertrain control node could utilize this information because it operates on the same high-speed bus; however, the instrument panel will also need this data message in order to display the vehicle speed. The instrument panel is on the low-speed bus and cannot receive this information directly. In order for data messages to be shared among different networks on the same vehicle, a special node is used. This special node contains all of the transceivers for the different networks that are utilized on the vehicle. In this way, the node can receive a high-speed message on the high-speed transceiver and convert this data message out to the low-speed transceiver. This node is called a gateway, and it enables the transfer of data messages between the different networks on the vehicle.
A single vehicle can have several gateways to help transfer data messages between different networks. There are several different configurations with which a bus network can use to communicate. The first style is a token slot protocol. In this protocol, a token is passed between all the nodes on the bus from one node to the next. When a node receives a token, it can then send a data message out on the bus. Once the message has been sent, the token is passed to the next node so it can send its message out on the bus. In this token scheme, an urgent message will have to wait until a token is received by the node needing to send the urgent message. This creates a long latency period that is undesirable. Another bus scheme is random access, which is what the ethernet uses. This protocol also has long delay, which is also undesirable. Yet another bus scheme is CSMA/CD. This is the bus network scheme that CAN uses. CS stands for carrier sense (listen until the network is idle and it must wait if another node is transmitting). MA stands for multiple access (multiple nodes can access an idle bus at any time). CD stands for collision detection (method of resolving data collisions).
With up to 40 nodes operating on one CAN network, it will be imperative that an urgent data message is given priority over a normal data message by taking control of the bus. An example of this would be a single telephone with a line of 40 people waiting to talk on it. The person currently on the phone is calling to see if his laundry is ready for pickup. This person now puts the phone down and the next person in line is going to call home to let them know they are on their way. The last person in line needs to call 911 to report an accident with injures, thus this message is deemed urgent and must be sent next.
To make sure that urgent messages are sent in the correct order, they must be prioritized. In this example, the 911 call would come before any other call. If two 911 accident calls needed to be made at the same time, the next digit would indicate if there were injuries. An accident with injuries would be assigned a “0” and an accident without injuries would be assigned a “1.” So, 9110 would take a higher priority than 9111. The accident with injuries in this example would take control of the phone line.
This is similar to the way the CAN protocol prioritizes data messages so that each node on the bus can access the bus at any time; however, the node with a higher priority will take control of the bus to send its data message first. This style of communication is called bitwise arbitration (Figure 3). In the scheme of bitwise arbitration, if two or more nodes start to send data at exactly the same time, the node sending the higher priority message will take control of the bus. This is accomplished by the priority of the message containing more 0 than 1. Zero has a higher priority and is the dominant bit. One has a lower priority and is the recessive bit. If node A’s message had the first two bits at 0 and the next bit at 1, and node B’s message had the first three bits at 0, node B would have a higher priority assigned and it would win the bitwise arbitration and take control of the bus. Thus, node B would send its data message first. Node A would have to wait and then try to send its message after node B was done. If the bus were idle then, node A could send its message. If another node needed to send a message and had a higher priority, it would win the bitwise arbitration, and then node A would have to wait again before trying to send its message. The first three bits of the data message will usually determine the outcome of the bitwise arbitration and therefore are assigned the main priority of the message. A wakeup call is assigned the highest priority, and it will start with three 0s. A scan tool is assigned the lowest priority and will start with three 1s.