汽车电子嵌入式驱动软件结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学嵌入式软件工程中心
微控制器抽象层
微控制器抽象层的驱动 包括:微控制器驱动、内存驱动、通讯驱动、I/O驱动
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动
–包括:看门狗驱动WDG、通用定时器驱动GPT、微控制 器单元驱动MCU
–内部外设的驱动(e.g.,Watchdog,通用时钟) –直接uC可存取的功能(e.g.,Core测试)
电子科技大学嵌入式软件工程中心
Leabharlann Baidu
微控制器抽象层
• 微控制器驱动-通用定时器驱动GPT
– 不管是从上一个通知发生以来的相对时间消耗,还是 到下一个通知之间的剩余时间,都可以进行查询。
– 注意,GPT驱动仅产生时间基础,而不服务于时间计 数器。这个功能是由另一个模块(ICU驱动)提供的
– GPT驱动可以用来唤醒ECU,不管预定义的超时周期 是否过期。模式转换服务将GPT驱动在普通操作和睡 眠模式之间进行转换。
这些服务是异步方式的
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动-FLASH驱动
–提供读、写和擦除闪存的服务,以及设置写/擦除保护 的配置接口
–提供了一个内置加载器,以加载闪存存取代码到RAM中, 并在需要的时候执行写/擦除操作
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动-RAM测试
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动
–包括:内部EEPROM、内部Flash、RAM测试 –片上内存设备的驱动(e.g.,内部Flash,内部EEPROM)
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动-EEPROM驱动
–提供读、写、擦除EEPROM的服务, –提供用于比较EEPROM中数据块和内存中数据块的服务,
• 基础软件体系结构-细化分层:
电子科技大学嵌入式软件工程中心
软件模块类型介绍
驱动(Driver)
功能:控制和访问内部或外部设备
– 内部设备: • 设备位于微控制器内部,如:内部EEPROM、内部 CAN控制器、内部ADC • 内部设备的驱动称为内部驱动,并且驱动位于 微控制器驱动层
– 外部设备: • 设备位于在ECU硬件的微控制器外部,如:外部 EEPROM、外部Watchdog、外部Flash • 外部设备的驱动称为外部驱动,并且驱动位于 在ECU抽象层,它通过微控制器驱动层访问外部 设备,如:带SPI接口的外部EEPROM驱动通过 SPIHanderDriver驱动访问外部EEPROM
电子科技大学嵌入式软件工程中心
微控制器抽象层
微控制器抽象层的驱动 –基础软件中最底层的位置,向上层软件屏蔽微控制
器和ECU硬件设备驱动的细节和差异,是降低汽车 电子应用软件与硬件的相关性,提高汽车电子应用 软件和功能组件可重用性和可移植性的重要技术手 段 –直接访问uC内部外设和内存映射uC外部设备
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动-看门狗驱动 – 设定片内看门狗模式以及触发看门狗设备,触 发程序由上层系统服务层的看门狗管理器模块 进行调用,内部看门狗驱动控制MCU的内部看 门狗计时器,它提供触发器功能和模式选择服 务
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动-通用定时器驱动GPT
通讯网络而不用管ECU上的CAN控制器的数量和硬 件实现
电子科技大学嵌入式软件工程中心
软件模块类型介绍
处理程序(Handler) –处理程序是一个特殊接口,它控制一个或多个访问
程序对一个或多种驱动程序的并发、多重和异步方 式的访问,如:执行缓冲、队列、仲裁、多路传输 –处理程序不改变数据内容 –处理程序功能是提供合并的驱动或接口(e.g., SPIHandlerDriver,ADC Driver)
– 为定时服务程序提供定时中断 – GPT驱动允许产生单触发或持续的计时器通知,这个
模块使用通用计时器的硬件计时通道,因此就为操作 系统中或者其它基本软件模块(在这类模块中,OS警 告服务有过多的开销)中的使用提供了精确的、短期 的计时。 – GPT驱动提供了用于启动和停止硬件计时模块中的功 能计时实例(通道)的服务。它能够产生单个超时周 期以及重复超时周期。如果必须调用一个通知,那么 当所请求的超时周期过期时,用户就能够对它进行配 置。可以在运行时启用或禁用通知。
电子科技大学嵌入式软件工程中心
软件模块类型介绍
接口(Interface) –接口包含的功能是为上层抽象特定设备的硬件实现 –提供通用API访问设备特定类型,不考虑这种设备
类型存在的数量和不同设备硬件实现 –接口不改变数据内容 –通常接口的位于ECU抽象层 例如:一个CAN通讯系统接口提供通用API访问CAN
– 该驱动不提供超时周期,这些超时周期超过了被时钟 源、预定标器和计时寄存器所限制的最大值。用户必 须对这个进行处理。
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动-微控制器单元驱动MCU
– 负责微处理器的各项设定,包括复位,初始化,电源 管理,唤醒,时钟设定等。
– MCU驱动提供用于基本微控制器的初始化,下电,复 位和其它MCAL软件模块需要的微控制器特定功能的服 务。初始化服务提供了灵活性,同时,除了启动代码 之外,还提供了应用程序相关的MCU初始化。启动代 码是完全特定于MCU的。MCU驱动直接访问微控制器 硬件,它位于微控制器抽象层(MCAL)中
汽车电子嵌入式驱动软件结构
电子科技大学嵌入式软件工程中心
主要内容
• 汽车电子软件体系结构 • 软件模块类型介绍 • 微控制器抽象层 • ECU抽象层及示例 • 复杂驱动
电子科技大学嵌入式软件工程中心
汽车电子软件体系结构
• 基础软件体系结构-基本层:
电子科技大学嵌入式软件工程中心
汽车电子软件体系结构
–负责RAM单元(包括用于寄存器的单元)的物理性诊断 (非数据检测),不同的诊断方式需要预编译然后根 据系统或用户需要实时运行
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 通讯驱动
–包括:SPI驱动、LIN驱动、CAN驱动、FlexRay驱动 –ECU板级上的通信驱动(e.g.,SPI,I2C) –车载通信驱动(e.g.,LIN,CAN,FlexRay网络)
微控制器抽象层
微控制器抽象层的驱动 包括:微控制器驱动、内存驱动、通讯驱动、I/O驱动
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动
–包括:看门狗驱动WDG、通用定时器驱动GPT、微控制 器单元驱动MCU
–内部外设的驱动(e.g.,Watchdog,通用时钟) –直接uC可存取的功能(e.g.,Core测试)
电子科技大学嵌入式软件工程中心
Leabharlann Baidu
微控制器抽象层
• 微控制器驱动-通用定时器驱动GPT
– 不管是从上一个通知发生以来的相对时间消耗,还是 到下一个通知之间的剩余时间,都可以进行查询。
– 注意,GPT驱动仅产生时间基础,而不服务于时间计 数器。这个功能是由另一个模块(ICU驱动)提供的
– GPT驱动可以用来唤醒ECU,不管预定义的超时周期 是否过期。模式转换服务将GPT驱动在普通操作和睡 眠模式之间进行转换。
这些服务是异步方式的
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动-FLASH驱动
–提供读、写和擦除闪存的服务,以及设置写/擦除保护 的配置接口
–提供了一个内置加载器,以加载闪存存取代码到RAM中, 并在需要的时候执行写/擦除操作
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动-RAM测试
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动
–包括:内部EEPROM、内部Flash、RAM测试 –片上内存设备的驱动(e.g.,内部Flash,内部EEPROM)
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 内存驱动-EEPROM驱动
–提供读、写、擦除EEPROM的服务, –提供用于比较EEPROM中数据块和内存中数据块的服务,
• 基础软件体系结构-细化分层:
电子科技大学嵌入式软件工程中心
软件模块类型介绍
驱动(Driver)
功能:控制和访问内部或外部设备
– 内部设备: • 设备位于微控制器内部,如:内部EEPROM、内部 CAN控制器、内部ADC • 内部设备的驱动称为内部驱动,并且驱动位于 微控制器驱动层
– 外部设备: • 设备位于在ECU硬件的微控制器外部,如:外部 EEPROM、外部Watchdog、外部Flash • 外部设备的驱动称为外部驱动,并且驱动位于 在ECU抽象层,它通过微控制器驱动层访问外部 设备,如:带SPI接口的外部EEPROM驱动通过 SPIHanderDriver驱动访问外部EEPROM
电子科技大学嵌入式软件工程中心
微控制器抽象层
微控制器抽象层的驱动 –基础软件中最底层的位置,向上层软件屏蔽微控制
器和ECU硬件设备驱动的细节和差异,是降低汽车 电子应用软件与硬件的相关性,提高汽车电子应用 软件和功能组件可重用性和可移植性的重要技术手 段 –直接访问uC内部外设和内存映射uC外部设备
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动-看门狗驱动 – 设定片内看门狗模式以及触发看门狗设备,触 发程序由上层系统服务层的看门狗管理器模块 进行调用,内部看门狗驱动控制MCU的内部看 门狗计时器,它提供触发器功能和模式选择服 务
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动-通用定时器驱动GPT
通讯网络而不用管ECU上的CAN控制器的数量和硬 件实现
电子科技大学嵌入式软件工程中心
软件模块类型介绍
处理程序(Handler) –处理程序是一个特殊接口,它控制一个或多个访问
程序对一个或多种驱动程序的并发、多重和异步方 式的访问,如:执行缓冲、队列、仲裁、多路传输 –处理程序不改变数据内容 –处理程序功能是提供合并的驱动或接口(e.g., SPIHandlerDriver,ADC Driver)
– 为定时服务程序提供定时中断 – GPT驱动允许产生单触发或持续的计时器通知,这个
模块使用通用计时器的硬件计时通道,因此就为操作 系统中或者其它基本软件模块(在这类模块中,OS警 告服务有过多的开销)中的使用提供了精确的、短期 的计时。 – GPT驱动提供了用于启动和停止硬件计时模块中的功 能计时实例(通道)的服务。它能够产生单个超时周 期以及重复超时周期。如果必须调用一个通知,那么 当所请求的超时周期过期时,用户就能够对它进行配 置。可以在运行时启用或禁用通知。
电子科技大学嵌入式软件工程中心
软件模块类型介绍
接口(Interface) –接口包含的功能是为上层抽象特定设备的硬件实现 –提供通用API访问设备特定类型,不考虑这种设备
类型存在的数量和不同设备硬件实现 –接口不改变数据内容 –通常接口的位于ECU抽象层 例如:一个CAN通讯系统接口提供通用API访问CAN
– 该驱动不提供超时周期,这些超时周期超过了被时钟 源、预定标器和计时寄存器所限制的最大值。用户必 须对这个进行处理。
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 微控制器驱动-微控制器单元驱动MCU
– 负责微处理器的各项设定,包括复位,初始化,电源 管理,唤醒,时钟设定等。
– MCU驱动提供用于基本微控制器的初始化,下电,复 位和其它MCAL软件模块需要的微控制器特定功能的服 务。初始化服务提供了灵活性,同时,除了启动代码 之外,还提供了应用程序相关的MCU初始化。启动代 码是完全特定于MCU的。MCU驱动直接访问微控制器 硬件,它位于微控制器抽象层(MCAL)中
汽车电子嵌入式驱动软件结构
电子科技大学嵌入式软件工程中心
主要内容
• 汽车电子软件体系结构 • 软件模块类型介绍 • 微控制器抽象层 • ECU抽象层及示例 • 复杂驱动
电子科技大学嵌入式软件工程中心
汽车电子软件体系结构
• 基础软件体系结构-基本层:
电子科技大学嵌入式软件工程中心
汽车电子软件体系结构
–负责RAM单元(包括用于寄存器的单元)的物理性诊断 (非数据检测),不同的诊断方式需要预编译然后根 据系统或用户需要实时运行
电子科技大学嵌入式软件工程中心
微控制器抽象层
• 通讯驱动
–包括:SPI驱动、LIN驱动、CAN驱动、FlexRay驱动 –ECU板级上的通信驱动(e.g.,SPI,I2C) –车载通信驱动(e.g.,LIN,CAN,FlexRay网络)