Sie werden auf jeden Fall eine Standardnetzwerkschicht wählen wollen. Ich habe einige Fälle gesehen, in denen Leute ihre eigenen gerollt haben, und häufig ist das Protokoll ineffizient, und am Ende ist es Zeitverschwendung. Eine bewährte Netzwerkschicht bietet grundlegende Funktionen, um die meisten Probleme zu lösen, die bei der Vernetzung mit einem eingebetteten Gerät auftreten können, und spart Ihnen am Ende wertvolle Zeit und Geld.
Ich bin mit CANopen vertraut, daher werde ich hier eine kurze Erklärung abgeben, die Ihnen bei der Entscheidung helfen kann, ob Sie diesen Weg gehen möchten. Wenn es nicht passt, was Sie tun müssen, würde ich mir etwas anderes ansehen.
CANopen ist sehr datenorientiert. Alle CANopen-Slave-Knoten (Dinge, die Sie von einem Master-Knoten aus steuern, wie Sensoren oder Motortreiber) bieten ein Wörterbuch, das alle Konfigurations-, Steuerungs- und Datenerfassungsdaten enthält, die Sie lesen / schreiben müssen, um Ihre Arbeit zu erledigen. Sie können diese Objekte dann einzeln über den SDO-Mechanismus (Service Data Object) lesen / schreiben oder diese Objekte regelmäßig in zeitgesteuerten CAN-Nachrichtenübertragungen über den PDO-Mechanismus (Producer Data Object) lesen / schreiben. Das Starten, Herunterfahren und Zurücksetzen sowie die Erkennung von Herzschlägen und Knotenfehlern werden von NMT-Diensten sowie von einem Dienst zur Zuweisung von Knoten-IDs bereitgestellt (falls Sie ihn verwenden möchten). Um ein Gerät mithilfe einer eingebetteten CANOpen-Bibliothek zu implementieren, richten Sie im Grunde ein Objektwörterbuch ein, richten PDOs ein, um regelmäßig Datenaktualisierungen zu senden / empfangen. und schreiben Sie Benutzercode, der sich basierend auf diesen Dateneinträgen verhält. Es gibt andere Dinge, die CANopen bietet, aber das ist der größte Teil davon. Lesen Sie dieses Buch für weitere Informationen.
Ich schreibe Code für den Zugriff auf den CAN-Bus von GM-Fahrzeugen, der eine meist proprietäre Netzwerkschicht verwendet. Haben Sie sich mit OpenCAN befasst? Ich würde einen offenen Standard wie CANOpen oder sogar OpenCAN wählen. Dies hängt wirklich von der Kontrolle und Flexibilität ab, die Sie in Ihrer Automatisierungsumgebung wünschen.
quelle
Es gab gute Antworten. Ich weiß nicht, welches Mikro Sie verwenden, aber hier sind Links zu einigen Informationen von Mikrochip.
J1939 Bibliothek
DeviceNet ™ Group 2 Slave-Firmware für PIC18 mit CAN
Öffnen können
Sie verfügen jeweils über Code und ein grundlegendes Datenblatt, in dem Sie wissen, was Sie zur Implementierung benötigen.
quelle