Protocoles orientés message ou orientés participant
La transmission orientée message offre de la souplesse, l'orientée participant permet une communication ciblée. Le CAN communique par messages ; les protocoles de niveau supérieur comme CANopen y ajoutent l'adressage direct des participants.
La transmission orientée message
Ici, l'attention porte sur les paquets de données — les messages — eux-mêmes. Un message déposé sur le bus par un participant est identifié par un identifiant unique qui lui est propre. Sa destination n'est pas définie : c'est le participant qui décide seul d'accepter ou non un message émis. Un message peut donc être accepté par aucun participant, par un seul, ou par plusieurs. Comme l'identifiant définit généralement aussi la priorité d'accès au bus, il est possible de donner aux messages prioritaires un accès à faible latence, même sous forte charge.
Le producteur ne sait normalement pas qui consomme son message, ce qui rend impossible un échange confirmé. C'est pourquoi les protocoles orientés message appliquent en général le principe de la signalisation d'erreur plutôt que celui de la confirmation.
La transmission orientée message considère donc l'échange comme un processus entre systèmes ou composants, sans mettre au premier plan l'identité du participant. Chaque message contient toute l'information nécessaire au consommateur pour le traiter. Cette approche autorise un couplage lâche entre producteur et consommateur : modifier une extrémité de la chaîne n'impose pas nécessairement de modifier l'autre.
La transmission orientée participant
À l'inverse, la transmission orientée participant se concentre sur l'identité des interlocuteurs. Il est ici déterminant de savoir qui émet et qui reçoit. L'échange s'organise autour des participants et de leurs relations, et les données sont échangées sur la base d'adresses, de numéros de nœud ou d'identifiants de module.
Les messages transportent généralement l'adresse de destination et l'adresse source des participants concernés. Des adresses particulières sont réservées à la diffusion vers un groupe de participants ou vers tous (broadcast). Cela implique notamment de spécifier explicitement les messages transmis à chaque participant.
Et le CAN, comment communique-t-il ?
Un système CAN communique en règle générale par messages. Chaque message porte un identifiant unique qui renseigne sur son contenu et détermine sa priorité ; consommateur et producteur ne sont, eux, pas directement identifiés. Les messages sont donc transmis selon leur importance et non selon le participant qui les émet ou les reçoit. Tous les nœuds du réseau écoutent tous les messages et décident indépendamment, à partir de l'identifiant, si un message les concerne. D'où une grande souplesse et une bonne évolutivité du réseau.
Le recours à des protocoles de niveau supérieur fondés sur le CAN, comme CANopen, enrichit cette communication orientée message et rend possible l'adressage direct des participants. Chaque équipement d'un réseau CANopen possède un node ID unique, utilisé dans les messages pour déterminer de quel équipement provient un message ou à quel équipement il est destiné. Commandes de contrôle et données de configuration peuvent ainsi être échangées de façon ciblée, le plus souvent en unicast, entre un client et un serveur, selon le modèle requête-réponse.
En résumé
La transmission orientée message apporte souplesse et couplage lâche ; l'orientée participant permet une communication ciblée entre interlocuteurs connus. Les systèmes comme le CAN exploitent les points forts du premier modèle pour une communication efficace entre participants — et les protocoles de niveau supérieur permettent de combiner les avantages des deux.