Retour au Blog

CAN Bus vs SMBus vs I2C : Quel Protocole de Communication Batterie pour Votre Robot ou Drone ?

Publié le 7/22/2026 · 8 min de lecture · Sky Power (US) Équipe d'Ingénierie

Lors de la conception d'un pack de batteries pour un robot, un drone ou un AGV, la chimie et le format de cellule reçoivent la majeure partie de l'attention. Mais le protocole de communication entre votre système de gestion de batterie (BMS) et votre contrôleur hôte est tout aussi critique — et c'est là que de nombreuses startups matérielles commettent des erreurs coûteuses tard dans le développement.

Ce guide couvre les trois protocoles que vous rencontrerez le plus souvent : CAN Bus, SMBus et I2C. Nous verrons ce que fait réellement chacun, où il excelle et pour quelles applications il ne convient pas.

Que Fait Réellement un Protocole de Communication de Batterie ?

Avant de comparer les protocoles, il convient d'être précis sur ce dont nous parlons. Un protocole de communication de batterie permet à votre BMS de rapporter l'état de charge (SOC), l'état de santé (SOH), les tensions de cellule, la température du pack, la consommation de courant, les codes de défaut et l'autonomie restante au système hôte. Il permet également à l'hôte d'envoyer des commandes — comme l'activation de la charge, la limitation de décharge ou l'arrêt d'urgence.

Sans cette couche de communication, votre système vole à l'aveugle. Vous obtenez une tension sur le rail d'alimentation et rien d'autre. C'est acceptable pour un simple avion RC. Ce ne l'est pas pour un dispositif médical, un robot autonome, ou tout système où un arrêt surprise cause des dommages ou des blessures.

CAN Bus : Le Standard Industriel

Le Controller Area Network (CAN Bus) a été développé par Bosch dans les années 1980 pour les applications automobiles. C'est un bus différentiel à deux fils (CANH et CANL) qui fonctionne à des vitesses allant jusqu'à 1 Mbps et prend en charge des dizaines de nœuds sur un seul bus.

Pourquoi les ingénieurs choisissent CAN Bus :

CAN Bus est conçu pour les environnements électriquement bruyants. La signalisation différentielle signifie que le bruit en mode commun — celui généré par les contrôleurs de moteur, les onduleurs et les alimentations à découpage — est rejeté au niveau du récepteur. Dans un entrepôt AGV avec 20 moteurs fonctionnant simultanément, cela compte énormément.

CAN Bus dispose également d'une détection de défauts intégrée au niveau matériel. Chaque message inclut un CRC, et le protocole gère automatiquement l'arbitrage du bus lorsque plusieurs nœuds tentent de transmettre simultanément. Vous n'avez pas besoin d'implémenter la détection de collision dans le firmware — le silicium s'en charge.

Pour les systèmes multi-packs — comme un AGV avec un pack principal 48V et un pack auxiliaire 24V — CAN Bus permet aux deux unités BMS de partager un seul bus à deux fils vers le contrôleur principal. SMBus et I2C nécessiteraient des bus séparés ou un multiplexage complexe.

Quand CAN Bus n'est pas adapté :

CAN Bus ajoute du coût et de la complexité. Vous avez besoin de transceivers CAN aux deux extrémités, d'une résistance de terminaison de 120Ω appropriée à chaque extrémité du bus, et d'un firmware qui parle CANopen ou un format de message personnalisé. Pour un dispositif médical portable simple ou un petit drone grand public où le BMS et le MCU hôte sont distants de 5 cm sur la même carte PCB, CAN Bus est surdimensionné.

Packs Sky Power utilisant CAN Bus : Notre série SKP-48V pour les applications AGV est livrée avec CAN Bus comme interface par défaut, fonctionnant avec CANopen DS401 pour la compatibilité avec les contrôleurs de robots standards.

SMBus : Le Standard de Batterie Intelligente

Le System Management Bus (SMBus) est un protocole à deux fils dérivé de l'I2C, développé par Intel en 1995. Il est devenu la base de la Smart Battery Specification (SBS) — le standard qui définit comment les batteries d'ordinateurs portables communiquent avec les chargeurs et les hôtes.

Pourquoi les ingénieurs choisissent SMBus :

Si vous construisez quelque chose qui doit communiquer avec des chargeurs du commerce, SMBus est votre réponse. La Smart Battery Specification définit exactement quels registres lire : 0x09 pour la capacité restante, 0x0F pour l'état de la batterie, 0x17 pour le nombre de cycles, et ainsi de suite. Un BMS qui implémente SBS fonctionnera avec n'importe quel chargeur conforme SBS sans firmware personnalisé.

SMBus a également des spécifications électriques plus strictes que l'I2C brut — niveaux de tension définis, comportement de timeout et mécanisme de récupération d'erreur obligatoire. Cela le rend plus robuste en pratique, même si le protocole sous-jacent semble similaire.

Pour les dispositifs médicaux portables recherchant une certification IEC 62133 ou UL 2054, SMBus avec une implémentation SBS complète vous offre une interface de communication bien documentée que les organismes de certification comprennent. Cela peut simplifier considérablement votre documentation de conformité.

Quand SMBus n'est pas adapté :

