Created by the J1939 Experts
CAN IntroductionCAN, which stands for Controller Area Network, is a high-speed, half-duplex, differential, serial communications protocol invented by Bosch. CAN was designed to be a multi-master network for connecting ECUs in a vehicle. It is now widely used in all light, medium, and heavy duty vehicles. Due to its popularity, it has spread to aircraft, marine, all terrain vehicles, and industrial automation. CAN DatalinkA CAN bus has a network speed ranging from 33 Kbps to 1 Mbps. CAN uses a non-destructive method for bus arbitration and collision detection. Because bus collisions are non-destructive, it is possible to achieve 100% bus load. Non-destructive arbitration is achieved by defining a 0 to be electrically active, known as a dominate bit, and a 1 to be electrically passive, known as a recessive bit. A dominant bit, is when CAN_H has a potential 200mV higher than CAN_L. A recessive bit is when the difference is less than 200mV. CAN ArbitrationWhen a node transmits, it verifies it's transmitted value is present on the bus. If the value it is transmitting is not the value currently on the bus, it stops transmitting. Because a 0 is dominate, if a 0 and 1 are transmitted by two different controllers at the same time, the bus will always be 0. When the 1 sending node detects the 0, instead of its sent value of 1, it immediately stops it's transmission with the 0 sending node continuing. CAN ApplicationsCAN is rarely used without a higher level protocol specifying how information is exchanged. Light duty vehicles use ISO 15765-4, while medium and heavy duty use SAE J1939. The marine industry uses NMEA2000, which is based on J1939, and Agricultural equipment uses ISO 11783, which is also based on J1939. Industrial automation applications, like robotic arms, use DeviceNet or CANopen software (CiA 301). CAN FrameA frame consists primarily of the CAN identifier, data length code, and data field. The ID represents the priority of the message. The data length code is a 4-bit value from 0 to 8 indicating how many bytes are present in the data field. The data field is the actual data for that CAN frame. J1939 J1939 to RS-232 J1939 to USB J1939 to RS-232 J1939 to USB J1939 to WiFi J1939 to UARTCAN Introduction J1939 Introduction J1922 Introduction J1587 Introduction J1708 Introduction CAN Introduction | Copyright 2011 | Simma Software, Inc. |