汽车电子控制器处理芯片及ECU板级抽象技术研究报告 - 图文

更新时间:2024-06-05 15:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

密级:

汽车电子控制器处理芯片及ECU板

级抽象技术研究报告

编号 TM-DMP-01-RD-PRE-013 拟制 陈丽蓉 日期 2010 年 2 月 1 日 审核 日期 年 月 日 会签 日期 年 月 日 标准化 日期 年 月 日 批准 日期 年 月 日 顾客/代表 日期 年 月 日 此文档版权归北京科银京成技术有限公司所有。未经公司许可,文档内容不得以任何方式外传。

修订历史记录

日期& 修订人 2010/4/20 陈丽蓉 2010-4-29 赵焕宇 修订记录 完成初稿 增加硬件特征描述 版本标识 V1.0 V1.1 备注 此文档版权归北京科银京成技术有限公司所有。未经公司许可,文档内容不得以任何方式外传。

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

目 录

引言......................................................................... 1

背景 1 概述 1

缩写词和名词定义 ......................................................... 1 参考资料 ................................................................. 1 1 AUTOSAR国际标准分析 ................................................... 3

1.1 系统概述 ......................................................... 3 1.2 微控制器抽象层 ................................................... 7 1.3 复杂驱动 ........................................................ 17 1.4 ECU抽象层 ...................................................... 19 1.6 抽象接口实现示例 ................................................ 32 1.7 主要参考的AUTOSAR规范列表 ...................................... 35 2 主流汽车电子嵌入式微处理器及ECU硬件特性分析 .......................... 37

2.1 MPC563X嵌入式微处理器特性 ...................................... 37 2.2 MPC5554特性 .................................................... 38 2.3 MPC555特性 ..................................................... 39 2.4 9S12X特性 ...................................................... 37 2.5 9S12DP512特性 .................................................. 41 2.6 HCS08特性 ...................................................... 41 2.7 STM08特性 ...................................................... 42 3 开发环境 .............................................................. 37

3.1 基础开发工具 .................................................... 43 3.2 配置生成工具 .................................................... 44 4 国内汽车厂商应用需求分析 .............................................. 44

4.1 一汽应用需求分析 ................................................ 44 4.2 上汽应用需求分析 ................................................ 44 4.3 奇瑞应用需求分析 ................................................ 44 4.4 长安应用需求分析 ................................................ 45 5 汽车电子控制器处理芯片及ECU板级抽象软件实现策略 ...... 错误!未定义书签。

5.1 控制器处理芯片抽象软件实现策略 .................. 错误!未定义书签。 5.2 ECU板级抽象软件实现策略 ........................ 错误!未定义书签。

I

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

引言

背景

本项目来源于核高基重大专项3-1课题:实时嵌入式操作系统及开发环境,本项目为该课题的分课题:汽车电子硬件抽象技术研究。

在分课题中,科银京成将以总课题组制定的汽车电子基础软件平台体系规范为基础,通过对国内外相关技术和标准的充分研究,以及汽车电子控制系统硬件平台的详细调研,研究汽车电子硬件抽象的关键技术,设计开发汽车电子基础软件平台中的硬件驱动软件模块,并实现对电子控制单元(ECU)和微控制器外部设备的抽象,为汽车电子基础软件平台中其他相关的软件组件如嵌入式实时操作系统与系统服务、存储服务、通信服务等各种服务及管理组件(包括驱动自身的管理组件)提供支持和功能调用、以及系统的引导启动、系统软件加载等支撑服务;为支撑本课题组形成汽车电子应用软件设计、编程、调试、仿真、集成、测试、部署的一体化工具环境,提供与硬件适配相关的图形化配置工具、部署工具及接口,以便在进行应用开发时能有效地完成硬件相关的配置和使用。

概述

本文档将从以下几方面描述有关汽车电子控制器处理芯片及ECU板级抽象技术研究的内容:

? AUTOSAR标准分析

? 主流汽车电子嵌入式微处理器及ECU硬件特性分析 ? 开发环境

? 国内汽车厂商应用需求分析

? 汽车电子控制器处理芯片及ECU板级抽象软件实现策略

缩写词和名词定义

缩写、术语 解 释 AUTOSAR DIO AUTomotive Open System Architecture 汽车开放系统结构 Digital Input/Output 数字输入/输出 1

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

ADC SPI PWM PORT ICU Watchdog FLASH EEPROM RAM test CAN Timer SCI Analogue Digital Converter 模数转换器 Serial Peripheral Interface 串行外设接口 Pulse Width Modulation 脉冲宽度调制 端口 Input Capture Unit 输入捕获单元 看门狗 闪存 电子可檫除、可编程只读存储器 内存测试 Controller Area Network 控制器局域网 定时器 串行通信接口 参考资料

? AUTOSAR 3.1系列规范

? 各种汽车电子嵌入式微处理器芯片手册、ECU板级资料

2

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

1 AUTOSAR国际标准分析

以AUTOSAR 3.1为参考,对汽车电子基础软件架构进行分析,通过对AUTOSAR、OSEK国际规范的分析和研究,包括在:标准接口、配置描述语言、基本数据类型、文件组织结构、错误处理机制等内容上,集合国内整车厂商和零部件厂商的实际需求,形成自主汽车电子基础软件规范中关于汽车电子硬件抽象层(板载设备抽象、存储器抽象、通信器件抽象、I/O硬件抽象等)统一接口规范。

1.1 系统概述

图1展示了AUTOSAR软件架构的主要层次关系,总体上可分为应用层、运行时环境、基础层(包括操作系统与系统服务、存储服务、通信服务、硬件抽象与驱动层)。

图1 AUTOSAR嵌入式软件架构

3

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

图2 AUTOSAR嵌入式软件分层架构

图3 AUTOSAR嵌入式软件各层次模块

目标硬件环境适配层处于汽车电子基础软件平台中最底层的位置,其作用是向上层软件屏蔽微控制器和ECU硬件设备驱动的细节和差异,是降低汽车电子应用软件与硬件的相关性,提高汽车电子应用软件和功能组件可重用性和可移植性的重要技术手段。本课题中目标硬件环境适配层由硬件抽象层和设备驱动层组成,如下图所示:

4

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

硬件抽象层板载设备抽象看门狗接口内存抽象接口存储器硬件抽象Flash EEPROMEEPROM抽象通信硬件抽象FlexRayCANFlexRayCANLINI/O硬件抽象I/O硬件接口真接口接口仿收发驱动接口收发驱动 设备驱动层微控制器驱动通用定动时器驱微控制驱器动单元看门狗驱动存储器驱动内部动内部驱动通信驱动FlexRayPWMCANICULINSPII/O驱动PORTADCDIOMCU测试RAMEEPROMFlash驱动驱动驱动驱驱动驱动驱动驱动驱动驱动 微控制器9S12/9S12XMPC5XXMPC55XXMPC563XTMS320注:上图中Flash Check,Ext Watchdog Driver,Ext EEPROM Driver,Ext Flash Driver,Ext Can Driver,Ext FlexRay Driver,Complex Driver等7个基础软件模块目前不属于AUTOSAR 3.1的规范。

设备驱动层提供控制和访问设备的功能,由以下模块组成: 1、 通信驱动程序

ECU板上(如SPI)和车辆通信(如CAN)的驱动程序。 2、 I/O驱动程序

模拟和数据I/O(如ADC、PWM、DIO)的驱动程序。 3、 存储驱动程序

片上存储设备(如内部FLASH、内部EEPROM)及内存映射的外部存储设备(如外部FLASH)驱动程序。 4、 微控制器驱动程序

GPT 图4 目标硬件环境适配层

5

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

其它内部设备(如Watchdog、通用时钟)的驱动程序;直接访问微控制器的功能(如核心调试)。

设备抽象层对ECU板上设备的物理特性进行抽象,向操作系统、系统服务和支撑服务提供统一的访问接口。

