2 系统软件设计
测试软件基于美国NI LabVIEW开发,包括运行在数据采集器中的FPGA软件和实时RT软件,以及运行在上位机中的数据采集与分析软件。FPGA软件和RT软件要求保证数据采集的准确性和实时性;上位机软件要求实现简洁易读,并且界面友好、操作简洁。
2.1 FPGA和RT软件架构
实时控制器cRIO 9033中包括1.33 GHz双核IntelAtom处理器、Xilinx Kintex-7 160T FPGA,可实现高速控制、在线处理和自定义定时和触发,控制器需要通过FPGA访问C模块。系统基于FPGA实现电压和电流、温度、指定发动机OBD CAN信息等3组信号的同步采集,并分别送入对应FIFO供控制器读取。
控制器中运行的NI Linux实时系统,主要工作包括硬件(包括C模块)初始化、通过串口对K线信息读取、对FPGA送上来的FIFO信息实时读取与处理、所有测试数据的同步打包、采样数据的UDP上传至上位机、通过LJDP实时接收上位机的设置更改等。各项工作通过独立的多线程while循环进行,各循环间通过功能性全局变量实现数据传递与共享。FPGA和RT软件架构见图2。
使用DMA在FPGA与实时硬件之间传递高速数据。创建FIFO,并选择target-to-host作为其传递类型,数据将自动从FIFO传递到实时控制器RAM中的数据缓冲区。
2.2基于状态机架构的上位机软件设计
上位机软件主要功能包括与数据采集器进行UDP通信,采样频率、保存路径、传感器标零等配置,数据处理、显示与保存,历史数据查看及简单数据处理,试验报告自动生成等。其中人机交互部分采用状态机架构设计,实现开始试验、结束试验、退出程序及调用参数配置、数据查看、生成报告子VI等功能,保证系统可靠实时运行。软件中采用多线程技术,采用4个独立的while循环,分别实现状态机控制、UDP通信、数据处理显示和数据保存等功能,有效提高了系统运行可靠性。上位机软件架构见图3。