SMBus est lent (100 kHz standard, 400 kHz en mode haute vitesse) et à courte portée. Il est conçu pour la communication embarquée — BMS vers IC de charge vers MCU hôte, tous sur la même carte PCB ou connectés par un câble court. Faites fonctionner SMBus sur un câble de plus de 30 cm dans un environnement électriquement bruyant et vous commencerez à voir des erreurs de communication.

SMBus ne prend pas non plus bien en charge plusieurs maîtres. Dans un système où un chargeur et un contrôleur hôte doivent interroger le BMS simultanément, vous aurez besoin d'une logique d'arbitrage de bus soignée dans le firmware.

I2C : Flexible mais Fragile

L'I2C (Inter-Integrated Circuit) est le grand-père à la fois de SMBus et de nombreuses interfaces BMS. C'est un protocole à deux fils (SDA et SCL) qui prend en charge plusieurs appareils sur le même bus en utilisant des adresses 7 bits.

Pourquoi les ingénieurs choisissent I2C :

L'I2C est partout. Presque tous les IC BMS — la série BQ de Texas Instruments, Maxim DS2782, Renesas ISL9238 — exposent une interface I2C. Si vous concevez un BMS personnalisé plutôt que d'acheter une batterie intelligente prête à l'emploi, vous lirez presque certainement les tensions et températures de cellule via I2C.

L'I2C est également simple à implémenter. La plupart des microcontrôleurs disposent de périphériques I2C matériels, et il existe des bibliothèques pour chaque plateforme, d'Arduino à STM32 en passant par ESP32. Pour une startup de drones réalisant son premier pack de batteries personnalisé, obtenir la télémétrie de tension de cellule via I2C en un après-midi est réaliste.

Quand I2C n'est pas adapté :

L'I2C n'a aucune détection d'erreur intégrée au-delà d'un ACK/NACK du récepteur. Dans un environnement bruyant — près d'un moteur brushless, d'un régulateur à découpage ou d'une décharge à fort courant — vous pouvez obtenir des données corrompues sans aucune indication qu'un problème s'est produit. Votre lecture de SOC pourrait être erronée et votre firmware ne le saura pas.

L'I2C a également des limites de capacitance strictes. Le plafond de capacitance du bus est de 400pF, ce qui limite la longueur de câble à environ 1 mètre à vitesse standard. Pour tout système où le BMS et le contrôleur hôte ne sont pas sur la même carte, l'I2C devient problématique.

Guide de Sélection de Protocole

CAN Bus SMBus I2C
Idéal pour AGV, systèmes multi-packs, robots industriels Dispositifs médicaux, chargeurs conformes SBS BMS personnalisé, communication sur la même carte
Immunité au bruit Excellente Bonne Faible
Longueur de câble Jusqu'à 40m <1m <1m
Vitesse Jusqu'à 1 Mbps 100-400 kHz 100 kHz - 3,4 MHz
Coût Plus élevé (ICs transceivers) Faible Très faible
Compatibilité certification CANopen est bien documenté SBS est compris par les organismes de certification Personnalisé, nécessite plus de documentation
Multi-nœuds Excellent Limité Bon

Recommandations Concrètes par Application

Drone / UAV : Commencez avec I2C pour votre prototype — rapide à implémenter et adapté aux courtes distances à l'intérieur d'un drone. Passez à CAN Bus si vous construisez une plateforme plus grande (>10kg) où le contrôleur de vol et la batterie sont séparés de plus de 30 cm, ou si vous intégrez avec un pilote automatique standard comme PX4 qui attend UAVCAN.

Robot terrestre / AGV : CAN Bus dès le premier jour. Le bruit du moteur seul causera des problèmes avec I2C ou SMBus. Utilisez CANopen DS401 pour une compatibilité maximale avec les contrôleurs de robots du commerce.

Dispositif médical portable : SMBus avec implémentation complète de la Smart Battery Specification. Votre organisme de certification l'attendra, votre IC de charge le parle probablement déjà, et les courtes distances de câble conviennent aux limitations de SMBus.

Petit véhicule électrique (trottinette électrique, vélo électrique, EV léger) : CAN Bus pour tout ce qui possède un BMS séparé et un contrôleur de véhicule. Le tracé de câble de la batterie au contrôleur est généralement trop long pour que I2C ou SMBus soient fiables.

Demander un Pack avec Vos Protocoles

Lorsque vous contactez Sky Power (US) pour un devis de pack personnalisé, précisez d'emblée votre exigence de protocole de communication. Nos configurations standards sont livrées avec :

  • Série SKP-18650 / SKP-21700 : I2C ou SMBus sélectionnable via le firmware BMS
  • Série SKP-48V AGV : CAN Bus (CANopen DS401) standard, I2C disponible
  • Série SKP Médicale : SMBus avec implémentation complète SBS 1.1, certifié IEC 62133 et UL

Tous les packs sont certifiés UN38.3 et CE en standard. Bien que nous puissions réaliser d'autres certifications. Le délai est généralement de 10 semaines à partir de la spécification approuvée, avec un MOQ à partir de 50 packs pour les constructions de développement.

Effectuez une simulation thermique gratuite de la configuration de votre pack →

Free Tool

Simulate Your Battery Pack

Run a free certified thermal simulation and download a verification report for your engineering team.

Launch Simulator →