汽车电子硬件抽象技术的研究必要性,主要由于汽车电子系统应用的硬件环境差异软大,因此,如何有效地使汽车电子系统软件应用于各种不同的应用环境是汽车电子发展中必须解决的关键问题,经过不断的发展,在操作系统内核和各类服务层软件与微控制器硬件之间新增加抽象技术,包含操作系统内核和各类服务层及硬件所要求的所有功能,通过标准统一的接口与上层操作系统和各类服务进行交互,向底层硬件传递信息,这样就有效地屏蔽了底层硬件的多样性,上层操作系统和各类服务不再直接面对具体的硬件环境,使硬件系统与软件系统得到了很好分离,大大提高了移植性和重用性。

对汽车电子硬件抽象技术的研究主要达到的目标是:隐藏特定平台的硬件接口细节,为操作系统实时内核、系统服务、存储服务、通信服务、提供所需硬件支持的所有功能和统一的标准接口,使其具有与硬件无关性,可在多种硬件平台上进行移植,从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。

6

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

1.2 微控制器抽象层

图5 微控制器抽象层模块图

1.2.1 通信驱动

通信驱动层主要包括:SPI驱动、LIN驱动、CAN驱动、FlexRay驱动等内容。

1.2.1.1 SPI驱动(SPI Handler Driver)

SPI驱动提供外设的SPI读写通信控制驱动。

在很多ECU中,许多板载硬件设备如外部EEPROM,外部I/O ASIC,外部看门狗等,通过SPI与微控制器连接,如下图所示。

7

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

图6 通过SPI接口访问各种板级外设

SPIHandlerDriver允许多个客户端对一个或多个SPI总线的并发访问。为了抽象SPI的特征,SPIHandlerDriver要直接处理微控制器中的片选引脚。这就意味着这些引脚对DIO驱动无效。

SPI总线是一种主从多节点总线系统,主节点设置片选(CS)来选择一个从节点来进行数据通信。SPI有一个4线的同步串行接口。使用片选线来激活数据通信。

SPI模块提供基于通道的对SPI总线上的不同设备的读、写和传输访问。SPI通道代表数据元素(8到16比特)。这些通道可能是顺序组合的,不能够被中断。通道有一个静态配置定义的波特率、片选等等。SPI设备通常由所使用的SPI硬件单元和相关的片选线来标识。这个模块能够作为SPI主节点来使用。

这个软件模块的功能范围应该是可静态配置的,以尽可能多的适应每个ECU的时间需要。那就是说,比如同步的、异步的、或者两者都有的SPI访问都可以存在于ECU。因此,两个SPI驱动可以存在,但仅有一个处理接口。

SPI处理程序/驱动提供了一些服务来对通过SPI总线连接的设备进行读写。它提供了所需的机制来配置片上SPI外设。

单片式的SPI处理程序/驱动包含处理和驱动功能。它的主要目标是充分利用每个微控

8

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

制器的特性,使得依赖于静态配置的实现最优化,以尽可能多的适应ECU的需要。

1.2.1.2 LIN驱动

LIN驱动为上层的LIN 接口模块提供硬件抽象接口,负责对LIN 硬件进行控制,比如初始化。对于属于相同LIN硬件单元LIN驱动模块支持多路通道。只支持LIN2.0主节点。其软件架构如下图:

图7 LIN Driver架构

LIN驱动是最底层的一部分,执行硬件访问和为上层提供硬件无关的API。上层唯一能够访问到LIN驱动的就是LIN接口。

一个LIN驱动能够支持一个以上的通道。LIN驱动能够处理一个或多个属于相同LIN硬件单元的LIN通道。

9

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

1.2.1.3 CAN驱动

CAN驱动为上层的CAN 接口模块提供硬件抽象接口,负责对CAN硬件传输进行初始化,实现事件通知,控制属于相同CAN硬件单元的CAN控制器。

CAN驱动尽可能合理地隐藏了相关CAN控制器的硬件专用性。

CAN驱动是最底层的一部分,为上层执行对硬件的访问和提供硬件无关的API。上层中唯一能够访问CAN驱动的是CAN接口。

如果几个CAN控制器属于相同的CAN硬件单元,那么它们能够由CAN驱动来控制。 一个CAN控制器总是与一个物理通道相关联。它被允许与总线上的物理通道相连接,不管CAN接口是否将相关的CAN控制器分别对待。

