0% found this document useful (0 votes)
371 views4 pages

C++ Programming For CAN Bus Communication (Beginner To Intermediate)

Uploaded by

robyandhara
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
371 views4 pages

C++ Programming For CAN Bus Communication (Beginner To Intermediate)

Uploaded by

robyandhara
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Syllabus

C++ Programming for CAN Bus Communication (Beginner to


Intermediate)

Course Scheme & Date


Course Duration Learning Method Date
10 days course (30 hours total) Onsite To Be Informed

Prerequisites
✓ A grasp of fundamental programming concepts like variables, data types, operators, control flow
(if/else statements, loops), and functions will be highly beneficial. This foundation will help you
understand how C++ structures code and how different elements interact.
✓ Familiarity with basic C++ syntax, data types (integers, floats, characters, etc.), arrays, pointers,
and basic object-oriented concepts (classes and objects) would be advantageous. Understanding
these fundamentals will allow you to write and comprehend C++ code effectively in the context
of CANBUS development.
✓ Having a basic understanding of digital signals, binary data, and digital communication concepts
can be helpful. CANBUS operates on digital principles, so some background knowledge can
provide a better context for the communication protocols involved.
✓ Familiarity with electronic components like microcontrollers and CAN transceivers might be
beneficial.

Course Information
Description
This course is designed for participants with basic C++ knowledge who want to learn the
fundamentals of CANBUS programming using C++. Participants will gain the essential skills to
develop C++ programs for interacting with CANBUS networks and lay the foundation for further
exploration in embedded system communication.

Learning Objectives
• Participants Understand the CANBUS communication protocol and its applications.
• Set up a development environment for C++ CANBUS programming.
• Utilize C++ libraries for interacting with CANBUS interfaces.
• Write basic C++ programs to transmit and receive messages on a CANBUS network.
• Gain experience with troubleshooting common CANBUS communication issues.

BINUS CENTER Page 1 of 4


Course Materials
Introduction & CANBUS Fundamentals
Session 1: Introduction to CANBUS
• CANBUS overview - core concepts, benefits, and limitations.
• CANBUS network topology, message structure (identifier, data).
• Real-world applications of CANBUS in embedded systems.
Session 2: C++ Development Environment Setup
• Choosing a suitable C++ compiler and IDE (e.g., GCC, CLion).
• Including necessary CANBUS libraries (e.g., SocketCAN,ixxat).
• Setting up a development project for CANBUS communication.
Session 3: Introduction to CANBUS Libraries
• Exploring popular C++ CANBUS libraries and their functionalities.
• Understanding basic functions calls for initialization, message transmission, and reception.
• Hands-on practice: Setting up a development environment and exploring CANBUS library
functions.

Programming for CANBUS


Session 4: CANBUS Message Construction
• Constructing CAN messages in C++ using library functions.
• Specifying CAN identifiers, data length, and data payload.
• Hands-on practice: Building C++ programs to create CAN messages with different data types.
Session 5: Transmitting CAN Messages
• Implementing C++ code for transmitting CAN messages on the network.
• Handling potential errors during message transmission.
• Hands-on practice: Writing C++ programs to transmit CAN messages to a simulated or physical
CANBUS network.
Session 6: Receiving CAN Messages
• Understanding techniques for receiving CAN messages in C++.
• Processing received message data within C++ programs.
• Hands-on practice: Building C++ programs to receive CAN messages and handle the received
data.

Advanced Topics & Troubleshooting


Session 7: CANBUS Monitoring and Error Handling
• Utilizing C++ code to monitor CANBUS activity (bus status, error flags).
• Implementing error handling mechanisms for communication issues.
• Hands-on practice: Writing C++ programs to monitor CANBUS status and handle errors.
BINUS CENTER Page 2 of 4
Session 8: CANBUS Configuration and Filtering
• Introduction to CANBUS configuration tools and message filtering techniques.
• Configuring CAN nodes and filters using C++ libraries (if applicable).
Session 9: Debugging and Troubleshooting
• Common CANBUS communication problems and debugging strategies.
• Using debugging tools and logs to identify and fix CANBUS errors.
• Hands-on practice: Simulating and troubleshooting common CANBUS communication issues.

Final Project and Showcase


Session 10: Project Work and Wrap-Up
• Students work on a hands-on project to apply their knowledge of CAN bus communication in
C++.
• Review of key concepts and discussion of real-world applications of CAN bus technology

Course Schedule
Date Subject
Day-1 Session 1
[ Time to be Confirmed ] Introduction to CANBUS
Day-2 Session 2
[ Time to be Confirmed ] C++ Development Environment Setup
Day-3 Session 3
[ Time to be Confirmed ] Introduction to CANBUS Libraries
Day-4 Session 4
[ Time to be Confirmed ] CANBUS Message Construction
Day-5 Session 5
[ Time to be Confirmed ] Transmitting CAN Messages
Day-6 Session 6
[ Time to be Confirmed ] Receiving CAN Messages
Day-7 Session 7
[ Time to be Confirmed ] CANBUS Monitoring and Error Handling
Day-8 Session 8
[ Time to be Confirmed ] CANBUS Configuration and Filtering
Day-9 Session 9
[ Time to be Confirmed ] Debugging and Troubleshooting

Day-10 Session 10

BINUS CENTER Page 3 of 4


[ Time to be Confirmed ] Project Work and Wrap-Up

Additional Information and Resources


Grading & Exam Policy
Attendance & Participation : 40%
Individual Exercise and Report : 30%
Final Presentation for Case Study : 30%

Hardware Requirements
• Notebook / Laptop Core i5
• RAM Min. 8 GB
• Operating System: Windows 10 64-bit or later
• CANBUS adapter or development board will allow you to test your code on real hardware.
• USB-to-CAN adapters: These adapters allow you to connect your computer to a CANBUS
network.
• Development boards with CAN controllers: Some development boards like certain Arduino
models or STM32 Nucleo boards have built-in CAN controllers for direct CANBUS
communication.

Software Requirements
• Visual Studio Community (Windows): A powerful IDE from Microsoft with debugging tools and
CANBUS plugins available.
• C++ Compiler
• GNU Compiler Collection (GCC): Available for various operating systems, GCC is a widely
used and powerful compiler.
• Clang: Another open-source compiler known for its speed and accuracy.

Resources and References:


• Voss, Wilfrie. Controller Area Network Prototyping with Arduino
• Pfeiffer, Olaf., Keydel, Christian., et al. Implementing CAN FD with Microcontrollers: A Cookbook
Approach
• Matheus, Kirsten., Königseder, Thomas., et al. Automotive Ethernet: The Definitive Guide
• Navet, Nicolas., & Simonot-Lion, Françoise. Automotive Embedded Systems Handbook.

BINUS CENTER Page 4 of 4

You might also like