Aller au contenu principal

Configuration du réseau CAN et recherche d'ID

Cet article traite de la configuration du réseau CAN, de la vérification de l'état de CAN0, de la recherche d'UUID CAN et du dépannage des erreurs CAN courantes.

Scénarios d'application :

  • Utilisation d'un module USB vers CAN tel que UTOC pour connecter une carte outil CAN.
  • Utilisation d'une carte mère avec firmware pont USB vers CAN flashé pour connecter une carte outil CAN.
  • La carte mère ou la carte outil dispose d'un firmware CAN flashé, nécessité de rechercher l'UUID CAN.
  • Klipper affiche des erreurs liées à CAN0, à l'UUID CAN ou au réseau CAN.

Précautions avant utilisation

  1. Connectez l'UTOC ou la carte mère avec firmware pont CAN flashé à l'ordinateur hôte via USB.
  2. Veuillez vous connecter à l'arrière-plan de l'ordinateur hôte via le réseau, n'utilisez pas de connexion série.
  3. Le système FlyOS-FAST a prédéfini CAN0 avec un débit de 1M et un cache de 1024. La configuration manuelle de CAN0 n'est généralement pas nécessaire.
  4. Le débit CAN dans le firmware de la carte outil et de la carte mère doit être identique à celui de CAN0 de l'ordinateur hôte.
  5. Des résistances de terminaison sont nécessaires aux deux extrémités du bus CAN. Les problèmes de câblage, de résistance et d'alimentation peuvent empêcher la recherche d'ID.

Câblage CAN et résistances de terminaison

Le câblage et les résistances de terminaison sont les sources les plus courantes de problèmes sur le réseau CAN.

Opération hors tension

Avant de vérifier l'ordre des fils CAN-H/CAN-L, les connecteurs, le sertissage, les cavaliers de résistance de terminaison ou les interrupteurs DIP, veuillez éteindre complètement l'imprimante et débrancher l'alimentation. Ne débranchez pas les câbles CAN, ne réglez pas les cavaliers et ne mesurez pas les résistances sous tension.

Vérification du câblage

  1. Après avoir coupé l'alimentation, confirmez que CAN-H est connecté à CAN-H et CAN-L à CAN-L.
  2. Après avoir coupé l'alimentation, vérifiez les câbles CAN, les connecteurs et les points de sertissage pour vous assurer qu'il n'y a pas de rupture, de desserrage ou de mauvais contact.
  3. Si vous utilisez un UTOC, utilisez un câble USB en bon état pour le connecter à l'ordinateur hôte.
  4. Si vous utilisez une carte mère avec pont USB vers CAN, assurez-vous que le firmware pont USB vers CAN a été flashé sur cette carte mère.
  5. Remontez soigneusement le faisceau de câbles et le boîtier avant de remettre sous tension, puis vérifiez si le périphérique CAN est reconnu par le système.

Vérification des résistances de terminaison

Chaque extrémité du bus CAN nécessite une résistance de terminaison de 120Ω. Après avoir complètement coupé l'alimentation de l'appareil, utilisez un multimètre pour mesurer la résistance entre CAN-H et CAN-L.

Valeur mesuréeInterprétation
Environ 60ΩNormal, les deux résistances de terminaison sont correctement connectées
Environ 120ΩGénéralement, une seule extrémité a une résistance de terminaison, ou il y a une coupure de fil
Environ 40ΩIl peut y avoir une résistance de terminaison supplémentaire, veuillez vérifier les nœuds intermédiaires
Environ 140ΩIl peut y avoir une inversion CAN-H / CAN-L ou une anomalie de ligne
Attention

La mesure des résistances de terminaison doit être effectuée hors tension complète. Une opération sans coupure complète de l'alimentation peut entraîner des lectures inexactes et peut également endommager l'équipement.

Vérifier si l'ordinateur hôte prend en charge CAN

Les ordinateurs hôtes FLY peuvent ignorer cette étape.

Exécutez la commande suivante pour détecter la prise en charge du CAN par le noyau :

sudo modprobe can && echo "Le noyau prend en charge CAN" || echo "Le noyau ne prend pas en charge CAN"

Si le message Le noyau prend en charge CAN s'affiche, vous pouvez continuer la configuration. S'il indique qu'il n'est pas pris en charge, il est recommandé de remplacer par une image système prenant en charge SocketCAN.

Vérifier si le périphérique CAN est reconnu

Avant de configurer ou de rechercher un ID CAN, il est conseillé de confirmer que l'ordinateur hôte a reconnu l'UTOC ou le périphérique CAN à pont USB.

Exécutez :

lsusb

Interprétation des résultats :

  • Voir 1d50:606f : Le périphérique est reconnu par le système, vous pouvez continuer à configurer ou rechercher un ID CAN.
  • Message lsusb introuvable : Veuillez d'abord installer usbutils.
  • Ne pas voir 1d50:606f : Vérifiez le câble USB, l'UTOC, le firmware du pont USB vers CAN et l'alimentation.
  • Plusieurs 1d50:606f : Il est recommandé de ne conserver qu'un seul périphérique pont CAN pour éviter plusieurs sources CAN0 simultanées.

Installation de usbutils :

sudo apt-get update
sudo apt-get install usbutils
Attention

Ce n'est qu'après que le système a reconnu le périphérique pont CAN que la configuration ultérieure de CAN0 et la recherche d'ID CAN ont un sens.

Configuration de CAN0

Attention

Cette opération remplace la configuration existante de CAN0 et nécessite un redémarrage du système après exécution. Le système FlyOS-FAST n'a pas besoin d'effectuer cette étape.

Déterminer le mode de gestion réseau