1.2.1.4 FlexRay驱动

FlexRay驱动为上层的FlexRay 接口模块提供硬件抽象接口,负责对FlexRay 硬件传输进行初始化,实现事件通知,控制属于相同FlexRay 硬件单元的FlexRay 控制器。

FlexRay驱动模块必须为FlexRay接口模块、API的使用者提供统一接口,以访问许多FlexRay通信控制器,这些控制器通常是相同类型的。FlexRay驱动是一个软件层,它将抽象功能请求映射到CC专用硬件的序列上。CC的硬件实现将从FlexRay接口隐藏。

1.2.2 I/O驱动

1.2.2.1 ICU驱动

ICU输入捕获单元驱动:对周期性输入信号进行频率检测以及占空比测量,计算脉冲,解调脉宽调制信号,捕获非周期输入信号,产生相应的中断或唤醒中断。

ICU驱动提供了下列特性:

· 周期性的、低端的、高端的时间测量 · 边缘检测和通知

10

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

· 边缘计数

· 边缘时间戳,可用于获取非周期的信号 · 唤醒中断

对于信号边缘检测来说,需要使用捕获比较单元的边缘检测器或外部时间的中断控制器。

对于信号测量来说,需要一个捕获计时器以及至少一个捕获寄存器。

ICU调制PWM信号,计算脉冲,测量频率和责任(duty)周期,产生简单的中断以及唤醒中断。

为了保证数据一致性,应该提供可重入的代码。 时间单元节拍

为了从寄存器值中获得时间,需要知道振荡器频率、预定标器等等。因为这些设置是在

MCU模块中或其它模块中产生的,不可能计算这些时间。因此,时间和节拍之间的转换是由上层负责的。

1.2.2.2 PWM驱动

PWM脉宽调制驱动负责对微控制器内部PWM端口进行初始化和控制。

每个PWM通道都连接到一个属于微控制器的硬件PWM上。该驱动提供了初始化和控制微处理器内部的PWM的服务。PWM模块产生有不同脉冲宽度的脉冲。

1.2.2.3 ADC驱动

ADC模数转换驱动:负责对微控制器内部ADC端口进行初始化和控制。

ADC驱动初始化并控制微控制器内部的模数转换单元。该驱动包含一系列的基本功能函数。为了能够在某些特殊的应用中进行信号的频率分析(例如,快速傅立叶变换),就需要加强流式存取的功能。

ADC驱动提供以下服务: · 信号值结果的访问模式

11

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

· 流式访问。

通常,ADC通道的变换请求通过ADC通道组来进行控制。通道组可以运行于持续的变

换模式或者单触发变换模式。 变换处理和交互作用:

在同一时刻,ADC驱动要管理一个以上的被配置成不同变换模式的组。

转换过程:

通常,ADC通道的转换请求通过ADC通道组来进行控制。一个组可以运行于持续的转

换模式或者单触发转换模式。单触发转换模式的触发条件也要被配置和控制。

如果通道运行于不同的模式(例如,在普通操作时采用持续的转换模式,在特定时间点

的特殊转换时使用单触发或者按照命令的转换方式),通道必须被分配给拥有不同操作模式的多个组。

为了改变组间共享的通道的操作模式,应用程序必须停止任何对包含指定通道的组的当

前转换,然后启动包含指定通道的新组的转换。

为了让应用程序能够在任何时候执行立即转换,就要定义一个按照命令的转换方式。它

必须挂起组转换,然后在按照命令的转换活动完成后重新激活它。

1.2.2.4 DIO驱动

DIO数字化I/O驱动负责对DIO通道的管脚和组以及端口进行读写。

DIO驱动提供基于端口和通道的、对内部通用I/O断点的读和写访问。这里的读和写并不被缓冲。这个驱动的基本行为是同步的。

DIO驱动提供了用于对下列设施进行读、写的服务: · DIO通道(引脚) · DIO端口 · DIO通道组

