This project implements the Unified Diagnostic Services (UDS) protocol on an STM32 Nucleo F446RE microcontroller, utilizing CAN (Controller Area Network) communication for diagnostics and UART communication for testing and debugging. UDS, defined by the ISO 14229-1 standard, is widely used for diagnostics and maintenance of Electronic Control Units (ECUs) in automotive systems.
The project covers multiple UDS services organized into functional units. Each service has been implemented and tested, enabling robust fault detection, system configuration, and ECU reprogramming capabilities.
- Diagnostic Session Control (0x10)
- ECU Reset (0x11)
- Security Access (0x27)
- Communication Control (0x28)
- Tester Present (0x3E)
- Access Timing Parameter (0x83)
- Secured Data Transmission (0x84)
- Control DTC Setting (0x85)
- Response on Event (0x86)
- Link Control (0x87)
- Read Data by Identifier (0x22)
- Read Memory by Address (0x23)
- Read Data by Periodic Identifier (0x2A)
- Dynamically Define Data Identifier (0x2C)
- Write Data By Identifier (0x2E)
- Clear Diagnostic Information (0x14)
- Read DTC Information Service (0x19)
- InputOutputControlByIdentifier (0x2F)
- Routine Control (0x31)
- Request Download (0x34)
- Request Upload (0x35)
- Transfer Data (0x36)
- Request Transfer Exit (0x37)
- Request File Transfer (0x38)
The project is organized into Inc and Src folders for header (.h) and implementation (.c) files, as well as a Test_uds_services folder containing Python scripts for testing each service.
Contains header files for the UDS functional units.
Data_Transmission_functional_unit.hDiagnostic_Communication_Management_functional_unit.hInputOutput_Control_functional_unit.hRoutine_functional_unit.hStored_Data_Transmission_functional_unit.hUpload_Download_functional_unit.huds_services.h: General declarations for UDS services.
Contains the implementations of UDS services.
Data_Transmission_functional_unit.cDiagnostic_Communication_Management_functional_unit.cInputOutput_Control_functional_unit.cRoutine_functional_unit.cStored_Data_Transmission_functional_unit.cUpload_Download_functional_unit.cuds_services.c: Manages the main UDS services.
Contains Python scripts for unit testing each UDS service.
- Eclipse for embedded code development.
- Python to execute test scripts.
- CAN Interface for CAN communication.
- UART Interface for debugging and tests.