Différents systèmes utilisent différents modes de gestion réseau. Avant de configurer CAN0, vous devez confirmer quel service gère le réseau sur le système actuel. N'utilisez pas plusieurs méthodes pour configurer le même can0, sinon la configuration pourrait ne pas être prise en compte, être perdue après un redémarrage ou entraîner un état anormal de CAN0.

Exécutez la commande suivante pour vérifier l'état des services réseau courants :

systemctl is-active NetworkManager
systemctl is-active systemd-networkd
systemctl is-active networking

Vous pouvez également continuer à vérifier les fichiers de configuration et l'état des périphériques :

ls /etc/network/interfaces /etc/network/interfaces.d/ 2>/dev/null
networkctl list 2>/dev/null
nmcli device status 2>/dev/null

Choisissez la méthode de configuration en fonction des résultats :

RésultatExplicationSuggestion de choix
networking affiche active et /etc/network/interfaces.d/ existeCourant sur les systèmes Debian, Armbian, etc.Utiliser ifupdown
systemd-networkd affiche active, networkctl list voit des périphériques réseauLe réseau est géré par systemd-networkdUtiliser systemd-networkd
NetworkManager affiche active, nmcli device status voit des périphériques réseauLe réseau est géré par NetworkManagerN'utilisez pas directement les deux configurations ci-dessous, traitez d'abord selon le plan NetworkManager du système actuel
Plusieurs services affichent activeLe système peut avoir une gestion réseau hybrideConfirmez d'abord quel service gère réellement can0, puis choisissez la méthode correspondante

Si vous ne pouvez pas déterminer la méthode utilisée par le système actuel, consultez d'abord la documentation de l'image système ou du fabricant de l'ordinateur hôte. Les ordinateurs hôtes FLY et le système FlyOS-FAST ne nécessitent généralement pas de configuration manuelle de CAN0.

Écrire la configuration de CAN0

Après avoir confirmé le mode de gestion réseau, choisissez la configuration correspondante en fonction du système réel.

ifupdown

Convient aux systèmes Debian, Armbian, etc. qui utilisent /etc/network/interfaces.d/ pour la gestion réseau. Configuration de débit 1M :

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig \$IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF

Pour un débit de 500K, remplacez 1000000 par 500000 dans la commande ci-dessus avant de l'exécuter.

Après la configuration, redémarrez l'appareil :

sudo reboot

Confirmation de l'état de CAN0

Après le redémarrage, exécutez :

ip -details link show can0

Vérifiez principalement les éléments suivants :

  • bitrate : Vitesse de communication CAN, par exemple 1000000 signifie 1M.
  • qlen ou txqueuelen : Longueur de la file d'attente d'envoi, recommandée à 1024.
Loading...

Si le message indique que can0 est introuvable, vous pouvez d'abord exécuter :

ip link
lsusb
dmesg | grep -i can

Causes courantes :

  • L'UTOC n'est pas reconnu par le système, ou le câble USB ne fournit que de l'alimentation.
  • La carte mère n'a pas le firmware pont USB vers CAN flashé.
  • Le fichier de configuration CAN0 n'est pas pris en compte, ou le système n'a pas été redémarré.
  • L'image système ne prend pas en charge SocketCAN.

Recherche d'ID CAN

Avant de rechercher, assurez-vous que le périphérique est dans un état pouvant être recherché :

  1. Si l'UUID de ce périphérique a été écrit dans printer.cfg et est connecté normalement par Klipper, la commande de recherche peut ne pas lister à nouveau ce périphérique.
  2. Avant de rechercher, vous pouvez commenter temporairement la section de configuration [mcu] correspondante, enregistrer puis redémarrer Klipper.
  3. Mettez le périphérique hors tension pendant environ 10 secondes, puis remettez-le sous tension, avant d'exécuter la commande de recherche.

Pour un ordinateur hôte standard, exécutez :

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

Pour un ordinateur hôte FLY, exécutez :

python3 ~/klipper/scripts/canbus_query.py can0

Interprétation des résultats :

  • Application: Klipper : Cet ID peut être directement écrit dans printer.cfg pour utilisation.
  • Application: CANBOOT ou Application: Katapult : Le périphérique est toujours dans le programme de démarrage, il faut d'abord flasher le firmware Klipper.
  • Aucun ID trouvé : Vérifiez d'abord CAN0, l'ordre des fils, les résistances de terminaison, l'alimentation et le mode de communication du firmware selon l'« Ordre de dépannage si aucun ID trouvé » ci-dessous.
Loading...

Méthode de remplissage de l'ID CAN

  1. Ouvrez l'interface web de l'imprimante, trouvez printer.cfg dans la configuration du menu de gauche.
  2. Insérez l'UUID trouvé après canbus_uuid: dans la section de configuration [mcu] correspondante.
  3. Lors de l'utilisation d'une connexion CAN, ne conservez pas à la fois serial: et canbus_uuid: dans la même section [mcu].
  4. Enregistrez et redémarrez Klipper.

Exemple de remplissage pour firmware CAN :

[mcu]
canbus_uuid: xxxxxxxxxxxx

Le firmware USB utilise serial:, le firmware CAN utilise canbus_uuid:. Si vous passez d'un firmware USB à un firmware CAN, vous devez supprimer ou commenter l'ancien serial:.

Attention

Les ID dans la documentation sont des exemples. L'ID de chaque carte mère ou carte outil est différent, veuillez remplir l'ID réellement trouvé.


Dépannage des erreurs CAN : Si CAN0 et l'ID CAN sont correctement configurés mais que des anomalies de communication persistent, veuillez vous référer à Dépannage des erreurs CAN.

Loading...