这些服务的行为是同步的。该模块工作于引脚和端口上,由PORT驱动来对它进行配置。因此,在DIO驱动里面就没有对该端口结构进行配置和初始化。

12

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

端口驱动模块:

很多端口和端口引脚是由端口驱动模块分配给各种功能的,比如

· 常规I/O · ADC · SPI · PWM

DIO驱动抽象了对微控制器硬件引脚的访问。此外,它还能够对这些引脚进行分组。 DIO驱动提供以下服务:

· 一个一个地修改端口或通道组的输出通道的等级。 · 一个一个地读取端口或通道组的输入和输出通道的等级。

DIO驱动中的所有读写服务必须是可重入的。理由是:这些DIO驱动可以被不同的上

层处理程序或驱动程序访问。这些上层模块可以并行的访问驱动。

1.2.2.5 PORT驱动

PORT(端口)驱动提供微控制所有端口的初始化。

该模块初始化微控制器的整个端口结构。很多端口和端口引脚可以被分配给不同的功能,比如:

· 通用I/O · ADC · SPI · SCI · PWM

由于这个原因,必须对这个端口结构进行总的配置和初始化。这些端口引脚的配置和使

用是依赖于微控制器和ECU的。

该模块应该提供用于初始化微控制器的整个端口结构的服务。很多端口和端口引脚可以被分配给各种不同的功能。由于这个原因,必须有该端口结构的全部配置和初始化。这些端

13

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

口引脚的配置和模式是依赖于微控制器和ECU的。

该端口驱动模块应该完成端口结构的全部配置和初始化,该端口结构是用在DIO驱动

模块中的。因此,DIO驱动工作再引脚和端口之上,由端口驱动对它进行配置。端口和端口引脚的配置顺序是由配置工具负责的。

端口驱动应该在使用DIO功能之前进行初始化。否则DIO驱动会产生未定义的行为。 端口访问的原子性:端口驱动应该通过使用原子指令或者利用OS的中断屏蔽功能来提

供对端口的原子访问。

1.2.3 存储器驱动

存储器驱动层主要包括内部EEPROM驱动、内部Flash驱动、RAM测试等内容。

1.2.3.1 EEPROM驱动

EEPROM驱动提供读、写、擦除EEPROM的服务。也提供了用于比较EEPROM中数据块和内存中数据块的服务。这些服务是异步的。有两类EEPROM驱动:

· 内部EEPROM驱动 · 外部EEPROM驱动

内部EEPROM驱动直接访问微控制器硬件,并且定位在微控制器抽象层。外部EEPROM驱动使用处理程序(handler)或驱动访问外部EEPROM设备。它定位在ECU抽象层。

两种类型的驱动的功能需求和功能范围都是相同的。所以API在语义上是相同的。

1.2.3.2 flash驱动

如果受到底层硬件的支持,闪存驱动提供读、写和擦除闪存的服务,以及设置写/擦除保护的配置接口。闪存驱动提供了一个内置加载器,以加载闪存存取代码到RAM中,并在需要的时候执行写/擦除操作。

14

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

在ECU应用模式下,闪存驱动只用于闪存EEPROM仿真模块写数据。在应用模式下并不将程序代码写到闪存中。这应该由启动模式处理,超出了AUTOSAR的范围。

有两类闪存驱动: · 内部闪存驱动 · 外部闪存驱动

内部闪存的驱动直接存取微控制器硬件,并且定位在微控制器抽象层。外部闪存通常通过微控制器数据/地址总线连接,然后闪存驱动使用总线的处理程序/驱动访问外部闪存设备。外部闪存设备的驱动定位在ECU抽象层。两种类型的驱动的功能需求和功能范围都是相同的。所以API在语义上是相同的。

1.2.3.3 RAM测试

RAM测试:负责RAM单元(包括用于寄存器的单元)的物理性诊断(非数据检测),不同的诊断方式需要预编译然后更据系统或用户需要实时运行。

1.2.4 微控制器驱动

微控制器驱动层主要包括看门狗驱动、通用定时器GPT驱动、微控制器单元MCU驱动等内容。

1.2.4.1 看门狗驱动

