AUTOSAR-BSW层概述

一.什么是BSW 

BSW层全称为Basic Software (基础软件层),顾名思义,该层主要是为应用层提供基础服务。

这里可以看到 BSW 主要提供了:看门狗服务 ,存储服务,通信和诊断服务,OS服务,I/O 功能,BswM 和 EcuM 等模式管理功能

看门狗服务:提供看门狗功能,检测MCU,当MCU挂死的时候可以进行复位重启。

存储服务:提供读写数据到 EEPROM的功能。 通信和诊断服务:提供 Can、Lin、Eth 等通信和诊断功能。

I/O 功能:提供通用GPIO读写功能,ADC、PWM等特殊 Port 外设功能。

OS 服务:提供基础OS服务,任务周期运行、调度等功能。

BswM:管理整个Bsw的模块。

EcuM:管理 Ecu上下电等功能。


二.BSW结构介绍

MCAL层(微控制抽象层 MicroController Abstraction Layer)是对MCU 芯片的抽象和封装,由于Autosar Cp 是基于MCU 的软件架构,所以该层主要是实现MCU 外设驱动,比如I/O驱动、Flash 驱动、Can 驱动、看门狗驱动、定时器驱动等等。这一层是需要和硬件打交道的,这一层高度依赖MCU 硬件,如果项目换MCU 芯片,只需要修改这一层代码适配驱动即可。 

ECU 抽象层(ECU Abstraction Layer)是对ECU的抽象和封装,ECU上面除了主芯片MCU,还有很多外围设备,比如外置Flash,外置电源管理芯片等等。这 一层就是实现了整个ECU 所有设备的封装。外围设备也是MCU 主芯片控制的, 这一层会使用到Mcal 的接口。作为抽象层,屏蔽了下层驱动实现细节,将统一 接口API 暴露给上层以实现功能。该层从上层抽象Mcal 层,并提供用于访问外 部和内部的驱动程序的API。 

服务层(Service Layer)是向应用层提供服务的,这一层将底层提供的服务封装起来供应用层使用。比如通信服务、存储服务、os操作系统服务等。 

CDD (Complex Device Drivers)复杂驱动指的是有些模块不适用于Autosar协议栈,通过手写代码自己封装成CDD模块,在项目开发中会经常有一些模块直接作为CDD使用。 

三.通信服务

Mcal 包含了收发器驱动和总线控制器驱动,Mcal 向上提供驱动接口供总线接口层(CanIf LinIf EthIf)调用。
总线接口层(CanIf LinIf EthIf)也就是通信硬件抽象层,主要任务包括向上层模块提供与硬件无关的统一接口,屏蔽下层控制器收发器实现细节。
Bus Tp 层: Tp(Transport Layer)是通信传输层,主要是为诊断使用的,当can Lin 总线需要传输大于 8byte 数据,就需要Tp层进行多帧传输。
PduR 层: Pdu Router 也就是 Pdu 路由层,所有的通信收发都会到这一层进行PDU 路由。 Autosar 中包含了 Can、 Lin、 Eth 等通信,每个通信报文都可以描述成一个 PDU(protocal data unit)协议数据单元,通过 PduR 这一层统一管理每个 Pdu 收发去处。
IPDU Mux: IPDU 多路复用功能,指的是使用同一个 I-PDU 的同一种 PCI,其SDU 有多个不同的布局。
COM:通信报文会到这里。 从 PDUR 接收上来的 I-PDU 到这里会转成具体信号数据给到应用层使用, 应用层通过 RTE 传下来的信号首先到这里转成 I-PDU发到 PduR。应用层无需关注收发数据是通过什么总线传输的,这些收发的数据通过 DBC 文件或者 ARXML 文件事先定义好。 COM 主要起到信号接口和网关作用。 

DCM:诊断报文会到这里,根据诊断要求做具体诊断服务。

L-PDU:(Data Link Layer PDU)数据链路层 PDU,可以理解就是一帧总线报文

N-PDU:(Network Layer PDU )网络层(也就是传输 TP 层)PDU,一般诊断报文会走 TP层,通信报文直接从 IF 层转到 PduR 层,当诊断是多帧传输的时候,一个IPDU就会被分段成多个 N-PDU
I-PDU: (Interaction Layer PDU) 交互层 PDU, PDUR 路由转发 I-PDU。
三种 PDU 代表在通信协议栈不同分层的协议数据单元, I-PDU就包含了数据buffer 指针、数据长度、和 I-PDU ID,本质就是一个结构体。

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LJX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值