【AUTOSAR COM 2.通信协议栈进阶介绍】

首先了解下Autosar通信栈图
在这里插入图片描述
AUTOSAR中的通信栈包含以下这些部分:

一.can

我们在看看和Autosar Can模型
在这里插入图片描述
·CAN驱动

CAN驱动为上层使用者提供统一的接口——CAN接口。CAN驱动尽可能合理地隐藏了相关CAN控制器的硬件专用性。

CAN驱动是最底层的一部分,为上层执行对硬件的访问和提供硬件无关的API。上层中唯一能够访问CAN驱动的是CAN接口。

如果几个CAN控制器属于相同的CAN硬件单元,那么它们能够由CAN驱动来控制。

一个CAN控制器总是与一个物理通道相关联。它被允许与总线上的物理通道相连接,不管CAN接口是否将相关的CAN控制器分别对待。

·CAN接口(硬件抽象)

CAN接口提供标准化的接口,通过ECU的CAN总线系统来支持通信。其API与专用CAN控制器及其通过CAN驱动层的访问无关。CAN接口能够通过统一的接口访问一个或多个CAN驱动。

CAN接口仅能用于CAN通信,并且是为操作一个或多个底层CAN驱动而专门设计。涵盖不同CAN硬件单元的几个CAN驱动模块由一个在CAN驱动规范中指定的通用接口来表示。CAN之外(也就是LIN)的其他协议不支持。

·CAN传输层

CAN传输层是位于PDU路由和CAN接口模块之间的模块。其主要作用是分割和合并大于8字节的CAN I-PDU。

根据AUTOSAR基本软件体系结构,CAN传输层提供的服务有:

n 发送方向的数据分割;

n 接收方向的数据合并;

n 数据流控制;

n 分割期间内的错误检测。

AUTOSAR体系结构定义了通信系统的各个具体的传输层(CanTp、包含LinIf的LinTp、FlexRayTp)。因此,CAN传输层仅涵盖了CAN传输协议的细节。

CAN传输层拥有一个接口,该接口连接一个单独的下层CAN接口层和一个单独的上层PDU Router模块。

根据AUTOSAR发布的计划,该CAN传输层规范包含下面的限制:

  • CAN传输层仅运行在事件触发模式中,

  • 没有传送/接收撤消。

·CAN收发器驱动(和NM强相关)

CAN收发器驱动负责处理ECU上的CAN收发器,依据的是与整个ECU当前状态相关的总线专用NM的状态。

CAN收发设备驱动的目标:CAN收发设备驱动抽象使用CAN收发设备硬件芯片。它向更高层提供硬件无关接口。它也可以通过MCAL层的API从ECU设计中抽象出来,访问CAN收发设备硬件。

CAN收发设备硬件必须提供功能和接口,以映射到AUTOSAR CAN收发设备驱动的运行模式模型上。

下层驱动(SPI和DIO)使用的API必须同步。不支持同步行为的下层驱动的实现不能与CAN收发设备驱动一起使用。

二 COM

AUTOSAR COM层位于RTE和PDU路由器之间。它来源于OSEK_COM标准。AUTOSAR COM提供了信号网关功能

COM与其它模块的依赖关系如下图所示:

在这里插入图片描述
·COM Manager

COM Manager(COM管理)是基本软件Basic Software(BSW)的一个组件。它是囊括了下层通信服务的控制的资源管理。

COM Manager控制的基本软件模块(BSW)与通信相关,而不是与软件组件或可运行实体相关。

COM Manager从通信请求者那里收集总线通信访问请求,并协调总线通信访问请求。

COM Manager的目标是:

(1)为用户简化总线通信栈的使用。这包括了总线通信栈的初始化和简化的网络管理处理。

(2)协调与多个软件组件(在一个ECU上)无关的总线通信栈(允许信号的发送和接收)的可用性。

(3)临时性取消信号的发送以阻止ECU唤醒通信总线。

(4)控制ECU的一个以上的通信总线通道,这通过为每个通道实现一种状态机制来实现。

(5)提供使ECU保持总线处于“静默通信”模式。

(6)通过分配对请求通信模式必需的所有资源来简化资源管理。

COM Manager包含以下基本功能:

在这里插入图片描述
·AUTOSAR COM与OSEK COM的比较

根据通信部分提供的功能,对比两者在相同功能上的API,以及两者各自所特有的API,由于AUTOSAR COM较之OSEK COM,多出了一个COM Manager,即通信管理模块部分,所以整个AUTOSAR COM Manager为AUTOSAR标准所特有,下面先对两者的相同功能部分作比较。

1、相同功能及服务

(1)启动与控制服务
在这里插入图片描述
两者在通信的启动与控制服务部分的对比可以看出:首先,AUTOSAR提供的API较多,表明它的功能较强;其次,AUTOSAR的启动与控制服务中包含对I-PDU(交互层协议数据单元)的处理和控制,如Com_IpduGroupStart、Com_IpduGroupStop。

(2)通信服务

在这里插入图片描述
通过对比可以看出,OSEK通信服务中包含了对错误的一些简单的处理,如获得错误服务的Id(COMErrorGetServiceId),而AUTOSAR通信服务仍然包含对I-PDU的处理,如Com_TriggerIPDUSend。

(3)通知机制支持服务(OSEK)与回调通知服务(AUTOSAR)
在这里插入图片描述
2、不同功能及服务

(1)OSEK为I-PDU的处理提供一类专门的服务,称为OSEK间接网络管理接口,包含2个API:I-PDU传输指示(I_MessageTransfer)和I-PDU超时指示(I_MessageTimeOut)。

(2)OSEK通信部分提供了一些例行程序对通信起扩展作用,包含3个API:StartCOMExtension、COMCallouts、COMErrorHook。

(3)AUTOSAR提供了一些调度函数,主要是对消息或信号的接收或发送起路由、调度的作用,包含3个API:Com_MainFunctionRx、Com_MainFunctionTx、Com_MainFunctionRouteSignals。

(4)AUTOSAR的通信部分有一个COM Manager,这是一个通信管理模块,是AUTOSAR标准特有的,主要负责对通信进行监控、管理、诊断以及管理涉及通信的ECU状态。下表列出了它所提供的部分API。

在这里插入图片描述
总结: AUTOSAR COM与 OSEK COM的区别就在于comM
comM的作用:1.对通信模式,通信资源进行管理 2.为用户简化总线通信栈的使用,包括总线通信的初始化与简化网络网络处理

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值