AutoSAR配置与实践(实践篇)11.1 如何通过IPDU分组控制报文收发
如何通过IPDU分组控制报文收发
一、需求
需要针对特定的PDU(外发)进行条件控制,这里要通过不同配置字进行PDU是否外发的控制
1.1 需求简要分析
正常PDU分组时分为两组,接收报文组和发送报文组。
如果针对特定的PDU进行控制,需要做到两方面
- 不影响原来的PDU报文的控制
- 对目标PDU报文实施新的控制策略
基于以上两点,我们需要对原来的PDU组进行拆分,如下图
1.2 需求进一步分析
进行PDU的拆分后,根据配置字可以选择PDU是否使能了。但是是否场景考虑全面了呢,只是简单的上电后巡检配置字进行新的PDU组控制?貌似不行,因为我们遗漏了一个场景,有的童鞋可能已经想到了,
是的 - 诊断场景!
我们要确保不影响原来的所有的功能,因此也要兼顾诊断功能。
PDU组拆分后可分为常规PDU组和可配PDU组(新增),诊断一方面按原有逻辑控制常规PDU组,另一方面控制新的可配PDU组。具体为(如下步骤和图片序号对应)
- 对原来的常规PDU组的控制,诊断控制逻辑不变
- 对可配PDU组,加入诊断控制的影响
1.诊断使能时,若配置字满足,要使能所有的PDU组控制信号(含常规和可配PDU组)。
2.诊断禁止时,直接禁止所有的PDU组。
二、流程实现和具体配置
以下步骤对应图中Step:
Step1: 首先需要将PDU组隔离,即将原发送PDU组分割成首先需要将PDU组隔离,即将原发送PDU组分割成常规PDU组(拆分后)、常规PDU组(接收,保留)、可配PDU组(拆分后):
原规则保留,COMM和诊断服务仍然可以使能/禁止常规PDU组的报文收发功能。
Step 2: 新规则实施参考2-5步,在诊断规则对应的Action中管理用户条件1,用条件1(诊断使能指令)和条件2(配置字是否满足)作为最终的用户条件.仅当28使能服务时且配置字满足时,用户条件才成立.
注意这个新增的action其实是一个用户回调函数,在函数中进行配置字的判断,即可完成用户条件的判断(TRUE/FALSE),注意用户条件是用户封装的函数,用于输入给后续的逻辑判断和rule。
举例说明,诊断场景:使能,配置字满足,则用户条件为TURE,表示期望使能可配PDU组(诊断禁止服务场景类似方式,在此不再列举)。
Step 3: BSW Mode request port的用户条件选项引用了用户的自定义函数,即步骤2中的用户条件返回值(TRUE/FALSE)
Step 4: request port值和COMM状态综合作为Expression条件
Step 5: COMM 依据Expression结果作为使能/禁止可配PDU组的依据.