Protocoles de transport, diagnostic et calibration
Au-dessus de la couche physique CAN, plusieurs protocoles standardisés permettent le transport de messages volumineux, le diagnostic des calculateurs et la calibration en temps réel. Voici les quatre protocoles les plus utilisés dans l'industrie automobile.
ISO-TP (ISO 15765-2) — Transport sur CAN
Le protocole CAN limite chaque trame à 8 octets de données (64 octets en CAN FD). ISO-TP (Transport Protocol) résout cette limitation en permettant de segmenter et réassembler des messages de grande taille (jusqu'à 4 095 octets) sur un réseau CAN.
Mécanisme de segmentation
ISO-TP définit quatre types de trames :
| Type | Rôle | Contenu |
|---|---|---|
| Single Frame (SF) | Message court (< 8 octets) | Données complètes en une seule trame |
| First Frame (FF) | Début d'un message long | Taille totale + premiers octets de données |
| Consecutive Frame (CF) | Suite du message | Numéro de séquence + bloc de données suivant |
| Flow Control (FC) | Contrôle de flux | Le récepteur indique combien de CF il peut accepter et à quel intervalle |
ISO-TP est la couche de transport obligatoire pour les protocoles de diagnostic UDS et OBD-II sur CAN. PEAK-System propose l'API PCAN-ISO-TP pour intégrer ce protocole dans vos applications.
UDS (ISO 14229) — Diagnostic unifié
UDS (Unified Diagnostic Services) est le protocole de diagnostic standardisé pour les calculateurs automobiles. Il fonctionne au-dessus d'ISO-TP et définit un ensemble de services de requête/réponse permettant de communiquer avec n'importe quel ECU de manière uniforme.
Services principaux
| Service | ID | Usage |
|---|---|---|
| DiagnosticSessionControl | 0x10 | Basculer entre sessions (default, programming, extended) |
| ECUReset | 0x11 | Redémarrer le calculateur |
| ReadDataByIdentifier | 0x22 | Lire un paramètre (numéro de série, version firmware, etc.) |
| WriteDataByIdentifier | 0x2E | Écrire un paramètre (configuration, calibration) |
| ReadDTCInformation | 0x19 | Lire les codes défaut (DTC) mémorisés |
| ClearDiagnosticInformation | 0x14 | Effacer les codes défaut |
| RoutineControl | 0x31 | Lancer une routine (test actionneur, auto-diagnostic) |
| RequestDownload / TransferData | 0x34 / 0x36 | Flasher un nouveau firmware dans l'ECU |
| SecurityAccess | 0x27 | Déverrouiller les fonctions protégées (seed-and-key) |
UDS est utilisé sur toutes les chaînes de production automobile pour la programmation de fin de ligne, la lecture de codes défaut en atelier, et les mises à jour firmware. PEAK-System propose l'API PCAN-UDS pour implémenter un client ou serveur UDS.
CCP (CAN Calibration Protocol) — Calibration sur CAN
CCP est un protocole standardisé par l'ASAM (Association for Standardisation of Automation and Measuring Systems) permettant la calibration et la mesure de paramètres sur les calculateurs automobiles via le bus CAN.
Principes de fonctionnement
- Architecture maître-esclave — un outil de calibration (maître) communique avec un ECU (esclave) via deux identifiants CAN dédiés (CRO et DTO).
- Accès mémoire direct — le maître peut lire et écrire dans la mémoire du calculateur (RAM, Flash, EEPROM) pour modifier les cartographies moteur en temps réel.
- Listes DAQ — mécanisme de mesure périodique : le maître configure des listes d'adresses mémoire, et l'esclave envoie cycliquement les valeurs correspondantes, permettant l'acquisition de données en temps réel.
- Flashage — CCP permet aussi de reprogrammer le firmware du calculateur.
PEAK-System propose l'API PCAN-CCP pour intégrer ce protocole. Cependant, CCP a été progressivement supplanté par XCP, son successeur plus flexible.
XCP (Universal Measurement and Calibration Protocol) — Successeur de CCP
XCP, également standardisé par l'ASAM, est le successeur universel de CCP. Son innovation majeure : la séparation entre le protocole et la couche de transport, le rendant indépendant du bus de communication.
Transports supportés
| Transport | Abréviation | Usage typique |
|---|---|---|
| CAN / CAN FD | XCP on CAN | Migration directe depuis CCP, compatibilité bus existant |
| Ethernet | XCP on Ethernet | Haut débit pour véhicules modernes, jusqu'à 1 Gbit/s |
| USB | XCP on USB | Connexion directe PC-ECU en développement |
| SxI (RS-232, SPI) | XCP on SxI | Systèmes embarqués à interface série |
Fonctionnalités clés
- DAQ (Data Acquisition) — mesure synchrone de variables internes de l'ECU à haute fréquence, avec horodatage précis.
- STIM (Stimulation) — injection de valeurs dans les variables de l'ECU pour simuler des conditions de fonctionnement.
- Calibration en ligne — modification de paramètres (cartographies, gains, seuils) pendant que le calculateur fonctionne, avec concept de page mémoire (working page / reference page).
- Flash Programming — reprogrammation du firmware du calculateur.
XCP est aujourd'hui le standard de l'industrie pour le développement et la calibration moteur, supporté par tous les grands outils (INCA, CANape, ETAS). PEAK-System propose l'API PCAN-XCP pour intégrer ce protocole.
Comparaison des protocoles
| Critère | ISO-TP | UDS | CCP | XCP |
|---|---|---|---|---|
| Rôle | Transport | Diagnostic | Calibration | Calibration |
| Standard | ISO 15765-2 | ISO 14229 | ASAM | ASAM |
| Transport | CAN uniquement | Sur ISO-TP | CAN uniquement | CAN, Ethernet, USB, SxI |
| Taille message | 4 095 octets | Variable (via ISO-TP) | 8 octets CAN | Variable selon transport |
| API PEAK | PCAN-ISO-TP | PCAN-UDS | PCAN-CCP | PCAN-XCP |