
Explore the evolution and fundamentals of can bus systems, comparing can with rs-232 serial communication, and understand can’s framing, baud rate, arbitration, and fault confinement for automotive testing.
Invented in 1980 by Robert Bosch for automotive applications, CAN began with independent ECUs and no information exchange, then evolved into a serial, asynchronous, differential bus.
Explore the can bus system fundamentals, including csma with arbitration by unique identifiers, bus-free sensing, multi-master access, and crc-based error handling that enables reliable automotive and industrial communication.
Explore carrier sense multiple access with arbitration to manage bus access, packet identifiers enable arbitration and filtering, and sleep and wake up mechanisms enable power efficiency and network extension.
Explain how CAN bus fault confinement uses two internal error counters, transmit and receive, driven by 12 rules and thresholds 128 and 256 to yield active, passive, and bus-off states.
The lecture explains how CAN bus arbitration selects the winner by identifier value, where the lowest ID has priority, using bit-by-bit comparison illustrated with a PWM-like waveform.
Explains how a can controller and transceiver interface with the can bus, using differential signaling, bus high/low levels around 2.5 V, and baud-rate based sampling to encode zeros and ones.
Explore can frames, including data, remote, error, and overload frames, along with their fields, arbitration, 11- and 29-bit identifiers, dlc, crc, ack, and gateway bridging high- and low-speed networks.
Explain remote frames as CAN bus queries requesting a message by ID with no data; data frames win over remote frames when IDs clash, and retransmission may occur if corrupted.
Summarizes can bus frame types—data, remote, error (active and passive), and overload frames—and explains their fixed structure, interframe spaces, and how error counters trigger bus off and recovery.
Explain how the can bus uses mask-based filtering to select packets, and how bit stuffing inserts a complementary bit after five consecutive identical bits from start of frame to CRC.
Explore CAN bus error types—bit, stuff, CRC, form, and acknowledgement—and learn how twelve rules update transmit and receive error counters to drive active, passive, or bus-off states.
Explore how the CAN bus implements only the physical and data link layers, while higher layers require microcontroller programming, including LLC and MAC sublayers and fault confinement.
Explore CAN FD, an ISO 11898 extension that boosts capacity to 64 bytes and uses two baud rates with switching, plus edl, baud rate switch, and error state indicator.
Set up your programming environment by downloading and installing Python from python.org, configuring the Windows PATH, and verifying Python from the command prompt.
Learn to install and configure RabbitMQ with Erlang, enable the management plugin, and use pika to exchange CAN packets between Python programs via queues, simulating producer-consumer communication.
Install git from git-scm.com and Visual Studio Code, then verify git is accessible in the command prompt by typing git; select default options and complete the installation on Windows.
Learn to install a customized heartbeat python-can library from GitHub with a RabbitMQ interface, and transmit and receive CAN bus messages between software modules and hardware vendors.
Learn to exchange can packets between two nodes using the Python can library, with node1 transmitting 110 every 500 ms and node2 with id 183 and data A987, monitored centrally.
Explore how CAN signals are encoded into packets and transmitted between modules, and simulate real-time changes to vehicle speed and engine rpm via a Python tkinter GUI.
Develop a two-node CAN bus simulation by transmitting vehicle speed from BCM to ICM, then render a software meter with tkinter canvas, including calibration for needle angle.
The Controller Area Network (CAN) is an automotive standard network that utilizes a 2 wire bus to transmit and receive data. It is more common in modern cars that we can find CAN bus system for information exchange. CAN bus system uses frames to transmit the Application data. Each node on the network has the capability to transmit 0 to 8 bytes of data in a message frame. A message frame consists of a message header, followed by 0 to 8 data bytes, and then a checksum. The message header contains a unique identifier that determines the message priority also message ids are unique in the bus system. Any node on the network can transmit data if the bus is free. If multiple nodes attempt to transmit at the same time, an arbitration scheme is used to determine which node will control the bus. Arbitration uses wired AND operation to determine the winner. The message with the highest priority, as defined in its header, will win the arbitration and its message will be transmitted. The losing message will retry to send its message as soon as it detects a bus free state. Course aims to cover complete CAN bus system standard, how to program can network using python programming with real time examples