一. 背景
在车上,诊断仪(Test Tool)需要诊断其他ECU很多需要通过GW ECU路由诊断报文给到目标ECU,大多数时候为了节省链路上交互的时间,Test Tool和GW ECU会通过CAN FD 64 Byte的形式传输诊断数据,提高一次传输的速度和一次传输的长度,但是有些时候DEST ECU只支持CAN诊断的形式,因此GW ECU就需要实现基于CAN TP模块的路由,将CAN FD(64 Byte)诊断转换成CAN(8 Byte)的诊断,如下图所示:
部分ECU在实现的时候,GW ECU是在接收完诊断仪的完整一包数据之后,在转发给到DEST ECU,由于GW ECU转发给到DEST ECU的时候用的是CAN诊断,速率比较慢,长度比较短,传输完完整一包耗费的时间△t会比较久,因此会导致Tester ECU等待响应超时的问题(如下图所示),因此可以考虑配置成在Tester给GW发送包的中间,GW也同步给DEST_ECU发送数据,类似于并行传输数据。
二. 解决方法
在PDUs-->Routing Paths-->需设置的PduR-->TP Threshold,设置为DEST一帧CAN报文的长度,如8个Byte,这样,当GW ECU接收到Tester Tool发送的诊断数据长度达到8 Byte时,其就开始转发给到DEST ECU了,这样避免需要等待GW ECU接收完完整诊断数据之后才能转发导致的延时
Tp Threshold的解释如下: