can bus uses serial data transmission mode, can run on 40m twisted pair at 1mb\/s rate, can also use optical cable connection, and on this bus bus protocol supports multiple master controllers. can is similar to the i2c bus in many details, but there are some obvious differences.
When a node (station) on the can bus sends data, it is broadcast in the form of a message to all nodes in the network. For each node, data is received regardless of whether it is sent to it or not. The 11-bit character at the beginning of each packet is an identifier that defines the priority of the packet. This packet format is called content-oriented addressing scheme. Identifiers are unique in the same system, and it is impossible for two stations to send messages with the same identifier. This configuration is important when several stations simultaneously compete for bus reads.
When a station wants to send data to other stations, the cpu of the station will send the data and its own identifier to the can chip of the station, and is in a ready state; When it receives a bus assignment, it switches to a sending message state. The can chip organizes the data into a certain message format according to the protocol and sends it out. At this time, other stations on the network are in the receiving state. Each station in the receiving state checks the received packets to determine whether the packets are sent to it, and then determines whether to receive them.