In der Welt der Datenkommunikation gibt es verschiedene Ansätze, um Informationen zwischen Geräten oder Systemen zu übertragen. Zwei prominente Konzepte sind die nachrichtenorientierte (Message-Oriented) und die teilnehmerorientierte (Participant-Oriented) Datenübertragung. Diese Konzepte unterscheiden sich grundlegend in ihrer Herangehensweise, wie Daten gesendet, empfangen und interpretiert werden.
Im folgenden Blog-Beitrag werden wir die beiden Ansätze genauer beleuchtet und wir schauen auch, wie CAN (Controller Area Network) in diesem Zusammenhang zu betrachten ist. Los geht’s…
Die nachrichtenorientierte Datenübertragung
Bei der nachrichtenorientierten Datenübertragung liegt der Fokus auf den Datenpaketen oder Nachrichten selbst.
Eine auf den Bus von einem Teilnehmer aufgeschaltete Nachricht identifiziert sich durch eine eindeutige, dieser Nachricht zugeordnete Kennung (Nachrichten-Identifier). Das Ziel einer Nachricht ist hierbei nicht definiert. Die Übernahme einer gesendeten Nachricht liegt allein in der Entscheidung der Busteilnehmer. Hierbei ist es möglich, dass eine Nachricht von keinem, einem oder vielen anderen Busteilnehmern übernommen wird.
Da über die Nachrichtenkennung im Allgemeinen auch die Priorität der Nachricht bezüglich des Buszugriffs bestimmt ist, ist es möglich, hochprioren Nachrichten auch bei hoher Busbelastung mit kurzer Latenzzeit Zugang zum Busmedium zu ermöglichen. Der Nachrichtensender (Producer) weiß normalerweise nicht, wer der Empfänger (Consumer) seiner Nachricht ist, somit ist ein bestätigter Nachrichtenaustausch nicht sinnvoll realisierbar. Anstelle des Bestätigungsprinzips wird deshalb bei nachrichtenorientierten Protokollen üblicherweise das Prinzip der "Fehlersignalisierung" angewendet.
Die nachrichtenorientierte Datenübertragung betrachtet somit die Datenübertragung als einen Prozess des Austauschs von Nachrichten zwischen Systemen oder Komponenten, ohne dass die Identität der Teilnehmer im Vordergrund steht. Jede Nachricht enthält alle notwendigen Informationen, die der Empfänger benötigt, um die Nachricht zu verarbeiten. Dieser Ansatz ermöglicht eine lose Kopplung zwischen Sender und Empfänger, was bedeutet, dass Änderungen an einem Ende der Kommunikationskette nicht notwendigerweise Änderungen am anderen Ende erfordern.
Teilnehmerorientierte Datenübertragung
Im Gegensatz zur nachrichtenorientierten Übertragung legt die teilnehmerorientierte Datenübertragung den Schwerpunkt auf die Identität der kommunizierenden Teilnehmer. Bei diesem Ansatz ist es entscheidend, wer die Nachricht sendet und wer sie empfängt. Die Datenübertragung wird in Bezug auf die beteiligten Teilnehmer und deren Beziehungen zueinander organisiert und der Datenaustausch erfolgt auf der Basis von Teilnehmeradressen, Knotennummern oder Modul-Identifiern.
Hierbei enthalten die über den Bus übertragenen Nachrichten i. a. die Ziel- und Quelladresse (oder Nummer) der am Datenaustausch beteiligten Teilnehmer. Für die Übertragung von Nachrichten, die an eine Gruppe von Teilnehmern oder alle Teilnehmer gerichtet sind (Broadcasting), werden Sonderadressen reserviert. Die teilnehmerorientierte Nachrichtenübertragung bedeutet u. a., dass die zu einem Teilnehmer übertragenen Nachrichten zusätzlich spezifiziert werden müssen.
Und wie kommuniziert CAN?
In einem CAN-System wird grundlegend nachrichtenorientiert kommuniziert. Jede Nachricht ist mit einer eindeutigen ID gekennzeichnet, die Aufschluss über ihren Inhalt gibt aber gleichzeitig auch ihre Priorität bestimmt. Empfänger oder Sender werden hingegen nicht direkt identifiziert. Dies bedeutet, dass Nachrichten auf der Grundlage ihrer Wichtigkeit und nicht auf der Grundlage des spezifischen Teilnehmers, der sie sendet oder empfängt, übertragen werden. Alle Knoten im Netzwerk hören alle Nachrichten ab und entscheiden selbst, ob eine Nachricht für sie relevant ist oder nicht, basierend auf der Nachrichten-ID. Dies ermöglicht eine hohe Flexibilität und Skalierbarkeit bei der Datenübertragung.
Der Einsatz von höheren, CAN-basierten Protokollen zur Datenübertragung, wie z. B. CANopen, ergänzt die bei CAN zugrundeliegende nachrichtenorientierte Kommunikation und ermöglicht ein direktes Ansprechen von Teilnehmern. Hierfür erhält jedes Gerät in einem CANopen-Netzwerk hat eine eindeutige Node-ID, die zur Identifizierung des Geräts innerhalb des Netzwerks dient. Diese Node-ID wird in den Nachrichten verwendet, um zu bestimmen, von welchem Gerät eine Nachricht gesendet wurde oder für welches Gerät sie bestimmt ist. So können Steuerbefehle und Konfigurationsdaten zwischen Geräten zielgerichtet ausgetauscht werden. Dies geschieht in der Regel „unicast“, was bedeutet, dass sie zwischen einem Client und einem Server in einer 1-zu-1-Kommunikation mittels Request-Response-Modell ausgetauscht werden.
Zusammenfassung
Während die nachrichtenorientierte Datenübertragung Flexibilität und lose Kopplung bietet, ermöglicht die teilnehmerorientierte Datenübertragung eine gezielte Kommunikation zwischen bekannten Teilnehmern. Systeme wie CAN nutzen die Stärken der nachrichtenorientierten Übertragung, um eine effiziente Kommunikation zwischen den Busteilnehmern zu ermöglichen. Durch den Einsatz höherer Protokolle können bei CAN jedoch die Vorteile der nachrichtenorientierten und der teilnehmerorientierten Kommunikation kombiniert werden.