导图社区 CAN信号接口
这是一篇关于CAN信号接口的思维导图,主要内容包括:总线交互,Rte_Write_PI状态反馈,Rte_Read信号请求、软件接口框图、CAN信号接口框图、CAN调度接口时序图、诊断服务调度时序图、通讯信号调度的关系、DEM模块设计、Boost故障处理。
编辑于2025-09-07 15:47:40对外接口
RTE接口实现各模块之间的数据网关作用 1.起到数据隔离。 2.起到模块解耦的作用,接口先行。 3.统一的数据管理。
1. 总线交互
变更 V1.1 左右两边的信号接口合并
接收
BDCCAN
void Rte_Write_BDC_TurnLiStreamEna(uint8_t u8SigV)
void Rte_Write_BDC_FrntWlcmLampCmd(uint8_t u8SigV)
void Rte_Write_BDC_CHLPwrCmd(uint8_t u8SigV)
void Rte_Write_BDC_Anim_Cmd(uint8_t u8SigV)
void Rte_Write_BDC_BcmTurnIndcr(uint8_t u8SigV)
void Rte_Write_BDC_FrntPosLampCmd(uint8_t u8SigV)
void Rte_Write_BDC_HBCmd(uint8_t u8SigV)
void Rte_Write_BDC_DRLCmd(uint8_t u8SigV)
void Rte_Write_BDC_DRL_Mod(uint8_t u8SigV)
void Rte_Write_BDC_LBCmd(uint8_t u8SigV)
void Rte_Write_BDC_LiHighManuCmd(uint8_t u8SigV)
void Rte_Write_BDC_VcuRdySts(uint8_t u8SigV)
void Rte_Write_BDC_EspVehSpdVld(uint8_t u8SigV)
void Rte_Write_BDC_EspVehSpd(uint16_t u16SigV)
void Rte_Write_BDC_CdcTotMilg(uint32_t u32SigV)
void Rte_Write_BDC_BCM_PowerStatusFeedback(uint8_t u8SigV)
void Rte_Write_BDC_U_BATT(uint16_t u16SigV)
void Rte_Write_BDC_VcuGearPosn(uint8_t u8SigV)
void Rte_Write_BDC_TboxLocalTime(uint8_t *pStr)
接口重定向
uint8_t Rte_Read_BDC_TurnLiStreamEna(void)
0x0=Disable 0x1=Enable Normal Stream 0x2=Enable Fast Stream 0x3=Reserved
uint8_t Rte_Read_BDC_FrntWlcmLampCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_CHLPwrCmd(void)
0x0=Power off 0x1=Power on
uint8_t Rte_Read_BDC_Anim_Cmd(void)
0x0=OFF 0x1=Welcome1 0x2=Welcome2 0x3=Welcome3 0x4=Welcome4 0x5=Welcome5 0x6=Welcome6 0x7=Goodbye1 0x8=Goodbye2 0x9=Goodbye3 0xA=Goodbye4 0xB=Goodbye5 0xC=Goodbye6 0xD~0xF=Reserved
uint8_t Rte_Read_BDC_BcmTurnIndcr(void)
0x0=Off 0x1=ON 0x2=Not used 0x3=Error
uint8_t Rte_Read_BDC_FrntPosLampCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_HBCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_DRLCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_DRL_Mod(void)
0x0=Normal Mode 0x1=Low Power Mode
uint8_t Rte_Read_BDC_LBCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_LiHighManuCmd(void)
0x0=Initial 0x1=Level 1 0x2=Level 2 0x3=Level 3 0x4=Level 4 0x5=Level 5 0x8=Auto
0x286
uint8_t Rte_Read_BDC_VcuRdySts(void)
0x0=no Ready 0x1=Ready
uint8_t Rte_Read_BDC_EspVehSpdVld(void)
0x0=Valid 0x1=Invalid
uint16_t Rte_Read_BDC_EspVehSpd(void)
=Value*0.05625(km/h)
uint32_t Rte_Read_BDC_CdcTotMilg(void)
=Value*0.1(km)
uint8_t Rte_Read_BDC_BCM_PowerStatusFeedback(void)
0x0=Off 0x1=FBLpower 0x2=ON 0x3=Start
uint16_t Rte_Read_BDC_U_BATT(void)
=3+ Value*0.0009765625(V)
uint8_t Rte_Read_BDC_VcuGearPosn(void)
0x0=Reserved 0x1=P 0x2=R 0x3=N 0x4=D 0x5=Reserved
0x33D
void Rte_Read_BDC_TboxLocalTime(uint8_t *pStr)
* B0 TboxLocalTiYear * B1 TboxLocalTiMth * B2 TboxLocalTiDate * B3 TboxLocalTiHr * B4 TboxLocalTiMins * B5 TboxLocalTiSec * B6 TboxLocalTiVld
0x2F9
发送
BDCCAN
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LB_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LB_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_PL_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_PL_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_HB_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_HB_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_DRL_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_DRL_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_TI_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_TI_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LiHighManuSts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_Anim_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_WorkSts(void)
反馈灯光当前的驱动状态 Chli_L208/Chli_R209
发送 DTC码
uint8_t Dcm_19_GetDemCurrentDTC(uint8_t *pu8NumB);
2. HSI软硬件接口
IO In
uint8_t Rte_Read_PI_UC_TI_RL(void)
转向灯左右边检测0:左1:右
uint8_t Rte_Read_PI_UC_WakeUp_IN(void)
休眠/唤醒检测。0:唤醒1:休眠
IO Out
void Rte_Write_Po_UC_HS0_Enable(void)
void Rte_Write_Po_UC_HS1_Enable(void)
void Rte_Write_Po_UC_HS2_Enable(void)
void Rte_Write_Po_UC_HS3_Enable(void)
void Rte_Write_Po_UC_HS4_Enable(void)
void Rte_Write_Po_UC_HS5_Enable(void)
高边0~7使能
void Rte_Write_Po_UC_HS0_Disable(void)
void Rte_Write_Po_UC_HS1_Disable(void)
void Rte_Write_Po_UC_HS2_Disable(void)
void Rte_Write_Po_UC_HS3_Disable(void)
void Rte_Write_Po_UC_HS4_Disable(void)
void Rte_Write_Po_UC_HS5_Disable(void)
高边0~7禁用
void Rte_Write_Po_UC_LS0_Enable(void)
void Rte_Write_Po_UC_LS1_Enable(void)
低边0~1使能
void Rte_Write_Po_UC_LS0_Disable(void)
void Rte_Write_Po_UC_HS1_Disable(void)
低边0~1禁用
void Rte_Write_Po_UC_StepCtrl1_Enable(void)
void Rte_Write_Po_UC_StepCtrl2_Enable(void)
void Rte_Write_Po_UC_StepCtrl3_Enable(void)
void Rte_Write_Po_UC_StepCtrl4_Enable(void)
电机IO使能
void Rte_Write_Po_UC_StepCtrl1_Disable(void)
void Rte_Write_Po_UC_StepCtrl2_Disable(void)
void Rte_Write_Po_UC_StepCtrl3_Disable(void)
void Rte_Write_Po_UC_StepCtrl4_Disable(void)
电机IO禁用
void Rte_Write_Po_UC_14V_Out_Enable(void)
void Rte_Write_Po_UC_14V_Out_Disable(void)
Boost供电的控制
void Rte_Write_Po_UC_Boost_Enable(void)
void Rte_Write_Po_UC_Boost_Disable(void)
Boost模块使能控制
void Rte_Write_Po_UC_CV1_Enable(void)
void Rte_Write_Po_UC_CV1_Disable(void)
void Rte_Write_Po_UC_CV2_Enable(void)
void Rte_Write_Po_UC_CV2_Disable(void)
BuckCV恒压通道使用控制
void Rte_Write_Po_UC_WD_Enable(void)
void Rte_Write_Po_UC_WD_Disable(void)
看门狗的使能和禁用控制
void Rte_Write_Po_UC_WD_OpenWin(void)
void Rte_Write_Po_UC_WD_CloseWin(void)
外部看门狗的开闭窗控制
IO诊断
void Rte_Write_Po_UC_DiagHS0_Enable(void)
void Rte_Write_Po_UC_DiagHS1_Enable(void)
void Rte_Write_Po_UC_DiagHS2_Enable(void)
void Rte_Write_Po_UC_DiagHS3_Enable(void)
高边0~3诊断,同时只能使能一路
void Rte_Write_Po_UC_DiagHS4_Enable(void)
void Rte_Write_Po_UC_DiagHS5_Enable(void)
高边4~5同时只能使能一路
Std_RtnType Rte_Read_PI_UC_HS0_3_Error(void)
Std_RtnType Rte_Read_PI_UC_HS4_5_Error(void)
高边故障反馈脚,取决余高边诊断使能了那一路
Std_RtnType Rte_Read_PI_UC_BuckCV1_Error(void)
Std_RtnType Rte_Read_PI_UC_BuckCV2_Error(void)
buckCV1/CV2恒压故障
Std_RtnType Rte_Read_PI_UC_BuckCC1_Error(void)
Std_RtnType Rte_Read_PI_UC_BuckCC2_Error(void)
Std_RtnType Rte_Read_PI_UC_BuckCC3_Error(void)
buck1/2/3恒流故障
Std_RtnType Rte_Read_PI_UC_Boost1_Error(void)
Std_RtnType Rte_Read_PI_UC_Boost2_Error(void)
Boost升压故障反馈
AD
uint16_t Adc_ReadIndexResult(uint8_t u8Index)
//Channel 0 #define User_BIN1_AD 0 #define User_BIN2_AD 1 #define User_BIN3_AD 2 #define User_BIN4_AD 3 #define User_BIN5_AD 4 #define User_CH6_CV_AI_MCU_AD 5 #define User_CH7_CV_AI_MCU_AD 6 #define User_PWR_14V_AI_MCU_AD 7 #define User_HB3_IS_MCU_AD 8 #define User_5V_AI_MCU_AD 9 #define User_HB1_CS_MCU_AD 10 #define User_VBAT_14V_OUT_AI_MCU_AD 11 //Channel 1 #define User_13_AD 12 #define User_11_AD 13 #define User_5V_OUT_AI_MCU_AD 14 #define User_AD_RT_AD 15 #define User_TMP1_AD 16 #define User_TMP2_AD 17 #define User_TMP3_AD 18 #define User_TMP4_AD 19 #define User_14V_P_AI_MCU_MCU_AD 20 #define User_KL15_WAKE_ADC_MCU_AD 21 #define User_CV_55V_OUT_AI_MCU_AD 22 #define User_12_AD 23 #define User_VBAT_AI_MCU_AD 24
UART
uint8_t Rte_Write_PO_UART_Send(uint8_t u8Ch,uint8_t *pTxBuf, uint16_t u16Length)
UART发送命令异步
uint8_t Rte_Read_PI_UART_Receive(uint8_t u8Ch,uint8_t *pRxBuf, uint16_t u16Length)
UART接收数据异步
uint8_t Rte_Read_PO_UART_Send_End(uint8_t u8Ch,uint8_t u8MS)
等待指定时间内是否发送成功
uint8_t Rte_Read_PI_UART_Receive_End(uint8_t u8Ch,uint8_t u8MS)
等待指定时间内是否接收成功
void Rte_UartChangeBadurate(void)
串口变速
BSW接口
void LedUart_Init(void)
初始化UART
uint8_t LedUart_GetRxBufEnd(uint8_t u8Ch,uint8_t u8TimeoutMs)
判断指定时间内接收数据是否完成 * 0,command error. * 1,command success. * 2,command timeout.
uint8_t LedUart_GetTxBufEnd(uint8_t u8Ch,uint8_t u8TimeoutMs)
判断指定时间内发送数据是否完成 * 0,command error. * 1,command success. * 2,command timeout.
void LedUart_SetTxBuf(uint8_t u8Ch,uint8_t *pu8TxBuf,uint16_t u16TxNum)
UART_SendBreak
LedUart_DMATransferConfig
DMA_ChannelRequestEnable
DMA_GetDoneStatus
设置发送数据请求异步
void LedUart_SetRxBuf(uint8_t u8Ch,uint8_t *pu8RxBuf,uint16_t u16RxNum)
设置接收数据请求异步
void LedUart_ChangeBadurate(void)
设置串口变速
Uart1/uart3 发送使用DMA 接收使用轮询
LimpHome
void Rte_Write_Po_UC_ExitLimphome(void)
退出limphome
void Rte_Write_Po_UC_EnterLimphome(void)
进入limphome
3. 看门狗
void WdgEx_TaskHeartBeatAlive(uint8_t u8TaskId)
针对外部看门狗关键任务的监控心跳机制
void WdgEx_Init(void)
由于是窗看门狗,必须在应用层初始化之后,任务启动之前调用
void WdgEx_DeInit(void)
运行超时任务和下电休眠前必须关闭
void WdgEx_Task(void)
看门狗的监控任务,必须在超时周期的1/5的任务里面调度
4. 诊断回调接口
Dcm_NRC_Type DcmCbk_Serv2F_IoCtrlSubApi0xFDxxIO0x0(uint8_t* pu8ResultBuf, uint8_t* pu8Len)
return control to ECU
Dcm_NRC_Type DcmCbk_Serv2F_IoCtrlSubApi0xFDxxIO0x3(uint8_t* pu8ResultBuf, uint8_t* pu8Len);
Dcm Short Term Control
Dcm_NRC_Type DcmCbk_Serv22_DynamicDidApi0xXXXX(uint8_t* pu8Str, uint16_t u16Len)
DID读接口用户需要填充内容
Std_RtnType DcmCbk_Serv19_DemApi0xXXXXXX(void)
用户需要填充当前DTC的状态
Std_RtnType DcmCbk_Serv19_PreCheckApiXXXXXXX(void)
用户需要填充DTC记录的前置条件
void DcmCbk_Serv19_SnapshotRecN1DidApi0xXXXX(uint8_t* pu8Str, uint8_t u8Len)
用户填充快照的内容
5. 数据处理
告警管理
void Rte_Write_PI_LowVoltAlarm(uint8_t u8AlarmLevel)
低压告警
void Rte_Write_PI_HighVoltAlarm(uint8_t u8AlarmLevel)
高压告警
void Rte_Write_PI_Turn_HighTempAlarm(uint8_t u8AlarmLevel)
转向灯高温告警等级
void Rte_Write_PI_DRL_HighTempAlarm(uint8_t u8AlarmLevel)
日行灯高温告警等级
void Rte_Write_PI_LBHB_HighTempAlarm(uint8_t u8AlarmLevel)
远近光高温告警等级
void Rte_Write_PI_Motor_HighTempAlarm(uint8_t u8AlarmLevel)
电机高温告警等级
void Rte_Write_PI_AbnormalDerateAlarm(uint8_t u8AlarmLevel)
降额告警等级
接口重定向
uint8_t Rte_Read_PI_LowVoltAlarm(void)
uint8_t Rte_Read_PI_HighVoltAlarm(void)
uint8_t Rte_Read_PI_HighTempAlarm(void)
uint8_t Rte_Read_PI_MotorHighTempAlarm(void)
"0表示正常 1表示故障"
uint8_t Rte_Read_PI_AbnormalDerateAlarm(void)
降额告警 远近光和日行灯 0表示正常 1表示降额至70% 2表示降额至49% 3表示故障关闭
状态更新
void Rte_Write_PI_Comm_Enable_Req(uint8_t u8State)
网络使能请求
void Rte_Write_PI_Wake_Sleep_Req(uint8_t u8State)
网络唤醒
接口重定向
uint8_t Rte_Read_PI_Comm_Enable_Req(void)
uint8_t Rte_Read_PI_Wake_Sleep_Req(void)
"0表示无请求 1表示有请求"
6. 复杂驱动
BoostBuck控制
Std_RtnType BoostDrv_Init(void)
(CPS5453)BOOST initial
Std_RtnType BucktDrv_Init(void)
(CPSQ5352DR)BUCK- initial
void BoostBuck_Monitor(void)
监控boost和buck的状态
Std_RtnType Boost_OutEn(uint8_t u8voltage)
Boost输出指定的电压
Std_RtnType Buck_Out(uint8_t u8Ch,uint16_t u16IcmA,uint8_t u8En)
Buck指定通道输出指定的电流
uint8_t BuckBoost_ReadReg( uint8_t u8Device,uint8_t u8Addr,uint8_t *State)
读取指定地址Buck或者boost的寄存数据,需要调用两次
uint8_t BuckBoost_WriteReg( uint8_t u8Device,uint8_t u8Addr,uint8_t u8Data,uint8_t *State)
往指定地址写入buck或者boost的寄存器数据
BSW接口
void BuckCCSpi_Init(void)
通讯SPI初始化
uint8_t BuckCCSpi_SetEBSync( uint8_t u8Device, uint8_t * const pu8TxBuf, uint16_t u16TxNum, uint8_t * const pu8RxBuf)
SPI的收发同步接口 * 0,command error. * 1,command success. * 2,command timeout.
SPI2 1MHZ device #define SPI_Boost 0 #define SPI_Buck1 1 #define SPI_Buck2 2 #define SPI_Buck3 3 Boost(CPS5453) Buck(CPS5352)
寄出器定义见BuckBoostDrv.h
Std_RtnType BuckBoost_ShutDown(void)
下电关闭buckboost输出,或者刷写跳转前
SBC控制
Std_RtnType SBCDrv_Init(void)
初始化SBC进行通讯即可,关闭看门狗
BSW接口
void SBCSpi_Init(void)
通讯SPI初始化
uint8_t SBCSpi_SetEBSync( uint8_t * const pu8TxBuf, uint16_t u16TxNum, uint8_t * const pu8RxBuf)
SPI的收发同步接口 * 0,command error. * 1,command success. * 2,command timeout.
SPI1 1MHZ MCAN14654
寄存器定义见SBCDrv.h
Std_RtnType SBC_ShutDown(void)
下电关闭SBC并且使能报文唤醒
步进电机控制
void MotorDrv_Init(void)
电机初始化
uint16_t MotorDrv_ReadReg(uint8_t u8Addr,uint8_t *u8State)
读取指定地址的寄存器值
uint16_t MotorDrv_ReadClearReg(uint8_t u8Addr,uint8_t *u8State)
读取指定地址的寄存器值并且清除状态
uint16_t MotorDrv_WriteReg(uint8_t u8Addr,uint16_t u16Data,uint8_t *u8State)
往指地址写入数据
void MotorTimer_IntCallBack(void)
电机控制的中断接口,用户需要实现
void MotorTimer_init(void)
电机控制的定时器TIM1
BSW接口
void MotorSpi_Init(void)
通讯SPI初始化
uint8_t MotorSpi_SetEBSync( uint8_t * const pu8TxBuf, uint16_t u16TxNum, uint8_t * const pu8RxBuf)
SPI的收发同步接口 * 0,command error. * 1,command success. * 2,command timeout.
SPI0 1MHZ NSD8381-Q1QANR
寄存器定义见MotorDrv.h
void Motor_ShutDown(void)
下电关闭电机模块
7. 执行反馈
MKH项目B2版接口框图定义 日期-2025-08-22 作者-吴贵忠 公司-凯创通合 邮箱;guizhong.wu@cn-kcth.com
灯光状态
void Rte_Write_PI_DriverWork_Sts(uint8_t u8Sts)
LDM的驱动状态 0x0=not working 0x1=working 0x2=error 0x3=Invalid
void Rte_Write_PI_Anim_Sts(uint8_t u8Sts)
动画运行状态 0x0=OFF 0x1=Welcome1 0x2=Welcome2 0x3=Welcome3 0x4=Welcome4 0x5=Welcome5 0x6=Welcome6 0x7=Goodbye1 0x8=Goodbye2 0x9=Goodbye3 0xA=Goodbye4 0xB=Goodbye5 0xC=Goodbye6 0xD~0xF=Reserved
void Rte_Write_PI_LiHighManu_Sts(uint8_t u8Sts)
大灯的位置 0x0=Initial 0x1=Level 1 0x2=Level 2 0x3=Level 3 0x4=Level 4 0x5=Level 5 0x8=Auto
void Rte_Write_PI_DRL_Sts(uint8_t u8Sts)
日行灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_Position_Sts(uint8_t u8Sts)
位置灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_Turn_Sts(uint8_t u8Sts)
转向灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_HB_Sts(uint8_t u8Sts)
远光灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_LB_Sts(uint8_t u8Sts)
近光灯状态 0x0=关闭 0x1=开启
灯光故障
void Rte_Write_PI_LB_Fault(uint8_t u8FaultSt)
近光灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_HB_Fault(uint8_t u8FaultSt)
远光灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_Turn_Fault(uint8_t u8FaultSt)
转向灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_Position_Fault(uint8_t u8FaultSt)
位置灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_DRL_Fault(uint8_t u8FaultSt)
日行灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_Led_Driver_IC_Fault(uint8_t u8FaultSt)
驱动IC故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
CDD模块故障
Boost故障
void Rte_Write_PI_Boost_Fault(uint8_t u8FaultSt)
Buck故障
void Rte_Write_PI_Buck1_Fault(uint8_t u8FaultSt)
void Rte_Write_PI_Buck2_Fault(uint8_t u8FaultSt)
void Rte_Write_PI_Buck3_Fault(uint8_t u8FaultSt)
接口重定向
uint8_t Rte_Read_PI_Boost_Fault(void)
uint8_t Rte_Read_PI_Buck1_Fault(void)
uint8_t Rte_Read_PI_Buck2_Fault(void)
uint8_t Rte_Read_PI_Buck3_Fault(void)
0x0=无故障 0x1=通讯丢失 0x2=其他故障 0x3=保留
1.新增Bdc33D的信号Rte接口。 2.新增Gw2F9的信号Rte接口 3.新增llimphome的Rte接口
CAN信号接口
RTE接口实现各模块之间的数据网关作用 1.起到数据隔离。 2.起到模块解耦的作用,接口先行。 3.统一的数据管理。
1. 总线交互
接收
BDCCAN
BDC286
void Rte_Write_BDC_TurnLiStreamEna(uint8_t u8SigV)
void Rte_Write_BDC_FrntWlcmLampCmd(uint8_t u8SigV)
void Rte_Write_BDC_CHLPwrCmd(uint8_t u8SigV)
void Rte_Write_BDC_Anim_Cmd(uint8_t u8SigV)
void Rte_Write_BDC_BcmTurnIndcr(uint8_t u8SigV)
void Rte_Write_BDC_FrntPosLampCmd(uint8_t u8SigV)
void Rte_Write_BDC_HBCmd(uint8_t u8SigV)
void Rte_Write_BDC_DRLCmd(uint8_t u8SigV)
void Rte_Write_BDC_DRL_Mod(uint8_t u8SigV)
void Rte_Write_BDC_LBCmd(uint8_t u8SigV)
void Rte_Write_BDC_LiHighManuCmd(uint8_t u8SigV)
BDC33D
void Rte_Write_BDC_VcuRdySts(uint8_t u8SigV)
void Rte_Write_BDC_EspVehSpdVld(uint8_t u8SigV)
void Rte_Write_BDC_EspVehSpd(uint16_t u16SigV)
void Rte_Write_BDC_CdcTotMilg(uint32_t u32SigV)
void Rte_Write_BDC_BCM_PowerStatusFeedback(uint8_t u8SigV)
void Rte_Write_BDC_U_BATT(uint16_t u16SigV)
void Rte_Write_BDC_VcuGearPosn(uint8_t u8SigV)
void Rte_Write_BDC_IbBrkPedlStsGb(uint8_t u8SigV)
void Rte_Write_BDC_CDCLiSwtPosn(uint8_t u8SigV)
void Rte_Write_BDC_VIULiSwtPosnSts(uint8_t u8SigV)
void Rte_Write_BDC_RLS_Light_switch_reason(uint8_t u8SigV)
void Rte_Write_BDC_VIU_AdpvHiBeamFctOnCmd(uint8_t u8SigV)
void Rte_Write_BDC_VDC_AccPedalActualPosition(uint16_t u16SigV)
void Rte_Write_BDC_EpsSasSteerAg(uint16_t u16SigV)
Gw2F9
void Rte_Write_BDC_TboxLocalTime(uint8_t *pStr)
Bdc288
void Rte_Write_BDC_BcmFrntWiperSts(uint8_t u8SigV)
Srs15D
void Rte_Write_Esp_LatAccel(uint16_t u16SigV)
void Rte_Write_Esp_LgtAccel(uint16_t u16SigV)
void Rte_Write_Esp_YawRate(uint16_t u16SigV)
void Rte_Write_Esp_LatAccelVld(uint8_t u8SigV)
void Rte_Write_Esp_LgtAccelVld(uint8_t u8SigV)
void Rte_Write_Esp_YawRateVld(uint8_t u8SigV)
EDC_State134
void Rte_Write_EDC_FL_Altitude(uint16_t u16SigV)
void Rte_Write_EDC_FR_Altitude(uint16_t u16SigV)
void Rte_Write_EDC_RL_Altitude(uint16_t u16SigV)
void Rte_Write_EDC_RR_Altitude(uint16_t u16SigV)
void Rte_Write_EDC_FL_AltitudeSensorValid(uint8_t u8SigV)
void Rte_Write_EDC_FL_AltitudeSensor(uint16_t u16SigV)
void Rte_Write_EDC_FR_AltitudeSensorValid(uint8_t u8SigV)
void Rte_Write_EDC_FR_AltitudeSensor(uint16_t u16SigV)
void Rte_Write_EDC_RL_AltitudeSensorValid(uint8_t u8SigV)
void Rte_Write_EDC_RL_AltitudeSensor(uint16_t u16SigV)
void Rte_Write_EDC_RR_AltitudeSensorValid(uint8_t u8SigV)
void Rte_Write_EDC_RR_AltitudeSensor(uint16_t u16SigV)
Mdc222
void Rte_Write_MDC_MdcAccX(uint16_t u16SigV)
void Rte_Write_MDC_MdcAccY(uint16_t u16SigV)
void Rte_Write_MDC_MdcAccZ(uint16_t u16SigV)
void Rte_Write_MDC_MdcGyroX(uint16_t u16SigV)
void Rte_Write_MDC_MdcGyroY(uint16_t u16SigV)
void Rte_Write_MDC_MdcGyroZ(uint16_t u16SigV)
void Rte_Write_MDC_MdcRollAne(uint16_t u16SigV)
void Rte_Write_MDC_MdcPitchAne(uint16_t u16SigV)
void Rte_Write_MDC_MdcYawAne(uint16_t u16SigV)
void Rte_Write_MDC_MdcTimeStampValid(uint8_t u8SigV)
void Rte_Write_MDC_MdcAccValid(uint8_t u8SigV)
void Rte_Write_MDC_MdcGyroValid(uint8_t u8SigV)
void Rte_Write_MDC_MdcAttitudeValid(uint8_t u8SigV)
void Rte_Write_MDC_MdcPositionTyp(uint8_t u8SigV)
void Rte_Write_MDC_MdcTimeStamp(uint32_t u32SigV)
ADS_LCU_Adb_St1
void Rte_Write_ADS_CamSts(uint8_t u8SigV)
void Rte_Write_ADS_ObjNr(uint8_t u8SigV)
void Rte_Write_ADS_AmbLi(uint8_t u8SigV)
void Rte_Write_ADS_MPC_Obj_TrfcStyle(uint8_t u8SigV)
void Rte_Write_ADS_Adb_Timestamp(uint64_t u64SigV)
void Rte_Write_ADS_ADB_Obj(uint8_t u8ObjId,Rte_ADS_DataType *umObj)
ADS_LCU_Adb_St2
void Rte_Write_ADS_ADB_Obj(uint8_t u8ObjId,Rte_ADS_DataType *umObj)
ADS_LCU_Adb_St3
void Rte_Write_ADS_ADB_Obj(uint8_t u8ObjId,Rte_ADS_DataType *umObj)
ADS_LCU_Adb_St4
void Rte_Write_ADS_ADB_Obj(uint8_t u8ObjId,Rte_ADS_DataType *umObj)
发送
BDCCAN
Chli_L208/Chli_R209
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LB_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LB_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_PL_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_PL_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_HB_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_HB_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_DRL_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_DRL_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_TI_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_TI_LEDFailure(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LiHighManuSts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_Anim_Sts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_WorkSts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LdmlAdpvFrntLtgWSts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LdmlAdpvFrntLtgLEDSts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LdmlStepMotIninSts(void)
uint8_t Rte_Read_RL_LDM_FeedBack_Sig_LdmlAdpvFrntLtgCfgFb(void)
CHLI_LDtc688/CHLI_RDtc689
uint8_t Dcm_19_GetDemCurrentDTC(uint8_t *pu8NumB);
CHLI_L5C8/CHLI_R5C9
uint8_t Rte_Read_PI_WakeupSource(void)
uint8_t Rte_Read_PI_KeepNetworkOnlineSource(void)
2. Rte_Write_PI状态反馈
灯光状态
void Rte_Write_PI_DriverWork_Sts(uint8_t u8Sts)
LDM的驱动状态 0x0=not working 0x1=working 0x2=error 0x3=Invalid
void Rte_Write_PI_Anim_Sts(uint8_t u8Sts)
动画运行状态 0x0=OFF 0x1=Welcome1 0x2=Welcome2 0x3=Welcome3 0x4=Welcome4 0x5=Welcome5 0x6=Welcome6 0x7=Goodbye1 0x8=Goodbye2 0x9=Goodbye3 0xA=Goodbye4 0xB=Goodbye5 0xC=Goodbye6 0xD~0xF=Reserved
void Rte_Write_PI_LiHighManu_Sts(uint8_t u8Sts)
大灯的位置 0x0=Initial 0x1=Level 1 0x2=Level 2 0x3=Level 3 0x4=Level 4 0x5=Level 5 0x8=Auto
void Rte_Write_PI_DRL_Sts(uint8_t u8Sts)
日行灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_Position_Sts(uint8_t u8Sts)
位置灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_Turn_Sts(uint8_t u8Sts)
转向灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_HB_Sts(uint8_t u8Sts)
远光灯状态 0x0=关闭 0x1=开启
void Rte_Write_PI_LB_Sts(uint8_t u8Sts)
近光灯状态 0x0=关闭 0x1=开启
灯光故障
void Rte_Write_PI_LB_Fault(uint8_t u8FaultSt)
近光灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_HB_Fault(uint8_t u8FaultSt)
远光灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_Turn_Fault(uint8_t u8FaultSt)
转向灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_Position_Fault(uint8_t u8FaultSt)
位置灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_DRL_Fault(uint8_t u8FaultSt)
日行灯故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
void Rte_Write_PI_Led_Driver_IC_Fault(uint8_t u8FaultSt)
驱动IC故障 0x0=无故障 0x1=开路 0x2=短路 0x3=保留
自适应远光
void Rte_Write_PI_LdmlAdpvFrntLtgWSts(uint8_t u8Sts)
0x0=Initial 0x1=无目标物开启 0x2=有目标物开启 0x3=关闭 0x4~0x7=Reserved
void Rte_Write_PI_LdmlAdpvFrntLtgLEDSts(uint8_t u8Sts)
0~255
void Rte_Write_PI_LdmlStepMotIninSts(uint8_t u8Sts)
0x0=Initial 0x1=初始化开始 0x2=初始化完成 0x3=初始化故障 0x4=预留 0x5=预留 0x6=预留 0x7=预留
void Rte_Write_PI_LdmlAdpvFrntLtgCfgFb(uint8_t u8Sts)
0x0=Initial 0x1=ADB配置 0x2=非ADB配置
3. Rte_Read信号请求
整车状态反馈
uint8_t Rte_Read_BDC_VcuRdySts(void)
0x0=no Ready 0x1=Ready
uint8_t Rte_Read_BDC_EspVehSpdVld(void)
0x0=Valid 0x1=Invalid
uint16_t Rte_Read_BDC_EspVehSpd(void)
=Value*0.05625(km/h)
uint32_t Rte_Read_BDC_CdcTotMilg(void)
=Value*0.1(km)
uint8_t Rte_Read_BDC_BCM_PowerStatusFeedback(void)
0x0=Off 0x1=FBLpower 0x2=ON 0x3=Start
uint16_t Rte_Read_BDC_U_BATT(void)
=3+ Value*0.0009765625(V)
uint8_t Rte_Read_BDC_VcuGearPosn(void)
0x0=Reserved 0x1=P 0x2=R 0x3=N 0x4=D 0x5=Reserved
uint8_t Rte_Read_BDC_IbBrkPedlStsGb(void)
0x0=制动未踩下 0x65=制动踩下
uint8_t Rte_Read_BDC_CDCLiSwtPosn(void)
0x0=OFF 0x1=POSITION_LIGHT 0x2=LOW_BEAM 0x3=AUTO_MODE 0x7=UNKNOWN
uint8_t Rte_Read_BDC_VIULiSwtPosnSts(void)
0x0=OFF 0x1=POSITION_LIGHT 0x2=LOW_BEAM 0x3=AUTO_MODE 0x7=UNKNOWN
uint8_t Rte_Read_BDC_RLS_Light_switch_reason(void)
0x0=Day(日间) 0x1=Twilight(黄昏) 0x2=Darkness(黑夜) 0x3=Precipitation(下雨) 0x4=Tunnel(隧道) 0x5=Underground car park Exit from tunnel/underground car park(出隧道或地库) 0x6=High speed(高速) 0x7=Signal invalid(不可用)
uint8_t Rte_Read_BDC_VIU_AdpvHiBeamFctOnCmd(void)
0x0=Initial 0x1=Off 0x2=On 0x3=Invalid
uint16_t Rte_Read_BDC_VDC_AccPedalActualPosition(void)
=Value*0.1
uint16_t Rte_Read_BDC_EpsSasSteerAg(void)
=Value*0.1
0x33D
整车时间反馈
void Rte_Read_BDC_TboxLocalTime(uint8_t *pStr)
* B0 TboxLocalTiYear * B1 TboxLocalTiMth * B2 TboxLocalTiDate * B3 TboxLocalTiHr * B4 TboxLocalTiMins * B5 TboxLocalTiSec * B6 TboxLocalTiVld
0x2F9
整车点灯请求
uint8_t Rte_Read_BDC_TurnLiStreamEna(void)
0x0=Disable 0x1=Enable Normal Stream 0x2=Enable Fast Stream 0x3=Reserved
uint8_t Rte_Read_BDC_FrntWlcmLampCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_CHLPwrCmd(void)
0x0=Power off 0x1=Power on
uint8_t Rte_Read_BDC_Anim_Cmd(void)
0x0=OFF 0x1=Welcome1 0x2=Welcome2 0x3=Welcome3 0x4=Welcome4 0x5=Welcome5 0x6=Welcome6 0x7=Goodbye1 0x8=Goodbye2 0x9=Goodbye3 0xA=Goodbye4 0xB=Goodbye5 0xC=Goodbye6 0xD~0xF=Reserved
uint8_t Rte_Read_BDC_BcmTurnIndcr(void)
0x0=Off 0x1=ON 0x2=Not used 0x3=Error
uint8_t Rte_Read_BDC_BcmTurnCompareIndcr(void)
0x0=Off 0x1=ON 0x2=Not used 0x3=Error
uint8_t Rte_Read_BDC_FrntPosLampCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_HBCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_DRLCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_DRL_Mod(void)
0x0=Normal Mode 0x1=Low Power Mode
uint8_t Rte_Read_BDC_LBCmd(void)
0x0=OFF 0x1=ON
uint8_t Rte_Read_BDC_LiHighManuCmd(void)
0x0=Initial 0x1=Level 1 0x2=Level 2 0x3=Level 3 0x4=Level 4 0x5=Level 5 0x8=Auto
0x286
ESP加速度
uint16_t Rte_Read_Esp_LatAccel(void)
=(Value*0.01) - 49.9 m/s2
uint16_t Rte_Read_Esp_LgtAccel(void)
=(Value*0.01) - 49.9 m/s2
uint16_t Rte_Read_Esp_YawRate(void)
=(Value*0.01) - 81.91 degree/s
uint8_t Rte_Read_Esp_LatAccelVld(void)
0x0=Initializing 0x1=Valid 0x2=Invalid 0x3=Reserved
uint8_t Rte_Read_Esp_LgtAccelVld(void)
0x0=Initializing 0x1=Valid 0x2=Invalid 0x3=Reserved
uint8_t Rte_Read_Esp_YawRateVld(void)
0x0=Initializing 0x1=Valid 0x2=Invalid 0x3=Reserved
0x15D
MDC的加速度
uint16_t Rte_Read_MDC_MdcAccX(void)
=(Value*0.002) - 65.536 m/s2
uint16_t Rte_Read_MDC_MdcAccY(void)
=(Value*0.002) - 65.536 m/s2
uint16_t Rte_Read_MDC_MdcAccZ(void)
=(Value*0.002) - 65.536 m/s2
uint16_t Rte_Read_MDC_MdcGyroX(void)
=(Value*0.01) - 327.68 dps
uint16_t Rte_Read_MDC_MdcGyroY(void)
=(Value*0.01) - 327.68 dps
uint16_t Rte_Read_MDC_MdcGyroZ(void)
=(Value*0.01) - 327.68 dps
uint16_t Rte_Read_MDC_MdcRollAne(void)
=(Value*0.01) - 180 degree
uint16_t Rte_Read_MDC_MdcPitchAne(void)
=(Value*0.01) - 180 degree
uint16_t Rte_Read_MDC_MdcYawAne(void)
=(Value*0.01) - 180 degree
uint8_t Rte_Read_MDC_MdcTimeStampValid(void)
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_MDC_MdcAccValid(void)
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_MDC_MdcGyroValid(void)
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_MDC_MdcAttitudeValid(void)
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_MDC_MdcPositionTyp(void)
0x0=No Solution 0x1=Gnss 0x2=RTK
uint32_t Rte_Read_MDC_MdcTimeStamp(void)
0~0xFFFFFFFF
0x222
ADS障碍物数据
uint8_t Rte_Read_ADS_CamSts(void)
0x0=On Passive 0x1=On Active 0x2=On Reduced Sight 0x3=On Faliure 0x4=Off 0x5~0xD=Reserved 0xE=Initating 0xF=Not Available
uint8_t Rte_Read_ADS_ObjNr(void)
0x0=No Object Detected 0x1=1 Object Detected 0x2=2 Object Detected 0x3=3 Object Detected 0x4=4 Object Detected 0x5=5 Object Detected 0x6=6 Object Detected 0x7=7 Object Detected 0x8=8 Object Detected 0x9=9 Object Detected 0xA=10 Object Detected 0xB=>10 Object Detected 0xC~0xD=Reserved 0xE=Initating 0xF=Not Available
uint8_t Rte_Read_ADS_AmbLi(void)
0x0=No Object Detected 0x1=Day 0x2=Night with Road Lamp 0x3=Night without Road Lamp 0x4~0xD=Reserved 0xE=Initating 0xF=Not Available
uint8_t Rte_Read_ADS_MPC_Obj_TrfcStyle(void)
0x0=Unknow 0x1=Right Hand Traffic 0x2=Left Hand Traffic 0x3~0xD=Reserved 0xE=Initating 0xF=Not Available
uint64_t Rte_Read_ADS_Adb_Timestamp(void)
0~0xFFFFFFFFFFFFFFFF
void Rte_Read_ADS_ADB_Obj(uint8_t u8ObjId,Rte_ADS_DataType **umObj)
@param[in] u8ObjId :1`10 @param[out] umObj :ADB OBJ point
0x150 0x15B 0x15C 0x153
前雨刮
uint8_t Rte_Read_BDC_BcmFrntWiperSts(void)
0x0=Off 0x1=Low 0x2=High 0x3=Erro
0x288
EDC车身高度数据
uint16_t Rte_Read_EDC_FL_Altitude( void )
* =(Value*0.1) + 200 mm * min = 200 * max = 1019.1
uint16_t Rte_Read_EDC_FR_Altitude( void )
* =(Value*0.1) + 200 mm * min = 200 * max = 1019.1
uint16_t Rte_Read_EDC_RL_Altitude( void )
* =(Value*0.1) + 200 mm * min = 200 * max = 1019.1
uint16_t Rte_Read_EDC_RR_Altitude( void )
* =(Value*0.1) + 200 mm * min = 200 * max = 1019.1
uint16_t Rte_Read_EDC_FL_AltitudeSensor( void )
* =(Value*0.024) % * min = 0 * max = 196.584
uint16_t Rte_Read_EDC_FR_AltitudeSensor( void )
* =(Value*0.024) % * min = 0 * max = 196.584
uint16_t Rte_Read_EDC_RL_AltitudeSensor( void )
* =(Value*0.024) % * min = 0 * max = 196.584
uint16_t Rte_Read_EDC_RR_AltitudeSensor( void )
* =(Value*0.024) % * min = 0 * max = 196.584
uint8_t Rte_Read_EDC_FR_AltitudeSensorValid( void )
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_EDC_FL_AltitudeSensorValid( void )
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_EDC_RL_AltitudeSensorValid( void )
0x0=Invalid 0x1=Valid
uint8_t Rte_Read_EDC_RR_AltitudeSensorValid( void )
0x0=Invalid 0x1=Valid
0x134
MKH项目B2版CAN信号接口框图定义 日期-2025-09-02 作者-吴贵忠 公司-凯创通合 邮箱;guizhong.wu@cn-kcth.com
CAN
CanCfg_Can0RxMbCbk (u32MbIdx)
CANRx中断
CanPdur_RxMbCbk (0, u32MbIdx);
CAN_GetMsgBuff( u8Channel, u32MbIdx, &g_umPduRxTmpT)
CanPdur_RecordReciveData (u8Channel);
CanCfg_MsgRegister()
初始化
CanIf_DeInit (u8Ch)
CanIf_Init (u8Ch)
CanDriver_Init (u8Ch)
CAN_LL
CanDriver_PopRxEvent()
5MS任务
CanPdur_RxMbCbk(0,u32MbIdx);
CAN_GetMsgBuff ((u8Channel, u32MbIdx, &g_umPduRxTmpT)
CanPdur_RecordReciveData(u8Channel);
CanIf_Task(0)
5MS任务
CanIf_Init(u8Ch);
CanIf_BusOffCheck(u8Ch)
CanIf_Init (u8Ch);
CanPdur_GetBusOffFlag (u8Ch)
CanIf_BusOffRecoveyCheck(u8Ch)
CanPdur_TxTask(u8Ch)
CanPdur_StartAppTxTimer()
CanPdur_TxOnePDU (PDU, TxCtrl)
CanPdur_TxTrigger (PDU, TxCtrl)
CanPdur_TxAppTrigger (PDU, TxCtrl)
CanPdur_TxNmTrigger (PDU, TxCtrl)
CanMsg_Tx0xxxPacketChx
Rte_Read_RL_LDM_FeedBack_Sig_xxx
CanPdur_SendPdu (u8Channel, u32FrameId, au8schmTxDb, u8FrameLen, u8Brs,u8FD)
CAN_Send()
CanMsg_Tx0xXXXConfirmChX
CanPdur_RxTask(u8Ch)
CanPdur_ParseRxMsg (rxMsg)
CanPdur_ParseOneRxMsg (PDU, RxMsg, pu32rxTickPtr)
CanMsg_Rx0xxxxParseChx (pumPdu)
E2EProfile1_Check
E2EProfile1_GetCrcFault
E2EProfile1_GetAliveFault
Rte_Write_BDC_Sigxxx
CanMsg_RxNMGroupParse
CanNm_InformRxIndication
CanNm_InformRxRepeatBitIndicator
CanNm_InformRxWakeupBitIndicator
CanMsg_RxPhyDcmParseCh0
CanTp_RxMsgParse (E_Dcm_Phy_Req_Adr, au8Data, u8DLC)
CanMsg_RxFuncDcmParseCh0
CanTp_RxMsgParse (E_Dcm_Func_Req_Adr, au8Data, u8DLC);
E2E
诊断服务
诊断接收
CanTp_RxMsgParse(E_Dcm_Phy_Req_Adr, au8Data, u8DLC);
CanTp_RxMsgParse(E_Dcm_Func_Req_Adr, au8Data, u8DLC);
数据组包解析
CanTp_RxPduSF()
CanTp_RxPduFF()
CanTp_RxPduCF()
推送请求事件
CanTp_RxPduFC()
诊断服务任务
CanTp_Task()
CanTp_TxTask()
CanTp_TxPduSF()
CanTp_TxPduFF()
CanTp_TxPduCF()
CanTp_TaskTimer()
CanTp_TaskTimeOut()
CanTp_TpCtrlInit()
CanTp_TransmitMsg()
TpSendFunc()
CanTp_TransmitConfirm()
Dcm_SetParam(E_Dcm_Var_Idx_S3_Dcm_SessionKeepTimer, u16S3TxEndRestartKeepSessionTime);
CanTp_TpTxCTSCheck()
CanTp_TpCtrlInit()
Dcm_Task()
Dcm_TimerTask()
Dcm_TaskTimeOut(u16P2Timer)
CanTp_TxResponsePending()
Dcm_TaskTimeOut(u16S3SessionKeepTimer)
Dcm_27_SASeedReqReset()
Dcm_19_DemSettingAction(Dcm_Dem_DTC_Setting_On)
Dcm_SetCanRxTx(Dcm_28_NMCom_NormalComMsg,Dcm_28_EnableRxAndTx)
CanTp_TpCtrlInit();
Dcm_TaskTimeOut(.u16WaitRestTimer)
ResetFunc()
Dcm_ServeProcessTask()
CanTp_GetTpRequest()
Dcm_ServProcess(pumsList);
查找列表服务g_umDcmServInfoList
Dcm_NegativeResponse(Dcm_NRC_ServiceNotSupported, Dcm_FuncReq_Mask_Response);
使用QeasyFrame配置诊断服务
生成的服务列表DcmCfg.c
生成读写的DID列表DcmDidCfg.c
生成DEM的故障列表DemCfg.c
生成诊断回调接口DcmCbk.c
用户填充示例化该接口
诊断初始化
DcmCfg_Init()
DcmCfg_TpInit()
Dcm_Init()
DcmCfg_ServRegister()
Dcm_ServListRegister()
Dcm_10_SessionRegister()
Dcm_11_ResetServRegister()
Dcm_14_DemRegisterInitial()
Dcm_19_DemRegisterInitial()
Dcm_22_2E_DidRegisterInitial()
Dcm_27_SARegisterList()
Dcm_28_CommServRegister()
Dcm_2F_IOServRegister()
Dcm_31_RoutineServRegister()
Dcm_3E_TesterServRegister()
Dcm_85_DemCtrlServRegister()
DcmService.c
PDUR
Rx
Signal Parse
Rte_Write_BDC_xxxx(SigV)
Tx
Signal Packet
uintx_t Rte_Read_RL_LDM_FeedBack_Sig_xxxx()
uintx_t Rte_Read_BDC_xxxx()
应用层来获取整车的请求信号
Rte_Write_PI_xxx_St(uintx_t uxSts)
应用层给Rte层反馈实时的状态
DEM模块
初始化
Dcm_19_DemDtcListRegister()
Dcm_19_DemPreCheckRegister()
Dcm_19_DemSnapShotListRegister()
Dcm_19_DemBlkCacheRegister()
Dcm_19_DemEepAddrssRegister()
Dcm_19_DemFuncCfgRegister()
Dcm_19_DemCtrlListRegister()
Dcm_19_DemDataLoader()
Dcm_19_DemRestartDiagnosticTimer()
Dcm_19_DemIgOnOffCounter();
Dcm_19_DemSetWriteOnce()
下电
Dcm_19_DemShutdown()
DEM监控
Dcm_19_DemMonitorTask()
Dcm_19_DemPowerOnWaitCycle()
Dcm_19_DemCDReleaseMonitor()
Dcm_19_DemMonitorOnceDtc(u8loop)
Dcm_19_DemIsActiveMonitor()
Dcm_19_DemStatusMngt()
Dcm_19_DemRcdSnapshotData()
Dcm_19_DemEepRecordJudgment()
Dcm_19_DemEepWrReq()
Eeprom_SetReqCmd()
Boost故障处理
Low ==pin_nFLT1|| Low ==pin_nFLT2
设置BoostFault故障标志
读取故障寄存器FLT1
RTO
指示RT引脚开路
查看RT引脚电阻是否开路,导致系统频率异常
PC
指示出现了POR事件,指示VCC低于7.5V导致产生UVLO
必须读清除,然后才能设置DAC和EN寄存器
CH1OV
指示通道输出电压超差
通过设置OV(16h)寄存器的CH1OV2的最大值7表示上偏%20,默认上偏%5
CH1UV
指示通道输出电压低于50mv
出现了短GND故障,尝试重新开启EN的通道即可
读取故障寄存器FLT2
CH1UC
指示通道输出电流低于设定值0.5次的时间
监测电流检测输入端(CSPx和CSNx)之间的电压,当电流检测放大器输出端的电压从调节设定值VIADJ下降50%时,设置低电流告警
仅用于诊断非故障,可做为预警使用
CH1OC
指示通道输出电流超过设定值1.5次的时间
监测电流检测输入端(CSPx和CSNx)之间的电压。当电流检测放大器输出端的电压超过调节设定点VIADJ的50%时触发过流故障,通过调节CH1IADJ(07h)寄存器的值最大为255表示最大输出63V,当前值为192表示输出50v
CH1ILIM
指示电流超过限值
设置ILIM(0Eh)寄存器的CH1ILIMCNT的次数阈值 设置IFT(0Fh)寄存器的CH1IFT最大值为3表示最大计数32次,默认值为2表示16次
CH1ISO
指示ISN引脚检测到开路
ISN引脚接地虚焊,尝试重新初始
读取寄存器Reg_EN
设置寄存器Reg_EN的FPINRST=1清除故障
读取寄存器Reg_EN
判断通道未使能0 == CH1EN
外部输入电压大于8.8v
重新初始化boost
外部输入电压小于8.8v
保持报错状态
判定通道使能1 == CH1EN
Boost的输出电压大于45V
清除BoostFault故障标志
Boost的输出电压小于45V
保持报错状态
Buck故障处理
Low ==pin_nFLT1
设置BuckFault故障标志
读取状态寄存器STATUS1
CH1COMPOV
指示COMP1引脚的电压超过3.2v
CH2COMPOV
指示COMP2引脚的电压超过3.2v
当CHxTOFFMIN同时置位说明输出存在开路
CH1SHORT
指示通道的CSP1引脚电平低于2.45V
CH2SHORT
指示通道的CSP2引脚电平低于2.45V
指示CSN引脚存在短路,线束的寄生电感和电阻导致。
CH1LSILIM
指示指示低边通道1电流低于1.5A
CH2LSILIM
指示指示低边通道2电流低于1.5A
当漏极电流超过1.5 A典型值时,该器件将关闭高侧和低侧MOSFET并放电COMP电容。故障恢复基于器件配置。
CH1HSILIM
指示指示高边通道1电流超过2.7A
CH2HSILIM
指示指示高边通道2电流超过2.7A
在漏极电流超过2.7 A典型值时关闭高边MOSFET并放电COMP电容器。低边开关接通以放电电感器和输出电容器。 故障恢复基于器件配置。
读取故障寄存器STATUS2
CH1TP
指示通道1过温保护热关断
CH2TP
指示通道2过温保护热关断
切断输出,之后再使能输出,或者做降额
CH1BSTUV
指示通道1上存在自举欠压故障,BST1引脚的电压低于2.95V
CH2BSTUV
指示通道2上存在自举欠压故障,BST2引脚的电压低于2.95V
该设备关闭对应通道的高边MOSFET并打开低边MOSFET。CHxBSTUV位被置位。一旦自举电压超过2.95 V,就恢复正常切换操作。
CH1TOFFMIN
指示通道1操作达到最大的占空比
CH2TOFFMIN
指示通道2操作达到最大的占空比
执行关断时间超过最小限制值后,系统将恢复常规运行模式。
读取状态寄存器STATUS3
STANDALONE
指示单机模式
通过设置RESET(2Eh)写入0x43
V5AUV
指示V5A低压
查看LDO的5v输出是否异常
CMWTO
指示通讯看门狗超时次数
说明任务调度存在通讯超时
TW
指示出现过温告警
不需要处理
PC
指示出现了POR复位事件
必须清除,然后才能设置通道输出使能
CH2STATUS
通道2的故障汇总状态
CH1STATUS
通道1的故障汇总状态
指示通道是否存在故障或者告警
读取SYSCFG1寄存器
设置FPINRST=1,回写SYSCFG1寄存器
开路故障的说明
case 1 小型输出电容器的Buck转换器设计
case 2 具有较大输出电容器的降压转换器
case 3 当输入电压较高时
读取寄存器STATUS3
通道无故障
Buck故障标志已置位
读取SYSCFG1寄存器
如果CH1EN或者CH2EN置位则清除Buck故障标志
Buck故障标志未置位
通道有故障
保持报错状态