CAN¶
Introduction¶
Controller area network (can) is a kind of serial communication network which can effectively support distributed control or real-time control. Can bus is a bus protocol widely used in automobile, which is designed as the communication of microcontroller in automobile environment.
Hardware Connection¶
Connection between two CAN devices, only need CAN_H to CAN_H, CAN_L to CAN_L.
Communication¶
CAN communication test¶
Use the “candump” and “cansend” tools directly to send and receive messages, Ubuntu can use “apt update && apt install can-utils” to install them.
#Close the can0 device at the transceiver
ip link set can0 down
#Set the bit rate to 250Kbps at the transceiver
ip link set can0 type can bitrate 250000
#Show can0 details
ip -details link show can0
#Open the can0 device at the transceiver
ip link set can0 up
#Perform candump on the receiving end, blocking waiting for messages
candump can0
#Execute cansend at the sending end to send the message
cansend can0 123#1122334455667788
More Command¶
1、 ip link set canX down //turn off CAN device
2、 ip link set canX up //turn on CAN device
3、 ip -details link show canX //show CAN device details
4、 candump canX //Receive data from CAN bus
5、 ifconfig canX down //shutdown CAn device
6、 ip link set canX up type can bitrate 250000 //Set CAN Baudrate
7、 conconfig canX bitrate + (Baudrate)
8、 canconfig canX start //start CAN device
9、 canconfig canX ctrlmode loopback on //loopback test
10、canconfig canX restart //restart CAN device
11、canconfig canX stop //stop CAN device
12、canecho canX //check CAN device status查看can设备总线状态;
13、cansend canX --identifier=ID+data //send data
14、candump canX --filter=ID:mask //Use the filter to receive ID matching data