【AUTOSAR】 项目和代码详解(八)----AUTOSAR CANIF 配置

这篇具有很好参考价值的文章主要介绍了【AUTOSAR】 项目和代码详解(八)----AUTOSAR CANIF 配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CANIF

概要

如下图所示,CANIF(CAN Interface)模块位于底层CAN设备驱动程序(CAN驱动和收发器驱动)和上层通信服务层(CAN状态管理器、CAN网络管理、CAN传输协议、PDU路由器)之间,它表示到上层通信层的CAN驱动程序的服务或接口。CAN接口模块提供了唯一的接口来管理不同类型的CAN硬件设备,如CAN控制器和CAN收发器。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CANIF模块由所有与CAN硬件无关的任务组成,属于相应ECU的CAN通信设备驱动程序。这些功能在CAN接口模块中实现一次,因此底层的CAN设备驱动程序只关注对相应的特定CAN硬件设备的访问和控制。

CanIf满足PDU路由器的主控制流和数据流要求AUTOSAR COM栈的上层通信模块:发送请求处理,发送确认/接收指示/错误通知并启动/停止CAN控制器,从而唤醒/参与网络。它的数据处理和通知API基于CAN L-SDUs,而控制API则基于CAN L-SDUs模式处理提供了一个与CAN控制器相关的视图。

在发送请求的情况下,可以用相应的完成L-PDU的传输参数和继电器的CAN L-PDU通过适当的CanDrv到CAN控制器。在接待处,CanIf将接收到的l - pdu分发为lsdu到上层。接收L-SDU与上层之间的分配是静态配置。在发送确认时,CanIf负责通知上层关于成功的传播。

CAN接口模块提供了对CAN通信的抽象访问可以驱动和可以收发驱动服务进行控制和监督吗可以网络。CAN接口向下转发状态更改请求从CAN状态管理器到底层CAN设备驱动程序,再往上CAN驱动程序/ CAN收发器驱动程序事件由CAN接口转发模块到例如相应的NM模块。

模块配置

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfCtrlDrvCfg

所有底层CAN的配置参数驱动程序模块在此容器下聚合。对于每个CAN驱动模块,必须提供此容器的独立实例。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfCtrlId

此参数从CAN驱动程序特定的参数中抽象出来控制器。所有连接的CAN驱动模块的每个控制器都应该分配给一个特定的控制器。

范围:0..所有CAN驱动模块配置的控制器数量。

CanIfCtrlWakeupSupport

此参数定义引用的各个控制器是否可以驱动模块可以查询唤醒事件。

True:启用False:禁用

CanIfCtrlCanCtrlRef

此参数从CAN提供的CAN驱动程序模块引用底层CAN控制器的逻辑句柄

接口模块。这个链接需要引用CanController配置容器的以下参数:CanWakeupSourceRef

范围:0 . . max。支持的底层CAN控制器的数目

CanIfCtrlDrvInitHohConfigRef

引用Init Hoh配置。

CanIfCtrlDrvNameRef

CAN接口驱动程序参考。该引用可用于获取任何信息(例如,驱动程序名,供应商ID)从CAN驱动程序。可以从CAN驱动程序模块的短名称派生出CAN驱动程序名称。

CanIfDispatchCfg

回调函数由CanIf的上层模块提供。这个容器中定义的回调函数对于所有配置的CAN Driver /都是通用的可以收发驱动模块。

CanIfInitCfg

此容器包含CAN的init参数接口。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfInitHohCfg

此容器包含对每个底层CAN驱动程序的配置设置的引用。

CanIfHrhCfg

此容器包含每个硬件接收对象(HRH)的配置参数。

CanIfHthCfg

此容器包含与每个HTH相关的参数。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

CanIfHthCanCtrlIdRef

指向HTH所属的控制器Id。一个控制器可以包含一个或多个HTH。

CanIfHthIdSymRef

该参数引用CanDrv中的一个特定的HTH对象配置(参见CanHardwareObject)。

CanIf通过此接收CanDrv模块的以下信息:CanHandleType、CanObjectId

CanIfHrhSoftwareFilter

通过使用HRH范围/列表选择硬件接收对象可以配置驱动程序来定义,其中HRH软件过滤必须在接收处理期间执行。

True:启用软件过滤;False:启用软件过滤

CanIfHrhCanCtrlIdRef

对HRH所属的控制器Id的引用。一个控制器可以包含一个或多个hrh。

