【AUTOSAR COM 1.通信协议栈介绍】

CP AUTOSAR文档的下载链接

1、首先我们看COM stack架构图在这里插入图片描述
1 CAN通信协议栈概念

AUTOSAR通信栈位于运行时环境(RTE)与微控制器抽象层(MCAL)之间,其可以简化ECU间的通信服务,实现不同类型或速率总线间的数据交互。在AUTOSAR通信栈中,位于服务层的有通信模块(Communication,Com),诊断通信管理模块(Diagnositic Communication Manager,Dem)、协议数据单元路由模块(Protocol Data Unit Router,PduR),协议数据单元复用模块(I-PDU Multiplexer,IpduM)、总线相关的传输模块(如CanTp,FrTp等)以及通信与网络管理相关的模块;位于ECU抽象层的是与总线相关的接口模块(如CanIf,LinIf等);位于微控制器抽象层的是与总线相关的驱动模块(如Can,Lin等)

AUTOSAR通信栈对应用层隐藏了与总线相关的协议和报文的属性。以基本的CAN通信为例,其发送机制为**RTE–>COM–>PduR–>CanIf–>CAN Driver,**过程描述如下:

Com模块获取应用层的信号(Signal),经一定处理封装为I-PDU(Interaction Layer Protocol Data Unit)发送到PduR模块;
PduR模块路由协议中所指定的I-PDU目标接收模块,将接收到的I-PDU经一定处理后发送给CanIf;
CanIf将信号以L-PDU(Data Link Layer Protocol Data Unit)的形式发送给CAN驱动模块

2 CAN通信协议模块简介
2.1 Com模块
Com模块位于运行时环境RTE与PduR模块之间,其主要功能包括:

将信号装载到I-PDU中发送,从接收到的I-PDU中解析出信号;
提供信号路由功能,将接收到的I-PDU中的信号打包到发送I-PDU中;
通信发送控制(启动/停止I-PDU组)
发送请求的应答等。
对于每个Com I-PDU需要设定I-PDU的传输方向(ComIPduDirection)、信号处理方式(ComIPduSignalProcessing)、类型(ComIPduSignalRef)、所属的I-PDU工作组(ComIPduGroupRef)、Com信号引用(ComIPduSignalRef)、全局PDU引用(ComPduIdRef)等。

2.2 PduR模块
PduR模块是主要为通信接口模块、传输协议模块、诊断通信管理模块以及通信模块提供基于I-PDU的路由服务。它在通信协议栈中起着承上启下的作用,为上层服务基础软件模块和应用屏蔽了网络细节,使得上层基础软件模块和应用不用关心运行于那种总线网络之上。同时,PduR模块提供了基于I-PDU的网关功能,使得不同总线之间的通信成为可能。

2.3 CanIf模块
CAN接口层(CanIf)是访问CAN总线的标准接口。CanIf抽象了CAN控制器的位置信息,并向上层模块提供一个统一的接口,屏蔽下层的差异,即上层不用关心CAN控制器是微控制器的片上设备还是片外设备。

CANIf模块主要功能:完成对CanIf和控制器中全局变量及配置缓冲区的初始化;发送请求服务,提供上层应用在CAN网络上发送PDU的接口;发送确认服务,发送成功后通知上层,或者发送取消确认后存于发送缓存;接收指示服务,成功接收PDU后通知上层。

CANIf模块主要配置为硬件对象句柄(Hardware object handle,Hoh),包括Hth(Hardware transmit handle)和Hrh(Hardware receive handle),它们需要引用Can模块中定义的CAN硬件对象。

2.4 ComM模块
通信管理模块(Communication Manager,ComM)可以简化总线通信栈的初始化、网络管理等,并可收集/协调总线通信访问请求。它主要提供了三种通信模式:

COMM_FULL_COMMUNICATION:FULL通信模式,此状态既能接收又能发送
COMM_SILENT_COMMUNICATION:SILENT通信模式,此状态只能进行接收
COMM_NO_COMMUNICATION:NO通信模式,此状态不能进行通信

2.5 CanSM模块
CAN状态管理器(CAN State Manager,CanSM)负责实现CAN网络控制流程的抽象,它为ComM模块提供API来请求CAN网络进行通信模式的切换。

3 MCal之Can模块[2]
CAN驱动(CAN Driver)属于微控制器抽象层中的通信驱动,它针对的是微控制器内部的CAN控制器,可以实现对CAN控制器的初始化、发送/接收CAN报文、对接收报文的指示与对发送报文的确认、唤醒检测、溢出和错误处理等功能。CAN驱动可以访问硬件,并向上层提供独立与硬件的API。
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值