欢迎来到厦门皓佑物联科技有限公司官方网站!
您的位置: 首页 - 新闻资讯 - AUTOSAR中CAN通信协议栈配置详解 硬件工程师电路分析物联网模电单片机嵌入式技术.doc

AUTOSAR中CAN通信协议栈配置详解 硬件工程师电路分析物联网模电单片机嵌入式技术.doc

来源:新闻资讯 / 时间: 2024-11-23
AUTOSAR中CAN通信协议栈配置详解 AUTOSAR的通信协议栈是由BSW通信服务,通信硬件抽象和通信驱动程序组成。 图1?AUTOSAR 通信协议栈的组件 COM模块 AUTOSAR COM是位于RTE和PduR之间的服务层模块,主要用于与RTE之间的信号交互,对信号进行打包和解包。另外在该模块中还可以配置IPDU的通信周期、通信周期偏移量、IPDU Group等。 PduR模块 PduR的作用是为通信协议栈中的不同总线的IPDU提供路由路径。例如它将接收的IPDU路由至COM、Dcm等模块,或者将COM模块需要发送的IPDU路由至CanIf模块,最后传送至芯片的CAN Driver,将信号发送至总线。 CanTp模块 Tp表示传输协议。该模块是特定于总线,其配置取决于基础总线协议,可以是CAN、LIN、CANFD等总线。该模块主要用于长报文的分段发送,以及对分段报文进行重组。 Bus SM 模块 总线状态管理模块负责相应总线状态机的管理和总线故障的处理。它可以基于CAN总线的CanSM,或者是基于LIN总线的LinSM等。 Bus?Trcv Driver模块 它是ECU抽象层的一部分。它可以是用于CAN收发器的CanTrcv,用于以太网收发器的EthTrcv,用于Flexray收发器的FrTrcv等。此模块用于对收发器进行初始化配置,它提供独立于控制器硬件的用于启动传输的服务和用于通知接收事件的回调函数。 Bus Driver 该模块是AUTOSAR MCAL层的一部分(例如:CanDrv,LinDrv,FrDrv),它实际上与ECU的底层硬件进行交互,并为其上层提供独立于硬件的接口。此模块取决于硬件,并且驱动程序代码可能会根据基础硬件而有所不同。BusIf是唯一可以访问此总线驱动程序的模块。 CAN总线的COM配置实施 下面我们来看看CAN通信协议栈,如下图2所示,包括Com、PduR、CanTp、CanSm、CanIf、CAN Driver等模块,其中COM与PduR模块是通用的,其功能与总线铜线协议无关。 图2?AUTOSAR CAN通信协议栈 下面来详细聊聊各个模块的配置选项。 COM模块 配置的COM模块基本目的是在上层RTE层和下层PDU路由器之间建立系统通信,而不考虑通信协议。这可以通过定义和配置四个不同的对象来完成。 1、I-PDU I-PDU包含从通信栈中某一模块接收到的消息或需要发送给某一模块的消息。 2、I-PDU组 如果我们有大量的I-PDU,则可以将它们分为不同的组,通常至少分为两个组,一个为TxGroup,一个为RxGroup。 3、信号 I-DPU可以包含一个或多个信号,可以理解为一个I-PDU为一帧CAN消息,信号就是dbc中定义的。 4、信号组 如果需要将多个信号发送到同一I-PDU,则信号可以进一步形成信号组。 COM模块包含两个主要的部分,分别为ComGeneral和ComConfig。 ComGeneral(多重性:1) 1、ComConfigurationUseDet:如果此布尔参数设置为ON,则任何当COM模块出现错误时,会调用Det_ReportError函数,记录在DET模块中(多重性:0.1)。 2、ComCancellationSupport:这是一个布尔参数,用于启用/禁用用于取消PDU传输请求的取消功能。(多重性:0.1)。 3、ComEnableSignalGroupArrayApi:这是一个布尔参数,用于激活/禁用信号组阵列访问API。(多重性:1)。 4、ComSupportedIPduGroups:它是一个整数参数,用于说明所支持的IPDU组的最大数量。(多重性:1)。 5、ComVersionInfoApi:布尔参数,用于激活/禁用版本信息API Com_GetVersionInfo。(多重性:1)。 6、ComRetryFailedTransmitRequests:如果此参数设置为true,则启用重试失败的传输请求。(多重性:0.1)。 7、ComEnableMDTForCyclicTransmission:如果启用此选项,则它将在I-PDU的循环传输和重复传输之间提供最小延迟时间监视。(多重性:0.1)。 ComConfig(多重性:0.1) 它包含四个容器,分别为ComSignals、ComIPdus、ComIPduGroups、ComSignalGroups。它还具有用于传输模式配置,信号网关配置,时基配置和过滤器参数配置的配置参数。 ComIpdu(多重性:1) 该容器用于为不同的IPDU参数提供定义,如果没有该参数,则无法通过COM模块进行通信。ComIPdu也通过ComPduIdRef链接到PDU。I-PDU包含一个或多个信号和/或信号组。

相关产品

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部