Vous voudrez certainement choisir une couche réseau standard. J'ai vu des cas où les gens ont roulé les leurs, et souvent le protocole est inefficace, et finalement c'est une perte de temps. Une couche réseau éprouvée fournit des fonctionnalités de base pour résoudre la plupart des problèmes que vous rencontrerez probablement lors de la mise en réseau avec un appareil intégré, ce qui vous fera économiser un temps précieux et de l'argent au final.
Je connais bien CANopen, je vais donc mettre un peu d'explication ici et cela pourrait vous aider à décider si c'est la voie que vous souhaitez suivre. Si cela ne correspond pas à ce que vous devez faire, je chercherais autre chose.
CANopen est très centré sur les données. Tous les nœuds esclaves CANopen (les choses que vous contrôlez à partir d'un nœud maître, comme les capteurs ou les pilotes de moteur) fournissent un dictionnaire qui contient toutes les données de configuration, de contrôle et d'acquisition de données dont vous avez besoin de lire / écrire pour faire votre travail. Vous pouvez ensuite lire / écrire ces objets individuellement via le mécanisme SDO (service data object), ou lire / écrire périodiquement ces objets dans des transmissions de messages CAN temporisés via le mécanisme PDO (producteur data object). Le démarrage, l'arrêt et la réinitialisation, ainsi que la détection des pulsations cardiaques / des dysfonctionnements des nœuds sont fournis par les services NMT, ainsi que par un service d'attribution d'ID de nœud (si vous souhaitez l'utiliser). Pour implémenter un périphérique à l'aide d'une bibliothèque CANOpen intégrée, vous configurez essentiellement un dictionnaire d'objets, configurez des PDO pour envoyer / recevoir périodiquement des mises à jour de données, et écrire un code utilisateur qui se comporte en fonction de ces entrées de données. Il y a d'autres choses que CANopen fournit, mais c'est l'essentiel. Lisez ce livre pour plus d'informations.
J'écris du code pour accéder au bus CAN sur les voitures GM, qui utilise une couche réseau principalement propriétaire. Avez-vous étudié OpenCAN? Je choisirais un standard ouvert tel que CANOpen ou même OpenCAN. Cela dépend vraiment du niveau de contrôle et de flexibilité que vous souhaitez dans votre environnement d'automatisation.
la source
Il y a eu d'excellentes réponses. Je ne sais pas quel micro vous utilisez, mais voici des liens vers quelques informations de microchip.
Bibliothèque J1939
Micrologiciel esclave DeviceNet ™ groupe 2 pour PIC18 avec CAN
Peut ouvrir
Ils ont chacun du code et une fiche technique de base vous permettant de savoir ce dont vous avez besoin pour les implémenter.
la source