看门狗驱动:设定片内看门狗模式以及触发看门狗设备,触发程序由上层系统服务层的看门狗管理器模块进行调用。内部看门狗驱动控制MCU的内部看门狗计时器。它提供触发器功能和模式选择服务。

1.2.4.2 通用定时器GPT驱动

通用定时器GPT驱动:为定时服务程序提供定时中断。

15

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

GPT驱动允许产生单触发或持续的计时器通知。这个模块使用通用计时器的硬件计时通道,因此就为操作系统中或者其它基本软件模块(在这类模块中,OS警告服务有过多的开销)中的使用提供了精确的、短期的计时。

GPT驱动提供了用于启动和停止硬件计时模块中的功能计时实例(通道)的服务。它能够产生单个超时周期以及重复超时周期。如果必须调用一个通知,那么当所请求的超时周期过期时,用户就能够对它进行配置。可以在运行时启用或禁用通知。

不管是从上一个通知发生以来的相对时间消耗,还是到下一个通知之间的剩余时间,都可以进行查询。

图8 GPT时序

注意,GPT驱动仅产生时间基础,而不服务于时间计数器。这个功能是由另一个模块(ICU驱动)提供的。

GPT驱动可以用来唤醒ECU,不管预定义的超时周期是否过期。模式转换服务将GPT驱动在普通操作和睡眠模式之间进行转换。

该驱动不提供超时周期,这些超时周期超过了被时钟源、预定标器和计时寄存器所限制的最大值。用户必须对这个进行处理。

1.2.4.3 微控制器单元MCU驱动

微控制器单元MCU驱动负责微处理器的各项设定,包括复位,初始化,电源管理,唤醒,时钟设定等。

MCU驱动提供用于基本微控制器的初始化,下电,复位和其它MCAL软件模块需要的

16

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

微控制器特定功能的服务。初始化服务提供了灵活性,同时,除了启动代码之外,还提供了应用程序相关的MCU初始化。启动代码是完全特定于MCU的。MCU驱动直接访问微控制器硬件,它位于微控制器抽象层(MCAL)中。

MCU驱动的特征:

· 初始化MCU时钟,PLL,时钟预定标器和MCU时钟分布 · 初始化RAM部件 · 激活微控制器节电模式 · 激活微控制器复位

另外,还有提供一个服务来从硬件处获得复位的原因。

MCU驱动微时钟和RAM初始化提供MCU服务。在MCU配置集中,特定于MCU的

时钟(例如,PLL设置)和RAM(例如,段基地址和大小)设置必须被配置。

注意:外部设备驱动是属于ECU抽象层而非微控制器抽象层的,但内存映射型外部设备(如外部flash存储器)的驱动是个例外,因为可以直接通过微控制器访问它们。这些外部设备的驱动位于微控制器抽象层。

1.3 复杂驱动

17

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

图9 复杂驱动层示意图

复合驱动(如图3-2所示)使用对微控制器的直接访问来实现复合的传感器评估和致动器控制,它所访问的微控制器使用指定的中断和/或复合的微控制器外设(如PCP,TPU),例如:

· 注入控制(injection control)

· 整流管控制(Electric valve control)

· 增量位置检测(Incremental position detection)

例子:

图10 复杂驱动内容

任务:满足处理复合传感器和致动器的特殊功能和时间需求。

18

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

复杂驱动在实现上高度依赖于μC、ECU和应用。

1.4 ECU抽象层 1.4.1 通信硬件抽象

图11 通信硬件抽象层次图

通信硬件抽象是从通信控制器的位置和ECU硬件布局中抽象出来的一组模块。对所有的通信系统来说,都需要特定的通信硬件抽象(如:LIN,CAN,MOST,FlexRay)。它提供平等的机制来访问总线通道(如:LIN、CAN、SPI、FlexRay),而不管这些总线通道的位置(在片上或在板上)。

例子: 一个ECU有一个带有两个内部CAN通道的微控制器,以及一个带有四个CAN控制器的板载ASIC。CAN-ASIC通过SPI与微控制器连接。

通信驱动通过总线特殊接口来访问(如CAN接口)。

