对于一些VT模块,Vector提供了一个特殊的版本,这些版本配备了用户可编程的FPGA(VT1004 FPGA、VT2004 FPGA、VT2516 FPGA、VT2816 FPGA、VT2848 FPGA及VT7900 FPGA),允许用户通过编程直接访问VT系统模块的硬件。这使得VT系统模块更加灵活,同时具备了非常高的性能,经过客户二次开发,用户可编程的FPGA几乎适用于任何类型的定制功能开发项目。本文将以VT2816 FPGA为例,介绍基于VT2816 FPGA进行磁电式凸轮轴曲轴信号发生器的开发流程,以及实现仿真、编译、下载的整个过程。
磁电式曲轴和凸轮轴信号为近似于正弦波信号的模拟信号,并且两路信号在相位关系以及实时性上有着非常高的要求(如果相位关系不正确控制器将无法识别),使用基础版VT2816无法精确控制两路信号输出的同步性及相位关系,输出的连续性也达不到要求(刷新率受限),并且无法设置相关变量对曲轴和凸轮轴信号输出幅值进行更改,然而此部分内容使用模型实现相对灵活,并且可一键生成二进制代码,下载到VT2816 FPGA中,因此基于VT2816 FPGA模块定制开发曲轴凸轮轴信号是理想的方式。
◆◆基本概念◆◆ VT系统的板卡主要使用的是Altera公司的FPGA。在普通版本的VT2816上,处理器板上只有一个FPGA,负责数据和信号处理,并访问I/O硬件。但在VT2816专用FPGA处理器板上还有第二个用户FPGA,用户可编程,如下图所示:
该图片所有权为Vector
供二次编程使用的FPGA没有直接连接到CANoe或VT系统I/O板卡上,也没有直接连接到ECU。因此,客户在基于VT2816 FPGA开发特定的功能时,只需要关注数据处理的程序开发,而不需要设置如何访问I/O硬件或CANoe。I/O硬件的驱动和原始数据的处理将由主FPGA完成。
用户FPGA将循环从主FPGA得到原始测量数据,信号发生变化时,主FPGA也将通过I/O硬件传给用户FPGA数据。与CANoe的通信将由主FPGA以同样的方式处理。用户自定义的FPGA仅仅是基于信号的,没有直接的硬件访问。通过固化在FPGA内部的下载固件,VT系统FPGA管理器可以非常方便地对用户FPGA进行编程下载,不需要额外的编程硬件或工具。
◆◆工具准备◆◆ 如需完成基于VT FPGA的二次开发,需要准备以下工具和编译环境。
• Simulnk
• Altera DSP Builder
• CANoe
◆◆开发流程◆◆ 创建工程 要创建一个新项目,请选择文件:new project,或单击工具栏中相应的按钮。
创建变量 本步骤是在FPGA manager中创建所需变量,设置变量类型及变量名称。
创建 Simulink模型 本步骤是利用Simulink中DSP Builder库中的模块实现信号处理和模型搭建。
库文件如下:
Simulink模型离线仿真 模型搭建过程中,可通过离线仿真来验证算法的正确性。
仿真过程中,Simulink将自动调用编译环境,实现模块的仿真。
离线仿真波形如下:
Simulink编译 仿真无误后,便可通过VT FPGA Manager实现对模型的编译。例如下图:
工程下载 编译无误后,即可将生成的二进制文件下载到VT FPGA板卡中。
下载完毕提示框:
板卡运行 程序下载完毕后将自动运行,此时可通过测量VT 2816 FPGA背部接插件观察是否与仿真波形一致。
示波器实测波形:
至此,基于VT 2816FPGA的开发流程即已全部实现,实际输出波形与仿真波形完全一致。借由此流程我们还可以实现轮速信号、爆震信号及旋变电压信号的模拟。
通过整个流程,可以看到,VT FPGA Manager提供了非常方便的自定义开发环境,用户可以自由的进行二次开发,完成特定功能的数字、模型、通信等类型的硬件算法实现。