Classic AUTOSAR BSW

      在AUTOSAR RTE这一章节,我们主要介绍了一些接口的定义,不同SWC与SWC之间,SWC与BSW之间的通信,包含Sender/Receiver、Client/Server的调用方式,以及数据一致性的相关解保护机制等。

       本章节主要针对BSW做一个简单的介绍,目前有200+个模块被抽象在BSW这一层,我们主要将BSW这一层分为四个部分,每一层的功能都有所不同,下面我们会对这些层次依次进行一个说明。

       如上图,BSW这一层主要分为3个子层,分别为MCAL驱动层(微控制器抽象层)、ECU抽象层、Service服务层;MCAL层主要是各种驱动,包含通信驱动、存储驱动、串口驱动、加密驱动等等;ECU抽象层主要是各种Interface接口和板载驱动,包含通信接口Interface、存储接口Interface等等;Service服务层主要是各种服务模块,包含通信管理服务、诊断服务、模式管理服务、网络管理服务等等。下面我们根据层级关系,从下到下逐个简要介绍下具体作用和功能。

1. Service服务层

       Service服务层,这一层主要是为应用Appcalition/SWC提供相应的服务;主要包含系统服务、诊断服务、存储服务、加密服务、通信和通信管理服务、调度管理服务、网络管理服务、ECU状态管理服务等。

        Application或SWC在调用底层模块功能服务时,只需要通过RTE完成与Service服务层之间的交互即可,不需要关心ECU抽象层、MCAL驱动层和硬件层的内容,通过SWC与Service服务层之间的服务Mapping映射,完成对应服务的调用关系设计。Service服务层,相当于把Application应用层与 “硬件和BSW驱动” 做了解耦隔离,Application在做相关服务调用设计时,只需要关系Service服务层涉及到的内容即可。

       同时,Service服务层所包含的各种服务模块,因为ECU抽象层的存在,也无需关系硬件和驱动的内容,这个后面会再次讲到,也就是说Service服务层的内容是可以脱离硬件的,是可以完全跨平台/芯片/项目进行复用的。复用是Service服务层的一个重要特点

2. ECU抽象层

       ECU抽象层,如上图,主要包含3小类,分别为各种Interface接口模块、板载驱动模块和I/O Hardware Abstarction模块;详细内容如下:

① 各种Interface接口模块;

       ECU抽象层提供各种Interface接口模块,比如通信相关CanIf/LinIf/EthIf、存储相关MemIf、加密相关CryIf、看门狗相关WdgIf等,Interface接口模块主要的作用是为 “MCAL驱动层” 提供统一的接口,实现 “Service服务层” 和 “MCAL驱动层” 的彻底解耦;当硬件芯片发生更改,伴随的是MCAL驱动层内容的更改,此时,由于ECU抽象层里面的Interface接口模块内容的设计,使得Service服务层不受影响,进一步实现Service服务层的功能复用。

② 板载驱动模块;

       基于各种功能需求场景,除主控芯片之外,经常会外挂一些板载芯片,如外部EEPROM存储芯片、驱动芯片、扩展IO芯片等等,这些芯片如果都有对应的标准驱动模块,那么这些驱动就可以叫做板载驱动,对应放在ECU抽象层;当然,如果无标准驱动模块,一般也可以直接放在ComplexDriver复杂驱动这个部分。

③ I/O Hardware Abstarction模块;

       在AUTOSAR的软件架构下,规定或约束了不同层级的访问关系和访问路径,这部分细节内容,会在 “AUTOSAR Methodology方法论” 中进行详细介绍。在此规定下,Application/SWC访问MCAL驱动层,只能走RTE -> Service服务层 -> ECU抽象层 -> MCAL驱动层;但有些特殊情况下,Application/SWC需要直接访问MCAL驱动层,针对这种需求,AUTOSAR架构提供了I/O Hardware Abstarction模块,I/O Hardware Abstarction模块可以看作是1个SWC,将对MCAL驱动直接访问的内容都汇总在这里,然后对外提供标准化的AUTOSAR接口;Application/SWC可以与 “I/O Hardware Abstarction模块SWC” 通过标准化的AUTOSAR接口进行交互,然后间接完成与MCAL驱动之间的交互。

       通过上面描述,I/O Hardware Abstarction模块SWC将对MCAL驱动不规范访问的内容封装到1个SWC中,然后这个SWC与外部SWC通过标准化的接口完成交互。

3. MCAL驱动层

       MCAL驱动层,如上图,主要是各种驱动内容,包含通信驱动CAN/LIN/Ethernet Driver、存储驱动Fee/Fls/Ea/Eep Driver、加密驱动Crypto Driver、I/O Drivers等等。MCAL驱动层的功能,主要是为硬件相关模块和外设提供驱动接口API,这些驱动API接口都是标准化的,即便硬件发生变更,驱动API接口也保持不变,这样,就为 “ECU抽象层和Service服务层” 与硬件解耦提供了可能。

4. ComplexDriver复杂驱动

       ComplexDriver复杂设备驱动,简称为CDD,虽然称之为复杂设备驱动,但并不是说这个内容有多复杂,简单的IO驱动读写操作也可以使用复杂驱动这个模块来实现,复杂驱动主要承载一些不规范的驱动操作访问动作、实时性较高内容和硬件寄存器直接访问内容。

① 在承载不规范驱动访问部分,有点类似于前面讲到的ECU抽象层中的I/O Hardware Abstarction模块,复杂驱动可以看作是1个SWC,这个SWC中封装不规范的访问操作内容,然后这个SWC与外部SWC的交互再通过标准化的AUTOSAR接口完成内容交互;在实际使用过程中,“ComplexDriver复杂驱动模块” 和 “I/O Hardware Abstarction模块” 确实是可以相通的,界限并没有很清晰。

② 在承载实时性较高的内容部分,主要是涉及到实时性较高的中断内容,这种中断可能是us级,一般是一类或二类中断,比如电机控制中涉及到的电流环中断,因其实时性要求较高,通常为100us或50us或其他频率的一类中断。

③ 在承载硬件寄存器直接访问内容部分,主要是涉及到对硬件寄存器的一些直接操作,不通过MCAL的API接口或者也不存在这样的API接口,这种内容一般是跨层直接访问硬件,不是规范的接口。

5. 总结

       以上内容即为 “AUTOSAR BSW” 的三层子架构简单介绍的内容了,后面我们将会持续更新AUTOSAR BSW各协议栈基本内容、AUTOSAR方法论等内容,包含典型协议栈模块的功能原理和开发内容示例。

       敬请期待......

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AUTOSAR普及侠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值