· 调整ECU上多个独立软件组件的通信栈(允许发送和接收消息)的可用性。 · 暂时禁止发送消息以阻止ECU(主动地)唤醒物理通道。
· 通过为每个物理通道实现一个状态机来控制ECU的多个物理通道。 · 可以强制ECU保持物理通道处于“silent 通信”模式。 · 分配所请求的通信模式需要的所有资源,简化资源管理。
通信管理器定义了“通信模式”,表示一个特定的物理通道对于应用是否可用,以及如何使用(发送/接收,只接收,即不发送也不接收)。 2.4 诊断服务
2.4.1 诊断事件管理器
诊断事件管理器DEM(Diagnostic Event Manager)是一个子组件,如同AUTOSAR内诊断模块的诊断通信管理器(DCM)和功能禁止管理器(FIM)。它负责处理和存储诊断事件(错误)和相关FreezeFrame数据。DEM进一步提供故障信息给DCM(例如,从事件存储器读取所有存储的DTC(Diagnostic Trouble Code))。DEM给应用层、DCM和FIM提供接口。定义了可选的过滤服务。 2.4.2 功能禁止管理器
功能禁止管理器FIM(Function Inhibition Manager)负责提供软件组件和软件组件功能的控制机制。功能由一个、多个或部分有相同权限/禁止条件的可执行实体构成。通过FIM方法,对这些功能的禁止可以配置甚至修改。所以,极大地提高了功能在新系统环境下的适应性。
FIM意义上的功能与可执行实体是不同并且独立的类型。可执行实体主要由调度需求来区分。与此相对的是,功能由禁止条件来分类。FIM服务关注SW-C的功能,但是并不局限于此。BSW的功能也能够使用FIM服务。
功能被指定了一个标识符(FID – function identifier),以及该特定标识符的禁止条件。功能在执行之前获得它们各自的权限状态。如果禁止条件应用于特定标识符,对应的功能将不再执行。
FIM与DEM密切相关,因为诊断事件和它们的状态信息作为禁止条件被提供给FIM。如果检测到了失效,并且事件报告给了DEM,那么FIM禁止FID和对应的功能。 为了处理功能和关联事件的关系,功能的标识符和禁止条件必须引入到SW-C模板中(与BSW等价),并且在配置期间构造数据结构以处理标识符对于特定事件的敏感性。这些关系在每个FIM中是唯一的。
RTE和FIM之间没有功能上的联系。在AUTOSAR中,RTE按照接口和调度需求处理SW-C。与此相对的是,FIM处理禁止条件并通过标识符(FID)为控制功能提供支持机制。因此,FIM概念和RTE概念不互相干扰。 2.4.3 开发错误跟踪器
开发错误跟踪器DET(Development Error Tracer)主要用于在开发期间跟踪和记录错误。API参数给出了追踪源和错误类型:
?
错误所在的模块
? ?
错误所在的功能 错误类型
由软件开发者和软件集成者在特定应用和测试环境下为API功能选择最优的策略。可能包括以下功能:
? ? ? ?
在错误报告API内设置调试器断点 计算报告的错误
在RAM缓存中记录调用和传递的参数 通过通信接口发送报告的错误到外部日志
DET仅仅是对SW开发和集成的辅助,并不一定要包含在产品代码中。API已经定义,但是功能由开发者根据特定需求来选择/实现。 2.4.4 诊断通信管理器
诊断通信管理器DCM(Diagnostic Communication Manager)确保诊断数据流,并且管理诊断状态,特别是诊断对话期和安全状态。另外,DCM检查诊断服务请求是否被支持,以及根据诊断状态判断服务是否可以在当前对话期中执行。
DCM为所有诊断服务提供连接到AUTOSAR-RTE的接口。另外DCM也处理一些基本诊断服务。
在AUTOSAR体系结构中,诊断通信管理器(DCM)处在通信服务中(服务层)。DCM是应用和PDU路由器封装的车辆网络通信(CAN、LIN、FlexRay和MOST)之间的中间层。DCM与PDU路由器之间有一个接口。在通信过程中,DCM从PDU(Protocol Data Unit)路由器接收诊断消息。
DCM在其内部处理、检查诊断消息,并把消息传送到AUTOSAR SW组件进一步处理。根据诊断服务ID,将执行应用层中的相应调用。
DCM必须是网络无关的,所以协议和消息配置在DCM的下层。这需要连接到PDU路由器的网络无关接口。
DCM由以下功能块组成:
DSP - Diagnostic Service Processing
DSP主要包含了完整实现的诊断服务,这些服务在不同的应用之中是通用的(例如,访问故障数据),所以不需要由应用实现。
DSD-Diagnostic Service Dispatcher
DSD的目的是处理诊断数据流。这里的处理意味着: 通过网络接收新的诊断请求并发送到数据处理器。
当被应用触发时,通过网络传送诊断响应(AUTOSAR SW-Component或DSP)。 DSL-Diagnostic Session Layer
DSL保证数据流与诊断请求和响应有关。DSL也监督和确保诊断协议计时。进一步,DSL管理诊断状态。 2.5 存储栈 2.5.1 存储服务
存储服务由一个NVRAM管理器模块构成,负责管理非易失性数据(从不同存储驱动读/写)。它需要一个RAM镜像作为数据接口提供给应用快速读取。 存储服务的任务是以统一方式向应用提供非易失性数据。这抽象了存储位置和属性。提供非易失性数据管理机制,如保存、加载、校验和保护和验证、可靠存储等。 2.5.1.1 存储硬件抽象的寻址方案
存储抽象接口和下层的闪存EEPROM仿真和EEPROM抽象层向NVRAM管理器提供虚拟线性32位地址空间。这些逻辑32位地址由16位逻辑块号和16位块地址偏移量组成。因此NVRAM管理器(理论上)可以有65536个逻辑块,每个逻辑块(理论上)可以有64Kbytes。
NVRAM管理器进一步将16位逻辑块号划分为以下部分: · (16-NVM_DATASET_SELECTION_BITS)位的块标识符
· NVM_DATASET_SELECTION_BITS位的数据索引,每个NVRAM块最多可以有
256个数据集 2.5.1.2 NVRAM管理器
非易失性RAM管理器(NVRAM Manager)管理所有非易失性存储器中数据的存储。 NVRAM管理器本身与硬件无关,所有直接存取硬件的功能,例如内部或外部EEPROM、内部或外部闪存中的仿真EEPROM等,封装在基本SW的较低层。在汽车环境中,NVRAM管理器提供服务以根据各个数据的需求来保证数据存储和NV数据的维护。NVRAM管理器要能够管理EEPROM和/或FLASH EEPROM仿真设备的NV数据。NVRAM管理器为NV数据的管理和维护提供所需的同步/异步服务(初始化/读/写/控制)。NVRAM管理器处理对非易失性数据的并行访问,并为单个数据元素提供可靠性机制,如校验和保护。 为了适用于汽车系统的所有领域,NVRAM管理器需要具有高度的伸缩性(如定义请求队列的数目和大小,支持不同的块管理类型,EEPROM仿真,等等)。 2.5.1.3 基本存储对象
NV块:NV块表示NV用户数据和CRC值(可选)组成的存储区; RAM块:RAM块表示在RAM中用户数据和CRC值(可选)组成的区域;
ROM块:ROM块驻留在ROM(闪存)中,用于提供缺省数据以防NV块为空或被破坏; 管理块:管理块在RAM中,包含与Dataset NV块关联的块索引。另外,也包含相应NVRAM块的属性/错误/状态信息。 2.5.1.4 块管理类型
以下NVRAM存储类型应该由NVRAM管理器支持,并且由以下基本存储对象构成: 管理类型 NVM_BLOCK_NATIVE NVM_BLOCK_REDUNDANT NVM_BLOCK_DATASET NV块 1 2 1..RAM块 1 1 1 ROM块 0..1 0..1 0..n 管理块 1 1 1 (m<256) Native NVRAM块是最简单的块管理类型。以最小的开销存储/检索NV存储区。Native NVRAM块由单个NV块、RAM块和管理块组成。
Redundant NVRAM块有更高的容错性、可靠性和可用性,以及对数据被破坏的抵抗性。Redundant NVRAM块由两个NV块、一个RAM块和管理块组成。
Dataset NVRAM块是相同大小数据块(NV/RAM)的阵列。应用一次只能存取其中的一个。Dataset NVRAM块由多个NV用户数据和(可选)CRC区域、一个RAM块和管理块组成。
2.5.1.5 NVRAM管理器的API配置种类
为了使NVRAM管理器适合于有限的硬件资源,定义了3种不同的API配置种类: · API配置种类3:
所有规定的API调用都可用。支持最大的功能性。 · API配置种类2:
API调用的中间集可用。 · API配置种类1:
特别用于满足资源非常有限的系统,此API配置种类只提供所需要的API调用的最小集。 2.5.2 存储硬件抽象
存储硬件抽象是一组抽象于外围存储设备位置(片上或板上)和ECU硬件布局的模块。例如:片上EEPROM和外部EEPROM设备应该可以通过相同的机制存取。
通过存储器特有抽象/仿真模块访问存储驱动(例如EEPROM抽象)。通过仿真EEPROM接口和闪存硬件单元,就可以通过存储抽象接口访问这两种类型的硬件。 存储硬件抽象的任务是提供访问内部(片上)和外部(板上)存储设备和存储硬件类型(EEPROM、闪存)的相同机制。
2.5.2.1 EEPROM抽象
EEPROM抽象层(EA)扩展EEPROM驱动,向上层提供线性地址空间上的虚拟分段和“实际上无限制的”擦除/写循环。除此之外,它还应该提供与EEPROM驱动相同的功能。
2.5.2.2 闪存EEPROM仿真
闪存EEPROM仿真(FEE)按照闪存技术仿真EEPROM抽象层的行为。所以它与EEPROM抽象层有相同的功能和API,并且给出基于下层闪存驱动和闪存设备的相似配置。 2.5.2.3 内存抽象接口
内存抽象接口(MemIf)允许NVRAM管理器存取多个存储抽象模块(FEE或EA模块)。 内存抽象接口抽象于下层FEE和EA模块的数目,并向上层提供统一线性地址空间上的虚拟分段。 2.5.3 存储驱动 2.5.3.1 EEPROM驱动
EEPROM驱动提供读、写、擦除EEPROM的服务。也提供了用于比较EEPROM中数据块和内存中数据块的服务。这些服务是异步的。有两类EEPROM驱动:
· 内部EEPROM驱动 · 外部EEPROM驱动
内部EEPROM驱动直接访问微控制器硬件,并且定位在微控制器抽象层。外部EEPROM驱动使用处理程序(handler)或驱动访问外部EEPROM设备。它定位在ECU抽象层。
两种类型的驱动的功能需求和功能范围都是相同的。所以API在语义上是相同的。 2.5.3.2 闪存驱动
如果受到底层硬件的支持,闪存驱动提供读、写和擦除闪存的服务,以及设置写/擦除保护的配置接口。闪存驱动提供了一个内置加载器,以加载闪存存取代码到RAM中,并在需要的时候执行写/擦除操作。
在ECU应用模式下,闪存驱动只用于闪存EEPROM仿真模块写数据。在应用模式下并不将程序代码写到闪存中。这应该由启动模式处理,超出了AUTOSAR的范围。
有两类闪存驱动: · 内部闪存驱动 · 外部闪存驱动
内部闪存的驱动直接存取微控制器硬件,并且定位在微控制器抽象层。外部闪存通常通过微控制器数据/地址总线连接,然后闪存驱动使用总线的处理程序/驱动访问外部闪存设备。外部闪存设备的驱动定位在ECU抽象层。两种类型的驱动的功能需求和功能范围都是相同的。所以API在语义上是相同的。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库AUTOSAR技术分析报告(3)在线全文阅读。
相关推荐: