CAN CoreX 2.3.1
Table-driven CAN, CAN FD, ISO-TP, network simulation, and bus monitoring library
Loading...
Searching...
No Matches
Bus Monitoring

CAN bus state tracking, bus-off recovery, and bus health statistics. More...

Data Structures

struct  CCX_BusRecoveryDelay_t
struct  CCX_ErrorCounters_t
 CAN error counters from hardware controller. More...
struct  CCX_BusStats_t
 Bus monitoring statistics. More...
struct  CCX_BusMonitor_t
 Bus monitor configuration and state. More...

Macros

#define CCX_BUS_RECOVERY_MS(ms)
#define CCX_BUS_RECOVERY_US(us)
#define CAN_COREX_BUS_OFF_RECOVERY_10KBPS_MS   CCX_BUS_RECOVERY_MS(141U)
#define CAN_COREX_BUS_OFF_RECOVERY_20KBPS_MS   CCX_BUS_RECOVERY_MS(71U)
#define CAN_COREX_BUS_OFF_RECOVERY_50KBPS_MS   CCX_BUS_RECOVERY_MS(29U)
#define CAN_COREX_BUS_OFF_RECOVERY_83K3BPS_MS   CCX_BUS_RECOVERY_MS(17U)
#define CAN_COREX_BUS_OFF_RECOVERY_100KBPS_MS   CCX_BUS_RECOVERY_MS(15U)
#define CAN_COREX_BUS_OFF_RECOVERY_125KBPS_MS   CCX_BUS_RECOVERY_MS(12U)
#define CAN_COREX_BUS_OFF_RECOVERY_250KBPS_MS   CCX_BUS_RECOVERY_MS(6U)
#define CAN_COREX_BUS_OFF_RECOVERY_500KBPS_MS   CCX_BUS_RECOVERY_US(2816U)
#define CAN_COREX_BUS_OFF_RECOVERY_800KBPS_MS   CCX_BUS_RECOVERY_US(1760U)
#define CAN_COREX_BUS_OFF_RECOVERY_1000KBPS_MS   CCX_BUS_RECOVERY_US(1408U)
#define CAN_COREX_BUS_OFF_RECOVERY_FD_2M_MS   CCX_BUS_RECOVERY_US(704U)
#define CAN_COREX_BUS_OFF_RECOVERY_FD_5M_MS   CCX_BUS_RECOVERY_US(282U)
#define CAN_COREX_BUS_OFF_RECOVERY_FD_8M_MS   CCX_BUS_RECOVERY_US(176U)

Enumerations

enum  CCX_BusState_t { CCX_BUS_STATE_ACTIVE = 0 , CCX_BUS_STATE_WARNING , CCX_BUS_STATE_PASSIVE , CCX_BUS_STATE_OFF }
 CAN bus state according to ISO 11898-1. More...

Functions

CCX_Status_t CCX_BusMonitor_Init (CCX_instance_t *Instance, CCX_BusMonitor_t *Monitor, CCX_BusState_t(*GetBusState)(const CCX_instance_t *), void(*GetErrorCounters)(const CCX_instance_t *, CCX_ErrorCounters_t *), void(*RequestRecovery)(const CCX_instance_t *), CCX_BusRecoveryDelay_t recovery_delay, CCX_TIME_t successful_run_time, uint8_t auto_recovery_enabled, uint8_t max_recovery_attempts)
CCX_Status_t CCX_BusMonitor_TriggerRecovery (CCX_instance_t *Instance)
CCX_BusState_t CCX_BusMonitor_GetState (const CCX_instance_t *Instance)
void CCX_BusMonitor_ResetStats (CCX_instance_t *Instance)

Detailed Description

CAN bus state tracking, bus-off recovery, and bus health statistics.

Macro Definition Documentation

◆ CCX_BUS_RECOVERY_MS

#define CCX_BUS_RECOVERY_MS ( ms)
Value:
((CCX_BusRecoveryDelay_t){.HighResDelay = 0U, .BaseDelay = (CCX_TIME_t)(ms), .UsesHighRes = 0U})
Definition can_corex_bus.h:34

◆ CCX_BUS_RECOVERY_US

#define CCX_BUS_RECOVERY_US ( us)
Value:
((CCX_BusRecoveryDelay_t){.HighResDelay = ((us) <= 3000U) ? CCX_HR_TIME(us) : 0U, \
.BaseDelay = (CCX_TIME_t)CCX_INTERNAL_MS_FROM_US_CEIL(us), \
.UsesHighRes = (uint8_t)((us) <= 3000U)})

Enumeration Type Documentation

◆ CCX_BusState_t

CAN bus state according to ISO 11898-1.

Represents the current error state of the CAN controller. State transitions are based on Transmit Error Counter (TEC) and Receive Error Counter (REC).

Values:

  • CCX_BUS_STATE_ACTIVE: Error Active (TEC < 96 && REC < 96) - normal operation
  • CCX_BUS_STATE_WARNING: Error Warning (TEC > 96 || REC > 96) - degraded performance
  • CCX_BUS_STATE_PASSIVE: Error Passive (TEC > 127 || REC > 127) - cannot send active error frames
  • CCX_BUS_STATE_OFF: Bus Off (TEC > 255) - disconnected from bus