CANB101 - jakka351/FG-Falcon GitHub Wiki

CANBus 0x065

What is a CANBus, and why is it used?

The Controller Area Network

Developed in the 1980's by Bosch, Published in 1991 as CAN2.0,The Controller Area Network is a multi-master serial communication network of modules(ECUs) connected by a twisted pair of wires - **CAN-High **and CAN-Low. Messages are broadcast by nodes on the network, and each node receives every message. Critical and important messages are prioritised via an Arbitration Identifier which makes up part of the CAN-Data Frame. CAN become an International Standard in 1993, as ISO 11898. CAN-Flexible-Data (FD) 1.0 was released by Bosch in 2012. Development continues to this day as new technologies and internet connectivity play an increasingly larger part in modern vehicles.

Twisted Pairs

The design of CAN allows for a significant reduction in the amount of wiring required when compared to a pre-can vehicle. Where instead of a two-wire bus that transmits all the data required by each module, the output of each sensor must be wired to each module that needs the data.

Fault-Tolerance

The twisted pair of wires that transmit CAN messages operate at a voltage relative to one another, meaning that any electromagnetic interference _(eg wiring harness in proximity to alternator)_experienced by one wire will be experienced by the other, and the while voltage may be effected by such interference - the difference between CAN-High + CAN-Low remains the same and messages are still recieved on the bus. Both CAN wires sit at approximately 2.5 Volts, which is considered a recessive state (0) with a nominal voltage differential of 0 Volts, and in a Dominant State (1) CAN-High will be driven towards 3.75 Volts, and CAN-Low will be driven towards 1.25 Volts with a nominal voltage differential of 2.5 Volts.

Termination Resistor

Each end of the Bus is terminated by a 120 Ohm Resistor.

The Frame

Simplified, consists of an Arbitraton Identifier, Data Length Carrier and 8 Bytes of Message Data.

The Nodes

Electronic Control Units, PCM ECM TCM ABS

Arbitration Identifiers

The higher the Arbitration Id, the lower the priority. Critical systems receive priority, for example the Accelerator Pedal Position message will take Higher priority than the message for an Active Right Indicator Light, and the Antilock Braking System would have higher priority than the Powertrain Control Module - stopping the vehicle as fast as possible is more crucial to the occupants than the throttle position in an ABS activation. The Arbitration of CAN messages plays a vital part in vehicle safety.

Data Length Carrier

Signals the length of the can message data for that frame.

The Message

Hexadecimals

The Database

OEM's and Proprietary Information

Microcontrollers, CAN-Controllers & Tranceivers

CAN2.0A, CAN2.0B, CAN-FD, J1939

Troubleshooting

Past,Present & Future

Cybersecurity

DIY

Non-automotive use

Standards

SAE standards documents on OBD-II

J1962 – Defines the physical connector used for the OBD-II interface.
J1850 – Defines a serial data protocol. There are 2 variants: 10.4 kbit/s (single wire, VPW) and 41.6 kbit/s (2 wire, PWM). Mainly used by US manufacturers, also known as PCI (Chrysler, 10.4K), Class 2 (GM, 10.4K), and SCP (Ford, 41.6K)
J1978 – Defines minimal operating standards for OBD-II scan tools
J1979 – Defines standards for diagnostic test modes
J2012 – Defines standards trouble codes and definitions.
J2178-1 – Defines standards for network message header formats and physical address assignments
J2178-2 – Gives data parameter definitions
J2178-3 – Defines standards for network message frame IDs for single byte headers
J2178-4 – Defines standards for network messages with three byte headers*
J2284-3 – Defines 500K CAN physical and data link layer
J2411 – Describes the GMLAN (Single-Wire CAN) protocol, used in newer GM vehicles. Often accessible on the OBD connector as PIN 1 on newer GM vehicles.

SAE standards documents on HD (Heavy Duty) OBD

J1939 – Defines a data protocol for heavy duty commercial vehicles

ISO standards ISO 9141: Road vehicles – Diagnostic systems. International Organization for Standardization, 1989.

Part 1: Requirements for interchange of digital information
Part 2: CARB requirements for interchange of digital information
Part 3: Verification of the communication between vehicle and OBD II scan tool

ISO 11898: Road vehicles – Controller area network (CAN). International Organization for Standardization, 2003.

Part 1: Data link layer and physical signalling
Part 2: High-speed medium access unit
Part 3: Low-speed, fault-tolerant, medium-dependent interface
Part 4: Time-triggered communication

ISO 14230: Road vehicles – Diagnostic systems – Keyword Protocol 2000, International Organization for Standardization, 1999.

Part 1: Physical layer
Part 2: Data link layer
Part 3: Application layer
Part 4: Requirements for emission-related systems

ISO 15031: Communication between vehicle and external equipment for emissions-related diagnostics, International Organization for Standardization, 2010.

Part 1: General information and use case definition
Part 2: Guidance on terms, definitions, abbreviations and acronyms
Part 3: Diagnostic connector and related electrical circuits, specification and use
Part 4: External test equipment
Part 5: Emissions-related diagnostic services
Part 6: Diagnostic trouble code definitions
Part 7: Data link security

ISO 15765: Road vehicles – Diagnostics on Controller Area Networks (CAN). International Organization for Standardization, 2004.

Part 1: General information
Part 2: Network layer services ISO 15765-2
Part 3: Implementation of unified diagnostic services (UDS on CAN)
Part 4: Requirements for emissions-related system