目 录CONTENT

文章目录

AUTOSAR知识点 之 COM (二):ISOLAR-AB的配置

moke
2024-07-26 / 0 评论 / 0 点赞 / 142 阅读 / 0 字

1、概述

        从规范上看配置主要有两大部分组成ComConfig与ComGeneral,规范显示如下。

 实际在配置工具里面的体现如下

 配置思维导图如下

2、ISOLAR-AB配置

2.1、ComGeneral

记录一下不太容易理解的配置项:

ComCancellationSupport:取消传输功能的API是否开启的静态代码配置。

ComEnableMDTForCyclicTransmission:在整个Com模块中实现对循环和重复传输的最小延迟时间监测(周期传输时 需要前置条件ComTxModeMode = PERIODIC或ComTxModeMode = MIXED,重复传输时 ComTxModeNumberOfRepetitions > 0)。

ComEnableSignalGroupArrayApi:打开信号组访问的API,这个API一般用于信号同步,上述有提到过这点。

ComRetryFailedTransmitRequests:如果该参数设置为true,则启用失败的传输请求重试,如果不设置该参数,则采用默认值。

ComSupportedIPduGroups:定义支持的I-PDU组的最大数量。

2.2、ComConfig

2.2.1、ComGwMapping

        此处最好用脚本处理一下,根据一些特征,例如信号名字直接改动arxml不容易出错。

        此处处理关键是源地址与目的地址的信号选择,也就是信号值的传递,此处信号值等同于了I-PUD。一个源地址是可以传输到许多目的地址的,在配置工具里面可以新建几个目的地址,源地址与目的地址的对应关系是1:n的关系。

2.2.2、ComIPduGroups

此处可以添加用户需要的,然后在ComIPdus里面使用

2.2.3、ComIPdus 

 ComIPduCouinter:

IPDU的序列控制

如果收到的counter与期望的counter不匹配,调用配置的通知接口ComIPduCoumterErorNotification;

coumter值的翻转,假如coumter配置为4个bit,期望counter为15之后翻转到0;

counter阀值 及匹配算法举例:期望counter为5,阀值为2,则当接收到的counter为5/6/7都是OK的。

此处理应有配置项:ComIPduCounterSize/ComIPduCounterStartPosition但是在ISOLAR-AB里面没体现

ComTxModeNumberOfRepetitions:定义了传输模式的重复次数和传输模式混合的事件驱动部分

ComTxModeRepetitionPeriod:定义当配置comtxmodennumberofrepetitions大于等于1且ComTxModeMode配置为DIRECT或MIXED时,多次传输的重复周期(以秒为单位)。在混合传输模式下,仅影响事件驱动部分

 ComIPduCallout:该参数定义了对应I-PDU的callout函数的存在和名称。如果省略此参数,则不会对相应的I-PDU进行标注。

这个回调函数还是比较重要的,在发送前或者接收后处理自定义的数据比较自由。

ComIPduCancellationSupport:定义ComIPduType为NORMAL的i - pdu:如果底层ifmodule支持取消传输请求。定义ComIPduType为TP的i - pdu:如果底层TP模块支持RX和TX取消正在进行的请求。

ComIPduSignalProcessing:信号是延时发送还是立即发送方式

ComIPduErrorNotification:这个回调是在超时之后进入的回调

ComIpduNotificationCallback:发送 或接收之后产生的回调。

ComFirstTimeout:以秒为单位定义第一个截止日期监视超时周期的长度。此超时在截止日期监视服务启动(或重新启动)之后立即使用。连续时间段的超时时间为由ECUC配置。

ComTimeout:以秒为单位定义截止日期监视超时周期的长度。

2.2.4、ComSignals

 ComBitPosition:这个signal的信号开始位置

ComBitSize:信号的长度,单位是bit

ComDataInvalidAction:此参数定义接收到无效信号时执行的操作。与信号组有关,如果包含的信号之一是无效信号时的操作。如果使用Replace,则ComSignallnitValue将用于替换。

ComErrorNotification:仅在发送端有效:要调用的Com_CbkTxErr回调函数的名称。如果省略此参数,则不会产生错误通知。

ComFirstTimeout:以秒为单位定义第一个截止日期监视超时周期的长度。此超时在截止日期监视服务启动(或重新启动)之后立即使用。

ComInitialValueOnly:该参数定义了将各自信号的初始值分别放入各自的PDU中,不通过RTE对其值进行更新。因此,Com实现不需要期望对该信号(组)进行任何API调用。

ComInvalidNotification:仅在接收端有效:要调用的Com_CbkInv回调函数的名称。通知RTE接收到无效信号/信号组的函数名称。只有当ComDatalnvalidAction配置为NOTIFY时才适用。

ComNotification:在发送端:要调用的Com_CbkTxAck回调函数的名称。接收端:要调用的Com_CbkRxAck回调函数的名称。如果省略此参数,则不会发生通知。(项目里面此处给RTE使用了,发送都配置了)

ComRxDataTimeoutAction:此参数定义接收截止日期监控计时器到期时执行的操作。

ComSignalDataInvalidValue:定义信号的数据无效值。当ComSignalType为UINT8、UINT16、UINT32、UINT64、SINT8、SINT16、SINT32、SINT64时,该字符串应按照AUTOSAR EcuC规范中整数类型章节的定义进行解释。如果ComSignalType为FLOAT32, FLOAT64,则该字符串应按照AUTOSAR EcuC规范中的Float Type章节中的定义进行解释。如果ComSignalType为BOOLEAN,则该字符串应按照AUTOSAR EcuC规范中的布尔类型章节中的定义进行解释。如果ComSignal是UINT8_N, UINT8_DYN,则该字符串将被解释为由空格分隔的字符的十进制表示。"97 98 100"表示字符串"abd",其中字符"a"位于字节0(最低地址),"b"位于字节1,"d"位于字节2和(最高地址)。对于ComSignalType UINT8_DYN,动态长度应设置为配置的字符数。空字符串“”应解释为0大小的动态信号。

ComSignalEndianness:定义信号的网络表示的端序。Intel为小端,motorola为大端。

ComSignalInitValue:信号的初始值。

ComSignalType:信号的AUTOSAR类别

 ComSignalLength:配置信号类别UINT8_N 与UINT8_DYN 的时候,配置长度使用的。

UINT8_N表示一个固定长度的无符号8位整数数组

UINT8_DYN表示一个动态长度的无符号8位整数数组

ComTransferProperty:定义此信号是都可以触发响应的I-PDU的传输。如果一个信号组的至少一个组信号配置了“ComTransferProperty”属性,则该信号组的所有其他组信号也应配置该属性。

类型

描述

Pending

不会主动发送

Triggered

当DIRECT或者MIXED的时候,发送ComTxModeNumberOfRepetitions次

Triggered Without Repetition

当DIRECT或者MIXED的时候,发送1次。

Triggered on change

当前信号值与上一次发送值或者初始值不同,且当DIRECT或者MIXED的时候,发送ComTxModeNumberOfRepetitions次

Triggered on change Without Repetition

当前信号值与上一次发送值或者初始值不同,且当DIRECT或者MIXED的时候,发送1次。

ComUpdateBitPosition:在I-PDU内的更新位位置。

2.2.5、ComTimeBase 

ComGwTimeBase:调用函数Com_MainFunctionRouteSignals的周期,单位是S

ComRxTimeBase:接收周期主函数的时间。

ComTxTimeBase:发送接收周期主函数的时间。

博主关闭了所有页面的评论