原文链接:https://blog.csdn.net/nibiewuxuanze/article/details/78882760
接下来,从使用XCP进行测量/校准的系统构成开始,依次讲解趋势和应用实例。
如前面所述,XCP是主结点侧的测量/校准工具和从结点侧的ECU之间的通信协议。XCP的主结点侧,通常提供为在PC上运行的应用程序(图19)。相对的,从结点侧则提供为ECU中的嵌入式C语言源代码的形式的软件模块,并且在实际的传输层的情况下,例如XCP on CAN,它将被集成连接到CAN的通信部分,以便处理XCP协议。
图19:测量/校准工具
XCP从结点侧的模块,一般包含作为XCP从结点驱动的协议处理部分和同步测量的处理部分,但该驱动程序通常由提供XCP主结点侧应用程序的工具供应商提供。因此,测量/校准工具供应商将提供从结点驱动程序,或协助进行实际的组装的服务。
对作为校准对象的整体控制进行优化,以合乎要求定义的过程,只通过XCP对ECU进行测量/校准是不能实现的。例如,在本文 “1.什么是测量/校准协议?”的化油器的校准中,就有必要通过传感器等来测量混合气体的状态。这样的传感器输入对于实现实际测量/校准是不可或缺的。
此外,近年来,对汽车的控制也在往复杂化和高功能化方面发展,出现了基于车辆的外部环境进行控制的ECU。一个典型的例子是“自适应巡航控制”,简称为“ACC:Adaptive Cruise Control”。在该ECU中,利用电磁波和相机进行的车辆外部环境的检测(例如通过毫米波雷达检测前方车辆)的车辆控制,以跟随和避免碰撞。在这种情况下,需要利用视频等来测量外部环境的车辆的位置和当时的情况(图20)。
图20:集成化的测量/校准工具
在像这样的校准的实现中,集成化的测量/校准系统是不可或缺的。接下来,将说明校准过程中其次的主要需求。
集成化的测量
不仅是对ECU的测量,还需要同步测量传感器、汽车网络、仿真/数字信号、以及车辆的位置和周围的影像。
测量的离线评估
进行测量可以确认校准结果和控制的有效性,但是在与XCP相关的汽车和一般工业设备的情况下,测量成本在一些情况下很高。例如,使用测试车和测试驾驶员的测量成本非常高,并且容易想象到,对于飞机发动机测量等的成本更高。因此,随着测量功能的精细化,测量之后的数据分析和测量与校准之间的因果关系的记录等评估功能需要离线,也就是测量之后进行。
校准参数的管理
如果ECU包含了与控制相关的所有功能,即使改变了要控制的对象,也只要通过校准改变参数,而不用改变控制。在发动机控制中,有些ECU是以零部件的形式从制造商出售的,可以在购买后根据实际发动机进行参数校准。像是这种ECU,根据各种控制对象来改变共用的参数的情况下,有必要针对控制对象来管理适当的一组参数(参数集:Parameter Set)。
此外,在这种情况下,参数的数量增加以匹配更多的控制对象,由多个校准工程师进行更复杂的校准和工作。因此,从这些方面来看,参数管理也是必要的。
对于参数管理,需要包含对多个参数集进行比较、合并和检索等功能(图21)。
图21:校准参数的管理示例
到目前为止,描述了XCP在测量/校准系统、作用对象的ECU及其网络中的使用情况,现在开始说明XCP的其它使用情况。
(1)由记录器(Logger)记录XCP
在记录车载网络或车辆的模拟量(Analog)情况的记录器中,与此同时,符合XCP标准的产品也能够满足“记录ECU内部状态”的需求。除了记录模拟量和车载网络的输出结果之外,还可以记录ECU内部状态的输出过程,从而提高分析效率。
(2)测试
存在这样的系统:在电气上仿真ECU的外部环境,并执行ECU的操作测试,而后将测试结果作为判断分析因素,并使用XCP来测量ECU的内部状态(图22)。如此,不仅是最终的ECU输出结果,中间过程也可以得到确认,从而提高测试时的分析效率。
图22:使用Vector的CANoe进行测试使用XCP的ECU
(3)测量器的通用接口
如本文“2.XCP协议通信的构成和和功能”所述,XCP的实现方式为,使用来自主结点的40位XCP地址,访问测量/校准对象以及得到应答;并且,通过XCP地址指定同步测量的对象,从结点周期性将测量结果数据发送出来。有些产品会使用XCP作为测量器的通用接口。在这种情况下,XCP地址不只用来指定ECU内存,还用作指定要测量的模拟量或传感器的识别号码。
这样,通过使用XCP作为测量器的通用接口,在不改变现有的测量/校准系统的情况下,它可以作为集成的测量对象的一个设备来使用。
接下来,考虑在EV/HEV汽车开发中,使用XCP进行测量/校准的要求。
(1)多个ECU的测量/校准
在HEV的情况下,动力源增加到了两个:发动机和电机。EV/HEV均需要对电池和再生充电等进行集成控制。除了单主多从的XCP功能之外,还需要在每个分离的网络上,都能作为主结点的测量/校准工具。
(2)低负载、稳定负载的高速测量
电机的控制周期大约需要在100 [μsec],并且需要对其进行同步的高速测量。此外,在这种情况下,同步测量本身的负载,即XCP的测量处理负载也要求尽可能低。通常的,测量处理负荷在每个测量周期中与测量点的数量成正比,所以测量周期越快,测量负荷对原始控制周期的影响就越大。
但是,在电机控制等情况下,由于这种对控制周期的影响是不允许的。换句话说,在负载是低负载的同时,诸如测量点的数量随测量情况的变化时,要求负载始终是稳定的。
下面描述的Vector的“VX1000系统”示例,在执行上述高速测量的同时,以低负载和稳定负载进行测量。(图23)
图23:VX1000系统的构成示例
在本系统中,不需要集成XCP从结点驱动程序,只需要通知同步测量的时机的处理。使用该驱动程序,ECU和VX1000系统通过Nexus Class 3、RTP或DMM等微控制器内存跟踪的接口,VX1000系统和测量/校准工具是使用XCP on Ethernet(通过TCP/IP或UDP/IP)来连接。从测量/校准工具来看似乎是XCP,但ECU不直接处理XCP从结点,由VX1000系统执行协议转换的处理。
接下来,将说明在ECU测量周期的时序中,从结点驱动处理是怎样做到XCP同步测量的。
表3显示了直接使用各个XCP网络协议和使用VX1000系统之间的差异。
表3:ECU接口的特征
在基于模型的开发(MBD:Model Based Development)中,对可执行的模型和被称为“设备(plant)”的控制对象一起进行仿真是可行的。当进行仿真的准确性提高后,还可以像对实际ECU一样对其进行校准。此外,为了能够进行充分的仿真,还需要通过校准,使其成为与设备相匹配的模型。因此,在仿真阶段就能够进行测量和校准是有必要的,这也是基于模型的开发的要求之一。
对模型不仅是仿真,还会通过自动代码生成器来生成C语言等代码,并实际的运行。在这种情况下,也有必要对ECU进行与以往相同的测量/校准。另外,可以基于在之前仿真阶段校准的结果进行校准,也就是说,校准参数可以得到沿用。
下面我们从仿真和实际ECU两方面来考虑测量/校准的实现。
仿真
测量/校准的对象是仿真的虚拟模型,必须通过虚拟接口来实现。
实际ECU
测量/校准的对象是ECU,需要使用CAN或FlexRay等实际网络来实现。
针对这种仿真和实际ECU的差异,由于XCP不会依存于具体网络,都可以进行测量/校准,所以可以使用在基于模型开发的各个阶段。
作为对仿真的模型进行测量/校准的示例,针对Vector“Simulink XCP Server”进行说明(图24)。
图24:CANape和Simulink XCP Server
为了实现对在MATLAB/Simulink上运行的仿真模型的测量/校准,Simulink XCP Server作为为模型提供的XCP接口的Simulink的模块,可以通过XCP on Ethernet连接到Vector的校准工具“CANape”。就这样,即使在仿真过程中,也可以进行与真实环境完全相同的测量/校准。
一般来说,由于仿真的运行速度比实际的执行时间快,也可以进行比实际执行时间更快的校准,此时获得的校准参数也取决于模拟的准确性,可以与实际ECU的值大致相当。基于这个校准参数,再开始对实际ECU的测量,可以加快最终校准的完成时间。
XCP是按不会依存于具体网络、对任意形态的ECU,都可以进行访问和测量/校准的目标来进行开发和标准化的。最初是从CCP成功的实际业绩来开始扩展功能,实现在所有车载网络的测量/校准。由于其灵活性,它被用作测量器的通用接口,在基于模型的开发中,它也被用作仿真和实际ECU间无差异的相同接口。
预计XCP将在未来的测量/校准的各个方面使用。希望这篇文章能帮助你理解和使用XCP。