应用软件:负责功能
操作系统:负责给硬件提供服务,如给硬件提供线程创建
中间件:和不同操作系统对接,给应用应用提供服务,如通讯和资源管理
总之,操作系统是给硬件提供服务,中间件是给应用提供服务
位置上:中间件位于各个操作系统之上,应用软件之下。
它是一类软件框架内的软件的总称。类似操作系统但是不是操作系统。
汽车中间件---汽车通讯的各种总线标准太多,汽车软件也越来越多,因此需要我们通过中间件来实现管理,也因此,中间件的三大原则就是:
统一标准
分散实现
集中配置
通过这三大原则的实现,中间件就可以:
跨平台/车型/硬件/配置
开发只需要搞差异化部分就行
集成工具链
缺点:汽车中间件会为了兼容性,而集成提取耦合性,因而会牺牲一定的软硬件协作效率
====================================================================
Autosar就是一个中间件,是中间件方案里比较好的而已。
autosar层次:
应用层----- 它是中间件软件的集合,包含应用软件,传感器和执行器软件
runtime层---它毕竟是中间件
基础软件层BSW---包括复杂驱动,微控抽象MCAL,ECU抽象,系统服务
各层通讯接口
每个层里面都有很多软件,然后每层的软件通讯通过接口实现,这些接口因此会分为三类:
标准接口---即C语言定义,用于BSW的模块间交互,如void Adc_init(const Adc_Config*Type ConfigPtr)
autosar接口---以Rte_为前缀,用以软件构建即software component的交互,
标准autosar接口---用于软件构建software component访问autosar服务。
接口复用性
各层里面,层级越高的,复用性越强。
微控抽象层最低,没有复用性。微控器换了它就要换。
RTE层仅仅位于应用层之下,作为应用层和BSW之间的桥梁,和硬件耦合,不具有复用性
应用层(不包括传感器和执行器相关),独立于硬件,具有完全的复用性。
Autosar干了什么
1)定义了软件架构和接口
2)定义了硬件平台标准
3)提供了分布式系统的软件的方法
4)提供了基础软件的规范
5)定义了网络总线接口相关模块,如can,lin的驱动和诊断等
6)定义了标准的软件开发流程
使得第三方给can,lin等总线软件供货成为可能,对封闭的总线标准进行打破。