在测量和校准应用的焦点的XCP

13 篇文章 4 订阅
4 篇文章 7 订阅
原文链接: XCP at the Focal Point of Measurement and Calibration Applications

在测量和校准应用的焦点的XCP


越来越多的针对安全和便利的电子功能正在寻找进入现代汽车的途径。然而,由于ECU的数量正在受到控制,这意味着必须通过提高单个设备的复杂性来弥补。XCP通信协议为这些分布式系统的开发过程的合理化做出了重要贡献,在运行时测量和校准ECU内部变量是其主要任务之一。这个CCP的后继协议的巨大优势,在于其物理传输层的独立性。


现在,具有超过10,000个参数的控制模块不再罕见。由于需要在车辆中控制许多动态过程,所以ECU校准的典型任务也包括控制算法的优化。


以PID控制器为例,在校准比例、积分和微分的分量上,几乎存在无限的可能变化。因此,通常需要付出一些努力,直到在稳定性、速度和瞬态行为之间,找到一个足够好的平衡点。而这可以通过在运行时,读取和修改参数来完成(图1)。


 

图1:用测量、校准和诊断工具CANape优化PID控制器算法


针对ECU校准,为了保持较低的运行时间和资源消耗需求,工程师和技术人员需要强大的工具和标准,以便灵活地读取和写入变量或内存内容。为此,在20世纪90年代创建了CAN校准协议(CCP:CAN Calibration Protocol),在当时,CAN是汽车中唯一占主导地位的网络系统。CCP也得以被提名为一种跨OEM的标准。但是随着汽车电子的不断发展,诸如FlexRay、LIN、MOST等其它总线系统也开始发挥作用。由于CCP的使用仅限于CAN网络应用,就其潜在的使用领域而言,它受到越来越多的限制。这导致了其继任者XCP的开发。


通用标准化协议

“通用测量和校准协议”(XCP:Universal Measurement and Calibration Protocol),就像CCP,它也源自自动化和测量系统标准化协会(ASAM:the Association for Standardization of Automation and Measuring Systems)[1],并在2003年进行了标准化。“X”代表可变和可互换的传输层。XCP通过双层协议完全分离协议层和传输层,并采用单主多从(Single-Master/Multi-Slave)的方式。根据所讨论的传输层,该协议可能被称为XCP-on-CAN、XCP-on-Ethernet、XCP-on-UART/SPI和XCP-on-LIN(图2)。



图2:传输层和协议层的分离,使得XCP可以利用大量的硬件接口


XCP 主结点(XCP Master)能够同时与不同的XCP从结点(XCP Slave)进行通信。包括:
  • ECU或ECU原型
  • 测量和校准硬件,如调试接口或存储器仿真器
  • 快速原型硬件
  • HIL/SIL系统(Hardware-in-the-loop/Software-in-the-loop)


为了应对作为各种应用的通用通信解决方案的挑战,ASAM工作组在XCP的设计中强调了以下准则:

  • 对ECU占用最少的RAM、ROM和所需运行时间的资源;
  • 高效的通信;
  • 易于实现的XCP 从节点;
  • 配置工作量低的即插即用(plug-and-play)能力;
  • 参数数量少而可扩展性强。

可互换的传输层

XCP能够在不同的传输层上使用相同的协议层。该协议是一种通用的测量和校准协议,独立于所使用的网络类型而运行。目前,ASAM已经在标准中定义了以下传输层:XCP-on-CAN,XCP-on-SxI(SPI、SCI),XCP-on-Ethernet(TCP/IP和UDP/IP),XCP-on-USB和XCP-on-FlexRay。最后一个命名的变体是协议阵容的最新成员,已经在2006年初以来被制定。


XCP-on-FlexRay的一个特殊技术特征是其动态带宽控制。测量、校准和诊断工具(MCD:Measurement Calibration and Diagnostic),如CANape [2],能够识别剩余可用的带宽数量,并将其有效的动态分配给当前应用程序数据流量。在XCP通信中可用带宽得到最佳利用,几乎不影响正常的FlexRay通信。


其它未来考虑的选择包括XCP-on-LIN;如果用户群有足够的需求,也可能是XCP-on-K-Line或XCP-on-MOST。支持广泛的传输层,使得可以从开发阶段的宽带解决方案(如以太网或USB),简单的迁移到批量生产的最终的CAN接口上。


单主多从的概念

