In the world of data communication, there are different ways of transmitting information between devices or systems. Two prominent concepts are message-oriented and participant-oriented data transmission. These concepts differ fundamentally in their approach to how data is sent, received, and interpreted.
In the following blog post, we will take a closer look at the two approaches and we will also look at how CAN (Controller Area Network) should be considered in this context. Let’s get started...
Message-oriented data transmission
The focus of message-oriented data transmission lies on the data packets or messages themselves.
A message connected to the bus by a participant is identified by a unique identifier assigned to this message (message identifier). The destination of a message is not defined here. Only the bus participant can decide whether or not to accept a sent message. It is possible here that a message is accepted by no bus participants, by one bus participant, or by many other bus participants. Since the message identifier generally also defines the message priority with respect to the bus access, it is possible to give high-priority messages access to the bus medium with a short latency time, even with a high bus load.
The message producer normally does not know who the consumer of their message is, which means a confirmed message exchange is not feasible. That is why the principle of “error signaling” is usually applied to message-oriented protocols in place of the confirmation principle.
The message-oriented data transmission thus views data transmission as a process of exchanging messages between systems or components without the identity of the participant being in the foreground. Each message contains all of the necessary information that the consumer needs to process the message. This approach allows for a loose coupling between the producer and consumer, which means that changes to an end of the communication chain do not necessarily require changes on the other end.
Participant-oriented data transmission
Unlike message-oriented transmission, participant-oriented data transmission focuses on the identity of the communicating participants. With this approach, it is crucial who is sending the message and who is receiving the message. The data transmission is organized based on the participants involved and their relationships to each other, and the data is exchanged based on the participant addresses, node numbers, or module identifiers.
The messages transmitted via the bus here generally contain the destination and source address (or number) of the participants involved in the data exchange. Special addresses are reserved for the transmission of messages that are intended for a group of participants or all participants (broadcasting). Participant-oriented message transmission means, among other things, that the messages transmitted to a participant must also be specified.
And how does CAN communicate?
A CAN system generally communicates in a message-oriented manner. Each message is marked with a unique ID, which provides an indication of its content, but also determines its priority. The consumer and producer, on the other hand, are not directly identified. This means that messages are transmitted based on their importance and not based on the specific participant who is sending or receiving. All nodes in the network listen to all messages and independently decide whether a message is relevant to them or not, based on the message ID. This allows for a great deal of network flexibility and scalability.
Using higher, CAN-based protocols, such as CANopen, enhances the underlying CAN message-oriented communication and makes it possible to directly address participants. To this end, each device in a CANopen network has a unique node ID, which is used to identify the device within the network. This node ID is used in the messages to determine from which device a message was sent or for which device it is intended. In this way, control commands and configuration data can be exchanged between devices in a targeted manner. This usually happens unicast, which means that this data is exchanged between a client and a server in a 1-to-1 communication using the request-response model.
Summary
While message-oriented transmission offers flexibility and loose coupling, participant-oriented transmission allows for targeted communication between known participants. Systems such as CAN use the strengths of message-oriented transmission to allow for efficient communication between bus participants. By using higher protocols, however, the advantages of message-oriented and participant-oriented communication can be combined with CAN.