新闻中心

EEPW首页 > 物联网与传感器 > 设计应用 > 针对FlexRay系统的嵌入式软件

针对FlexRay系统的嵌入式软件

—— —软件模块化的特点及优点
作者:Vector Informatik GmbH公司 Dirk GroBmann,Oliver Kitt时间:2008-04-14来源:电子产品世界

  标准化的软件组件将有助于管理ECU中所有软件组件之间日趋复杂的关联关系。今年三月,在Vector的研讨会上,提出了针对的现代ECU软件开发方法。

本文引用地址:http://www.eepw.com.cn/article/81514.htm

  总线协议是一种车载网络协议,适用于具有较大传输带宽要求的高速控制系统。FlexRay的带宽比CAN高出20倍,从而可以通过使用更少的网关来降低系统的复杂性。由于FlexRay是时间触发控制,所以特别适合分布式的容错系统的通讯和与安全相关的应用。另外,AUTOSAR对于软件系统结构的标准化,将有利于控制汽车电控系统复杂度的增长。

  FlexRay ECU软件的特征

  为了充分发挥FlexRay通讯系统的优点,有必要根据AUTOSAR,从根本上开发相关的基础软件。AUTOSAR规定了新的开发方法,即软件体系结构和基础软件。OEM可以一步一步地将其引入到新的车型中。符合标准的ECU软件具有模块化的结构(图 1),从而可以在RTE以上划分软件组件,在RTE以下划分基础软件。基础软件具有模块化的内部结构,并通过明确的接口定义进行了说明。因此,任何来源的代码都可以集成到其中使用。另外,AUTOSAR还定义了交换格式以及独立模块之间的接口如何运行。

  这种模块化使得裁剪软件特性以满足某个车型的具体需求变得更加容易,例如,没有网络管理的ECU。因为独立的软件模块可以被软件供应商预先配置好,从而降低了OEM和ECU供应商开发基础软件的投入。这样可以让开发人员将更多的重心放在创新和实际功能的开发上。

  FlexRay的结构

  Vector的FlexRay基础软件体系结构如图2。FlexRay基础软件体系结构包括接口、驱动、网络管理和传输协议,这些都包括在FlexRay协议栈中。驱动对硬件进行了抽象,使其能够适用于不同的通讯控制器。驱动负责初始化控制器,发送和接收帧以及检测控制器错误。这些接口与上层之间进行通讯,将协议数据单元转化为帧,反向则将帧转化为协议数据单元。另外,它还负责向相关层提供发送和接收应答。考虑到总线系统的通信需求,网络管理协调网络中所有的ECU之间的通讯。如果所有的网络节点不再有通讯需求,将切换到总线休眠ECU模式。

  FlexRay传输协议同样位于FlexRay接口上,用来处理不能在一个协议数据单元中发送的大数据,将其分割成若干部分发送,并将其在接收端重新组合。

  针对Freescale和NEC的两款FlexRay控制器驱动,可以看出这些模块是怎么样适应实际需要的。经过优化裁减的驱动适应特定的硬件使用需求,同时提供给上层一个不变的特性和行为的模式。在Freescale的16位S12X控制器中,FlexRay驱动必须管理RAM存储器,因为该控制器必需的存储空间需要交换到系统RAM。32位的NEC V850控制器已经包含了一个大的RAM,作为FlexRay控制器的存储器。这就是驱动执行其有效的分割和利用的地方。

  运用XCP在FlexRay上面进行ECU标定

  在该构架中,可以非常方便的集成最近开发的组件,例如,因为新的协议或者标准的扩展而必需开发的组件。这些接口也必须与AUTOSAR标准一致。例如,XCP功能可以添加到以前定义的FlexRay协议栈中,这样就可以测量和标定FlexRay ECU内部的信号。

  XCP是优化ECU系统参数的通用通讯协议。由于其独立的协议层和传输层,XCP可以工作在不同类型的通讯网络中(CAN, FlexRay, Ethernet, USB, RS232或者SPI/SCI)。这种明显的分层还体现在FlexRay协议栈中的集成。通用通讯协议层XCP在FlexRay专用传输层(FrXCP)的上面,FlexRay专用传输层与FlexRay接口进行信号交换(图3)。

  由于带宽是动态配置的,驱动必须在测量或标定的过程中配置缓存。因此,该模块被标准AUTOSAR驱动的扩展版取代。

XCP是面向地址的协议。通讯发生在控制器组件和XCP Master中的相似结构的软件组件之间。一般来说,XCP Master是测量和标定的工具(例如:Vector的CANape),其访问测量数据是通过面向地址的方式实现的,这就要求ECU中任务同步(事件驱动)。

  动态带宽管理

  连接是通过在ECU描述文件(A2L)中定义的初始通讯通道建立的。通过传输层命令,XCP Master控制一个循环中动态部分的可变时隙的分配,这样就能够扩展通道用于传输测量和标定数据。这种“负载分配”在运行时动态优化带宽利用。由于同一总线上有多个ECU通讯,一个时隙不能专门分配给特定的ECU,而是采用多路技术,即多个ECU使用同一时隙。这在需要较小带宽时非常有意义,例如,一个ECU仅仅需要每秒发送一条报文,或者每四个周期发送一条报文。每一个报文的具有唯一的地址,详细描述了时隙、周期和通道信息。这样就可以在每个周期内给不同ECU数据使用相同的时隙。测量数据包含时戳,可以在比一个周期时间更短的间隔内访问测量变量。例如,系统的周期为5ms,而测量的周期可以是2.5ms。当然,这也需要保证有足够的带宽在期望的时间内传输数据。

  在该通讯过程中,ECU必须保留并动态配置发送和接收的缓存(RAM)。RAM可以包含在控制器中,也可以在必要的时候使用外部的存储单元,该存储单元由FlexRay驱动管理。

  在系统定义的时候,需要明确定义XCP可以使用多少时隙,什么样的情况下进行时隙分配。这是在FIBEX文件中完成的,还需要定义保留给XCP的slot。以下情况都是可能出现的:

  ·每个ECU都有自己的时隙

  ·多ECU使用相同的slot

  在这种情况下,每一个ECU都有自己的地址。可以通过命令来激活缓存或使之失效。

  ·缓存可配置,这样符合动态分配

  无论是否使用传输协议,XCP master的用户接口应该准确描述实际测量和标定任务。这样,应用工程师就可以优化ECU参数,而无需依赖他们所标定的ECU的总线系统。

  利用标识符进行标定工作,可以在ECU中找到参数和测量变量,而无需知道变量的代码地址。应用程序根据ECU的描述文件将名字(标识符)与物理地址关联起来(图 4)。

  支持所有开发阶段

  FlexRay的开发人员可以从Vector公司获得支持:从系统描述到基础软件的实现以及ECU的标定。这包括用于设计、开发、仿真、分析、测试ECU和分布式网络的工具以及相应的总线接口。CANape是第一个支持基于FlexRay的XCP测量、标定和诊断的工具。结合针对ECU的成熟的软件协议栈和标定工具对于XCP-on-FlexRay的支持,用户可以获得与其它组件完美结合的组件,从而建立符合AUTOSAR的体系结构。(恒润科技译)

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


关键词: FlexRay 嵌入式

评论

技术专区

关闭