2 旁通的原理及实现
在ECU开发过程中,经常会频繁地将重要功能导出到外部仿真系统,这样可以花最小的代价来运行这些功能。直到仿真模型中的算法达到一定的成熟度,开发工程师可以将仿真模型生成代码,这些代码可与其它的ECU代码一起编译并烧写到ECU中然而,在此之前,可以使用一种被称作“旁通”的技术(该技术祸合了真实ECU及其模型),通过旁通可以在开发初期不依赖硬件进行测试和优化算法。
在使用XCP的旁通技术中,XCP主设备使用DAQ从ECU中读取数据,将这些数据作为输入值发给模型并且使用STIM将模型返回的结果发送回ECU。使用普通的PC机平台就足以满足旁通和建模的要求。CANape作为一个高度优化的XCP主设备,可以同时处理真实ECU及在PC机上运行的算法模型之间的通信。
ECU中需要被旁通的功能通过总线网络把该子功能的参数变量传递给原型系统,并由原型系统对获得的参数变量处理完毕后,同样通过总线网络返回原型系统的处理结果,ECU用该结果替代子程序返回值,从而实现对ECU子功能的旁通。实现旁通原理图如图2所示。
例如ECU中需要被旁通的子功能y=f(x)的参数、通过XCP协议以数据包的形式传递给原型系统;原型系统调用相对应的旁通子程序y' =f' (x')完成对参数X的运算后,通过STIM返回函数值)’。由于子程序中的)’与y在ECU中被设置为相同地址,函数厂(x)的返回值Y被Y’取代,从而实现了原型系统f' (x')对ECt1子程序f (x)的旁通。旁通技术实现参数传递流程图如图3所示。
根据原理建立简单的模型来验证其可行性,其模型通过Matlab/Simulink进行创建,实现旁通模型如图4所示。
在该模型中,通过加法算法进行旁通计算,对于加法算法有2个输入:输入1为ECU内部算法经过计算进行输出,该变量名为Channell ;输入2为常值,该变量名为TestbyteO,可以通过CANape对其值进行实时修改;经过算法计算过后进行输出到ECU中,该变量名字为Period。在Simulink环境中对模型进行配置,选择固定步长,选择cnp.tlc目标平台,编译生成该模型对应的DLL,然后把DLL调入到CANap。中,把lnputl和ECU中的某一个变量进行关联,同时把Output也与ECU中的某一个变量进行关联,此时就建立好旁通,在CANape中设置Input 1和Output的周期均为10ms,通过XCP协议命令进行上传和下载,从而实现旁通中的DAQ和STIM命令。仿真结果如图5所示。
根据仿真结果可知:当输入2发生变化时,其输出也随之变化,同时Simulink的输出又是ECU的输入,因此输入1也随之发生变化,从而实现了旁通的功能。
3 结论
根据CANape和Simulink的联合仿真结果,可知CANape软件平台可以实现旁通技术,同时相对于硬件平台的成本已经大大降低。通过旁通技术,可以加快ECU的开发,缩短开发周期,提高开发效率。