CanIfHrhIdSymRef

该参数引用CanDrv中的特定HRH对象配置(参见CanHardwareObject)。

CanIf通过此接收CanDrv模块的以下信息:

CanHandleType\CanObjectId

CanIfHrhRangeCfg

定义为给定的同一HRH配置多个CANID范围所需的参数。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfRxPduCanId

CAN接口使用的接收CAN L-PDUs的CAN标识符。穰:软件过滤。如果可以,则使用此参数标识符被分配给Pdu。如果指定了范围,则参数应使用。

范围:11位标准CAN标识符…扩展CAN标识符的29位

CanIfRxPduCanIdMask

标识符掩码,它表示CAN标识符中的相关位。此参数以另一种方式定义CAN标识符范围CanIfRxPduCanIdRange。它标识配置的CAN的位必须与接收到的CAN标识符匹配的标识符。范围:标准CAN标识符为11位,扩展CAN标识符为29位。

CanIfRxPduCanIdType

可以接收的标识符可以L-PDUs使用的CAN驱动程序可以L-PDU接待。

CanIfRxPduDataLength

接收到的CAN L-PDUs的数据长度由CAN接口使用。

此信息用于数据长度检查。此外,它可以指定有效的位在离散DLC的情况下可以FD L-PDUs >8个字节。CAN L-PDU的数据区域大小可以是0到64字节。

CanIfRxPduDataLengthCheck

此参数切换消息特定数据长度检查。

True:数据长度检查将在接收该PDU时执行。

False:在接收这个PDU时不会执行数据长度检查。

CanIfRxPduId

ECU宽独特,符号句柄为接收可以L-SDU。对于常量定义,它应该满足ANSI/AUTOSAR定义。

范围:0 . . max。已定义的canrxpduid的数目

CanIfRxPduReadData

启用和禁用用于读取接收的L-SDU数据的Rx缓冲。

True:启用False:禁用

CanIfRxPduReadNotifyStatus

启用和禁用接收指示,每个接收可以L-SDU读取其通知状态。

True:启用False:禁用

CanIfRxPduUserRxIndicationName

该参数定义了< user_rx指示>的名称。该参数取决于参数CanIfRxPduUserRxIndicationUL。如果CanIfRxPduUserRxIndicationUL = CAN_TP, CAN_NM, PDUR,XCP, CAN_TSYN, J1939NM或J1939TP,的名称< User_RxIndication >是固定的。如果CanIfRxPduUserRxIndicationUL等于CDD,则< user_rxindication>的名称是可选择的。

CanIfRxPduUserRxIndicationUL

此参数定义了上层(UL)模块,成功接收到的CANRXPDUID的指示必须通过 < user_rxsignal> 路由到该模块。当配置的CANRXPDUID的指示将由来自CAN驱动程序模块的Rx指示事件接收时,必须调用此 < user_rx> 。的CANRXPDUID的Rx指示事件时,不必调用 < user_rx > 可以驱动模块。

CanIfRxPduHrhIdRef

Rx L-PDU所属的HRH通过该参数引用。

CanIfRxPduRef

引用“全局”Pdu结构,以便协调comStack中的标识符。

CanIfRxPduCanIdRange

允许映射CAN范围的可选容器id到一个PduId。

CanIfTTRxFrameTriggering

在SWS中指定了canifttrxframetriggerTTCAN接口,定义TTCAN接收的帧触发器。这个容器只有在TTCAN被控制器支持的情况下才有效CanIfSupportTTCAN和一个joblist用于接收。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfTxPduCanId

发送的标识符可以被L-PDUs用于CAN驱动程序,可以L-PDU传播。

范围:标准CAN标识符为11位…扩展CAN标识符的29位

对于动态传输L-PDUs,可以省略CAN标识符。

CanIfTxPduCanIdMask

标识符掩码,它表示CAN标识符中的相关位。该参数可用于保持部分动态发送L-PDUs的CAN标识符为静态。范围:标准CAN标识符为11位,扩展CAN标识符为29位。

CanIfTxPduCanIdType

CAN使用的传输CAN L-PDU的CAN标识符的类型用于CAN L-PDU传输的驱动模块。

CanIfTxPduId

ECU唯一的,符号句柄为传输可以L-SDU。

范围:0 . . max。CantTxPduIds数量

CanIfTxPduPnFilterPdu

