汽车嵌入式开发中的ECU网关节点开发

汽车嵌入式开发中的ECU网关节点开发,第1张

汽车嵌入式开发中,开发ECU网关节点(GW:Gateway)时,难度会提升不少,这些难度中就包含对时间参数的解读问题。本文着重给大家聊一下P2Client、▲P2 = ▲P2Request + ▲P2Response、N_As时间参数。

背景介绍

假设Tester发送功能寻址指令Request01给GW::VCU,因为VCU的GW属性,VCU需要将Request01转发,即由Flexray总线路由到Can总线,进而将Request01发送给Ecu::Xx,Request01路由示意如如下所示:

汽车嵌入式开发中的ECU网关节点开发,pYYBAGMNyGaAMxFIAACcxLYsxPA268.png,第2张

注意:诊断路由,需要通过Xx_Tp层。

VCU既然是GW,相对于ECU::Xx,就是一个Tester。

如果对各层的PDU类型不清楚,可以参考前文Autosar通信栈:I-PDU、N-PDU、L-PDU,要掰扯清楚。

P2Client、▲P2、N_As时间参数分析

1、P2Client

P2Client的时间定义如下所示:

汽车嵌入式开发中的ECU网关节点开发,poYBAGMNyMeAB3ppAABWKn_qzfg457.png,第3张

怎么理解呢?上位机(Tester)发送一个诊断指令以后,会等待Server(可以理解为某个ECU的节点)响应该诊断请求,如果在指定的时间内(P2Client_max/P2Client*_max)没有响应,Tester认为超时,并停止刷写流程,即:刷写失败

P2Client的时间范围是多少呢?如下所示:

汽车嵌入式开发中的ECU网关节点开发,pYYBAGMNyNeARRPSAACId3FxSKg978.png,第4张

P2Client时间范围的表达式:P2Client_max>P2Client>P2Server_max + ▲P2max 。P2Client_max是一个性能参数,由OEM设定。

这里假设:P2Server_max = 50ms,单向路由时间10ms,P2Client_max = 150ms,则70ms < P2Client < 150ms。为什么最小时间是70ms,不是60ms?稍后解释。

2、▲P2

▲P2的时间定义如下所示:

汽车嵌入式开发中的ECU网关节点开发,pYYBAGMNyOuAKoMHAACJz5FSVEA825.png,第5张

怎么理解这个时间参数呢?诊断指令的发送依赖于ECU各个模块的处理,在诊断指令被ECU接收到发送到总线需要一定的时间,同时由于总线仲裁等原因,也会导致诊断指令发送的延阻,这些因素所造成的时间消耗就是▲P2。

我们讨论路由时间,要分两种情况分析:

发送路由

对应第一小节图中的Fr->Can路由,即▲P2request = t1 - t0

响应路由

对应第一小节图中的Can->Fr路由,即▲P2response = t3 - t2

所以,需要约束一般会规定

单向路由时间

GWTIme_max,比如:GWTIme_max= 10ms。所以:▲P2 = P2Server_max + ▲P2request + ▲P2response = P2Server_max + 2*GWTIme_max = 50 + 2*10 = 70ms。这里的GWTIme_max = ▲P2request = ▲P2response。虽然▲P2request和▲P2response会有所不同,但实际工程项目中,一般设置▲P2request = ▲P2response,即:给一个单向路由的最大时间参数GWTime_max,GWTime_max需求如下所示:

汽车嵌入式开发中的ECU网关节点开发,pYYBAGMNyLaAfaKNAABAJRZUQEc525.png,第6张

3、N_As

以Can总线为例,N_As的时间定义如下所示:

汽车嵌入式开发中的ECU网关节点开发,poYBAGMNyQCAQl_iAABe_xWbcmE357.png,第7张

意思就是:发送端(Tester)的Xx_Tp层,从发送到驱动层应答的最大时间。该时间只是约束Xx_Tp层的计时行为,和▲P2 时间无关。因此,开发必须要先符合▲P2 时间。

多路诊断路由

我们将问题进一步拓展,如果GW节点将诊断指令路由到多个节点,如下图中的ECU::Xx01和ECU::Xx02。这里提一个问题:如果Can02不可用(比如:VCU Can02对应的Transceiver损坏或者未有连接),Can01上的刷写是否应该继续?
 

汽车嵌入式开发中的ECU网关节点开发,pYYBAGMNyRGADtvcAACOngWiDGA397.png,第8张

我们先看一下Autosar的答案,如下所示:
 

汽车嵌入式开发中的ECU网关节点开发,pYYBAGMNySKADE4BAABlYJ_xk6A684.png,第9张

答案很明确:如果TPs间的路由,有一路Fail(调用发送接口返回值为E_NOT_OK),不应影响其他TPs间的路由。如果OEM约束了你的开发:要符合Autosar规范。那么PduR的路由功能应满足上述规范。



审核编辑:刘清

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/3000463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存