北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
SPIHandlerDriver控制对SPI硬件的并发访问,并且必须使看门狗访问的优先级高于EEPROM访问。
假设微控制器还有个能和外部EEPROM并行使用的内部flash。EEPROM抽象和Flash EEPROM仿真有在语义上相同的API。
内存抽象接口通过下面的方法实现:
· 在运行期间基于设备索引(int/ext)的路由
· 在运行期间基于块索引(如:0x01FF=外部EEPROM)的路由
· 通过带有NVRAM管理器中的函数指针(这种情况下内存抽象接口只存在“虚拟的”)的ROM表在配置时间期间路由。 结构描述
NVRAM管理器通过内存抽象接口访问驱动,如图23所示。使用设备索引寻址不同的内存设备。 接口描述
内存抽象接口应该有下面的接口(如:为写函数): Std_ReturnType MemIf_Write (
Uint8 DeviceIndex, Uint16 BlockNumber, Uint8 *DataBufferPtr )
EEPROM抽象以及Flash EEPROM仿真应该有下面的接口(如:为写函数): Std_ReturnType Ea_Write (
Uint16 BlockNumber, Uint8 *DataBufferPtr )
33
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
图24 NVRAM管理通过内存抽象接口访问驱动示意图
情形1:只使用一种类型的NV设备, 这是一般的使用情况。在这种情况下,内存抽象被实现为一个忽略DeviceIndex参数的简单宏。下面的例子只列出了写函数: 文件 MemIf.h:
#include “Ea.h” /*for providing access to the EEPROM abstraction*/ …
#define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr) \\ Ea_Write(BlockNumber, DataBufferPtr)
File MemIf.c: 不存在
结果:在运行时没有额外的代码,NVRAM管理器虚拟地访问EEPROM抽象或直接的访问Flash仿真。
情形2: 使用两个或多个不同类型的NV设备,这种情况下使用DeviceIndex来选择正确的NV设备。可以使用指向函数的指针数组很有效的实现设备的选择。下面的例子只列出了写函数:
34
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
文件MemIf.h:
Extern const WriteFctPtrType WriteFctPtr[2];
#define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr) \\ WriteFctPtr[DeviceIndex](BlockNumber, DataBufferPtr)
File MemIf.c:
#include “Ea.h” /*for getting the API function addresses*/ #include “Fee.h” /* for getting the API function addresses */ #include “MemIf.h”/*for getting the WriteFctPtrType*/
Const WriteFctPtrType WriteFctPtr[2] = {Ea_Write, Fee_Write};
结果:如果函数指针表在NVRAM管理器中,需要同样的代码和运行时间。内存抽象接口不会引起开销。
结论:
· 能有效的实现抽象层
· 抽象层是可升级的
· 内存抽象接口使NVRAM管理器能方便的访问一个或多个EEPROM和Flash设备
· 完成了体系目标和需求
· EEPROM抽象层中包含了一些可以很容易用宏来代替的功能,因此该层不可替代。
1.7 主要参考的AUTOSAR规范列表
分类 子类 看门狗接口 外部看门狗驱动 板载设备抽象层和微控制器驱动层 MCU/ECU硬件抽象 微控制器单元MCU驱动 通用定时器GPT驱动 35
AUTOSAR规范名 AUTOSAR_SWS_WatchdogInterface.pdf AUTOSAR_SRS_SPAL_General.pdf AUTOSAR_SWS_MCU_Driver.pdf AUTOSAR_SRS_MCU_Driver.pdf AUTOSAR_SWS_GPT_Driver.pdf 北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
AUTOSAR_SRS_GPT_Driver.pdf AUTOSAR_SWS_WatchdogDriver.pdf AUTOSAR_SRS_Watchdog_Driver.pdf AUTOSAR_SWS_Mem_AbstractionInterface.pdf AUTOSAR_SRS_MemHw_AbstractionLayer.pdf AUTOSAR_SWS_EEPROM_Abstraction.pdf AUTOSAR_SWS_Flash_EEPROM_Emulation.pdf AUTOSAR_SWS_EEPROM_Driver.pdf AUTOSAR_SRS_EEPROM_Driver.pdf AUTOSAR_SWS_FlashDriver.pdf AUTOSAR_SRS_Flash_Driver.pdf AUTOSAR_SWS_RAM_Test.pdf AUTOSAR_SRS_RAM_Test.pdf AUTOSAR_SWS_CAN_Interface.pdf AUTOSAR_SWS_CAN_TransceiverDriver.pdf AUTOSAR_SWS_FlexRayInterface.pdf AUTOSAR_SWS_FlexRayTransceiver.pdf AUTOSAR_SWS_LIN_Interface.pdf AUTOSAR_SWS_CAN_Driver.pdf AUTOSAR_SWS_LIN_Driver.pdf AUTOSAR_SWS_FlexRayDriver.pdf AUTOSAR_SWS_SPI_HandlerDriver.pdf AUTOSAR_SRS_SPI_HandlerDriver.pdf 看门狗驱动 存储器抽象接口 EEPROM抽象 flash EEPROM仿真 存储器硬件抽象层和存储器驱动层 外部EEPROM驱动 外部flash驱动 内部EEPROM驱动 内部flash驱动 RAM测试 CAN接口 CAN收发器驱动 外部CAN驱动 FlexRay接口 FlexRay收发器驱动 外部FlexRay驱动 通信硬件抽象层和通信驱动层 LIN接口 CAN驱动 SCI驱动 LIN驱动 FlexRay驱动 SPI驱动 36
北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告
I/O硬件抽象 AUTOSAR_SRS_IOHW_Abstraction.pdf AUTOSAR_SWS_IO_HWAbstraction.pdf AUTOSAR_SWS_Port_Driver.pdf AUTOSAR_SRS_PORT_Driver.pdf AUTOSAR_SWS_DIO_Driver.pdf AUTOSAR_SRS_DIO_Driver.pdf AUTOSAR_SWS_ADC_Driver.pdf AUTOSAR_SRS_ADC_Driver.pdf AUTOSAR_SWS_PWM_Driver.pdf AUTOSAR_SRS_PWM_Driver.pdf AUTOSAR_SWS_ICU_Driver.pdf AUTOSAR_SRS_ICU_Driver.pdf PORT驱动 I/O硬件抽象层,I/O驱动层 DIO驱动 ADC驱动 PWM驱动 ICU驱动
2 主流汽车电子嵌入式微处理器及ECU硬件特性分析
在本课题中将针对主流的、汽车厂商应用的汽车电子微处理器或单片机进行驱动软件和硬件抽象层软件的开发,具体型号如下表所示。 序号 1 2 3 4 5 6 7 微处理器/单片机型号 处理器核 数据宽度(位数) 32 32 32 16 16 8 8 芯片供应商 freescale freescale freescale freescale freescale freescale ST MPC563X(MPC5633/MPC5634) e200z3 MPC5554 MPC555 9S12X 9S12DP512 HCS08 STM08 e200z6 e200z6 HCS12X HCS12 HCS08 STM08 下面列出上述各种微处理器/单片机的主要特性参数。
2.1 MPC563X嵌入式微处理器特性 2.1.1 MPC563X CPU Core特性
CPU Core型号:e200z335
37