如果启用了CanIfPublicPnFilterSupport,则可以通过该参数配置PDUs,它将通过CanIfPnFilter。如果没有为每个控制器配置CanIfTxPduPnFilterPdu,则相应的控制器不应用CanIfPnFilter。

CanIfTxPduReadNotifyStatus

启用和禁用每个传输CAN的传输确认读取其通知状态的L-SDU。

True:启用False:禁用

CanIfTxPduTriggerTransmit

确定是否CanIf应为此使用API触发器传输PDU。

CanIfTxPduTruncation

启用/禁用超过配置大小的pdu的截断。

CanIfTxPduType

定义每个传输CAN L-PDU的类型。

CanIfTxPduUserTriggerTransmitName

该参数定义了< user_triggertransmission >的名称。这个参数取决于参数CanIfTxPduUserTxConfirmationUL。如果CanIfTxPduUserTxConfirmationUL = CAN_TP, CAN_NM, PDUR,XCP, CAN_TSYN, J1939NM或J1939TP,的名称< User_TriggerTransmit >是固定的。如果CanIfTxPduUserTxConfirmationUL等于CDD,则<User_TxConfirmation>的名称是可选的。

此参数依赖于与CanIfTxPduUserTxConfirmationName相同的参数。应该明确哪个上层负责该PDU。

CanIfTxPduUserTxConfirmationName

该参数定义了<User_TxConfirmation>的名称。这个参数取决于参数CanIfTxPduUserTxConfirmationUL。如果CanIfTxPduUserTxConfirmationUL = CAN_TP, CAN_NM, PDUR,XCP, CAN_TSYN, J1939NM或J1939TP,的名称< User_TxConfirmation >是固定的。如果CanIfTxPduUserTxConfirmationUL等于CDD,则<User_TxConfirmation>的名称是可选的。

CanIfTxPduUserTxConfirmationUL

该参数定义了上层(UL)模块,成功传输的CanTxPduId的确认必须通过<User_TxConfirmation>路由到该模块。当配置的CanTxPduId的确认将被来自CAN驱动程序模块的Tx确认事件接收时,必须调用这个<User_TxConfirmation>。如果没有配置上层(UL)模块,则没有必须调用<User_TxConfirmation>,以防来自CAN驱动程序模块的CanTxPduId的Tx确认事件。

CanIfTxPduBufferRef

对CanIf缓冲区配置的可配置引用。

CanIfTxPduRef

引用“全局”Pdu结构,以便协调comStack中的标识符。

CanIfTTTxFrameTriggering

在SWS中指定了caniftttxframetriggerTTCAN接口,定义TTCAN传输的帧触发器。这个容器只有在TTCAN被控制器支持的情况下才有效使用CanIfSupportTTCAN和joblist。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfBufferSize

此参数定义可以在一个Txbuffer中缓冲的CanIf Tx L-PDUs的数量。如果该值等于0,则CanIf不会对分配给它的CanIf Tx L-PDUs执行TxbufferingTxbuffer。如果CanIfPublicTxBuffering等于False,则该参数等于0为所有TxBuffer。如果引用的HTH的CanHandleType等于这个TxBuffer的参数为0。

CanIfBufferHthRef

对HTH的引用,它定义为传输而配置的硬件对象或硬件对象池。所有的CanIf Tx L-PDUs都通过CanIfBufferCfg和该参数向HTHs if引用是否启用TxBuffering。每个HTH不得分配给一个以上的缓冲区。

CanIfPrivateCfg

此容器包含私有配置(参数)的CAN接口。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

CanIfFixedBuffer

此参数定义缓冲区元素长度是否应固定为8只分配给PDUs < 8字节的缓冲区的字节数。

TRUE:最小缓冲区元素长度固定为8字节。

FALSE:缓冲区元素的长度取决于引用的pdu的大小。

CanIfPrivateDataLengthCheck

选择是否支持数据长度检查。

True:启用False:禁用

CanIfPrivateSoftwareFilterType

只选择接收所需的软件过滤机制。每个已实现的软件过滤方法由此枚举号标识。

范围:类型实现的软件过滤方法

CanIfSupportTTCAN

定义是否支持TTCAN。

TRUE:支持TTCAN。

FALSE:不支持TTCAN,只有正常的CAN通信是可能的。

CanIfPublicCfg

此容器包含公共配置(参数)的CAN接口。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfBusMirroringSupport

启用对总线镜像的支持。

