目录

一、COM级别配置解析

 1. ComSignal

2. ComIpdu级别配置解析

二、CANIF级别配置解析

三、PduR级别配置解析

四、ECUC级别配置解析


一、COM级别配置解析

 1. ComSignal

ComBitPosition (0 -> 524272): 该signal在ipdu中的开始位置

ComBitSize(0->64): 该signal的大小

ComDataInvalidAction:检查信号是否为提前配置好的无效数据,会有配置好的动作,NOTIFY 或者 REPLACE,顾名思义,前者为通知,后者为替换数据为指定数据

ComErrorNotification:仅发送端有效,call Com_CbkTxErr

ComFirstTimeout (0 -> 3600): 初次超时时间。如果省略:ComTimeout用于ComFirstTimeout。

ComTimeout (0 -> 3600): 超时监控时间,若不配置则com模块不应监视该信号或信号组,还应忽略ComFirstTimeout

ComTimeoutNotification: 定义发生超时时在发送方或接收方要调用的函数的名称,send: Com_CbkTxTOut receive: Com_CbkRxTOut,无需配置,缺省默认, 通知RTE。本身不会进一步处理,比如发送端超时并不会主动尝试重发,等待RTE做进一步处理。

ComRxDataTimeoutAction: 出于数据有效性的考虑需要决定在未收到有效报文的情况下,向APL呈现何种数据,因而需要设定【ComRxDataTimeoutAction】来决定超时发生后,对被监控的IPDU中的数据的操作,或替换初始值,或保持上一次的数据。

ComInitialValueOnly

ComInvalidNotification: ComDataInvalidAction=NOTIFY时有效

ComNotification: send side: Com_CbkTxAck  , It is called immediately after successful transmission of the I-PDU containing the message Receive side: Com_CbkRxAck, It is called immediately after the message has been stored in the receiving message object.

ComSignalDataInvalidValue

ComSignalDirection: send or receive

ComSignalEndianness:定义信号网络表示的字节排序。可以是BIG_ENDIAN,LITTLE_ENDIAN,OPAQUE

ComSignalInitValue:信号初始值

ComSignalLength (0 -> 65535): 它指定UINT8 [n]类型的n(以字节为单位:1 … 8)。对于其他类型,它将被忽略。(多重性:0 … 1),一般不使能

ComSignalType:它指定符合BOOTEAN,SINT8,UINT8等

ComTransferProperty:定义此信号是否可以触发相应IPDU的传输,具体分为以下几类:

ComSystemTemplateSystemSignalRef:一般导入dbc文件时才配置该项,自己不用配置。

ComFilter:一般不需要配置,不过滤掉信号,发送端只为计算TMC,根据TMS的结果判断走ComTxModeTrue OR ComTxModeFalse; 接收端过滤掉一个信号,即过滤条件被计算为 false 时,应该丢弃信号并且不处理该信号

ComFilterAlgorithm:

ALWAYS

NEVER

MASKED_NEW_EQUALS_X

MASKED_NEW_DIFFERS_X

MASKED_NEW_DIFFERS_MASKED_OLD

ONE_EVERY_N

注:对于ComSignalType FLOAT32、FLOAT64、UINT8_N或UINT8_DYN的信号,AUTOSAR COM模块应只支持配置为ALWAYS、NEVER或ONE_EVERY_N的ComFilterAlgorithm  ;对于ComSignalType配置为BOOLEAN的信号,AUTOSAR COM模块应只支持ComFilterAlgorithm配置为ALWAYS;NEVER;MASKED_NEW_EQUALS_X;MASKED_NEW_DIFFERS_X;MASKED_NEW_DIFFERS_MASKED_OLD; ONE_EVERY_N

2. ComIpdu级别配置解析

以Tx发送报文为例:

ComIPduCallout: 此参数可定义相应I-PDU的callout函数的名称,该函数在接收IPDU时或在发送PDU之前调用,提供一个指针

ComIPduCancellationSupport:是否支持取消正在进行的请求。  ComIPduType NORMAL:canif 是否支持取消正在进行的请求 ComIPduType TP:TP是否支持取消正在进行的请求.如果 ComIPduCancellationSupport 配置为 TRUE 的 I-PDU 的传输期限监视计时器到期,则 AUTOSAR COM 模块应为该 I-PDU 调用 PduR_ComCancelTransmit. PduR_ComCancelTransmit 的调用是在 Com 的正常超时处理之外完成的,如果 PduR_ComCancelTransmit 已配置,它会通知 SW-C。

ComIPduDirection:receive or send 

ComIPduSignalProcessing:two modes :deferred or immediate 。

Immediate:则 AUTOSAR COM 模块应分别为 Com_RxIndication 或 Com_TpRxIndication 函数中包含的信号和信号组调用配置的 ComNotifications

