ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Autosar里如何添加一路can通信到诊断。

2026/8/25 21:51:37 拓冰建站 浏览量
Autosar里如何添加一路can通信到诊断。 前提工程项目已经配好Ccan tranciver。 通信从Can tranciver 到Com已经调通。并且CAN CANFD 都支持。目标:配置can通信相关涉及模块Ecuc, Canif, CanTp, PduR, Dcm/其中标准版CAN: 0x7E8(2024) 接收0x7E0(2016)发送CanFD: 0x7D8(2008)接收0x7D0(2000)发送。开始配置EcuC模块由于涉及到诊断所以CanIf 和 CanTp, 1个接收2个发送。 Dcm 1收 1发。 仅仅时一路标准CAN 需要配置5个 EcuC。CanFD 同理也要新建5个以下只做标准Can的例子。Dcm Rx EcuC:DhuToZcudDiagDcmIpduDcm Tx EcuC:ZcudToDhuDiagDcmIpduCanIf/CanTp Rx EcuC:DhuToZcud3DiagReqNpdu_2024RCanIf/CanTp Tx EcuC:ZcudToDhu3DiagResNpdu_2016TZcudToDhu3DiagResNpdu_D_2016TCanIf模块:以下只做标准Can的例子。CanIRxPduCfgRx配置CanIRxPduCfg新增1个DhuToZcud3DiagReqNpdu_2024R其中CanIfRxPduHrhIdRef 引用CanIfInitHohCfg/CanIfInitHohCfg/CanIfHrhCfg里的接收bufferCanIfRxPduRef 引用EcuC里的配置的CanIf/CanTp Rx EcuCCanIfTxPduCfgTx配置CanIfTxPduCfg新增两个: ZcudToDhu3DiagResNpdu_2016T 和 ZcudToDhu3DiagResNpdu_D_2016T以下是ZcudToDhu3DiagResNpdu_2016T 的配置其中CanIfTxPduBufferRef 引用CanIfInitHohCfg/CanIfInitHohCfg/CanIfHthCfg里的发送bufferCanIfTxPduRef引用EcuC里的配置的CanIf/CanTp Tx EcuCCanIfTxPduCanIdType 选择STANDARD_CAN如果是CANFD就选 STANDARD_FD_CANZcudToDhu3DiagResNpdu_D_2016T也是一样的配置。CanTp模块在CanTpChannel 里新建一个channel: DhuToZcudZcuCanFD2Diag3Cha里面有3个配置General, CanTpRxNSdu, CanTpTxNSdu.CanTpRxNSdu接收配置CanTpRxNSdu新建一个RxNSdu: DhuToZcud3DiagDcmIpduCanTpRxNSduRef 引用的是Dcm Rx EcuCAddressing里要根据项目需求来填N-PDU Linking里CanTpRxNPduRef 引用 CanIf/CanTp Rx EcuCCanTpTxFcNPduRef 引用 CanIf/CanTp Tx EcuC中的一个CanTpTxNSdu发送配置CanTpTxNSdu新建一个TxNSdu: ZcudToDhu3DiagDcmIpduCanTpTxNSduRef 引用的是Dcm Tx EcuCAddressing里要根据项目需求来填N-PDU Linking里CanTpRxFcNPduRef 引用 CanIf/CanTp Rx EcuCCanTpTxNPduRef 引用 CanIf/CanTp Tx EcuC中的另外一个DCM模块:默认buffer什么的都配置好了基本的一些诊断命令也配置好了。在Protocol看哪个是配置了CAN的。在Diagnostic Channels里新增一路Reference to Tx PduId 引用Dcm Tx EcuCx然后在Receive Channels里新增一路Reference to Rx PduId 引用Dcm Rx EcuCPduR模块这个模块很常用了就是将EcuC放到PduRSrcPdu, PduRDestPdu, PduRRoutingPath里就好了。