测量和校准系统承担XCP主结点的角色,而ECU充当从结点。主结点和从结点通过集成在其中的XCP驱动程序进行通信。每个从结点都有一个ECU描述文件;此文件中指定的信息包括:(符号)变量名称及其地址范围之间的分配、数据的物理含义以及正在使用的校验方法。XCP主结点可以从这些A2L描述文件中读出所有需要的信息。

在通过XCP进行的通讯中,“命令传输对象”(CTO:Command Transfer Object)和“数据传输对象”(DTO:Data Transfer Object)有所不同。主结点可能会通过总线上的CTO发送一个命令给ECU,在执行完成所请求的服务之后,ECU会在相同的路径上应答它。


提供的CTO包括:

  • 命令(CMD:Command)
  • 响应(RES:Response)
  • 错误(ERR:Error)
  • 事件(EV:Event)
  • 服务请求处理(SERV:Service Request Processor)


提供的DTO包括:

  • 数据采集(DAQ:Data Acquisition)
  • 激励(STIM:Stimulation)

用于从内存中以事件驱动的方式来读取待测量的变量,或者用于将值写入XCP从结点的内存(图3)。



图3:主从间通信


从汽车总线到标准PC接口

PC平台几乎只用作测量和校准任务的主结点。PC通常配有一个或多个硬件接口,来与CAN、LIN、FlexRay、MOST或K-Line等汽车总线系统进行直接连接。而且,XCP主结点能够使用标准的PC接口,如以太网、USB和RS232。当然,在这样的解决方案中,接口硬件不会产生其他成本。


带有调试接口(JTAG,TRACE等)和内存仿真器的测量和校准系统,可以用这种方式实现。原则上,标准PC接口也非常适合于连接在不同总线系统之间的网关,例如,FlexRay-on-Ethernet可以处理这个问题。最后,还有传统的模拟和数字I/O通道,这些通道在很多开发和测试布线中都有使用,特别是时间关键(time-critical)的测量。


使用XCP的一个显著优点在于,对于所有这些应用程序,单一的标准化协议就足够了。如果没有XCP,则需要为每个通信通道实施专有的驱动程序。但是,并行使用多个驱动程序时,必须要考虑性能损失。此外,不良的相互作用和不稳定性的风险也会增加。


多功能、可扩展和节约资源

所有通信过程都使用同一个XCP驱动程序代码。它可以用来发送来自小型控制器和接口的几个字节,例如具有集成串行接口的8位处理器。又或者可以使用相同的代码在高速网络(如以太网)上,使用32位处理器发送兆字节大小的数据量。


由于XCP驱动程序由强制和可选功能组成,驱动程序的大小可以进行调整,以匹配可用的ROM/闪存大小。在ECU中,资源的使用的关注点被特化为是在于大的数据吞吐量,还是低的处理器负载和RAM大小。在总线负载方面,基本的考虑是要传输的信号数量与总线带宽。总的来说,XCP驱动程序很容易实现,只需要很少的参数。


事件驱动的周期性数据采集

ECU以离散的时间间隔运行。这种时间间隔可以以固定的方式(例如10毫秒)来定义,或者时间间隔可以是事件相关的(例如一个发动机转数)。在定义的固定时间间隔的情况下,时间片的结束由定时器的到期来标记。用一般的术语来表示,这种定时器的到期也是一个事件。ECU的任务是完成特定时间片内的所有计算和控制任务。


为了从XCP从结点获得相关的数据,现在使用XCP协议的DAQ机制。在这个机制中,XCP主结点在测量开始之前,先通知从结点哪些信号将在某些事件发生时被测量。如果事件在某刻发生(例如10毫秒定时器到期),XCP从结点从内存中读取之前定义的数据,将它们复制到受保护的RAM区域并以消息的形式发送给主结点。这确保了这些值是来源于相同的事件周期且相互关联的。


主结点收到带有时间戳的数据,并将其保存到测量文件中。时间戳是由XCP从结点作为基准发送出去,或者是由所使用的接口硬件分配给消息,例如CANcardXL。在测量文件中,所有数据都参考主结点的时间基准进行同步,然后进行进一步处理,例如在全局时间轴上可视化测量值。这允许在一个图表中一致地显示来自不同XCP从结点的多个数据通道。


XCP除了相对于CCP已经提到的优势之外,XCP还支持所谓的冷启动(code-start)测量和周期性数据采集任务的ECU内部时间戳。在冷启动测量中,ECU可以被配置为激活后立即开始周期性地发送数据,即主结点不需要显式的发起。如果正在使用内部ECU时间戳,测量和校准系统中的后续评估不是按接收到的时间,而是在XCP子结点中创建数据的时间。这消除了由于传输过程中可能的延迟造成的不确定性,例如在总线带宽不足或负载较高的情况下。


