#ifndef _LINS_TASK_H #define _LINS_TASK_H #include #include /** * @brief A structure to represent LIN frame information. */ #define N_AS (1000) #define N_CR (1000) #define LINS_FUNCTION_ID_SNPD_FORCE_SWITCH_ON (0xAA00U) #define LINS_FUNCTION_ID_SNPD_INIT (0xAA01U) #define LINS_FUNCTION_ID_SNPD_ASSIGN_NAD (0xAA02U) #define LINS_FUNCTION_ID_SNPD_STORAGE (0xAA03U) #define LINS_FUNCTION_ID_SNPD_EXIT (0xAA04U) #define LINS_SUPPLIER_ID (0x0123U) #define LINS_FUNCTION_ID (0x0123U) #define LINS_VARIANT (0x01U) #define LINS_SERIAL_NO (0x01234567U) #define LINS_FW_VERSION (0x0123U) #define LINS_HW_VERSION (0x0001U) #define LIN_SID_APP_DIAG_MOTOR_GET_CONFIG (0xBAU) /* single pdu receive, multi pdu response */ #define LIN_SID_APP_DIAG_MOTOR_SET_CONFIG (0xBBU) /* multi pdu receive, single pdu response */ #define LIN_SID_APP_DIAG_SINGLE_PDU_RECV_MULTI_RSP (0x22U) #define LIN_SID_APP_DIAG_MULTI_PDU_RECV_SINGLE_RSP (0x2EU) #define LIN_SID_APP_DIAG_MULTI_PDU_RECV_MULTI_RSP (0x2FU) #define LIN_SID_APP_DIAG_BOOT_MODE (0x20U) #define BOOT_MODE_HANDSHAKE (0x00U) #define BOOT_MODE_MAGIC_KEY_HANDSHAKE (0x5A5A55AAU) /* *****************LIN configuration default value **************************/ #if LIN_STACK_TYPE == LIN_STACK_TYPE_SAEJ2602 #define INIT_LINS_NAD_ADDR (0x6FU) /* NAD range is 0x60-0x6D,defalut*/ #if (INIT_LINS_NAD_ADDR>0x6FU) #error INIT_LINS_NAD_ADDR must be within 0x60U-0x6FU!!! #endif #define MESSAGE_ID_BLOCK_COUNT (0x08U) /* MESSAGE_ID_BLOCK_COUNT = 2^n n= 2,3,4.. */ #if (MESSAGE_ID_BLOCK_COUNT != 4U && MESSAGE_ID_BLOCK_COUNT != 8U && MESSAGE_ID_BLOCK_COUNT != 16U) #error Invalid MESSAGE_ID_BLOCK_COUNT count !!! #elif ((INIT_LINS_NAD_ADDR == 0x6CU || INIT_LINS_NAD_ADDR == 0x6DU) && MESSAGE_ID_BLOCK_COUNT != 4U) #error MESSAGE_ID_BLOCK_COUNT must be 4 when NAD is 0x6C or 0x6D!!! #endif /* it's only a reference, the real FID number is based on NAD according to SAEJ2602 */ #define DEFAULT_LINS_FID0 (0x00U) #define DEFAULT_LINS_FID1 (0x01U) #define DEFAULT_LINS_FID2 (0x02U) #define DEFAULT_LINS_FID3 (0x03U) #define DEFAULT_LINS_FID4 (0x04U) #define DEFAULT_LINS_FID5 (0x05U) #define DEFAULT_LINS_FID6 (0x06U) #define DEFAULT_LINS_FID7 (0x07U) #else #define INIT_LINS_NAD_ADDR (0x01U) #define DEFAULT_LINS_FID_SIZE (0x03U) /* count number defined by user */ /* FID number is set by user */ #define DEFAULT_LINS_FID0 (0x00U) #define DEFAULT_LINS_FID1 (0x06U) #define DEFAULT_LINS_FID2 (0x08U) void LINS_EventTriggered_ISR(void); #endif void LINS_TaskHandler(void); LIN_Device_Frame_t volatile *LINS_GetUcndFramesTable(uint8_t *tableItemsCount); void LINS_SendWakeUpSignal_ISR(void); uint8_t LINS_GetPIDFromFID(uint8_t frameId); void LINS_SetDeviceUnconfigured(void); uint8_t LINS_TransferMotorPhyParamtobuffBy3C(uint16_t *buff,uint8_t leng); void LINS_Transfer3CdataToPDS(uint16_t *buff,uint8_t leng); #endif