基于FPGA和USB接口的内燃机数据采集系统设计
2015-06-09汤东,张明
汤 东,张 明
(江苏大学汽车与交通工程学院,江苏镇江 212013)
基于FPGA和USB接口的内燃机数据采集系统设计
汤 东,张 明
(江苏大学汽车与交通工程学院,江苏镇江 212013)
针对传统内燃机数据采集系统采用ISA、PCI卡插卡等固定方式对内燃机工作过程进行数据采集和分析,提出一种即插即用便携式的内燃机测量系统。系统使用FPGA作为主控芯片,实现对A/D转换芯片的控制,双SRAM构成乒乓缓存器的控制以及对USB芯片读写控制。通过USB驱动程序和VB6.0实现上位机数据处理与储存的功能。
ADS8364;USB接口;FPGA;内燃机数据采集;双SRAM乒乓缓存器
0 引言
内燃机气缸内气体压力变化曲线(示功图)是研究内燃机工作过程及动力性和经济性的重要依据。通过对示功图的分析了解内燃机工作过程的情况。并且,也能通过示功图分析内燃机工作过程中的特征参数,如压缩终点压力、温度、 着火始点位置、压力升高率等[1]。因此,精确采集气功压力信号一直是内燃机工作者关注的问题。一般情况下,基于MUC为核心的内燃机示功图信号采集系统作为其性能分析和故障诊断的依据。但这些系统多数以单片机A/D板直接插在计算机内置接口上(如ISA、PCI卡)的固定方式进行数据采集,这些系统存在安装麻烦、可扩展性差等缺点。本文利用FPGA和USB外置式采集卡可组成一个即插即用便携式示功图信号测量系统。
1 基于FPGA和USB接口的系统总体结构设计
该系统主要由信号采集转换电路、A/D转换模块、FPGA逻辑控制模块、USB通信模块及上位机组成,如图1所示。各通道传感器采集的模拟信号先经过信号调理放大电路,使其在±5 V范围内以免烧坏A/D板,FPGA控制ADS8364的工作时序并读取数据,再将读取数据写入双SRAM乒乓缓存器中某片SRAM里,同时将另一片SRAM中已有数据读出并送入USB接口芯片的FIFO里,USB接口芯片再将FIFO中数据转换成事件发送至上位机,VB6.0应用程序对接受的数据进行分析、处理和测量结果显示。
图1 内燃机测量系统工作原理
1.1 信号放大电路[2]
信号调理放大电路连接着传感器和A/D板,其作用主要是对传感器的输出进行处理。气功压力、柴油机油管压力、柴油机针阀升等模拟信号需提高信噪比,减少其畸变。同时将信号调整为合适电压输入到A/D芯片中。信号调整电路采用运算放大器OPA2227和抗混叠低通滤波器。如图2所示,将ADS8364的REFIN及REFOUT引脚连接并输出+2.5 V的参考电压提供给差分电路,信号调整后以差分方式输入到ADS8364的通道A0中[3]。
图2 信号处理原理图
1.2 多通道同步A/D转换器[4]
多通道同步A/D转换芯片选用ADS8364,它是低功耗、6通道(分成A、B、C共3组)同步采集的16位的高性能模数转换器。每片ADS8364包含3个转换速率为250 kbit/s(当外部时钟为5 MHz)的ADC,每个ADC有2个带采样保持器的模拟输入通道,3个ADC组成的3对模拟输入端可同时对任1~2个输入信号同步采集,再逐个转换。ADS8364的3个启动控制信号HOLDA、HOLDB、HOLDC由EP2C8Q208的CONVST引脚控制,这样就能有效地同时启动ADS8364的6个通道,从而实现多通道同步采集。ADS8364的时钟信号由FPGA提供。A/D转换完成后产生转换结束信号EOC。其工作原理如图3所示。
图3 ADS8364工作原理图
1.3 FPGA设计[5]
FPGA是本数据采集测试系统的中央处理器。本系统选用CycloneⅡ系列的一款低成本FPGA,拥有8 256个Les,36个M4KRAM。为了保证本系统储存和采集数据的连续性,使用双SRAM进行乒乓缓存。FPGA通过双SRAM构成一个大容量的FIFO,可以使数据连续不断地输入和输出,并对数据进行无缝缓冲和处理。系统使用2片ISSI61LV25616芯片,它可存储256 kbit的16位数据,它和FPGA的连接如图 4所示。通过18根地址线(ADD1[17…0],ADD2[17…0])和16根数据线(DATA1[15…0],DATA2[15…0]),以及另外3根控制线(片选信号CE、写入信号WE和输出信号OE)连接到FPGA上[6]。
图4 FPGA双乒乓存储设计
1.4 USB接口芯片
本系统采用EZ-USB FX2系列单片机CYC68013作为USB接口芯片。它有GPIF、Ports、Slave FIFO 3种接口方式。Slave FIFO是从机的方式,这样FPFA可以如操作普通FIFO一样对FX2的多层缓冲FIFO读写。FX2内部的端点FIFO提供需要的时序信号、读/写信号、握手信号和输出允许信号。本系统是在Slave FIFO模式下进行异步FIFO方式工作。FX2和FPGA的引脚连接如图5所示。IFCLK为接口时钟引脚;FD[15..0]为16位双向数据总线;FLAGA/B/C为FIFO标志管脚,它用来映射FIFO当前状态;SLCS作为从属FIFO的片选信号;SLRD和SLWR分别作为读和写信号,SLOES作为输出使能信号;FIFOADR[1.0]用于选用和FD连接端点缓冲区;FPGA通过PKTEND引脚对USB发送一个非标准长度IN数据包[7]。
图5 USB接口设计
1.5 USB固件程序设计
CY7C68013的固件程序架构[8]见图6,该固件分几步实现:首先调用初始化函数TD_init(),设置状态变量起始值。返回后,固件架构就会设置USB接口称为未配置状态,并打开中断。完成上述任务后,开始重新枚举设备直到在端点0收到SETUP包为止。一旦SETUP包被检测到后,固件架构机会启动相应工作分配器。分配器就会重复执行下列工作:
(1)调用函数TD_Poll();
(2)检测是否有标准的设备请求,如果有,则分析命令,执行命令,执行设备请求;
(3)如果没有,检测USB是否有USB挂起事件,如果有USB挂起事件,则调用用户程序TD_Suspend(),当TD_Suspend()返回为真时,USB核检测是否有重新开始事件。如果没有USB挂起事件,则微处理器处于挂起状态。当检测有新的时间,USB核调用用户程序TD_Resume(),并继续执行步骤(1)。当TD_Suspend()返回为假时,则继续执行步骤(1)。
图6 固件程序架
1.6 USB驱动程序设计
Window2000/XP操作系统不允许用户程序直接访问硬件设备。USB驱动程序在整个系统中处于主机端应用程序和设备端Firmware之间。它的主要功能是帮助系统识别USB设备,建立起主机端和设备端之间的数据通信。Cy7c68013的开发包中提供了一个通用驱动程序ez-usb.sys,这样大大降低USB开发难度为用户提供方便。通过简单的修改相应驱动程序INF文件能够完成用户程序和外设的通信及控制。
2 内燃机工作过程系统
内燃机的各种参数测试实际上就是把各种待测参数如压力、温度、应变、转速等通过相应的传感器转化为模拟电信号,这些模拟电信号通过数据采集转换为数字信号,获取的数字信号由底层数字信号处理器再通过USB 接口传送给上位机进行分析和处理,如频谱变换、滤波处理和相关分析等,从而获得发动机的各种性能参数[9]。
本系统可对内燃机的各种实时信号实现显示、回放、采样、数据后处理等功能,可进行燃烧过程、柴油机喷油过程、放热规律等计算。气缸压力、柴油机油管压力、柴油机针阀升程等信号可经电荷放大器放大后,进入采样转换器进行A/D模数转换,再进入计算机进行后处理,计算结果可由打印机打出,如图7所示。测试系统分析软件用VB6.0编程采集完成,分析与处理主程序框图如图8所示 。
图7 内燃机工作过程系统布置图
图8 采集分析与处理主程序框图
3 试验结果
此分析系统对一台车用柴油机进行了不同供油提前角下的气缸压力、高压油管压力的测量,针对柴油机的排放、燃烧及喷油过程进行分析。
3.1 燃烧气缸压力及高压油管压力
通过试验台架的电涡流测功机可以测的柴油机在测试运行中的转速3 600 r/mim,并且可以标定其在特定负荷状况下如100%,再设定好供油提前角25° CA,确定柴油机喷油时间节点,再可以通过上位机分析软件计算出气缸压力和油管压力,并画出曲线如图9所示,得出的油管最大压力比汽缸最大压力提前到达,这是符合柴油机运行特性。
图9 压力曲线图
3.2 压力升高率计算
为了验证分析系统的计算能力的准确性,同一台柴油机在转速3 600 r/min和100%负荷下,调试3个供油提前角(25° CA、27° CA、23° CA)确定了内燃机工作时喷油时间节点,计算出压力升高率的变化,并且画出曲线图形如图10所示,由图10可知分析系统能够识别出柴油机在同一趋势下的微弱区别。
图10 压力升高率变化图
4 结论
通过试验,基于FPGA和USB接口的内燃机工作过程分析系统能有效地、实时采集数据。此方案设计可以即插即用、开发周期短,而且,在保证数据传输速度和实时监控条件下,与传统测试系统相比成本更低。
[1] 靳生盛,刘平,房程程.VC+ + 环境下内燃机示功图信号高速采集的软件设计.小型内燃机与摩托车,2010,39(3):1-3.
[2] 陈子为,邓芳.基于ADS8364的多通道高速数据采集处理.数据采集与处理,2006,21(12):227-228.
[3] 刘钊,刘和平,王春燕.ADS8364与TMS320LF2407的接口及应用.电子技术应用,2004(10):100-150.
[4] 刘品,李松岩,徐赫.基于ADS8364高速数据采集模块接口设计.现代电子技术,2011,34(15):138-139.
[5] 黄善文,王学军.基于USB和FPGA的数据采集系统设计.电子设计工程,2010(9):127-128.
[6] 周如辉.实时视频处理系统的乒乓缓存控制器设计.单片机与嵌入系统应用,2007(7):25-27.
[7] 钱峰.EZ-USB FX2单片机原理、编程及应用.北京:北京航空航天大学出版社,2006.
[8] 杨志坤,曾博,汤国文.基于FPGA的嵌入式系统USB接口设计.电子设计工程,2010,18(1):1-3.
[9] 程晓肠,苏绍景,王跃科.基于USB2.0的发动机综合参数测试系统设计.测试技术学报,2004,18(2):2-3.
Design of Internal Combustion Engine Data AcquisitionSystem Based on FPGA and USB Interface
TANG Dong,ZHANG Ming
(School of Automobile and Traffic Engineering,Jiangsu University,Zhenjiang 212013,China)
Aiming at the traditional internal combustion engine data acquisition system using ISA,PCI card fixed way to collect the data of engine working process,a kind of plug and portable internal combustion engine measurement system was presented.The system used FPGA as the main control chip,which realized the control of the A/D converter,dual SRAM ping pong buffer and read and write of the USB chip.The host computer data processing and storage was realized by the USB driver and VB 6.0 .
ADS8364;USB Interface;FPGA;Engine Data Acquisition;Double SRAM Ping Pong Buffer
江苏省国际合作项目(BZ2012025);内燃机燃烧学国家重点实验室开放课题(K2014-9)
2014-02-28 收修改稿日期:2014-10-02
TP212
A
1002-1841(2015)03-0053-03
汤东(1969—),教授,主要研究方向为中小功率内燃机燃烧过程优化与排放控制;代用燃料与燃料电池应用。 E-mail:dtang@mail.ujs.edu.cn 张明(1989—),硕士研究生,主要研究方向为中小功率内燃机排放测试与控制。E-mail:277050748@qq.com