Vehicle Specific File
Description
The ramn_vehicle_specific module holds data relative to vehicle-specific definitions. Concretely, it defines CAN IDs, message format, etc.
//Default CAN Message Payload
#define CAN_MAX_PAYLOAD_SIZE_DEFAULT 8
typedef volatile /* __attribute__((packed, scalar_storage_order("big-endian"))) */ struct
{
uint16_t payload /* :16 */;
uint16_t counter /* :16 */;
uint32_t random /* :32 */;
} RAMN_DefaultCANFrameFormat_t;
// Definition of Diagnostic IDs
//Note that ISO-TP standard recommends that 0x7e0/0x7e8 pair be assigned to ECM (Engine Control Module)
//And that 0x7e1/0x7e9 be assigned to TCM (Transmission Control Module)
#if defined(ENABLE_DIAG)
#if defined(TARGET_ECUA)
#if defined(ENABLE_UDS)
#define UDS_RX_CANID 0x7e0
#define UDS_TX_CANID UDS_RX_CANID+8
#endif
#if defined(ENABLE_KWP)
#define KWP_RX_CANID 0x7e4
#define KWP_TX_CANID KWP_TX_CANID+8
#endif
#if defined(ENABLE_XCP)
#define XCP_RX_CANID 0x550
#define XCP_TX_CANID XCP_RX_CANID+1
#endif
#elif defined(TARGET_ECUB)
#if defined(ENABLE_UDS)
#define UDS_RX_CANID 0x7e1
#define UDS_TX_CANID UDS_RX_CANID+8
#endif
#if defined(ENABLE_KWP)
#define KWP_RX_CANID 0x7e5
#define KWP_TX_CANID KWP_RX_CANID+8
#endif
#if defined(ENABLE_XCP)
#define XCP_RX_CANID 0x552
#define XCP_TX_CANID XCP_RX_CANID+1
#endif
#elif defined(TARGET_ECUC)
#if defined(ENABLE_UDS)
#define UDS_RX_CANID 0x7e2
#define UDS_TX_CANID UDS_RX_CANID+8
#endif
#if defined(ENABLE_KWP)
#define KWP_RX_CANID 0x7e6
#define KWP_TX_CANID KWP_RX_CANID+8
#endif
#if defined(ENABLE_XCP)
#define XCP_RX_CANID 0x554
#define XCP_TX_CANID XCP_RX_CANID+1
#endif
#elif defined(TARGET_ECUD)
#if defined(ENABLE_UDS)
#define UDS_RX_CANID 0x7e3
#define UDS_TX_CANID UDS_RX_CANID+8
#endif
#if defined(ENABLE_KWP)
#define KWP_RX_CANID 0x7e7
#define KWP_TX_CANID KWP_RX_CANID+8
#endif
#if defined(ENABLE_XCP)
#define XCP_RX_CANID 0x556
#define XCP_TX_CANID XCP_RX_CANID+1
#endif
#endif
#endif
//Default Settings for all messages
#define CAN_SIM_PERIODSMS_DEFAULT 100 //Message period
#define CAN_SIM_PERIODSMS_DEFAULT_FAST 10 //Message period
#define CAN_SIM_IDTYPE_DEFAULT FDCAN_STANDARD_ID //Standard ID or Extended ID
#define CAN_SIM_FORMAT_DEFAULT FDCAN_CLASSIC_CAN //Classic CAN or CAN-FD
#define CAN_SIM_BRS_DEFAULT FDCAN_BRS_OFF //Bit rate switching ON or OFF
#define CAN_SIM_DLC_DEFAULT FDCAN_DLC_BYTES_8 //Message Payload size
//Message specific settings
#define CAN_SIM_CONTROL_BRAKE_CANID 0x24
#define CAN_SIM_CONTROL_BRAKE_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_CONTROL_BRAKE_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_ACCEL_CANID 0x39
#define CAN_SIM_CONTROL_ACCEL_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_CONTROL_BRAKE_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_BRAKE_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_STEERING_CANID 0x62
#define CAN_SIM_CONTROL_STEERING_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_CONTROL_STEERING_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_STEERING_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_STEERING_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_STEERING_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_STEERING_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_SHIFT_CANID 0x77
#define CAN_SIM_CONTROL_SHIFT_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_CONTROL_SHIFT_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_SHIFT_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_SHIFT_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_SHIFT_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_SHIFT_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_HORN_CANID 0x98
#define CAN_SIM_COMMAND_HORN_CANID_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_COMMAND_HORN_CANID_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_HORN_CANID_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_HORN_CANID_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_HORN_CANID_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_HORN_CANID_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_SIDEBRAKE_CANID 0x1D3
#define CAN_SIM_CONTROL_SIDEBRAKE_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_CONTROL_SIDEBRAKE_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_SIDEBRAKE_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_SIDEBRAKE_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_SIDEBRAKE_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_SIDEBRAKE_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_TURNINDICATOR_CANID 0x1A7
#define CAN_SIM_COMMAND_TURNINDICATOR_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_COMMAND_TURNINDICATOR_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_TURNINDICATOR_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_TURNINDICATOR_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_TURNINDICATOR_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_TURNINDICATOR_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_ENGINEKEY_CANID 0x1B8
#define CAN_SIM_CONTROL_ENGINEKEY_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_CONTROL_ENGINEKEY_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_ENGINEKEY_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_ENGINEKEY_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_ENGINEKEY_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_ENGINEKEY_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_LIGHTS_CANID 0x150
#define CAN_SIM_COMMAND_LIGHTS_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_COMMAND_LIGHTS_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_LIGHTS_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_LIGHTS_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_LIGHTS_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_LIGHTS_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_LIGHTS_CANID 0x1BB
#define CAN_SIM_CONTROL_LIGHTS_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_CONTROL_LIGHTS_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_LIGHTS_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_LIGHTS_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_LIGHTS_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_LIGHTS_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_BRAKE_CANID 0x1A
#define CAN_SIM_COMMAND_BRAKE_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_COMMAND_BRAKE_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_BRAKE_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_BRAKE_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_BRAKE_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_BRAKE_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_ACCEL_CANID 0x2F
#define CAN_SIM_COMMAND_ACCEL_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_COMMAND_ACCEL_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_ACCEL_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_ACCEL_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_ACCEL_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_ACCEL_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_STATUS_RPM_CANID 0x43
#define CAN_SIM_STATUS_RPM_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_STATUS_RPM_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_STATUS_RPM_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_STATUS_RPM_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_STATUS_RPM_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_STATUS_RPM_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_STEERING_CANID 0x58
#define CAN_SIM_COMMAND_STEERING_PERIODMS CAN_SIM_PERIODSMS_DEFAULT_FAST
#define CAN_SIM_COMMAND_STEERING_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_STEERING_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_STEERING_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_STEERING_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_STEERING_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_SIDEBRAKE_CANID 0x1C9
#define CAN_SIM_COMMAND_SIDEBRAKE_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_COMMAND_SIDEBRAKE_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_SIDEBRAKE_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_SIDEBRAKE_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_SIDEBRAKE_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_SIDEBRAKE_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_COMMAND_SHIFT_CANID 0x6D
#define CAN_SIM_COMMAND_SHIFT_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_COMMAND_SHIFT_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_COMMAND_SHIFT_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_COMMAND_SHIFT_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_COMMAND_SHIFT_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_COMMAND_SHIFT_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
#define CAN_SIM_CONTROL_HORN_CANID 0xA2
#define CAN_SIM_CONTROL_HORN_PERIODMS CAN_SIM_PERIODSMS_DEFAULT
#define CAN_SIM_CONTROL_HORN_IDTYPE CAN_SIM_IDTYPE_DEFAULT
#define CAN_SIM_CONTROL_HORN_FORMAT CAN_SIM_FORMAT_DEFAULT
#define CAN_SIM_CONTROL_HORN_BRS CAN_SIM_BRS_DEFAULT
#define CAN_SIM_CONTROL_HORN_DLC CAN_SIM_DLC_DEFAULT
#define CAN_SIM_CONTROL_HORN_PAYLOADFORMAT_T RAMN_DefaultCANFrameFormat_t
//This section defines which CAN ID an ECU is configured to receive
#if defined(TARGET_ECUA)
#define RECEIVE_CONTROL_BRAKE
#define RECEIVE_CONTROL_ACCEL
#define RECEIVE_CONTROL_STEERING
#define RECEIVE_CONTROL_SHIFT
#define RECEIVE_CONTROL_SIDEBRAKE
#define RECEIVE_CONTROL_ENGINEKEY
#define RECEIVE_COMMAND_HORN
#define RECEIVE_CONTROL_LIGHTS
#elif defined(TARGET_ECUB)
#define RECEIVE_COMMAND_LIGHTS
#define RECEIVE_STATUS_RPM
#define RECEIVE_COMMAND_STEERING
#define RECEIVE_COMMAND_SIDEBRAKE
#elif defined(TARGET_ECUC)
#define RECEIVE_CONTROL_ENGINEKEY
#define RECEIVE_COMMAND_BRAKE
#define RECEIVE_COMMAND_ACCEL
#define RECEIVE_STATUS_RPM
#define RECEIVE_COMMAND_SIDEBRAKE
#define RECEIVE_COMMAND_SHIFT
#elif defined(TARGET_ECUD)
#define RECEIVE_CONTROL_BRAKE
#define RECEIVE_CONTROL_SIDEBRAKE
#define RECEIVE_STATUS_RPM
#define RECEIVE_COMMAND_TURNINDICATOR
#define RECEIVE_COMMAND_LIGHTS
#endif
///////////////////////////////////////
// VEHICLE SPECIFIC DEFINITIONS END //
///////////////////////////////////////
//Structure that has both CAN header and data
typedef union
{
uint8_t raw_data[CAN_MAX_PAYLOAD_SIZE_DEFAULT];
RAMN_DefaultCANFrameFormat_t ramn_data;
} RAMN_CANFrameData_t;
//Structure that has both CAN header, data, and periodic sending information
typedef struct
{
FDCAN_TxHeaderTypeDef header;
RAMN_CANFrameData_t data[CAN_MAX_PAYLOAD_SIZE_DEFAULT];
uint32_t periodms; //Target period for periodic sending
uint32_t counter; //Number of time the message has been sent
uint32_t lastSent; //Timestamp of last transmission
} RAMN_PeriodicFDCANTx_t;
//Definition of messages that are periodically sent by ECU
#if defined(TARGET_ECUA)
extern RAMN_PeriodicFDCANTx_t msg_command_brake;
extern RAMN_PeriodicFDCANTx_t msg_command_accel;
extern RAMN_PeriodicFDCANTx_t msg_status_RPM;
extern RAMN_PeriodicFDCANTx_t msg_command_steering;
extern RAMN_PeriodicFDCANTx_t msg_command_shift;
extern RAMN_PeriodicFDCANTx_t msg_control_horn;
extern RAMN_PeriodicFDCANTx_t msg_command_parkingbrake;
#endif
#if defined(TARGET_ECUB)
extern RAMN_PeriodicFDCANTx_t msg_control_steering;
extern RAMN_PeriodicFDCANTx_t msg_control_sidebrake;
extern RAMN_PeriodicFDCANTx_t msg_command_lights;
#endif
#if defined(TARGET_ECUC)
extern RAMN_PeriodicFDCANTx_t msg_control_brake;
extern RAMN_PeriodicFDCANTx_t msg_control_accel;
extern RAMN_PeriodicFDCANTx_t msg_control_shift;
extern RAMN_PeriodicFDCANTx_t msg_command_horn;
extern RAMN_PeriodicFDCANTx_t msg_command_turnindicator;
#endif
#if defined(TARGET_ECUD)
extern RAMN_PeriodicFDCANTx_t msg_control_enginekey;
extern RAMN_PeriodicFDCANTx_t msg_control_lights;
#endif