CAN Statistic Counter

CAN-Statistik-Zähler To get statistic information about the CAN bus connection, we suggest the following objects:

Bus State
We have four states of the CAN bus: (REC = Receive error counter; TEC = Transmit error counter)
 * Error active (REC < 96 and TEC < 96)
 * Warning (Error active, REC >= 96 or TEC >= 96)
 * Error passive
 * Bus off

We define a counter for every change from 'Error active' to 'Warning', from 'Warning' to 'Error passive' and from 'Error passive' to 'Bus off'.

Objekt 0x5800, Record: CAN status counter Subindex 0, UNSIGNED8, rw:  Number of objects (read), write zero: clear status counter, Subindex 1, UNSIGNED16, ro: Warning counter (counter 'Error active' to 'Warning') Subindex 2, UNSIGNED16, ro: Error counter (counter 'Warning' to 'Error passive') Subindex 3, UNSIGNED16, ro: Bus off counter (counter 'Error passive' to 'Bus off')

Receive Counter
Some receive counter are defined. The Rx message counter counts all successful received messages (indicated by the CAN controller). If a new received message overwites an old one, so that the old one get lost, increase the Rx overrun counter. If there is a FIFO in the application and a new received message can't be stored in the FIFO, increase the Rx overflow counter. The ''Rx max. counter'' indicates the maximum number of messages in the FIFO (max. fill level since the last counter reset). Rx FIFO size is the size of the FIFO.

Objekt 0x5801, Record: CAN rx counter Subindex 0, UNSIGNED8, rw:  Number of objects (read), write zero: clear rx counter, Subindex 1, UNSIGNED32, ro: Rx message counter (counter of successful received messages) Subindex 2, UNSIGNED16, ro: Rx overrun counter (counter of lost messages - hardware overflow) Subindex 3, UNSIGNED16, ro: Rx overflow counter (counter of lost messages - software overflow) Subindex 4, UNSIGNED16, ro: Rx max. counter (max. number of messages in the FIFO queue) Subindex 5, UNSIGNED16, ro: Rx fifo size (size of the FIFO)

Transmit Counter
Some transmit counter are defined. The Tx message counter counts all successful transmitted messages (indicated by the CAN controller). If there is a FIFO in the application and it gets completely full, increase the 'Tx overflow counter''. If the application loose a message because of a full FIFO, increase the Tx overrun counter. The ''Tx max. counter'' indicates the maximum number of messages in the FIFO (max. fill level since the last counter reset). Tx FIFO size is the size of the FIFO.

Objekt 0x5802, Record: CAN tx counter Subindex 0, UNSIGNED8, rw:  Number of objects (read), write zero: clear tx counter, Subindex 1, UNSIGNED32, ro: Tx message counter (counter of successful transmitted messages) Subindex 2, UNSIGNED16, ro: Tx overrun counter (counter of lost messages - hardware/software overflow) Subindex 3, UNSIGNED16, ro: Tx overflow counter (counter of software overflow without lost of messages) Subindex 4, UNSIGNED16, ro: Tx max. counter (max. number of messages in the FIFO queue) Subindex 5, UNSIGNED16, ro: Tx fifo size (size of the FIFO)