AUTOSAR 是一个庞大的体系,结构复杂而精细。在这里只解释几个重要的名词。
1. *BSW*
Basic SoftWare的简称。这是AUTOSAR最核心的部分。
前面提到,BSW的主要作用就是屏蔽MCU(Microcontroller)硬件之间的差异。
这些硬件包括用来读取数字信号的DIO, 用来读水温,吸气温度等模拟信号
的ADC,用来驱动EGR的PWM,用来跟其他ECU通信的CAN和LIN, 用来存储
程序和数据的FLASH和EEPROM, 供电和时钟(Clock Unit),外部通信(开发工具等
等)用的Bus 等等。
BSW通过对上述这些硬件的封装来消除各个MCU之间的差别。封装分为3层,从低
到高分为 Drivers, Abstraction, Services.
Drivers 比如 DIO Driver, ADC Driver, PWM Driver, MCU Driver, 可以理解
为寄存器的驱动设定。
Services 比如 AUTOSAR OS 各个Task的时间设定, ECU State Manager,
Communication Manager 等等。
Abstraction 介于两者之间。
BSW是依存于MCU的,一套BSW软件对应一款MCU。大家有兴趣可以去查查
Renesas, Infineon, Freescale 的主页,这些半导体供应商在2013年前后的
MCU都有对应的BSW。
有了BSW,我在应用层写程序时就可以方便调用我需要的变量,而不管它是以何
种方式读取到内存中来的,CAN还是LIN,还是其他的什么。我不需要去关心去设置哪一
个寄存器,信号ID是什么,BSW会为我做好这一切。
2. *RTE*
AUTOSAR Runtime Enviroment 的简称。
RTE起到BSW和应用层之间的衔接作用。比如,在应用层我需要在每10ms时调用一
个函数,或者是通过函数func_get_a() 得到 变量a的值, RTE就保证这些能够顺利完
成。(主要是保证有足够的cpu power和内存)
RTE是依存于ECU的。一个ECU有一个用来生成RTE的设定文件,这个文件一般是
xml格式。
3. *SWC(Application Layer)*
Software Component 的简称。 实际的应用层软件控制功能。经过标准化的接口
被称为Ports, 连接Ports和RTE的被称为connectors。
4. *VFB*
Virtual Function Bus. 下面这个式子可以表示 VFB, ECU, RTE, SWC之间的关
系。
SWCs + VFB = Mapping(ECUs , RTEs , BSWs)
再简化一点,VFB可以看做几个ECU的BSW和RTE构成的总线,SWC可以在这条总线
中自由流动(移植)
--
FROM 61.123.233.*