【AUTOSAR】 项目和代码详解(四)----AUTOSAR COM

AUTOSAR COM

概要

在AUTOSAR分层架构中,AUTOSAR COM模块位于RTE和PDUR之间,提供面向信号的数据接口的RTE包装AUTOSAR信号I-PDUs拆包的传输收到I-PDUs和提供收到收到I-PDUs信号。RTE路由的信号分成I-PDUs成为传播信号路由组从收到I-PDUs,I-PDUs成为传播通信传输控制(启动/停止I-PDU组)复制发送请求之间最小距离的保证传输I-PDUs监测接收信号(信号超时)过滤传入的信号机制。不同的通知机制提供初始值和更新显示字节顺序转换符号扩展支持两种不同的传输模式。/I-PDU信号基于网关支持大型和动态长度的数据类型支持I-PDU计数器和I-PDU复制。

模块配置

 

ETAS ISOLAR中主要配置或修改内容如下。

特别地,ISOLAR工具会自动导出COM有关的配置生成独立的ARXML文件,因此在配置界面中会有两个相同的COM配置内容,一般修改非EXPORT的配置内容。

 

ComGeneral

 

ComCancellationSupport

此参数启用/禁用通信取消功能

ComConfigurationUseDet

是否使用DET

ComEnableMDTForCyclicTransmission

对整个Com模块全局启用循环和重复传输的最小延迟时间监控(ComTxModeMode=PERIODIC 或ComTxModeMode=MIXED,ComTxModeMode= >0 重复传输)。

ComEnableSignalGroupArrayApi

激活/停用信号组数组访问api (Com_SendSignalGroupArray, Com_ReceiveSignalGroupArray)。

ComMetaDataSupport

此参数启用/禁用元数据特性的支持,包括API com_triggeripdusendwith元数据。

ComRetryFailedTransmitRequests

如果此参数设置为true,则启用失败传输请求的重试。如果不存在此参数,则假定为默认值。

ComSupportedIPduGroups

定义支持的I-PDU组的最大数目。

ComUserCbkHeaderFile

定义回调函数的头文件,这些头文件应该包含在COM模块中。

ComVersionInfoApi

激活/停用版本信息API (Com_GetVersionInfo)。

ComConfig

 

ComDataMemSize

以字节为单位的内部Com数据的大小(静态内存分配)——构建后配置所需的内存必须小于此常量。仅在使用静态内存分配进行构建后可加载实现时才需要此参数。

ComMaxIPduCnt

最大IPdus数。仅在使用静态内存分配进行构建后可加载实现时才需要此参数。

ComConfig/ ComTimeBase

ComGwTimeBase

连续调用Com_MainFunctionRouteSignals之间的周期(以秒为单位)。COM生成器可使用此参数将与信号网关相关的COM模块定时配置参数的值转换为内部实现的特定计数器或滴答值。COM模块的内部定时处理是特定于实现的。COM模块可能依赖于根据这里配置的值调度Com_MainFunctionRouteSignals。

ComRxTimeBase

连续调用Com_MainFunctionRx之间的时间段(以秒为单位)。COM生成器可以使用此参数将与接收相关的COM模块定时配置参数的值转换为内部实现的特定计数器或刻度值。COM模块的内部定时处理是特定于实现的。COM模块可能依赖此参数配置Com_MainFunctionRx调度。

ComTxTimeBase

连续调用Com_MainFunctionTx之间的时间段(以秒为单位)。COM生成器可以使用此参数将与传输相关的COM模块定时配置参数的值转换为内部实现特定的计数器或滴答值。COM模块的内部定时处理是特定于实现的。COM模块依赖此配置进行Com_MainFunctionTx的调度。

ComConfigSet/ ComFilter

ISOLAR中无配置

ComConfigSet/ ComIPdu

ComIPduCallout

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

ComIPduCancellationSupport

使用ComIPduType NORMAL为I-PDUs定义:如果底层的If -modul支持取消传输请求。

用ComIPduType TP定义I-PDUs:如果底层TP模块支持RX和TX取消正在进行的请求。

ComIPduDirection

描述I-PDU接收或发送,以及相应的信号和信号组。

ComIPduHandleId

用作I-PDU的ID的数值。API调用com_rxIndication 、com_tprxIndication 、Com_StartOfReception和Com_CopyRxData需要ComIPduHandleId从PduR (ComIP-duDirection: receive)接收I-PDUs,以及传递给Rx-I-PDU-callout的PduId。Tx-I-PDUs (ComIPduDirection:发送),这个处理Id用于api调用Com_TxConfirmation, Com_TriggerTransmit, Com_TriggerIPDUSend或Com_TriggerIPDUSendWithMetaData Com_CopyTxData I-PDUs Com_TpTxConfirmation传输分别确认传输。

ComIPduSignalProcessing

ComIPduSignalProcessing

两种模式的定义:直接模式和递延模式。

ComIPduTriggerTransmitCallout

如果为这个I-PDU定义了一个触发器传输callout,那么这个参数包含callout函数的名称。

ComIPduType

