
DCN Next Generation Open Interface Release 2.4 General
en | 22
Bosch Communications Systems | 2007 February | SRS_INF | Du010933
For the protocol the following items are of importance:
• Before accepting any data-messages a heartbeat packet must be received first. Because
the heartbeat includes the sequence number of the next data packet, the receiver can only
check if the received data packet is in sequence after the reception of a heartbeat.
• The sequence number coming along with the message must be used to detect if a
message is received twice (same sequence number).
• Each message is sent with a checksum. After each message sent, the transmitter waits for
the (negative) acknowledge from the receiver.
• Upon reception of a message, the checksum is checked and a response (ACK or NAK
packet) is sent back according to the result.
• After sending a message the transmitter waits for a valid ACK or NAK message. Any
incorrect message received before the ACK message will be ignored.
• The sending side retransmits the message upon reception of a negative acknowledge or
after a time-out time.
• A maximum of 2 retries will be done (either on time-out or on reception of negative
acknowledge).
• The maximum message length is limited to 5000 bytes to detect transmission errors in the
length field of the message (see §4.1.2.4.3).
• The connection-check will be performed using a heartbeat mechanism (see §4.1.2.4.3).
• The maximum delay between two bytes may be 50 ms.
4.1.2.4.1 Negative Acknowledge handling
When an invalid checksum is received a NAK-packet should be transmitted to request a
retransmission of the packet. To help the sending side the receiver should sent along with the
packet the sequence number expected. This sequence number can have the following
values:
Expecting packet
Transmit Acknowledge
Transmit message Transmit NAK
: Unmark Message
: Set last ACK-seq = 0
C: Correct Message packet received
: Send ACK (sequence received)
: Set last ACK-seq = received-seq
C: Packet Checksum failed
C: Marked Message absent
: Send NAK (sequence expected)
C: Request to send Message packet
: Mark Message
: Send Message packet
C: TRUE
C: Packet Checksum failed
C: Marked Message present
: Ignore Packet
C: Correct ACK packet received
C: Marked Message present
: Unmark Message
C: ( Correct NAK(Sequence) packet
C: || Timeout of ACK/NAK reception)
C: && Marked Message present
: Send marked message packet
C: TRUE
C: TRUE
Figure 3 State transition diagram 'Full' feature protocol
Komentáře k této Příručce