Reputation: 137
In order to provide message freshness in the CAN-Bus a timestamp can be added to the message. A receiver can then check the timestamp (may be truncated) and compare it to his own local timer in order to decide whether he wants to proceed the message.
My question is: Which kind of ruling is the receiver using (in practice) in order to check the timestamp for freshness? It seems like just looking at the absolute value of the difference is not ideal, since the duration for sending a message over the CAN-Bus is not constant (collision handling / bus arbitration).
Upvotes: 1
Views: 2613
Reputation: 512
Deciding the "freshness" of a message is purely Application layer specific logic, and thus the ruling is not a standard protocol. It is heavily depending on the usecases the Application is involved in. An ADAS might need from a radar Object packet data with 20ms freshness, for example.
TimeSync protocol is one of the supporting mechanisms employed to ensure the high precision communication of time sensitive nodes.
In TimeSync, the local clock of slave nodes is adjusted to the clock of the master. Through SYNC + FUP messages, the duration of sending a message from the trigger to the ACK detection on the bus is also taken into account.
By ensuring the common clock between the nodes, practically the messages are as fresh as they come.
Note: the CAN Response time of a message in a 1MBaud CAN communication is max 300 us, and depending on the applied SW arcitecture, from receiving Transceiver to the Application shouldn't pass more time than 5-10us.
Upvotes: 2