CAN Bus Data Frame

The CAN bus data frame does the work on CAN. The whole point of CAN is to send data between networked controllers - and that is the job of the data frame.

The data frame begins with a single SOF (start of frame) bit and is followed by the CAN Identifier. The CAN Identifier is used to identify the message and the node the message is coming from. The identifier can be either 11 bits long or 29 bits long depending on the state of some reserved bits.

After the CAN Identifier, there is a data section that first begins with a data length. The CAN data frame can have 0 to 8 bytes so it uses 4 bits to encode length. The data bytes directly follow the data length.

Following the data is the CRC. The CRC is a calculation that is made on the first part of the CAN frame by both the receiver and transmitter. If they match the receiver assumes that it received the data correctly.

Following the CRC is the Ack field. This field will be set by all other nodes on the network who properly received the frame.

After the Ack bit there will be a quiet time called end of frame space followed by a minimum inter-frame space.

Picture of a CAN data frame

Last updated