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文章来源:https://www.toymoban.com/news/detail-707754.html
[3] RTA-BSWReferenceGuide.pdf文章来源地址https://www.toymoban.com/news/detail-707754.html
到了这里,关于【AUTOSAR】 项目和代码详解(四)----AUTOSAR COM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!