Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

CAN Based Automotive Dashboard

Name        : Udaykumar Upputuri
Description : Developed a CAN Based Automotive Dashboard using PIC18F4580 Microcontrollers and CAN Communication Protocol
Mail        : udayupputuri3525@gmail.com

📌 Project Overview

The CAN Based Automotive Dashboard is an Embedded Systems project that demonstrates communication between multiple Electronic Control Units (ECUs) using the CAN (Controller Area Network) protocol. The project consists of three independent ECUs connected through a CAN Bus. Each ECU performs a dedicated task and exchanges information over the network. A central Dashboard ECU receives the transmitted data and displays vehicle parameters in real time. The project simulates how modern automotive systems exchange information between distributed ECUs while maintaining reliable and efficient communication.

📖 What is CAN Communication?

CAN (Controller Area Network) is a serial communication protocol developed by Bosch for automotive applications. It enables multiple ECUs to communicate with each other using only two communication wires: CAN_H (CAN High), CAN_L (CAN Low) Unlike UART communication, CAN is a multi-master communication protocol where any node can initiate communication when the bus becomes available.

Features of CAN:

  • High Reliability
  • Noise Immunity
  • Error Detection Mechanisms
  • Message Prioritization
  • Multi-Node Communication
  • Real-Time Communication

Widely used in:

  • Cars
  • Motorcycles
  • Trucks
  • Electric Vehicles
  • Industrial Automation Systems

📖 What is an ECU?

ECU (Electronic Control Unit) is an embedded system responsible for monitoring inputs, processing data, and controlling outputs. Modern vehicles contain multiple ECUs such as:

  • Engine Control ECU
  • Airbag ECU
  • ABS ECU
  • Transmission ECU
  • Dashboard ECU All ECUs communicate through CAN Bus to exchange information.

⚙️ Project Architecture

                 CAN BUS
         =====================

      ECU1                  ECU2
  (Speed & Gear)      (RPM & Indicator)
         \                /
          \              /
           \            /
            \          /
             \        /
              \      /
               \    /
                ECU3
         (Dashboard Display)

🚘 ECU1 - Speed & Gear ECU

Responsibilities:

  • Reads Vehicle Speed using ADC
  • Reads Gear Position using Digital Keypad
  • Creates CAN Frames
  • Transmits Speed Data over CAN
  • Transmits Gear Data over CAN

Hardware Used:

  • PIC18F4580
  • Potentiometer (Speed Simulation)
  • Digital Keypad
  • MCP2551 CAN Transceiver

🚦 ECU2 - RPM & Indicator ECU

Responsibilities:

  • Reads Engine RPM using ADC
  • Reads Indicator Status
  • Creates CAN Frames
  • Transmits RPM Data over CAN
  • Transmits Indicator Status over CAN

Hardware Used:

  • PIC18F4580
  • Potentiometer (RPM Simulation)
  • Indicator Switches
  • MCP2551 CAN Transceiver

📟 ECU3 - Dashboard ECU

Responsibilities:

  • Receives CAN Frames from ECU1
  • Receives CAN Frames from ECU2
  • Verifies Message IDs
  • Extracts Received Data
  • Updates Dashboard Display
  • Displays Real-Time Vehicle Information

Displayed Parameters:

  • Vehicle Speed
  • Gear Position
  • Engine RPM
  • Indicator Status

🔄 Project Workflow

1️⃣ ECU1 reads Speed and Gear values. 2️⃣ ECU1 creates CAN messages and transmits them onto the CAN Bus. 3️⃣ ECU2 reads RPM and Indicator values. 4️⃣ ECU2 creates CAN messages and transmits them onto the CAN Bus. 5️⃣ ECU3 continuously monitors the CAN Bus. 6️⃣ ECU3 receives incoming CAN frames. 7️⃣ ECU3 checks Message IDs. 8️⃣ ECU3 identifies the source ECU. 9️⃣ ECU3 extracts data from received frames. 🔟 ECU3 updates the Dashboard Display with the latest values.

🔍 UART Testing Before CAN Integration

Before integrating all ECUs through CAN communication, each ECU was individually verified using UART communication.

Testing Setup:

PIC18F4580
      |
      |
 USB to TTL
      |
      |
  Tera Term

UART was used to:

  • Verify ADC readings
  • Verify Gear Inputs
  • Verify RPM Values
  • Verify Indicator Status
  • Debug Program Execution

Software Used:

  • Tera Term

🧠 Concepts Used

  • Embedded C Programming
  • PIC18F4580 Microcontroller
  • CAN Communication Protocol
  • UART Communication
  • ADC Interfacing
  • Digital Keypad Interfacing
  • CLCD Display Interfacing
  • CAN Message Transmission
  • CAN Message Reception
  • Message ID Verification
  • Real-Time Data Monitoring
  • Embedded System Debugging

🛠️ Hardware Components

  • PIC18F4580 Microcontrollers (3)
  • MCP2551 CAN Transceivers (3)
  • 16x2 CLCD Display
  • Digital Keypad
  • Potentiometers
  • Indicator Switches
  • Crystal Oscillator
  • Resistors
  • Capacitors
  • USB to TTL Converter
  • CAN Twisted Pair Wires

💻 Software Tools

  • MPLAB X IDE
  • XC8 Compiler
  • Tera Term
  • Proteus (Optional Simulation)

🔑 CAN Message Handling

Each CAN message contains:

  • Message ID
  • Data Length
  • Data Bytes

ECU3 identifies incoming data using Message IDs.

Example:

ID 0x101 -> Speed Data
ID 0x102 -> Gear Data
ID 0x103 -> RPM Data
ID 0x104 -> Indicator Data

Workflow:

Receive Frame → Check Message ID → Identify Data Type → Extract Data → Update Display

✅ Advantages

  • Reliable Communication
  • Noise Resistant
  • Supports Multiple ECUs
  • Reduced Wiring Complexity
  • Real-Time Data Exchange
  • Error Detection Capability
  • Scalable Architecture
  • Automotive Industry Standard

🧠 Applications

  • Automotive Dashboard Systems
  • Vehicle Monitoring Systems
  • Electric Vehicles
  • Industrial Automation
  • Smart Transportation Systems
  • Distributed Embedded Systems

🚀 Key Learnings

  • CAN Protocol Fundamentals
  • Multi-ECU Communication
  • Automotive Networking
  • Message ID Based Communication
  • UART Debugging Techniques
  • Embedded C Development
  • Real-Time Embedded System Design
  • PIC18F4580 Peripheral Interfacing
  • CAN Frame Transmission and Reception

🏁 Sample Output

SPEED : 60 km/h
GEAR  : 3

RPM   : 3500
IND   : LEFT

📸 Project Demonstration

  • ECU1 Speed & Gear Transmission
  • ECU2 RPM & Indicator Transmission
  • UART Debug Output using Tera Term
  • CAN Communication Verification
  • ECU3 Dashboard Display Output

-----------------------------------------> Thank You <-----------------------------------------

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages