Discussions Générales > Bus CAN

Usage particulier du bus CAN

(1/4) > >>

Tony04:
Bonjour à tous,

comme je le précise dans le titre, j'aimerais utiliser le bus CAN dans une configuration un peu particulière.

Je voudrais envoyer la même trame à tous mes satellites en une seule fois sans devoir répéter x fois l'opération avec des adresses différentes et du coup je configure le filtre de réception de tous mes satellites avec la même valeur,  0x103 dans mon exemple.
J'ai fait l'essai et cela fonctionne, mais est-ce que techniquement cette configuration tient la route car, si j'ai bien compris, le bus CAN dans son protocole d'échange, renvoie des informations en cas de mauvaise transmission par exemple. Or dans ce cas ma centrale ne peut pas différencier les retours de ces informations entre les différents satellites.

Je joins un petit croquis du montage en précisant que je ne fais qu'envoyer vers les satellites et ne demande aucune information en retour.

Merci par avance pour vos commentaires.
Cordialement
Antoine

Dominique:
Bonjour Antoine,

Normalement c’est possible de recevoir un même message par tous les satellites, si ceux-ci ont un filtre prévu pour cela. Même sans filtre, d’ailleurs, tous les nœuds reçoivent tous les messages et les acquittent.

Mais si un noeud constate une erreur de transmission, il peut provoquer des répétitions et bloquer le bus. Dans ce cas il peut / doit se déconnecter du bus par un system décrit ici :
https://www.kvaser.com/about-can/the-can-protocol/can-error-handling/

Traduction : « Un nœud démarre en mode Erreur active. Lorsque l'un des deux compteurs d'erreur augmente au-dessus de 127, le nœud entre dans un état connu sous le nom d'erreur passif et lorsque le compteur d'erreur de transmission augmente au-dessus de 255, le nœud entre dans l'état Bus désactivé.

Un nœud d'erreur actif transmettra des indicateurs d'erreur actifs lorsqu'il détecte des erreurs.
Un nœud passif d'erreur transmettra des indicateurs d'erreur passifs lorsqu'il détecte des erreurs.
Un nœud qui est Bus Off ne transmettra rien du tout sur le bus »

Donc ton « broadcast à la Tony04 » peut ne plus marcher certains mauvais jours et tu perds des nœuds.

Je ne comprends pas bien en quoi c’est gênant de répéter des envois de messages, d’autant que c’est le programme qui le fait avec une boucle « for » et tu as juste 2 lignes de code et un tableau d’identifiants à ajouter pour atteindre la sérénités sur ton réseau  ;D ;D

Tony04:
Merci Dominique pour ces précieux renseignements et je vais suivre tes conseils en séparant les adresses.
Je me doutais un peu de la mauvaise utilisation du CAN avec cette méthode, c'était juste une question de facilité.

Bon dimanche à toi.

Cordialement
Antoine

Dominique:
Antoine et tout le monde,

Je vous conseille de gérer des compteurs d'erreurs à remonter au gestionnaire de temps en temps pour vous assurer de la bonne santé du bus Can.

Personnellement je n'ai pas du tout de problème sur le bus Can de mon réseau.. jusqu'à maintenant !

Tony04:
Je veux bien mettre ce genre de compteur d'erreurs, mais je ne sais pas comment procéder.

Est-ce par un accusé de réception programmé en dur que tu constates des erreurs ou existe-t-il un autre moyen (interroger le composant CAN par exemple) ?

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique