autosar中bsw架构组成_AUTOSAR BSW分层

在整个AUTOSAR中的结构中,根据上篇文章中描述的内容,BSW主要分为了相应的Service layer, ECU Abstraction Layer, Microcontroller Abstraction Layer以及Complex Drivers四层,整个层次的功能都不同:

BSW 分层

1.Service Layer

Service 层是AUTOSAR中BSW的上层,它的作用是提供相关的服务给应用层,RTE以及其他的BSW模块,该层次主要包含了下面的内容:

操作系统:整个系统的运行环境,在 CLASSIC AUTOSAR中主要是RTOS,功能是让整个AUTOSAR各个模块功能能够实现调度,但是对于ECU的功能实现来说并不是必需需要使用的模块,AUTOSAR的协议栈也是可以运行在没有OS的系统中(这个CASE使用的客户并不是很多,如果有这个需求可以评论我进行进一步讨论)。

通信和模式管理:这是整个ECU系统中重要的组成部分,通过通信完成车内ECU之间的Can,Lin,FlexRay,Ethernet总线通信,模式管理则是实现ECU的状态切换,实现ECU的低功耗等需求。

存储服务:提供服务给应用层和DEM,SCC等模块实现存储数据的功能。

诊断服务:主要包含了UDS,OBD等诊断的实现。

其他模块:如WdgM等服务模块。

从图片中可以看出Service层也直接和底层硬件进行了交互,这一部分的内容主要是由于OS的特殊性,OS处于Service层,但是同时整个OS也是和我们的硬件以及编译器强相关的,因此整个OS在服务层是处于一个特殊的位置:

OS特殊位置

2.ECU Abstraction Layer

ECU Abstraction Layer 是底层驱动的抽象,同时它也是外设的驱动,它提供了可以访问外设和底层MCU的接口,该层次主要包含了下面的内容:

CanIf,Can Transceiver Driver, MemIf, Fee, Ea, External Flash/EEPROM Driver, WdgIf等。这些模块的内容我会在后面有所介绍和分析。

3.Microcontroller Abstraction Layer

MCAL相关模块,在整个AUTOSAR架构中Microcontroller Abstraction Layer处于最下层,它主要包含了相关的Driver,通过该层次可以访问MCU的资源,比如访问整个芯片的CAN,LIN等控制器,配置MCU的Port脚,配置MCU的时钟等,该层主要是使更高的层次独立于µC。

该层次主要包含下面的内容:

MCU,PORT,DIO,ADC,SPI,CAN,LIN,FLEXRAY,PWM,ICU,OCU等,这些模块的内容大同小异,但是根据芯片的不同,各个模块的配置和是使用都是有所区别的,因此需要根据特定的硬件来分析这些模块。

4.Complex Drivers Layer

复杂设备驱动主要是AUTOSAR提供的用于集成特殊功能模块的层次,比如控制某些设备(SBC等)和驱动模块,同时有些客户实时性要求比较高的逻辑也会集成到CDD中进行实现。

整个CDD的实现对于整个AUTOSAR来说可以作为上述三层中的任意一层来进行实现,具体的分类需要根据CDD的实现来区分,这是一个比较自由的模块,不是很复杂,最简单的可以把我们自己的手写代码作为CDD的一部分。

总结

整个AUTOSAR的BSW分层的简述如上,不是很详细,主要是简单描述下让大家知道各个层次的功能,方便理解后面的内容,后续我们会依照整个AUTOSAR中的通信,存储,诊断,模式管理等来进行细致的介绍,更新没有规律,工作生活不忙时会进行更新,有问题都可以在文章下方留言进行讨论。

谢谢,AUTOSAR规范可以在参考文献中链接下载。

你可能感兴趣的:(autosar中bsw架构组成)