BSW概述
一、什么是BSW
二、BSW的结构
1、微控制器硬件抽象层(MCAL)
2、ECU抽象层
3、服务层
4、复杂驱动
三、再将结构细分
一、什么是BSW
中文翻译就是基础软件层(Basic Software)。这个基础软件层实质上就是将整个ECU分层封装起来,一直封装到OS。就好像是windows一样,可以在不同CPU、不同GPU、不同主 板等的设备上运行一样。我们的ECU就像是电脑硬件,ECU上的主芯片就是cpu,AutoSAR OS在这里就可以看成是windows。这么比喻应该容易理解了吧,但是我们并不是很关心BSW中的OS,因为是可以由软件直接生成,我们这里最关心 的是如何为我的OS提供必要的硬件和软件支持。而针对千奇百怪的ECU产品,需要设置不同的配置来满足OS和上层的需求,这件事就是BSW来做 的。 为了一层一层的将硬件剥离开,BSW设置了三层软件层,越往上层和硬件的关系越小。
二、BSW的结构
1、微控制器硬件抽象层(MCAL)
如果接触过Arm的童鞋,应该听过库的概念。简单说就是将芯片的寄存器操作都封装称API函数,方便用户调用。这里的硬件抽象层也是一样,是将 芯片上的功能都封装称一个一个的API函数,供上层调用,而这些API函数是AutoSAR规定好的。针对不同的芯片,在这一层就可以做到对上层的接口 完全一致。这样的好处就是,当配置好了之后,同一个操作可以兼容所有芯片。
2、ECU抽象层
微控制器硬件抽象层是对ECU上主芯片的抽象和封装,而ECU抽象层就是对整个ECU的封装。什么意思呢:ECU上不光有主芯片,还有其他的一些 设备(比如外置存储,外置看门狗等),这一层就是对ECU上包括主芯片在内的所有设备的封装。当然,这些设备其实也是要通过主芯片控制的,比 如外置看门狗,就需要和主芯片相连接,由主芯片的接口去配置它。因此,其底层还是需要MCAL的支持
3、服务层
服务层里面就包含了我们的操作系统OS,同时是将下层的功能统一汇总到这里,将所有与硬件想关的功能都抽象成一个具体应用服务(比如通信, 这里就将CAN、I2C和串口等一系列的通信统一抽象称COM通信,应用层可以无需知道该通信具体是走哪种通信方式)。相较于之前说的API,这里 的说的服务可能不是很好理解,大家也可以看成是一种API,但是是封装更高级,与应用层密切相关的API。
具体功能:(这里的具体流程将在后续详细讲解)
- 诊断(Diagnostics)
- 存储管理(NVRAM Management)
- 看门狗管理(Watchdog Manager)
- 通信(Communication)
- 操作系统(OS)
- 调度管理(Schedule Manager)
- ECU状态管理(ECU state management)
- 通信通道管理(Com Channel Management)
4、复杂驱动
复杂驱动算是个另类了,为啥另类呢,因为它不属于BSW三层结构中(不在五行中,跳出三界外)。它的作用相当于补充的作用,在BSW三层结构 中没有定义的,但是实际中会用到的就可以写到这里。
三、再将结构细分
还是用图来说明,主要还是分为图中的几种功能:存储、通信、I/O和板载(就是ECU上的其他设备)。我这里用颜色区分了BSW的服务层、ECU抽 象层等这些层。可以看出,基本上每种功能都是由竖向三层结构组成的(I/O除外),而横向来看就基本是每层包含的功能了。之后我将细说这里的每 种功能,这里大家就先大致了解一下。这种图也比较重要,可以看作是目录一样的图,以后的内容基本就是讲解这张图的所有模块。在继续学习后, 大家回过头来看这张图的时候,应该就能自己画出来了。