定义该I-PDU是可以不间断发送的普通I-PDU,还是应该通过底层总线的传输协议发送的大型I-PDU。

ComIPduGroupRef

引用这个I-PDU所属的I-PDU组。

ComIPduSignalGroupRef

引用这个I-Pdu中包含的所有信号组。

ComIPduSignalRef

引用这个I-PDU中包含的所有信号。

ComPduIdRef

引用“全局”Pdu结构,以便协调com堆栈中的句柄id。

ComIPduCounter

Nan

ComIPduReplication

Nan

ComTxIPdu

Nan

ComConfigSet/ ComIPduGroup

ComIPduGroupHandleId

用作I-PDU组的ID的数值。API调用需要ComIPduGroupHandleId来启动和停止I-PDU组。

ComIPduGroupGroupRef

引用包括这个I-PDU组的所有I-PDU组。如果省略了这个引用,则这个I-PDU组不属于另一个I-PDU组。

ComConfigSet/ ComSignal

ComBitPosition

在I-PDU中的起始位置。这个参数指的是I-PDU中的位置,而不是影子缓冲区中的位置。如果将endianness转换配置为不透明,则参数ComBitPosition应定义第一个字节的bit0,类似于小endian字节顺序。

ComBitSize

位大小,用于整数信号类型。对于ComSignalType UINT8_N和UINT8_DYN,大小应由ComSignalLength配置。对于ComSignalTypes FLOAT32和FLOAT64,大小已经由信号类型定义,因此可以省略。

ComDataInvalidAction

此参数定义在接收到无效信号时执行的操作。如果所包含的信号之一是无效信号,则与信号组相关的动作。如果使用Replace,则使用ComSignalInitValue进行替换。

ComErrorNotification

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

ComFirstTimeout

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

ComHandleId

用作ID的数值。这个ID分别使用Com_SignalIdType或Com_SignalGroupIdType参数来标识COM api中的信号和信号组。

ComInitialValueOnly

这个参数定义了各自的信号的初始值应该被放入各自的PDU中,但是不会通过RTE对该值进行任何更新。因此,Com实现不需要为这个信号(组)期望任何API调用。

ComInvalidNotification

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

ComNotification

发送端:要调用的Com_CbkTxAck回调函数的名称。

在接收端:要调用的Com_CbkRxAck回调函数的名称。

如果省略此参数,则不应进行任何通知。

ComRxDataTimeoutAction

此参数定义接收截止日期监视计时器过期时执行的操作。

ComSignalDataInvalidValue

定义信号的数据无效值。

ComSignalEndianness

定义信号网络表示的endianness。

ComSignalInitValue

信号的初始值。

ComSignalLength

信号长度

ComSignalType

信号的AUTOSAR类型。通过检查这个属性的值可以发现信号是否有符号。

这种类型也可以用于在AUTOSAR COM中保留适当的存储。

ComTimeout

定义最后期限监视超时时间的长度(以秒为单位)。

ComTimeoutNotification

发送端:要调用的Com_CbkTxTOut回调函数的名称。

在接收端:调用的Com_CbkRxTOut回调函数的名称。

ComTimeoutSubstitutionValue

当出现超时时,将使用该信号代换值,并将xdatatimeoutaction设置为替换。

ComTransferProperty

定义对该信号的写访问是否可以触发相应I-PDU的传输。如果I-PDU被触发,也取决于相应的I-PDU的传输模式。

ComUpdateBitPosition

更新位在I-PDU中的位位置。

如果省略此属性,则不存在更新位。发送方和接收方的此设置必须一致。

ComSystemTemplateSystemSignalRef

对包含对ISignal(系统模板)的引用的ISignalToIPduMapping,这个ISignal(系统模板)由这个ComSignal(或ComGroupSignal)表示。

ComConfig/ComSignalGroup

ComDataInvalidAction

此参数定义在接收到无效信号时执行的操作。

如果所包含的信号之一是无效信号,则与信号组相关的动作。如果使用Replace,则使用ComSignalInitValue进行替换。

ComErrorNotification

仅在发送方有效:调用的Com_CbkTxErr回调函数的名称。

如果省略此参数,则不会发生错误通知。

ComFirstTimeout

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

ComHandleId

用作ID的数值。

这个ID分别使用Com_SignalIdType或Com_SignalGroupIdType参数来标识COM api中的信号和信号组。

ComInitialValueOnly

这个参数定义了各自的信号的初始值应该被放入各自的PDU中,但是不会通过RTE对该值进行任何更新。因此,Com实现不需要为这个信号(组)期望任何API调用。

ComInvalidNotification

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

ComNotification

发送端:要调用的Com_CbkTxAck回调函数的名称。

在接收端:要调用的Com_CbkRxAck回调函数的名称。

如果省略此参数,则不应进行任何通知。

ComRxDataTimeoutAction

此参数定义接收截止日期监视计时器过期时执行的操作。

ComSignalGroupArrayAccess

定义基于uint8数组的对这个ComSignalGroup的访问是否为应使用。

ComTimeout

