基于CPLD的汽油机点火参数测量仪的研制
扫描二维码
随时随地手机看文章
点火参数是影响汽油机性能的最重要因素之一。汽油机的点火参数主要有:点火提前角、点火能量、点火电压和点电流。通过对这些参数的测量、研究与优化,能提高发动机的性能,降低油耗,减少有害气体的排放量,改善环境空气质量等。就国内外目前的点火参数测量设备来说,普遍存在着体积庞大、价格昂贵、抗干扰能力差等缺点,甚至有些是采用示波器来观察,人机对话界面不够友好。由于火花塞放电时间大约在200~500μs之间,点火电压的上升时间却只有几到十几μs,为了保证测量精度,采样频率要求在10MHz以上,这个速率就是目前最快的单片机也难以胜任。因此如何有效地实现超高速的数据采集便成了解决问题的技术关键。同时,使高速的数据采集器与低速的控制电路实现可靠地信息交换是又一难题。本测量仪采用CPLD作为高速采集器,用AT89C52作为控制器,巧妙地解决了这一问题。
1 汽油机点火参数的测量原理和方法
汽油机点火参数测量电路的原理框图如图1的慰。触发信号是磁电机位置传感器(电磁感应线圈)发出的信号,点火信号是套在点火线上的传感线圈的输出信号,这两个信号经调理电路的整形,控制CPLD计数器的起停,根据计数值可计算出转速和点火提前角。点火线圈次级电压、电流信号经过分压器、分流器以及功放等调整到高速A/D的输入范围。高速A/D对其进行转换,结果由CPLD锁存,并通过CPLD存储到高速静态存储器SRAM中。整个测量电路在CPU的控制下工作。上电后,CPU首先对CPLD进行配置,待 CPLD完成初始化后,整个电路就进入工作状态。电路的采样频率由时钟合成芯片输出,测量结果通过CPLD取得,经CPU处理后在LCD上显示出来。
1.1 高速数据采集电路的设计
高速数据采集电路由高速A/D转换器AD9051、复杂可编程逻辑器件(CPLD)EPF10K10、高速静态存储器(SRAM)CY7C1021组成,如果2所示。AD9051将经过调理的电压、电流信号转化成十位数字量输出,ORv、ORi分别为电压、电流幅值超过输入范围信号。当Fout有脉冲输出时,AD9051进行转换,否则停止工作。在信号采集电路中,CPLD的作用:(1)在SMEN信号使能的情况下,SMST(点火信号)信号到来后,输出 Fout起动A/D转换器;(2)锁存AD9051的输出结果;(3)通过地址发生器输出数据存储地址,并产生写信号(WR),将锁存数据写入 SRAM。
1.2 控制电路的设计
控制电路的核心为AT89C52,如图3所示。控制电路要完成的任务是:(1)上电后,完成CPLD的配置加载。FLEX10K系列共有4种加载方式,这里采用主动串行方式,由AT89C52的引脚P1.5控制CPLD和已写入配置数据的串行EPROM(27E512)完成配置。(2)完成采样频率的控制,由AT89C52控制时间合成芯片MC12429来实现,其输出频率为25~400MHz。每次采样前,用户可手动输入采样频率,由AT89C52的 P0.0~P0.7脚输出M[8..1]的值,P1.0脚输出由低到高的信号,将此值锁存。(3)控制A/D转换的使能。当频率设定好后,用户按下采样键,AT89C52的P1.1输出采样使能信号SMEN,当采样开始信号SMST到来后,采样就开始进行。(4)与CPLD的通讯。图3 中,AT89C52的P0.0~P0.7与CPLD的8个I/O引脚相连,实现AT89C52与CPLD之间的数据通讯。它们之间的控制信号有读取数据时钟信号RDCK(P1.2)、输入/输出控制信号I/O(P1.3)、CPLD选通信号PLDCE(P1.4)和CPLD发出的中断信号 INT(INT0)。
1.3 高速采集器与低速控制器的接口
CPLD 要在AT89C52的控制下完成相应的功能,必须为两者之间建立一定的信号联系,使CPLD能够辨别AT89C52发出的命令并去执行相应的任务。本测量仪CPLD与CPU之间的通讯要实现的功能有:采样频率的确定,采样结果的读取,状态信息的读取。AT89C52输入数据的编码如表1所示。其中状态信息包括:三位按键状态位(0—按下,1—没按下)、两片AD输入是否超出范围状态表示位(0—超出范围,1—没超出范围)、一位采样状态位(0—采样完成,1—正在采样或没开始采样)。
表1 CPLD与AT89C52之间的通讯编码
D7 D6 D5 D4 D3 D2 D1 D0 含 义
X X X X X X 0 0 一分频
X X X X X X 0 1 二分频
X X X X X X 1 0 四分频
X X X X X X 1 1 八分频
0 0 0 0 X X X X 读状态信息
0 0 0 1 X X X X 读点火提高前角低8位
0 0 1 0 X X X X 读点火提前角第二个低8位
0 0 1 1 X X X X 读点火提前角高7位
0 1 0 0 X X X X 读转速低8位
0 1 0 1 X X X X 读转速第二个低8位
0 1 1 0 X X X X 读转速第三个低8位
0 1 1 1 X X X X 读转速高2位
1 0 0 0 X X X X 读电流低8位
1 0 0 1 X X X X 读电流高2位
2 控制程序设计
为了实时显示点火系统的工作状态,对于转速和点火提前角,控制电路采用查询的方式从CPLD取得转速和点火提前计数器的计数值。对于点火电压、电流数据则采用中断方式取得,即采样和A/D转换完成后,CPLD向控制电路发出中断,控制电路再通过CPLD从SRAM中取得数据。
2.1 主程序的设计
控制电路加电或复位后,AT89C52就开始执行主程序,流程图如图4所示。CPLD在上电后,配置完成前,CONF_DONE(如图3所示)引脚被 CPLD下拉为低电平。一旦CPLD配置成功,CONF_DONE引脚被CPLD释放,由上拉电阻接到高电平。所以,控制电路加电或复位后,只要发现 CONF_DONE引脚为低电平时,就对CPLD进行配置。初始化的任务是特殊功能寄存器的初始化、CPLD内触发器的清零和置1、默认采样频率的设置以及液晶的初始设置。
2.2 中断程序的设计
本控制电路只用了AT89C52的中断INT0,然后在中断程序中再判断是何种中断。共有三种中断源:AD输入超出范围中断、Buffer Full中断和按键中断。这三种中断优先级顺序为:
A/D 输入超出范围中断>Buffer Full中断>按键中断。图5为中断程序流程图。AT89C52响应中断后,从CPLD读取状态信息,按中断优先顺序依次判断。如果是AD输入超出范围中断,则说明信号调理电路参数选择不当或此点有意外干扰叠加。这时在LCD上做出警靠显示并终止本次数据采集,已采样数据作废。如果是Buffer Full中断,则需把A/D转换的结果从SRAM中取出、计算并显示。如果是按键中断,则要判断是哪个键被按下,且要得到在当前状态下,该按键是何意义,然后完成相应功能。
需要说明的是,点火能量是将采样到的电压、电流数据在火花持续时间内积分(乘积求和运算)而得到的。
本测量仪创造性地运用了CPLD器件和技术,圆满地实现了数据的高速采集,大大减少了集成芯片的数量,降低了开发成本,增强了抗干扰的能力,并在很大程度上减少了开发成本,增强了抗干扰的能力,并在很大程度上减少了测量仪的体积,更具有便携性。与现有的点火参数测量系统相比,它更适合于生产过程中的质量鉴定、汽油机的研究开发和维修服务中的故障诊等场合,因而具有十分广泛的应用前景。