ImageVerifierCode 换一换
格式:PPT , 页数:56 ,大小:1.38MB ,
文档编号:2922670      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2922670.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(汽车电子嵌入式驱动软件结构课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

汽车电子嵌入式驱动软件结构课件.ppt

1、电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心汽车电子嵌入式驱动软件结构汽车电子嵌入式驱动软件结构电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心主要内容主要内容 汽车电子软件体系结构汽车电子软件体系结构 软件模块类型介绍软件模块类型介绍 微控制器抽象层微控制器抽象层 ECUECU抽象层及示例抽象层及示例 复杂驱动复杂驱动电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心 基础软件体系结构基本层:基础软件体系结构基本层: 汽车电子软件体系结构汽车电子软件体系结构电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心 基础软件体系结构细化分层:基础软件体

2、系结构细化分层: 汽车电子软件体系结构汽车电子软件体系结构电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心软件模块类型介绍软件模块类型介绍l驱动驱动(Driver)功能:控制和访问功能:控制和访问内部内部或或外部外部设备设备 内部设备:内部设备: 设备位于微控制器内部,如:内部EEPROM、内部CAN控制器、内部ADC 内部设备的驱动称为内部驱动,并且驱动位于微控制器驱动层 外部设备:外部设备: 设备位于在ECU硬件的微控制器外部,如:外部EEPROM、外部Watchdog、外部Flash 外部设备的驱动称为外部驱动,并且驱动位于在ECU抽象层,它通过微控制器驱动层访问外部设备,如

3、:带SPI接口的外部EEPROM驱动通过SPIHanderDriver驱动访问外部EEPROM电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心软件模块类型介绍软件模块类型介绍l接口接口(Interface)接口包含的功能是为上层抽象特定设备的硬件实现接口包含的功能是为上层抽象特定设备的硬件实现提供通用提供通用APIAPI访问设备特定类型,不考虑这种设备访问设备特定类型,不考虑这种设备类型存在的数量和不同设备硬件实现类型存在的数量和不同设备硬件实现接口不改变数据内容接口不改变数据内容通常接口的位于通常接口的位于ECUECU抽象层抽象层例如:一个CAN通讯系统接口提供通用API访问CA

4、N通讯网络而不用管ECU上的CAN控制器的数量和硬件实现电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心软件模块类型介绍软件模块类型介绍l处理程序处理程序(Handler)处理程序是一个特殊接口,它控制一个或多个访问处理程序是一个特殊接口,它控制一个或多个访问程序对一个或多种驱动程序的并发、多重和异步方程序对一个或多种驱动程序的并发、多重和异步方式的访问,如:执行缓冲、队列、仲裁、多路传输式的访问,如:执行缓冲、队列、仲裁、多路传输处理程序不改变数据内容处理程序不改变数据内容处理程序功能是提供合并的驱动或接口(处理程序功能是提供合并的驱动或接口(e.g.e.g.,SPIHandle

5、rDriver,ADC DriverSPIHandlerDriver,ADC Driver)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层l微控制器抽象层的驱动微控制器抽象层的驱动基础软件中最底层的位置,向上层软件屏蔽微控制器和ECU硬件设备驱动的细节和差异,是降低汽车电子应用软件与硬件的相关性,提高汽车电子应用软件和功能组件可重用性和可移植性的重要技术手段直接访问uC内部外设和内存映射uC外部设备电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层l微控制器抽象层的驱动微控制器抽象层的驱动l包括:包括:微控制器驱动

6、、内存驱动、通讯驱动、I/O驱动电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 微控制器驱动微控制器驱动包括:看门狗驱动WDG、通用定时器驱动GPT、微控制器单元驱动MCU内部外设的驱动(e.g.,Watchdog,通用时钟)直接uC可存取的功能(e.g.,Core测试)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 微控制器驱动看门狗驱动微控制器驱动看门狗驱动 设定片内看门狗模式以及触发看门狗设备,触发程序由上层系统服务层的看门狗管理器模块进行调用,内部看门狗驱动控制MCU的内部看门狗计时器,它提供触发器功能

7、和模式选择服务电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 微控制器驱动通用定时器驱动微控制器驱动通用定时器驱动GPTGPT 为定时服务程序提供定时中断 GPT驱动允许产生单触发或持续的计时器通知,这个模块使用通用计时器的硬件计时通道,因此就为操作系统中或者其它基本软件模块(在这类模块中,OS警告服务有过多的开销)中的使用提供了精确的、短期的计时。 GPT驱动提供了用于启动和停止硬件计时模块中的功能计时实例(通道)的服务。它能够产生单个超时周期以及重复超时周期。如果必须调用一个通知,那么当所请求的超时周期过期时,用户就能够对它进行配置。可以在运行时启

8、用或禁用通知。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 微控制器驱动通用定时器驱动微控制器驱动通用定时器驱动GPTGPT 不管是从上一个通知发生以来的相对时间消耗,还是到下一个通知之间的剩余时间,都可以进行查询。 注意,GPT驱动仅产生时间基础,而不服务于时间计数器。这个功能是由另一个模块(ICU驱动)提供的 GPT驱动可以用来唤醒ECU,不管预定义的超时周期是否过期。模式转换服务将GPT驱动在普通操作和睡眠模式之间进行转换。 该驱动不提供超时周期,这些超时周期超过了被时钟源、预定标器和计时寄存器所限制的最大值。用户必须对这个进行处理。电子科技大

9、学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 微控制器驱动微控制器单元驱动微控制器驱动微控制器单元驱动MCUMCU 负责微处理器的各项设定,包括复位,初始化,电源管理,唤醒,时钟设定等。 MCU驱动提供用于基本微控制器的初始化,下电,复位和其它MCAL软件模块需要的微控制器特定功能的服务。初始化服务提供了灵活性,同时,除了启动代码之外,还提供了应用程序相关的MCU初始化。启动代码是完全特定于MCU的。MCU驱动直接访问微控制器硬件,它位于微控制器抽象层(MCAL)中电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 内存驱

10、动内存驱动包括:内部EEPROM、内部Flash、RAM测试片上内存设备的驱动(e.g.,内部Flash,内部EEPROM)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 内存驱动内存驱动EEPROMEEPROM驱动驱动提供读、写、擦除EEPROM的服务,提供用于比较EEPROM中数据块和内存中数据块的服务,这些服务是异步方式的电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 内存驱动内存驱动FLASHFLASH驱动驱动提供读、写和擦除闪存的服务,以及设置写/擦除保护的配置接口提供了一个内置加载器,以加载闪存存取

11、代码到RAM中,并在需要的时候执行写/擦除操作电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 内存驱动内存驱动RAMRAM测试测试负责RAM单元(包括用于寄存器的单元)的物理性诊断(非数据检测),不同的诊断方式需要预编译然后根据系统或用户需要实时运行电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 通讯驱动通讯驱动包括:SPI驱动、LIN驱动、CAN驱动、FlexRay驱动ECU板级上的通信驱动(e.g.,SPI,I2C)车载通信驱动(e.g.,LIN,CAN,FlexRay网络)电子科技大学嵌入式软件工程中心电

12、子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 通讯驱动通讯驱动SPISPI驱动驱动提供外设的SPI读写通信控制驱动允许多个客户端对一个或多个SPI总线的并发访问。为了抽象SPI的特征,SPIHandlerDriver要直接处理微控制器中的片选引脚。这就意味着这些引脚对DIO驱动无效SPI总线是一种主从多节点总线系统,主节点设置片选(CS)来选择一个从节点来进行数据通信。SPI有一个4线的同步串行接口。使用片选线来激活数据通信电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 通讯驱动通讯驱动SPISPI驱动驱动 SPI模块提供基于通道的对SPI

13、总线上的不同设备的读、写和传输访问,SPI通道代表数据元素(8到16比特)。这些通道可能是顺序组合的,不能够被中断。通道有一个静态配置定义的波特率、片选等等。SPI设备通常由所使用的SPI硬件单元和相关的片选线来标识。这个模块能够作为SPI主节点来使用 这个软件模块的功能范围应该是可静态配置的,以尽可能多的适应每个ECU的时间需要。那就是说,比如同步的、异步的、或者两者都有的SPI访问都可以存在于ECU。因此,两个SPI驱动可以存在,但仅有一个处理接口。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 通讯驱动通讯驱动LINLIN驱动驱动为上层的LIN

14、接口模块提供硬件抽象接口,负责对LIN 硬件进行控制,比如初始化。对于属于相同LIN硬件单元LIN驱动模块支持多路通道。只支持LIN2.0主节点LIN驱动是最底层的一部分,执行硬件访问和为上层提供硬件无关的API。上层唯一能够访问到LIN驱动的就是LIN接口一个LIN驱动能够支持一个以上的通道。LIN驱动能够处理一个或多个属于相同LIN硬件单元的LIN通道电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 通讯驱动通讯驱动CANCAN驱动驱动为上层的CAN 接口模块提供硬件抽象接口,负责对CAN硬件传输进行初始化,实现事件通知,控制属于相同CAN硬件单元的

15、CAN控制器。CAN驱动尽可能合理地隐藏了相关CAN控制器的硬件专用性。CAN驱动是最底层的一部分,为上层执行对硬件的访问和提供硬件无关的API。上层中唯一能够访问CAN驱动的是CAN接口。如果几个CAN控制器属于相同的CAN硬件单元,那么它们能够由CAN驱动来控制一个CAN控制器总是与一个物理通道相关联。它被允许与总线上的物理通道相连接,不管CAN接口是否将相关的CAN控制器分别对待电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 通讯驱动通讯驱动FlexRayFlexRay驱动驱动为上层的FlexRay 接口模块提供硬件抽象接口,负责对FlexRay

16、 硬件传输进行初始化,实现事件通知,控制属于相同FlexRay 硬件单元的FlexRay 控制器FlexRay驱动模块必须为FlexRay接口模块、API的使用者提供统一接口,以访问许多FlexRay通信控制器,这些控制器通常是相同类型的。FlexRay驱动是一个软件层,它将抽象功能请求映射到CC专用硬件的序列上。CC的硬件实现将从FlexRay接口隐藏电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 I/OI/O驱动驱动ICU驱动、PWM驱动、ADC驱动、DIO驱动、PORT驱动模拟和数字I/O驱动(e.g.,模数转换器ADC,脉宽调制PWM,数字输入

17、输出DIO)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 I/OI/O驱动驱动ICUICU驱动驱动 对周期性输入信号进行频率检测以及占空比测量,计算脉冲,解调脉宽调制信号,捕获非周期输入信号,产生相应的中断或唤醒中断电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 I/OI/O驱动驱动PWMPWM驱动驱动对微控制器内部PWM端口进行初始化和控制每个PWM通道都连接到一个属于微控制器的硬件PWM上。该驱动提供了初始化和控制微处理器内部的PWM的服务。PWM模块产生有不同宽度的脉冲电子科技大学嵌入式软件工程中心电子

18、科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 I/OI/O驱动驱动ADCADC驱动驱动对微控制器内部ADC端口进行初始化和控制ADC驱动初始化并控制微控制器内部的模数转换单元。该驱动包含一系列的基本功能函数。为了能够在某些特殊的应用中进行信号的频率分析(例如,快速傅立叶变换),就需要加强流式存取的功能电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 I/OI/O驱动驱动DIODIO驱动驱动 DIO通道的管脚和组以及端口进行读写 提供基于端口和通道的、对内部通用I/O断点的读和写访问。这里的读和写并不被缓冲。这个驱动的基本行为是同步的电子科技大学

19、嵌入式软件工程中心电子科技大学嵌入式软件工程中心微控制器抽象层微控制器抽象层 I/OI/O驱动驱动PORTPORT驱动驱动 微控制器所有端口的初始化电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层lECU抽象层抽象层 微控制器硬件抽象层的接口驱动 包含外部设备驱动 提供API访问外设和设备并且不管它位置(uC内/外)和它连接到uC(端口管脚,接口类型)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l包括以下软件模块包括以下软件模块 通讯硬件抽象、内存硬件抽象、板载设备抽象、I/O硬件抽象电子科技大学嵌入式软件工程中心电子科技大学嵌入

20、式软件工程中心ECU抽象层抽象层l通信硬件抽象层通信硬件抽象层对于内部和ECU硬件架构上外部通信控制器的抽象对于所有的通信系统(LIN,CAN,FlexRay),都需要特定的通信硬件抽象: LIN接口 CAN接口 FlexRay接口如果MCU没有板载通信控制器,需要外部的ASIC电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l通信硬件抽象层通信硬件抽象层LIN接口接口为上层LIN SM模块和PDU Router模块提供驱动抽象接口,通过下层驱动模块对LIN硬件设备进行控制。功能主要包括:根据上层通信模块切换调度表,执行LIN数据帧的收发,控制设备的唤醒和睡眠,错

21、误处理以及诊断服务LIN接口被设计成硬件无关的。到上层模块(PDU路由器)和下层模块(LIN驱动)的接口被很好地定义。LIN接口可以处理一个以上的LIN驱动。一个LIN驱动能够支持一个以上的通道。这指的是LIN驱动能够处理一个或多个LIN通道电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l通信硬件抽象层通信硬件抽象层LIN接口接口LIN接口负责向上层提供LIN 2.0主要功能有: 每个与ECU连接的LIN总线执行当前选择的调度 当上层请求到来时,切换调度表 从上层接收帧的传送,并传送数据部分作为适当LIN帧中的响应 当相应的响应在适当的帧中接收时,为上层提供帧接

22、收通知 睡眠和唤醒服务 错误处理 诊断传输层服务电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l通信硬件抽象层通信硬件抽象层CAN接口接口为上层CAN SM模块,CAN NM模块,CAN TP模块以及PDU Router模块和下层CAN控制驱动和CAN收发驱动提供接口。提供了唯一的接口来访问管理CAN硬件设备,为上层服务层抽象了CAN硬件设备的分布和数量CAN接口提供标准化的接口,通过ECU的CAN总线系统来支持通信。其API与专用CAN控制器及其通过CAN驱动层的访问无关。CAN接口能够通过统一的接口访问一个或多个CAN驱动CAN接口仅能用于CAN通信,并且是

23、为操作一个或多个底层CAN驱动而专门设计。涵盖不同CAN硬件单元的几个CAN驱动模块由一个在CAN驱动规范中指定的通用接口来表示。CAN之外(也就是LIN)的其他协议不支持电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l通信硬件抽象层通信硬件抽象层FlexRay接口接口为上层FlexRay SM模块,FlexRay NM模块,FlexRay TP模块以及PDU Router模块提供驱动抽象接口,通过下层驱动模块对FlexRay硬件设备进行控制。提供的功能包括:初始化,收发数据,设定FlexRay运行模式,状态信息捕获以及各种定时提供一种标准化的接口以访问Flex

24、Ray通信系统/硬件。FlexRay接口必须与所使用的专用FlexRay CC及其通过FlexRay驱动的访问无关。FlexRay接口提供通过统一接口的对一个或几个FlexRay驱动的访问电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l通信硬件抽象层通信硬件抽象层FlexRay接口接口FlexRay接口的主要任务 为上层提供到FlexRay通信系统的抽象接口 FlexRay接口通过一个或多个硬件专用驱动模块来访问FlexRay硬件,而不是直接访问 为了访问FlexRay通信控制器,FlexRay接口使用一个或多个FlexRay驱动模块 为了访问FlexRay收发

25、器,FlexRay接口使用一个或多个FlexRay收发器驱动模块 FlexRay接口可执行代码与FlexRay通信控制器和FlexRay收发器完全不相关 FlexRay接口允许代码模块的对象代码提交,遵循“one-fits-all”原则电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l内存硬件抽象层内存硬件抽象层提供对于内存外设和板级的内存设备抽象的一组模块供相等的机制访问内部(片上的)和外部(板上的)的存储设备以及各种存储硬件(EEPROM,Flash)具有板载Flash的Mcu,可以仿真EEPROM,因此,这一层只需要两个模块: Flash EEPROM仿真

26、内存抽象接口电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l内存硬件抽象层内存抽象接口内存硬件抽象层内存抽象接口MEMIF 对于不同内存设备提供抽象内存接口 上层的NVRAM管理器模块可以通过抽象内存接口来访问不同的抽象内存模块甚至是供应商的特殊内存驱动(FEE或EA模块) 内存抽象接口抽象于下层FEE和EA模块的数目,并向上层提供统一线性地址空间上的虚拟分段电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l内存硬件抽象层内存硬件抽象层EEPROM抽象抽象EA 扩展EEPROM驱动,提供片内EEPROM的访问接口,抽象了EEPROM

27、的地址以及数量,向上层提供线性地址空间上的虚拟分段和“实际上无限制的”擦除/写循环。除此之外,它还应该提供与EEPROM驱动相同的功能电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l内存硬件抽象层内存硬件抽象层Flash EEPROM仿真仿真FEE 按照Flash技术仿真EEPROM抽象层的行为,利用Flash来仿真EEPROM的数据存储,为上层的内存抽象接口模块提供数据的虚拟寻址。所以它与EEPROM抽象层有相同的功能和API,并且给出基于下层闪存驱动和闪存设备的相似配置电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l板载设备抽

28、象板载设备抽象 包含包括除传感器/执行器外的ECU板上设备(如板上系统芯片、外部watchdog等)的驱动程序 它通过微控制器抽象层实现对ECU板上设备的访问 主要是看门狗接口WDGIF电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层l板载设备抽象看门狗接口板载设备抽象看门狗接口 针对微控制器的看门狗设备提供了相同的访问机制,抽象了看门狗设备的地址以及数量电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层lI/O硬件抽象硬件抽象 它是一个模块组,通过从外设I/O设备(片上/板载)位置的抽象,并且在ECU抽象层 I/O硬件抽象不从传感器/

29、执行器抽象 不同I/O设备通过I/O信号接口访问电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层抽象层lI/O硬件抽象硬件抽象 提供微控制器外设的硬件输入输出抽象接口,通过下层驱动模块对相应硬件外设进行控制,包括,微控制器通用I/O,ADC,PWM,ICU等 上层的汽车电子应用和组件可以通过该模块提供的I/O信号访问接口实现不同I/O设备的访问电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORY该示例显示在NVM管理和WDG管理在假定硬件配置上驱动的相互影响:ECU硬件上包含一个外部EEPROM和外部看门狗通过

30、相同的SPI与微控制器连接SPIHandlerDriver控制对SPI硬件的并发访问,并且必须使看门狗访问的优先级高于EEPROM访问假设微控制器还有个能和外部EEPROM并行使用的内部flash。EEPROM抽象和Flash EEPROM仿真有在语义上相同的API。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORYMEMORY内存抽象接口通过下面的方法实现: 在运行期间基于设备索引(int/ext)的路由 在运行期间基于块索引(如:0 x01FF=外部EEPROM)的路由 通过带有NVRAM管理器中的函数指针(这种情况下内存抽象接

31、口只存在“虚拟的”)的ROM表在配置时间期间路由体系描述 NVRAM管理器通过内存抽象接口访问驱动,使用设备索引寻址不同的内存设备电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORYMEMORY接口描述:内存抽象接口应该有下面的接口(如:为写函数)Std_ReturnType MemIf_Write(Uint8DeviceIndex,Uint16BlockNumber,Uint8*DataBufferPtr)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORYMEMORY接口

32、描述:EEPROM抽象以及Flash EEPROM仿真应该有下面的接口(如:为写函数)Std_ReturnType Ea_Write(Uint16BlockNumber,Uint8*DataBufferPtr)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORYMEMORY情形一情形一:只使用一种类型的NV设备, 这是一般的使用情况。在这种情况下,内存抽象被实现为一个忽略DeviceIndex参数的简单宏结果:结果:在运行时没有额外的代码,NVRAM管理器虚拟地访问EEPROM抽象或直接的访问Flash仿真文件 MemIf.h:#in

33、clude “Ea.h”/*for providing access to the EEPROM abstraction*/#define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr) Ea_Write(BlockNumber, DataBufferPtr) : 不存在电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例l内存栈内存栈MEMORYMEMORY 情形二情形二:使用两个或多个不同类型的使用两个或多个不同类型的NVNV设备设备,这种情况下使用DeviceIndex来选择正确的NV设备。可以使

34、用指向函数的指针数组很有效的实现设备的选择文件MemIf.h:Extern const WriteFctPtrType WriteFctPtr2; #define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr) WriteFctPtrDeviceIndex(BlockNumber, DataBufferPtr) 文件 MemIf.c:#include “Ea.h”/*for getting the API function addresses*/#include “Fee.h”/* for getting the API functio

35、n addresses */#include “MemIf.h”/*for getting the WriteFctPtrType*/ Const WriteFctPtrType WriteFctPtr2 = Ea_Write, Fee_Write;电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORYMEMORY 情形二情形二:结果:结果:如果函数指针表在NVRAM管理器中,需要同样的代码和运行时间。内存抽象接口不会引起开销电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ECU抽象层示例抽象层示例 内存栈内存栈MEMORYMEMORYl结论结论l能有效的实现抽象层l抽象层是可升级的l内存抽象接口使NVRAM管理器能方便的访问一个或多个EEPROM和Flash设备l完成了体系目标和需求lEEPROM抽象层中包含了一些可以很容易用宏来代替的功能,因此该层不可替代电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心复杂驱动复杂驱动l复杂驱动复杂驱动通过采用特定中断或者复杂的外设(e.g.,ETPU)的微控制器直接访问,实施复杂的传感器检测和执行单元控制满足特定的功能和时间需求例子: 喷油控制 电子阀门控制 递增式位置检测电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心谢谢!

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|