优化特性曲线和二维映射

除了基于数学模型的控制算法外,ECU还利用由离散插补点组成的特征曲线和二维映射。为了达到预期的系统行为,这些特征值表通常是通过实验设置和优化的,例如在测试台架上。A2L文件用于描述待测量变量和校准参数。A2L文件中的描述选项从简单的标量参数到复杂的表格。


除其它的内容外,描述还包含数据类型、原始值和物理值之间的转换规则、特征二维映射(characteristic maps)的存储格式等等。高性能的校准工具,如Vector的CANape,可以在屏幕上以绘图图表或数值表格的形式,清楚地显示特征曲线和二维映射。


使用CANape和XCP的快速原型

在ECU开发过程中,重要的功能经常被交换到外部的模拟系统,以便可以付出较少的努力来计算它们。直到模拟模型中的算法达到一定的成熟度水平,开发人员才会从中产生源代码,并与其它ECU相关代码一起编译并烧写到ECU中。不过,在所谓的“旁路(bypass)”出现之前,真实的ECU和它的模型之间的耦合是合乎需要的,在开发的早期,可以独立于硬件来进行测试和优化。


有了XCP的旁路机制,主结点通过DAQ从ECU读取数据,并将该值作为输入值传递给模型,并通过STIM将模型的结果发送回ECU。值得注意的是,运行MCD工具CANape的普通PC平台也足以进行旁路和建模。这是一个好消息,因为基于特殊实时硬件的解决方案会贵很多倍,在开发部门能提供数量也有限。


CANape作为高度优化的XCP主结点,能够同时处理与真实ECU以及在PC上运行的模型之间的通信(图4)。ECU参数和模型参数都可以通过CANape和XCP进行校准。



图4:旁路:使用带有CANape的标准PC作为测试系统。


通过XCP进行烧写

XCP还为用户对ECU编程提供了便利。ECU闪存中的数据,只能使用专门准备的闪存例程进行重新编程,闪存例程也必须驻留在ECU中。

原则上,可以想到两种方法:

  • 在解决方案1中,闪存例程永久存储在闪存中。首先,这浪费了存储空间;其次,它带来了交付车辆的安全问题。
  • 在解决方案2中,如果需要重新编程,PC工具通过XCP,仅加载闪存内核到单片机的RAM。除了包含用于擦除闪存和重写数据的闪存例程之外,闪存内核还包含自己的总线和安全复制(SCP:Secure Copy)驱动程序,用于通过总线接口与PC工具进行通信。


总结

XCP是一个标准化和普遍适用的协议,具有很大的合理化潜力。它不仅用于ECU开发、校准和编程;它也被用来整合任何想要的原型开发测量设备、带旁路的功能开发和SIL(Software-in-the-loop)与HIL(Hardware-in-the-loop)测试台架。


为了通过微控制器调试接口(如NEXUS)无故障的快速访问内部数据,使用了专用硬件进行通信。该硬件将NEXUS通信转换到XCP-on-Ethernet。对用户的好处是,可以独立于具有专有解决方案的工具生产者,以及组件的可重用性。


Vector提供了一个免费的驱动程序,用来建立一个XCP从结点,并可以在其网站下载[3]。自1996年以来,用作ECU校准工具的MCD工具CANape作为XCP主结点,被持续的按最新XCP标准进行更新,该标准是基于Vector积极参与的ASAM工作委员会。


CANape是市场上第一款具有XCP-on-FlexRay接口的工具。在第一辆使用FlexRay的量产车型BMW X5的研发过程中,这是BMW工程师决定使用Vector的XCP协议栈和CANape来校准减振控制系统的关键因素。


本文是对在德国发行的“Elektronik automotive, 4/2007”所刊登的文章内容的翻译。


文献链接:
[1] www.asam.net
[2] www.vector.com/canape
[3] www.vector.com/downloads/drivers/xcp.exe

作者:


Andreas Patzer

经过实践教育,成为一名IT技术人员后,Andreas Patzer在1986年至1993年期间在卡尔斯鲁厄技术大学学习电气工程。他专攻测量和控制工程以及信息和自动化工程。在获得学位后,Patzer先生在通信行业工作。2003年,他加入了斯图加特的Vector Informatik GmbH,在那里他作为“测量和校准”产品线的业务开发经理,负责客户、开发和销售的接口。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值