定义最后期限监视超时时间的长度(以秒为单位)。

ComTimeoutNotification

发送端:要调用的Com_CbkTxTOut回调函数的名称。

在接收端:调用的Com_CbkRxTOut回调函数的名称。

ComTransferProperty

定义对该信号的写访问是否可以触发相应I-PDU的传输。如果I-PDU被触发,也取决于相应的I-PDU的传输模式。

ComUpdateBitPosition

更新位在I-PDU中的位位置。

如果省略此属性,则不存在更新位。发送方和接收方的此设置必须一致。

ComSystemTemplateSignalGroupRef

对ISignalToIPduMapping的引用,该引用包含对ISignalGroup (SystemTemplate)的引用,而这个ComSignalGroup表示ISignalToIPduMapping。

ComConfig/ComSGwMapping/source-destination

ComGwSourceDescription

网关源的描述。此容器允许定义网关源,而无需配置完整的COM信号。这允许在构建后添加/更改网关关系,而无需配置新的信号。

ComBitPosition

在I-PDU中的起始位置。这个参数指的是I-PDU中的位置,而不是影子缓冲区中的位置。如果将endianness转换配置为不透明,则参数ComBitPosition应定义第一个字节的bit0,类似于小endian字节顺序

ComBitSize

位大小,用于整数信号类型。对于ComSignalType UINT8_N和UINT8_DYN,大小应由ComSignalLength配置。对于ComSignalTypes FLOAT32和FLOAT64,大小已经由信号类型定义,因此可以省略。

ComSignalEndianness

定义信号网络表示的endianness。

ComSignalLength

对于ComSignalType UINT8_N,此参数指定长度n(以字节为单位)。对于ComSignalType UINT8_DYN,它指定最大长度(以字节为单位)。对于所有其他类型,应忽略此参数。支撑的最大长度受所用运输系统的限制。对于非TP-PDUs, PDU的最大大小(因此也包括任何包含的信号)受到具体总线特性的限制。例如,CAN和LIN的限制是8字节,CAN FD是64字节,FlexRay是254字节。

ComSignalType

信号的AUTOSAR类型。通过检查这个属性的值可以发现信号是否有符号。这种类型也可以用于在AUTOSAR COM中保留适当的存储。

ComUpdateBitPosition

更新位在I-PDU中的位位置。

如果省略此属性,则不存在更新位。发送方和接收方的此设置必须一致。

ComGwIPduRef

对信号网关源或目标描述的I-PDU的引用。

自动配置生成

ISOLAR软件可以通过导入DBC、ODX等文件,创建系统配置,进而通过系统配置生成部分底层软件配置。

以CAN模块为例,通过ConfGen工具,可以自动生成CAN节点、CANObject配置,其他配置一般以默认值填充。

 

Step1

DBC文件检查

删除属性: BA_ "GenSigStartValue" SG_ xxx SigName;

补充节点信息: BU_: VCU ABS …

补充每帧报文的接收发送节点: BO_ CanID MsGName: DLC ABS

                               SG_ SigName : 0|2@1+ (1,0) [0|3] "" VCU

Step2

导入DBC文件

 

Step3

生成配置

 

Step4

参考<模块配置>对生成的CAN模块配置进行修改、适配。

参考文档

[1] AUTOSAR_SRS_COM.pdf

[2] AUTOSAR_SWS_COMpdf

[3] RTA-BSWReferenceGuide.pdf

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AUTOSAR是一种用于汽车电子系统开发的标准,NVM(非易失性内存)是具体实施标准的一部分。NVM代码是用于控制和管理车辆的非易失性内存的代码。 NVM代码主要用于处理车辆的数据存储和加载功能。它包括操作车辆电子控制单元(ECU)的非易失性内存,如闪存、EEPROM等。这些内存用于存储关键的车辆数据,例如驾驶模式、行驶数据、故障记录等。 AUTOSAR的NVM代码详解包括以下几个方面的内容: 1. 数据存储与加载:NVM代码允许将数据存储到非易失性内存中,并在需要时加载到车辆控制系统中。它提供了一套API(应用程序接口),用于读写数据以及管理存储空间。开发人员可以使用这些API来存储和加载特定的数据。 2. 数据保护:NVM代码还负责保护车辆中存储的数据不被损坏或丢失。它提供了一些机制,如校验和、纠错码等,来防止数据损坏,并提供了一些备份策略,以防止数据丢失。 3. 数据管理:NVM代码提供了一些功能来管理非易失性内存的空间。它可以对存储空间进行分区,以便不同类型的数据可以被存储到特定的存储区域。此外,NVM代码还可以执行数据整理操作,以优化存储空间利用率。 4. 可靠性保证:NVM代码需要确保被存储的数据是可靠和一致的。它提供了一些机制,例如写操作的原子性和事务保护,以确保数据不会被破坏或篡改。 总而言之,AUTOSAR的NVM代码详解介绍了车辆非易失性内存管理的相关功能和原理。它为开发人员提供了一套API,以便有效地存储和加载车辆的关键数据,并保护数据不被损坏或丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值