- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汽车电子嵌入式驱动软件结构
主要内容
汽车电子软件体系结构
软件模块类型介绍
微控制器抽象层
ECU抽象层及示例
复杂驱动
基础软件体系结构-基本层:
汽车电子软件体系结构
基础软件体系结构-细化分层:
汽车电子软件体系结构
软件模块类型介绍
驱动(Driver)
功能:控制和访问内部或外部设备
内部设备:
设备位于微控制器内部,如:内部EEPROM、内部CAN控制器、内部ADC
内部设备的驱动称为内部驱动,并且驱动位于微控制器驱动层
外部设备:
设备位于在ECU硬件的微控制器外部,如:外部EEPROM、外部Watchdog、外部Flash
外部设备的驱动称为外部驱动,并且驱动位于在ECU抽象层,它通过微控制器驱动层访问外部设备,如:带SPI接口的外部EEPROM驱动通过SPIHanderDriver驱动访问外部EEPROM
软件模块类型介绍
接口(Interface)
接口包含的功能是为上层抽象特定设备的硬件实现
提供通用API访问设备特定类型,不考虑这种设备类型存在的数量和不同设备硬件实现
接口不改变数据内容
通常接口的位于ECU抽象层
例如:一个CAN通讯系统接口提供通用API访问CAN通讯网络而不用管ECU上的CAN控制器的数量和硬件实现
软件模块类型介绍
处理程序(Handler)
处理程序是一个特殊接口,它控制一个或多个访问程序对一个或多种驱动程序的并发、多重和异步方式的访问,如:执行缓冲、队列、仲裁、多路传输
处理程序不改变数据内容
处理程序功能是提供合并的驱动或接口(e.g.,SPIHandlerDriver,ADC Driver)
微控制器抽象层
微控制器抽象层的驱动
基础软件中最底层的位置,向上层软件屏蔽微控制器和ECU硬件设备驱动的细节和差异,是降低汽车电子应用软件与硬件的相关性,提高汽车电子应用软件和功能组件可重用性和可移植性的重要技术手段
直接访问uC内部外设和内存映射uC外部设备
微控制器抽象层
微控制器抽象层的驱动
包括:微控制器驱动、内存驱动、通讯驱动、I/O驱动
微控制器抽象层
微控制器驱动
包括:看门狗驱动WDG、通用定时器驱动GPT、微控制器单元驱动MCU
内部外设的驱动(e.g.,Watchdog,通用时钟)
直接uC可存取的功能(e.g.,Core测试)
微控制器抽象层
微控制器驱动-看门狗驱动
设定片内看门狗模式以及触发看门狗设备,触发程序由上层系统服务层的看门狗管理器模块进行调用,内部看门狗驱动控制MCU的内部看门狗计时器,它提供触发器功能和模式选择服务
微控制器抽象层
微控制器驱动-通用定时器驱动GPT
为定时服务程序提供定时中断
GPT驱动允许产生单触发或持续的计时器通知,这个模块使用通用计时器的硬件计时通道,因此就为操作系统中或者其它基本软件模块(在这类模块中,OS警告服务有过多的开销)中的使用提供了精确的、短期的计时。
GPT驱动提供了用于启动和停止硬件计时模块中的功能计时实例(通道)的服务。它能够产生单个超时周期以及重复超时周期。如果必须调用一个通知,那么当所请求的超时周期过期时,用户就能够对它进行配置。可以在运行时启用或禁用通知。
微控制器抽象层
微控制器驱动-通用定时器驱动GPT
不管是从上一个通知发生以来的相对时间消耗,还是到下一个通知之间的剩余时间,都可以进行查询。
注意,GPT驱动仅产生时间基础,而不服务于时间计数器。这个功能是由另一个模块(ICU驱动)提供的
GPT驱动可以用来唤醒ECU,不管预定义的超时周期是否过期。模式转换服务将GPT驱动在普通操作和睡眠模式之间进行转换。
该驱动不提供超时周期,这些超时周期超过了被时钟源、预定标器和计时寄存器所限制的最大值。用户必须对这个进行处理。
微控制器抽象层
微控制器驱动-微控制器单元驱动MCU
负责微处理器的各项设定,包括复位,初始化,电源管理,唤醒,时钟设定等。
MCU驱动提供用于基本微控制器的初始化,下电,复位和其它MCAL软件模块需要的微控制器特定功能的服务。初始化服务提供了灵活性,同时,除了启动代码之外,还提供了应用程序相关的MCU初始化。启动代码是完全特定于MCU的。MCU驱动直接访问微控制器硬件,它位于微控制器抽象层(MCAL)中
微控制器抽象层
内存驱动
包括:内部EEPROM、内部Flash、RAM测试
片上内存设备的驱动(e.g.,内部Flash,内部EEPROM)
微控制器抽象层
内存驱动-EEPROM驱动
提供读、写、擦除EEPROM的服务,
提供用于比较EEPROM中数据块和内存中数据块的服务,这些服务是异步方式的
微控制器抽象层
内存驱动-FLASH驱动
提供读、写和擦除闪存的服务,以及设置写/擦除保护的配置接口
提供了一个内置加载器,以加载闪存存取代码到RAM中,并在需要的时候执
原创力文档


文档评论(0)