Loading...
墨滴

jasonj333

2021/03/27  阅读:15  主题:红绯

如何生成关于时钟

汽车的ECU里功能故障会生成DTC,对于支持网络时钟同步功能的ECU来说,如果时钟同步失败,或者无效的时钟同步主机发来的ptp报文,都会生成对应的DTC code

所以如果想生成DTC,必须满足上面的条件,就需要模拟时钟节点给ECU发送ptp报文

如果你还不了解时钟同步,请参考PTP协议

时钟同步失败

先想一下,如果时钟同步功能正常,ptp报文应该是什么样?

先看下ptp Sync报文

再看下成对的ptp Follow_Up报文

你会发现,Sync和Follow_Up成对出现,它们的sequenceId是相同的

时钟同步是要不停的去校准去同步,所以ptp报文也是要不定时地发送的,再看下一条ptp sync报文

发现和上一条ptp sync相比,其他的都不变,但是sequenceId加1了

所以,如果想让时钟一直同步,需要不停地发ptp sync,而且sequenceId号需要连续

那我们就可以先发一些sequenceId连续的ptp sync报文,比如3000,3001,3002,3003,3004,3005,然后再发一条3019,这时候ECU就会判断时钟同步失败,产生DTC

可以借助CANoe在capl脚本上实现,当然触发时钟同步失败的DTC还有另一种方式,就是对手件发了一组正常的sync和follow_up,ECU收到后会发一条Delay_Req报文,对手件需要回复一条Delay_Resp,这时候我让对手件不要回复,那么ECU在一定时间内收不到对面的回复,也会判断这次的时钟同步失败,产生DTC

无效的时钟同步主机

ECU只会对正确的时钟节点进行时钟校验,如果ECU收到了无效的时钟节点发来的ptp报文,也会生成一个DTC

那ECU通过什么判断?就是ClockIdentity。所以,可以发两条ptp sync,第一条携带正确的ClockIdentity,第二条携带错误的ClockIdentity

好了,以上就是如何生成关于时钟同步功能的DTC的思路


jasonj333

2021/03/27  阅读:15  主题:红绯

作者介绍

jasonj333