通信硬件抽象在实现上与微控制器无关,而依赖于ECU硬件和外部设备。其上层接口

依赖于总线,而与微控制器和ECU硬件无关。

通信抽象层主要是LIN接口、CAN接口和CAN收发驱动、FlexRay接口和FlexRay收发

19

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

驱动构成。

通信硬件抽象CAN接口LIN接口CAN收发驱动FlexRay接口FlexRay收发驱动 通信驱动SPI串行外外设接口驱动LIN驱动CAN驱动FlexRay驱动 微控制器SPISCI/LINCANFlexRay

图12 通信硬件抽象层和通信驱动层

1.4.1.1 LIN接口

LIN接口(包括LIN TP):为上层LIN SM模块和PDU Router模块提供驱动抽象接口,通过下层驱动模块对LIN硬件设备进行控制。功能主要包括:根据上层通信模块切换调度表,执行LIN数据帧的收发,控制设备的唤醒和睡眠,错误处理以及诊断服务。其向下层的软件架构如下图所示。

20

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

图13 LIN Interface架构

LIN接口被设计成硬件无关的。到上层模块(PDU路由器)和下层模块(LIN驱动)的接口被很好地定义。

LIN接口可以处理一个以上的LIN驱动。一个LIN驱动能够支持一个以上的通道。这指的是LIN驱动能够处理一个或多个LIN通道。

LIN接口负责向上层提供LIN 2.0主要功能有:

(1)为每个与ECU连接的LIN总线执行当前选择的调度。 (2)当上层请求到来时,切换调度表。

(3)从上层接收帧的传送,并传送数据部分作为适当LIN帧中的响应。 (4)当相应的响应在适当的帧中接收时,为上层提供帧接收通知。 (5)睡眠和唤醒服务 (6)错误处理 (7)诊断传输层服务

1.4.1.2 CAN接口

CAN接口:为上层CAN SM模块,CAN NM模块,CAN TP模块以及PDU Router模块和下层CAN控制驱动和CAN收发驱动提供接口。提供了唯一的接口来访问管理CAN硬件设备,为上层服务层抽象了CAN硬件设备的分布和数量。其与下层软件结构关系如下图:

21

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

图14 CAN Interface下层软件结构

CAN接口提供标准化的接口,通过ECU的CAN总线系统来支持通信。其API与专用CAN控制器及其通过CAN驱动层的访问无关。CAN接口能够通过统一的接口访问一个或多个CAN驱动。

CAN接口仅能用于CAN通信,并且是为操作一个或多个底层CAN驱动而专门设计。涵盖不同CAN硬件单元的几个CAN驱动模块由一个在CAN驱动规范中指定的通用接口来表示。CAN之外(也就是LIN)的其他协议不支持。

1.4.1.3 CAN收发器驱动

CAN收发器驱动负责对CAN收发器硬件进行控制驱动,为上层CAN接口模块提供CAN收发器硬件抽象接口。

CAN收发器驱动负责处理ECU上的CAN收发器,依据的是与整个ECU当前状态相关的总线专用NM的状态。

CAN收发设备驱动的目标:CAN收发设备驱动抽象使用CAN收发设备硬件芯片。它向更高层提供硬件无关接口。它也可以通过MCAL层的API从ECU设计中抽象出来,访问CAN收发设备硬件。

22

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

CAN收发设备硬件必须提供功能和接口,以映射到AUTOSAR CAN收发设备驱动的运行模式模型上。

下层驱动(SPI和DIO)使用的API必须同步。不支持同步行为的下层驱动的实现不能与CAN收发设备驱动一起使用。

1.4.1.4 外部CAN驱动

外部CAN驱动(AUTOAR范围之外):为上层的CAN接口模块提供外部CAN硬件抽象接口。

1.4.1.5 FlexRay接口

FlexRay接口为上层FlexRay SM模块,FlexRay NM模块,FlexRay TP模块以及PDU Router模块提供驱动抽象接口,通过下层驱动模块对FlexRay硬件设备进行控制。提供的功能包括:初始化,收发数据,设定FlexRay运行模式,状态信息捕获以及各种定时。