CanIfDevErrorDetect

打开或关闭开发错误检测和通知。

true:启用检测和通知。

false:检测和通知被禁用。

CanIfMetaDataSupport

支持使用L-SDU元数据进行动态ID处理。

CanIfPublicCddHeaderFile

定义回调函数的头文件,在使用CDDs时应包括这些头文件。字符的范围是1..32。

CanIfPublicHandleTypeEnum

此参数用于配置Can_HwHandleType。

Can_HwHandleType表示CAN硬件单元的硬件对象句柄。对于超过255个HW对象的CAN硬件单元,扩展范围为应使用(UINT16)。

CanIfPublicIcomSupport

在CanIf中选择对虚拟网络特性的支持。TRUE:启用、FALSE:禁用

CanIfPublicMultipleDrvSupport

选择对多个CAN驱动程序的支持。

True:启用False:禁用

CanIfPublicPnSupport

CanIfTr选择在CanIf中支持部分网络特性。

TRUE:启用

FALSE:禁用

CanIfPublicReadRxPduDataApi

启用/禁用API CanIf_ReadRxPduData()来读取接收到的L-SDU数据。

True:启用False:禁用

CanIfPublicReadRxPduNotifyStatusApi

启用和禁用用于读取接收L-PDUs的通知状态的API。

True:启用False:禁用

CanIfPublicReadTxPduNotifyStatusApi

启用和禁用用于读取传输L-PDUs的通知状态的API。

True:启用False:禁用

CanIfPublicSetDynamicTxIdApi

启用和禁用用于重新配置每个传输L-PDU的CAN标识符的API。

True:启用False:禁用

CanIfPublicTxBuffering

启用和禁用传输L-PDUs的缓冲数据。

True:启用False:禁用

CanIfPublicTxConfirmPollingSupport

配置参数,以启用/禁用用于轮询Tx的API确认状态。

CanIfPublicWakeupCheckValidByNM

如果启用,只有NM消息将验证在CanIf中检测到的唤醒事件。如果禁用,则所有接收到的与配置的Rx PDU对应的消息都应验证此类唤醒事件。该参数依赖于CanIfPublicWakeupCheckValidSupport,只有在启用该参数时才可进行配置。

True:启用False:禁用

CanIfPublicWakeupCheckValidSupport

选择对唤醒验证的支持。

True:启用False:禁用

CanIfSetBaudrateApi

配置参数,以启用/禁用CanIf_SetBaudrate API来更改CAN控制器的波特率。如果该参数设置为true,则应该支持CanIf_SetBaudrate API。否则不支持该API。

CanIfTcvDrvCfg

此容器包含每个底层的所有寻址CAN收发器的配置(参数)CAN收发驱动模块。对于每个CAN收发器驱动器,应提供此容器的独立实例。

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

CanIfTrcvId

此参数抽象自CAN收发器驱动程序特定的参数收发器。每个收发器都可以连接收发机驱动模块应指定一个具体模块经发射装置。

范围:0 . .所配置的收发器数量均可收发驱动模块

CanIfTrcvWakeupSupport

此参数定义引用的各个收发器CAN收发器驱动模块可查询唤醒事件。

True:启用False:禁用

CanIfTrcvCanTrcvRef

要提供服务的CAN收发器驱动程序模块的基础CAN收发器的逻辑句柄接口模块。

范围:0 . . max。底层支持的CAN收发器的数目

自动配置生成

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

以CAN模块为例,通过ConfGenautosar can配置,网络,网络协议,汽车,linux,嵌入式硬件工具,可以自动生成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文件

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

Step3

生成配置

autosar can配置,网络,网络协议,汽车,linux,嵌入式硬件

 

Step4

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

参考文档

[1] AUTOSAR_SRS_CAN.pdf

[2] AUTOSAR_SWS_CANInterfacepdf

[3] RTA-BSWReferenceGuide.pdf文章来源地址https://www.toymoban.com/news/detail-613605.html

