Autosar通讯系列-Update Bit与Is_Updated

在Autosar中,应用层软件通过调用Rte_Read函数来获取另一个SWC所发送的信号,但是这种方式存在以下几种问题:

1. 我们获取的值是否是另一个SWC发送过来的值,而不是ECU初始化后的默认值(真正的值或许还没有通过总线或虚拟总线发送过来)。

2. 如果此信号为事件型信号,我们无法准确获知对方发送了多少次信号。

针对这些问题,设置更新位是有效的解决方法。对于一个信号,更新位的思路是如果发送方通过Rte_Write写入之后便将其更新位置为1,代表此次发送的值是被发送方更新过的。在接收方通过Rte_Read获取这次的更新值以后,将此信号的更新位置0,代表此次更新已经收到。在设置了更新位之后,以上两个问题便迎刃而解:

1. 如果从开始运行此信号的更新位从未置过1,代表我们获取的值是默认值。

2. 每次更新位置1便代表对方发送了一次信号。

除此之外,更新位还可以用来判断总线的通讯是否丢失等逻辑。在Autosar架构中,更新位主要与Update Bit与Is_Updated有关,Update Bit在COM被处理,而Is_Updated在RTE层被处理

posted @ 2024-08-14 21:44  Zhaohanim  阅读(277)  评论(0)    收藏  举报