FlexRay接口提供一种标准化的接口以访问FlexRay通信系统/硬件。FlexRay接口必须与所使用的专用FlexRay CC及其通过FlexRay驱动的访问无关。FlexRay接口提供通过统一接口的对一个或几个FlexRay驱动的访问。

FlexRay接口的主要任务有:

(1)为上层提供到FlexRay通信系统的抽象接口。

(2)FlexRay接口通过一个或多个硬件专用驱动模块来访问FlexRay硬件,而不是直接访问。

(3)为了访问FlexRay通信控制器,FlexRay接口使用一个或多个FlexRay驱动模块。 (4)为了访问FlexRay收发器,FlexRay接口使用一个或多个FlexRay收发器驱动模块。

(5)FlexRay接口可执行代码与FlexRay通信控制器和FlexRay收发器完全不相关。 (6)FlexRay接口允许代码模块的对象代码提交,遵循“one-fits-all”原则。

23

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

(7)FlexRay接口提供给上层AUTOSAR BSW模块的功能如下:

A.初始化 B.配置/重配置

C.数据传送(发送和接收) D.启动/停止/中断通信 E.FlexRay专用服务 F.设置运行模式 G.获取状态信息 H.各种计时器功能

1.4.1.6 FlexRay收发器驱动

FlexRay收发器驱动负责对FlexRay收发器硬件进行控制驱动,为上层FlexRay 接口模块提供FlexRay收发器硬件抽象接口。

FlexRay收发器驱动负责处理ECU上的FlexRay收发器,其依据是总线专用NM的状态。

1.4.1.7 外部FlexRay驱动

外部FlexRay驱动(AUTOSAR范围之外):为上层的FlexRay接口模块提供外部FlexRay硬件抽象接口。

24

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

1.4.2 I/O硬件抽象

图15 I/O硬件抽象层次图

I/O抽象层提供微控制器外设的硬件输入输出抽象接口,通过下层驱动模块对相应硬件外设进行控制,包括,微控制器通用I/O,ADC,PWM,ICU等。上层的汽车电子应用和组件可以通过该模块提供的I/O信号访问接口实现不同I/O设备的访问。

I/O硬件抽象外部ADC ASIC驱动外部I/O ASIC驱动I/O 信号访问接口 I/O驱动ICU输入捕获单元驱动PWM脉宽调制驱动ADC模数转换驱动DIO数字化I/O驱动PORT端口驱动 微控制器ICUPWMADCDIOPORTS

图16 I/O硬件抽象层和I/O驱动层

这主要通过把ECU信号映射到IO抽象端口上来实现。模块IO硬件抽象要提供用于初

25

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

始化整个IO硬件抽象的模块。

下图显示了IO硬件抽象模块。它位于MCAL驱动之上。就是说IO硬件抽象模块要调用驱动API来管理片上设备。MCAL驱动的配置依赖于将由IO硬件抽象模块提供的ECU信号的质量。例如,当引脚层发生相关的改变时(上升沿、下降沿),需要进行通知。系统设计者不得不配置MCAL驱动,以允许对给定信号进行通知。通知来自于驱动,并在IO硬件抽象模块中进行处理。

图17

26

北京科银京成技术有限公司 汽车电子控制器处理芯片及ECU板级抽象技术研究报告

1.4.3 存储硬件抽象

图18 存储硬件抽象层次图

存储硬件抽象是从外围存储设备位置(片上或板上)和ECU硬件布局中抽象出来的一组模块。存储硬件抽象的任务是提供相等的机制访问内部(片上的)和外部(板上的)的存储设备以及各种存储硬件(EEPROM,Flash)。例如:可以通过相等的机制访问片上EEPROM和外部EEPROM设备。通过仿真一个EEPROM接口和Flash硬件单元,可以经过存储器抽象接口访问两种类型的硬件。

27

北京科银京成技术有限公司 汽车电子控制器处理芯片及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

北京科银京成技术有限公司 汽车电子控制器处理芯片及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

本文来源:https://www.bwwdw.com/article/ayh6.html

Top