到了这里,关于【AUTOSAR】 项目和代码详解(八)----AUTOSAR CANIF 配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AUTOSAR 项目和代码详解(一)----AUTOSAR开发工具链

    AUTOSAR开发工具链介绍 软件名版本 功能说明等 资源情况及指导文件 安装情况 备注 集成编译环境 CW for MPC55xx and MPC56xx 2.10 针对MPC55xx和MPC56xx系列,32位芯片。 FSLFlexLM,CW2.10和CW5.1的license管理器,需绑定真实的MAC地址 CWS12v5.1 针对S12系列,16位芯片。若需G64,则要安装补丁包《

    2024年02月16日
    浏览(53)
  • AutoSar CAN网络管理(CanNm)

    网络管理的目的 是 使车辆网络中的 ECU 节点有序的睡眠和唤醒。 在没有通信需求的时候睡眠,在需要通信的时候唤醒, 可以节约汽车电池的电量。 CAN Network Management(CanNm) 是一种独立于硬件的协议实现的软件模块 , 只能在 CAN 网络上使用, 主要功能是协调网络正常运行和总

    2024年02月03日
    浏览(45)
  • AutoSAR—Davinci CFG中CAN模块配置(上)

    目录 前面 导入DBC文件 Can Controllers 通用配置 波特率配置 过滤器配置 CanHardwareObjects 最后 上篇文章介绍了一个DBC文件的诞生过程,它是AutoSAR CAN模块配置的前提。 CAN模块的配置是一块很难啃的骨头,作者也是初学,这篇文章只是给大家介绍一个CAN模块在Davinci CFG配置过程中会

    2024年02月11日
    浏览(36)
  • 【AUTOSAR】【Can通信】CanNM

    目录 一、概述 二、说明 三、功能说明 3.1 协调算法 3.2 操作模式 3.2.1 网络模式 3.2.2 准备总线睡眠模式 3.2.3 总线睡眠模式 3.3 网络状态 3.4 初始化 3.5 参数 3.6 网络管理PDU结构 3.7 通信调度 3.7.1 发送 3.7.2 接收 3.8 其他功能 3.8.1 远程睡眠指示器的检测 3.8.2 用户数据 3.8.3 被动模式

    2024年02月05日
    浏览(48)
  • [AutoSar]状态管理(四)单核BswM(二)流程、配置、 代码

       嵌入式、C语言、autosar、BswM 项目 Value OS autosar OS autosar厂商 vector 芯片厂商 TI 编程语言 C,C++ 编译器 HighTec (GCC) 回到总目录   蓝色箭头为SWC的上层交互,红色箭头为Bsw内部模块间的交互。 EcuM 初始化完毕后开始BswM初始化并调度mainfunction执行状态机。 rules :ESH_InitToWa

    2024年01月17日
    浏览(40)
  • AUTOSAR CAN协议栈架构总览介绍

    如下图是Classic AUTOSAR层级架构图,每个层主要功能如下 微控制器抽象层:使上层软件和微处理器型号无关,包含MCU中内部外设的驱动以及MCU内存映射的外部设备的驱动 ECU抽象层:使上层软件和ECU硬件设计无关,包含ECU板上外部设备的驱动以及内部设备与外部设备的接口(I

    2024年02月06日
    浏览(44)
  • AUTOSAR SecOC的CAN FD应用

    20多年来,CAN一直是并且仍然是车辆中的主导通信系统。 随着车载功能日益复杂,传统CAN已无法满足对有效数据速率日益增长的需求。 因此,引入了CAN FD—它允许高达64字节的有效载荷以实现2 Mbit/s 和5 Mbit/s的数据速率。为了将这一主要优势用于高级功能,必须解决更大网

    2023年04月08日
    浏览(42)
  • 详解AUTOSAR:DaVinci Configurator导入ARXML配置(拓展篇—2)

    对汽车电子技术感兴趣的小伙伴请 关注公众号:美男子玩编程 ,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~ 双击达芬奇工具,打开工具,如下图所示: 新建一个项目工程,点击File-New,出现如下图所示: 在Project Name:给新创建的工程

    2024年02月10日
    浏览(44)
  • AutoSAR配置与实践:深入探讨NVM主要接口、模块交互和数据流向(详解)

    深入了解AutoSAR配置中的NVM主要接口、模块交互和数据流向。探讨NVM协议栈架构、主要接口、数据操作流程等内容。

    2024年02月09日
    浏览(254)
  • Autosar CAN开发11-1(CAN控制器相关参数,位时间、Tq、采样点等)

            生活不易,猫咪叹气。好久没更新,距离上次更新已经是快半年前了。毕业到现在,已经在这家公司呆了快2年了。快的话一个月,慢的话两个月,马上就是提桶的日子了。                            说回我们的正题。                 平时在工作上,对于通

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包