Deferred:则 AUTOSAR COM 模块应首先将 Com_RxIndication 函数或相关 TP 接收函数中的 I-PDU 数据分别从 PduR 复制到 COM。 然后 AUTOSAR COM 模块应在下次调用 Com_MainFunctionRx 期间异步调用所包含的信号和信号组配置的 ComNotifications

ComIPduTriggerTransmitCallout:略

ComIPduType:NORMAL OR TP ,决定下层是PDUR 或CANTP

ComPduIdRef: Refer to a ECUC   

comTxIPdu:略

ComMinimumDelayTime (0 -> 3600):MDT最小延迟时间,表示这个IPDU两次发送之间的最小间隔时间,模式ComTxModeMode转换不受影响,refer this link for details:

【AUTOSAR-CP-CAN-2】AUTOSAR COM_肥羊也的博客-CSDN博客_autosar cp 代码

ComTxIPduClearUpdateBit:refer to the up link.当该IPDU关联的signal配置了updatebit时有效。

ComTxIPduUnusedAreasDefault: 填充 I-PDU 内部没有使用的区域

ComTxModeTrue/False:

    如果 TMS 被评估为 true,COM 应该为这个I-PDU使用定义在配置容器 ComTxModeTrue 的ComTxModeMode。
    如果 TMS 被评估为 false,COM 应该为这个I-PDU使用定义在配置容器 ComTxModeFalse 的ComTxModeMode。

ComTxModeMode:poried /mixed /direct /none

ComTxModeNumberOfRepetitions (0 -> 255): ipdu重复次数,仅ComTxModeMode配置为DIRECT OR MIXED有效

ComTxModeRepetitionPeriod (0 -> 3600):ipdu重复时周期,仅ComTxModeMode配置为DIRECT OR MIXED有效

ComTxModeTimeOffset (-1 -> 3600): IPDU开始调度Com_IpduGroupControl 与first transmission request之间的时间(初次传输):

         1)  ==0  or omitted :  first transmission request就是下次调用Com_MainFunctionTx的时间

         2) >0 开始调度Com_IpduGroupControl 与first transmission request之间的时间设定值为调用   Com_MainFunctionTx的次数

          3) <0 立即调用

          ComTxModeTimePeriod (0 -> 3600) :IPDU调度周期

二、CANIF级别配置解析

以Tx为例:

CanIfTxPduCanId: CANID  将其转换成hex即为canoe显示的CANID ,该条PDU名称也一般后缀CANID的十进制数大小。

CanIfTxPduCanIdType :可选以下几项

Range:

  • EXTENDED_CAN for CAN 2.0 or CAN FD frame with extended identifier (29 bits).
  • EXTENDED_FD_CAN for CAN FD frame with extended identifier (29 bits).
  • EXTENDED_NO_FD_CAN for CAN 2.0 frame with extended identifier (29 bits).
  • STANDARD_CAN for CAN 2.0 or CAN FD frame with standard identifier (11 bits).
  • STANDARD_FD_CAN for CAN FD frame with standard identifier (11 bits).
  • STANDARD_NO_FD_CAN for CAN 2.0 frame with standard identifier (11 bits).
  • CanifRxPduUserRxIndicationUL、CanIfTxPduUserTxConfirmationUL:定义上/下层模块分配,包括: CAN_NM /CAN_TP/ CAN_TSYN/ CDD/ PDUR

    CanIfTxPduDlc: 该选项常被忽略,因为发送报文的长度信息一般配置在函数Canif_Transmit 中的PduInfoPtr里

    特别的,Rx接收报文:

    CanIfRxPduDlc:该条L-PDUS的长度。对于接收报文来讲,它用于DLC checking,若接收到的报文长度大于等于这个值,则认为有效,canif将其传到上层结构;若接收到的报文小于配置的值,该条报文将被忽略;若配置为0,则不会对DLC check产生影响,忽略。

    CanIfRxPduCanIdRange:可以配置接收某个CANID范围段的报文,此时CanIfRxPduCanId选项会不可选,若该选项使能,CanIfRxPduCanIdRangeLowerCanId ,CanIfRxPduCanIdRangeUpperCanId 则使能。

    三、PduR级别配置解析

    PduRSrcPduRef:引用ECUC里面对应pdu即可

    PduRDestPduRef :引用ECUC里面对应pdu即可

    PduRDestTxBufferRef :在PduRTxBuffer中引用一个Buffer, 可以被全局引用,所以可以节省更多的内存空间。

    四、ECUC级别配置解析

    PduLength:定义Pdu的长度信息,以BYTE为单位。

    SysTPduToFramMappingRef: 引用模板信息,只有在导入dbc或者arxml文件配置报文时会默认配置,手动配置时不需要关心。

    以上就是这篇文章的所有内容啦,有问题大家一起交流!

    物联沃分享整理
    物联沃-IOTWORD物联网 » 详解AUTOSAR COM配置

    发表回复