简介:
现在的汽车越来越智能化和复杂化,这得益于汽车软件和电子控制系统的发展。为了帮助汽车制造商和供应商更好地开发和管理汽车软件,全球性的汽车软件开发标准——AUTOSAR(AUTomotive Open System ARchitecture)应运而生。本系列博客将以通俗易懂的方式,介绍AUTOSAR的基本概念、架构、接口和模块,帮助读者深入了解AUTOSAR的内部机制和设计原则,并指导读者如何使用AUTOSAR标准来开发高质量的汽车软件。
目录
FIFO
通信接口
传输协议
错误处理
此规范描述了一种将I-PDU(数据传输单元)从一个源传输到多个目的地下层模块的可能性,并使用FIFO(先进先出)队列行为进行网关化。FIFO队列可用于通信接口和传输协议(即使使用多个N-PDU消息)。
如果配置了PduRQueueDepth大于1的值,则Tx Pdu缓冲区应具有先进先出(FIFO)行为。在接下来的章节中,“FIFO”或“FIFO队列”这个术语被用作PduR的Tx I-PDU缓冲区的同义词。
FIFO具有状态,这些状态可能在从不同上下文调用的各种PduR API中改变。例如,PduR_
如果在直接数据提供的情况下使用FIFO,则目标I-PDU必须配置为调用PduR_
每个目标IPDU都应该能够配置一个FIFO。
如果使用FIFO进行直接数据提供,则当调用PduR_
如果使用FIFO进行直接数据提供,则当调用PduR_
当调用PduR_
当调用PduR_
当调用PduR_
在规范中,当调用PduR_
需要注意的是,如果目标模块是FrIf,则需要配置Pdu的FrIfCounterLimit > 1,因为在计数器递减之前将调用新的传输。对于LinIf,没有这样的限制,但不支持将FIFO队列路由到间歇性帧。
[SWS_PDUR_00830] 当 PduR_
[SWS_PDUR_00831] 当收到 PduRTpThreshold 或完整的 (PduR_
[SWS_PDUR_00832] 如果同一路由路径的另一个 PduR_
[SWS_PDUR_00833] 当从目的地传输协议模块接收到 PduR_
[SWS_PDUR_00834] 允许在网关上使用 routing-on-the-fly。如果 FIFO 队列为空,则每当达到 PduRTpThreshold 时,PduR 可以调用
[SWS_PDUR_00835] 如果 FIFO 队列已经包含至少一个条目,则应将接收到的消息存储在 FIFO 中,并在此 FIFO 队列条目到达传输时间时(即当此消息首先在 FIFO 中时)立即调用
注:使用 FIFO 的网关-on-the-fly 的效果是它将是一种更快的网关 TP 消息的方式。显然,如果 FIFO 不为空,则接收到的消息必须被存储,而不是转发到目的地 TP。
[SWS_PduR_00788] 如果使用FIFO缓冲区的路由路径中,调用
[SWS_PDUR_00807] 如果使用FIFO缓冲区的路由路径中,
[SWS_PduR_00806] 当一个目的地无法发送I-PDU时(即
[SWS_PduR_00255] 如果FIFO已满并且调用了新的PduR_
注意:如果PduRQueueDepth配置为1且PduRDestPduDataProvision配置为PDUR_TRIGGERTRANSMIT,则新的IPdu将始终在下一个PduR_
[SWS_PduR_00670] 如果FIFO被清空,则PDU Router模块应向DET模块报告PDUR_E_PDU_INSTANCES_LOST。(SRS_PduR_06012,SRS_PduR_06032,SRS_PduR_06106)
[SWS_PduR_00669] 如果FIFO被清空,则由PduR_
造成FIFO清空的新I-PDU将被处理并不会被丢弃。