vFlash是一款上位机刷写软件。用户既可以通过vFlash的图形用户界面实现ECU刷写,也可以将配置好的工程导出成.vflashpack工程,借助于自动化接口(Automation API)集成到已有的环境中实现自动化刷写。
使用Automation API,客户端应用程序可以加载现有的vFlash工程,启动/停止刷写过程以及获取刷写进度和状态信息等。用户可以在vFlash软件界面中、安装路径下或者帮助文档中获取Automation API的详细定义、描述以及示例工程(注:本文示例及相关截图以vFlash v10为例)。

vFlash支持C++/C#调用
在vFlash安装完成之后,在Visual Studio工程中添加VFlashAutomationTypes.h和VFlashAutomation.h的头文件,就可以使用vFlash Automation C++ API函数加载现有的vFlash工程,启动/停止刷写过程以及获取刷写进度和状态信息等。


上图中的main函数中展示了常用的vFlash Automation API函数,例如在函数vFlashLoadProject中添加所使用的.vflashpack工程的路径,以及如需进行压力刷写测试,可以在for语句中设置需要重复刷写的次数。
刷写过程如下图:

也支持通过C#调用vFlash的.vflashpack工程,实现刷写。
用户可以在vFlash安装目录下找到C++/C#调用.vflashpack工程的示例,路径如下:
C:UsersPublicDocumentsVectorvFlash10ExamplesAutomationvFlashAutomation
vFlash支持.bat调用
vFlash支持.bat调用,在vFlash的安装目录下提供了一个vFlashCIAutomation示例,路径如下:
C:UsersPublicDocumentsVectorvFlash10ExamplesAutomationvFlashCIAutomation
在该示例工程中,通过C#调用vFlash Automation API函数生成了一个可执行文件vFlashCIAutomationExampleConsoleApp.exe;在ExecuteFlashing.bat文件中调用该可执行文件,设置vFlash工程的路径,如下图:

配置好ExecuteFlashing.bat文件后,即可脱离vFlash的图形用户界面,通过命令行或者双击ExecuteFlashing.bat文件的方式实现ECU刷写,刷写过程如下图:

vFlash支持Python调用
Python程序可以调用vFlash对ECU进行刷写。vFlash提供一个包含C函数API的DLL文件,Python可以加载此DLL,并使用Python “ctypes”模块调用C函数。
DLL文件的路径如下图:

Python调用vFlash刷写ECU的过程如下图:

vFlashLoadAndFlashProject.py文件中包含的Python程序请参看下方链接:
https://support.vector.com/kb?id=kb_article_view&sysparm_article=KB0012257
vFlash支持CANoe调用
CANoe可以通过CAPL函数访问vFlash Automation API,实现自动化刷写,如下图:

用户可以在vFlash和CANoe安装目录下找到CANoe示例工程:
1.
CANoe安装目录下的示例工程(以CANoe v18为例)
C:UsersPublicDocumentsVectorCANoeSample Configurations 18.3.118ProgrammingvFlashAutomation
2.
vFlash安装目录下的示例工程
C:UsersPublicDocumentsVectorvFlash10ExamplesvFlash with CANoevFlashViaNodeLayer
在该示例工程中,通过在CANoe的节点中添加vFlash节点层DLL文件,即可使用CAPL函数访问vFlash Automation API。该示例中展示了两种CAPL API函数以及对应的测试用例。

Blocking Reprogramming API
测试用例Blocking Reprogramming API中使用到的API函数只能在Test Modules或者Test Units中使用,因为只有在测试用例中才允许使用TestWaitFor…函数。
这些API函数允许采用简单的程序来控制刷写ECU,程序流将在函数中停止,直到任务完成或检测到错误。文件Utilities.cin中的函数TestWaitForvFlashPackReprogrammed将在一次调用中处理所有必要的步骤,在simple-use-case.can中对此进行了展示。

必要的步骤将按下图展示的顺序自动执行,包括启动vFlash、加载工程、开始刷写、卸载工程和关闭vFlash。

Non Blocking Reprogramming API
测试用例Non Blocking Reprogramming API中使用到的API函数可以在任何节点中使用,而不仅仅是在Test Modules或者Test Units中使用。
在仿真节点中,CAPL程序流不得停止,因此不可以使用TestWaitFor…函数。但可以使用一组不同功能的函数来调用vFlash进行刷写。文件Utilities.cin中的函数vFlashStartPackReprogramming启动CAPL函数调用序列,通过调用同样在该文件中的CAPL回调函数来指示完成。在simple-use-case.can中对此进行了展示。


执行这些用例需要在上位机安装vFlash且具有vFlash软件的License。
此外,CANoe工程只需进行一些调整,还可以实现对LIN、FlexRay和Ethernet等ECU进行刷写。
vFlash支持CANoe.DiVa调用
CANoe.DiVa可以加载.vflashpack工程,生成刷写相关的测试用例。在CANoe.DiVa中需要做以下配置(以CANoe.DiVa v18为例):
在Test Configuration->Download页面需要做如下配置:
1.
在下图1处加载一个.vflashpack工程;
2.
如果CANoe.DiVa软件加载的诊断数据库中有擦除内存相关的服务,可以在下图2处选择相应的服务,以及设置擦除内存所需的时间;
3.
在下图3处勾选配置项并设置支持正常刷写的最小/最大电压值。

在Test Configuration->Tests页面需要勾选“Download Tests”且做如下配置:
1.
勾选下图1处的配置项,生成刷写过程中掉电的测试项;
2.
勾选下图2处的配置项,生成刷写过程中停止刷写序列的测试项;
3.
勾选下图3处的配置项以及设置Durability test的次数,生成重复多次刷写的测试项。这里设置的是重复正向刷写的次数,支持设置的最大刷写次数是99次。

将CANoe.DiVa工程导入CANoe工程中(版本为CANoe v18),执行刷写测试用例。

*注:在CANoe中执行CANoe.DiVa生成的刷写测试用例时,需要同时具备CANoe、CANoe.DiVa以及vFlash这三个软件的License
vFlash支持CANape调用
CANape可以加载.vflashpack工程,完成ECU刷写。在CANape软件中,通过Tools->vFlash加载.vflashpack工程后,会弹出Vector vFlash Run的界面,点击“Flash”按钮,执行刷写。

*注:CANape中的vFlash无法创建和编辑vFlash工程。如需创建和编辑vFlash工程,需要使用vFlash软件
vFlash支持Indigo调用
Indigo可以加载vFlash的.vflashpack工程,实现多个ECU的按序刷写。在Indigo中,通过Start->Manage Flash Projects加载.vflashpack工程(以Indigo v10为例)。


然后,在Manage Windows页面添加Reprogramming的窗口,点击Action下方的按钮即可执行刷写,如下图:

小结
vFlash采用定制化插件vFlash Template的方式适配不同刷写规范的刷写流程,刷写功能稳定可靠,目前已有100多个整车厂的vFlash Template可提供给客户使用。借助于vFlash提供的Automation API,可以将.vflashpack工程集成到多种环境中实现自动化刷写,以满足用户更多的刷写场景。
全部0条评论
快来发表一下你的评论吧 !