北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
存储硬件抽象存储抽象访问接口EEPROM抽象Flash EEPROM仿真外部EEPROM驱动外部Flash驱动通信驱动SPIHandler驱动存储驱动EEPROM驱动内部Flash驱动SPI 微控制器EEPROMFlash
图19 存储器硬件抽象层和存储器驱动层
存储器硬件抽象层主要是内存抽象接口、EEPROM抽象、Flash EEPROM仿真。
1.4.3.1 EEPROM抽象
EEPROM抽象层(EA)扩展EEPROM驱动,提供片内EEPROM的访问接口,抽象了EEPROM的地址以及数量,向上层提供线性地址空间上的虚拟分段和“实际上无限制的”擦除/写循环。除此之外,它还应该提供与EEPROM驱动相同的功能。
1.4.3.2 Flash EEPROM仿真
闪存EEPROM仿真(FEE)按照闪存技术仿真EEPROM抽象层的行为,利用Flash来仿真EEPROM的数据存储,为上层的内存抽象接口模块提供数据的虚拟寻址。所以它与EEPROM抽象层有相同的功能和API,并且给出基于下层闪存驱动和闪存设备的相似配置。
28
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
1.4.3.3 内存抽象接口
内存抽象接口(MemIf)对于不同内存设备提供抽象内存接口。上层的NVRAM管理器模块可以通过抽象内存接口来访问不同的抽象内存模块甚至是供应商的特殊内存驱动(FEE或EA模块),如下图所示。
内存抽象接口抽象于下层FEE和EA模块的数目,并向上层提供统一线性地址空间上的虚拟分段。
图20 内存抽象接口与上下层的关系
1.4.3.4 外部EEPROM驱动
外部EEPROM 驱动(AUTOSAR范围之外):属于ECU抽象层,提供了对片外EEPROM设备的擦除,读,写访问的驱动,以及与RAM数据的比较功能。
29
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
1.4.3.5 外部flash驱动
外部Flash驱动(AUTOSAR范围之外):属于ECU抽象层,提供了对片外Flash设备的擦除,读,写访问的驱动。
1.4.4 板载设备抽象
板上设备抽象模块包括除传感器/激励器外的ECU板上设备(如板上系统芯片、外部watchdog等)的驱动程序,它通过微控制器抽象层实现对ECU板上设备的访问。
图21 板载设备抽象层次图
板载设备抽象层和微控制器驱动层与微控制器设备之间上下层关系:
30
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
板上设备抽象Watchdog接口板上系统芯片驱动外部Watchdog驱动通信驱动SPIHandler驱动I/O驱动DIO驱动SPI 微控制器DIO
图22
板载设备抽象层主要是看门狗接口:针对微控制器的看门狗设备提供了相同的访问机制,抽象了看门狗设备的地址以及数量。
1.4.4.2 外部看门狗驱动
外部看门狗驱动控制外部硬件看门狗。它提供触发器功能和模式选择服务。它有和内部看门狗驱动一样的功能作用域。
如果在一个ECU内使用了多于一个的看门狗设备和看门狗驱动(例如,内部软件看门狗和外部硬件看门狗),该模块就使得看门狗管理程序能够选择合适的看门狗驱动,以及看门狗设备。
看门狗驱动接口提供了对下层看门狗驱动的服务的统一访问,比如模式转换和触发。有设备索引选择适当的看门狗设备。看门狗驱动的服务的行为(同步/异步/计时)是受保护的。
看门狗驱动接口没有给看门狗驱动增加额外的功能。看门狗驱动接口也没有从看门狗属性中进行抽象,比如toggle或窗口模式,超时周期等,就是说,该驱动接口没有隐藏下层看门狗驱动和看门狗设备的任何特性。
31
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
1.6 抽象接口实现示例
外部设备驱动位于ECU抽象层上,它通过微控制器抽象层的驱动访问外部设备。下面的例子说明了如何通过SPIHandlerDriver访问外部EEPROM。
图23 NVRAM管理和看门狗管理与假设的硬件配置上的驱动的相互影响 这个实例展示了NVRAM管理器和看门狗管理器与假设的硬件配置上的驱动的相互影响,如上图所示。
使ECU硬件拥有一个外部EEPROM(ST16RF42)和通过同样的SPI与微控制器连接的外部看门狗。
32