《电子技术应用》
您所在的位置:首页 > 测试测量 > 业界动态 > 车用高速电磁阀驱动及检测系统的研制

车用高速电磁阀驱动及检测系统的研制

2008-07-16
作者:龚元明, 徐权奎, 于世涛

  摘 要: 根据车用" title="车用">车用喷油器电磁阀驱动的特点,开发了以单片机PIC18F4450为下位机、PC机为上位机的多路车用电磁阀智能驱动及参数检测系统。本文介绍了该系统的软硬件设计。
  关键词: 电磁阀 微处理器 检测系统


  在发动机电子控制燃油喷射系统中,通过三通高速电磁阀的开启时刻决定发动机的喷油正时;在一定的喷油压力下,喷油器电磁阀通电时间的长短(即喷油脉宽" title="脉宽">脉宽)决定喷油量。因此,不但要对喷油器电磁阀开启时刻进行精确控制,而且要对喷油器电磁阀通电时间脉宽进行准确控制,以达到对发动机的喷油正时和喷油量的精确控制。要解决喷油正时和喷油量的可控制性问题,首先要研发电控喷油器,而电控喷油器的关键技术之一就是高速电磁阀的开发。研发电磁阀的驱动电路和参数检测试验系统是开发新型电控喷油器的基础和前提。
  根据车用喷油器电磁阀驱动的特点,本文研制了以单片机PIC18F4450为下位机、PC机为上位机的多路车用电磁阀智能驱动及参数检测系统。该系统不仅具有可编程设定电磁阀的驱动电压、提升和保持电流大小、电磁阀驱动电流的宽度、频率等功能;还能对电磁阀驱动的开启延时时间和关闭延时时间等动态特性参数进行实时检测。该系统能够实现由外部输入脉冲以及内部计算产生脉冲两种方式驱动电磁阀,通过数据通讯在PC机上显示电磁阀驱动的电流响应过程曲线。同时,根据车用电磁阀驱动要求和检测的参数,对电磁阀进行诊断并输出结果。该系统可用于高速电磁阀出厂检测和标定。
1 硬件设计
  为了实现电磁阀的驱动电压、提升保持电流以及电磁阀工作脉宽和间隔可调,本系统采用了可编程的方式,如图1所示。该系统的核心是PIC18F4450微控制器。PC机通过USB口向微控制器PIC18F4450传送驱动电压、提升保持电流等参数,然后微控制器根据相应的参数输出脉冲以驱动电磁阀实现提升保持电路。同时,微控制器将采集到的电磁阀开启延时时间、关闭延时时间以及电磁阀驱动电流波形等通过USB口传往PC机以实现电磁阀特征的检测。


1.1 高压电源模块
  高压电源对于电磁阀的驱动十分重要。高压电源的电压大小对电磁阀的响应、寿命等有很大影响。为了实现系统对可编程高压电压的要求,本系统采用基于UC3842的带电压反馈的PWM方式实现电压从+24V到目标电压Vout的提升。高压电源模块结构如图2所示。高压模块输出的电压Vout经过R1、RL分压后的反馈输入到UC3842中,反馈电压一直提升到2.5V为止,如式1所示。
  
  通过设置不同的分压电阻RL,高压电源模块即可以输出不同电压值的电源。本系统的分压电阻RL采用可编程的方式来实现。微处理器根据PC机传来的所需驱动电压Vout,根据式(1)计算出需要接入的电阻值,然后通过I2C总线设置数字电位器通道1为对应的电阻值RL,高压电源模块即输出相应电压的电源。


1.2 电磁阀驱动模块
  电磁阀的驱动电路采用高低端控制方式,高端采用开关控制,低端采用PWM电流反馈闭环控制。这样不仅可以实现电磁阀的电流提升和保持控制,而且在喷油器电磁阀关闭时,可实现喷油器电磁阀在关断时产生的能量的回收,以提高蓄电池的工作时间,减小工作电流。每个电磁阀按照电磁阀的奇偶编号分为COM1和COM2两组。以驱动六个喷油器电磁阀为例,驱动模块工作原理图见图1。
  电磁阀驱动电路的高端采用开关方式。根据电磁阀开启触发脉冲的不同,分为外部输入脉冲信号和内部计算产生脉冲信号两种方式。(1)当驱动信号为外部输入脉冲时,微处理器的D口设置为输入口方式,用于检测输入的脉冲信号。(2)当驱动信号需要微处理器自己计算产生时,微处理器的D口设置为输出方式。微处理器根据输入的发动机转速、驱动脉宽以及电磁阀数量在D口上依次输出所要求的脉宽和周期的方波信号。外部输入的脉冲信号或PIC18F4450计算产生的方波信号分为奇偶两组经过三端“或门”分别输入PIC18F4450的CCP1、CCP2端口,其中CCP1、CCP2工作在输入脉冲捕捉模式。PIC18F4450根据CCP端口以及D端口的状态在B端口输出高端控制脉冲outM1~OUTM6,经过驱动保护电路后用于控制MOSEFT管Q1~Q6的开关状态。


  电磁阀低端驱动电路则通过PIC18F4450内部的比较器" title="比较器">比较器实现。PIC18F4450内部共有两个可编程比较器C1、C2,每个比较器有八种可编程模式,本系统采用了其中三种,分别为011、100以及110模式。如图3所示,驱动电流经过采样电阻形成电压后经过Cin口进入比较器的一端;比较器的参考电压则根据工作模式的不同分为内部参考电压模式和外部输入参考电压模式。其中,内部参考模式110如图3中相应部分所示,其参考电压Vref-H由PIC18F4450内部产生。参考电压范围为1.25V~3.59V,分辨率为0.156V,用于本系统的可编程电磁阀提升电流参考电压。工作在模式011和模式100下的比较器则采用外部参考电压模式。其中,比较器在模式011下工作时的比较结果直接输出到引脚RE1、RE2上,比较器在模式100下工作时比较结果则不输出,只是对内部寄存器置位。本检测系统共采用两种外部可编程比较电压:Vref-L和Vref-OFF,分别用于电磁阀在保持电流工作模式和关闭时间检测模式下的参考电压。通过PIC18F4450与数字电位器间的I2C通讯,数字电位器的通道2可以输出可编程的参考电压作为比较器C1、C2的参考电压。
  电磁阀的低端工作时序如图4所示。其流程如下:(1)系统初始化完毕后,设置CCP为上升沿捕捉模式,允许CCP中断。(2)捕捉到CCP中断后,打开低端驱动;设置比较器工作模式为110,设置内部参考电压为Vref-H作为提升参考电压,允许比较器中断;设置CCP为下降沿捕捉中断。(2)比较器中断中,电磁阀已经达到设定的提升电流后,设置数字电位器的通道2输出电压为保持参考电压Vref-L。关闭电磁阀低端驱动。(3)延时一段时间后,改变比较器工作模式为011模式,电磁阀进入PWM反馈控制的保持电流阶段。(4)CCP捕捉到下降沿中断后,设置比较器工作模式为011,关闭高低端驱动;设置数字电位器的通道2输出电压为关闭参考电压Vref-OFF。(5)比较器中断后,设置CCP为上升沿中断,允许CCP中断。


1.3 检测模块
  本系统检测模块分为电磁阀的提升关闭响应时间检测模块和电磁阀驱动电流曲线检测模块两部分。对于电磁阀响应时间的检测,利用PIC18F4450内部的TIMER1定时器即可以实现。如图4所示,当CCP产生上升沿中断时,记录TIMER1的计数值T0。当达到提升电流时,比较器产生中断,记下此时TIMER1的计数值T1。当CCP产生下降沿中断时,记下此时TIME1的计数值T2。当比较器又产生中断时,记下TIMER1的计数值T3。则:
  提升响应时间=(T1-T0)×T    (2)
  驱动脉宽=(T2-T0)×T      (3)
  关闭响应时间=(T3-T2)×T (4)
  其中, T为TIMER1的周期。
  模拟信号的检测是采用PIC18F4450的A/D转换模块来实现的。PIC的ADC模块选通其中的一路模拟输入进行A/D转换。需要采集的模拟量包括驱动电流以及参考电压。为了以较高的速度采集两路驱动电流以及参考电压且不影响USB数据通讯,模拟信号的采集采用间断的方式。如图4所示,采集T0~T4这一段时间的波形。在采集的同时记下开始采集的时间以及结束采集的时间作为PC机显示波形的时间轴。当ADC转换完成后即启动微处理器与PC机的通讯。参考电压的采集则在每次设定完参考电压后及时采集,用于PC机的显示以及确定参考电压是否设置正确。
1.4 通讯模块
  由于需要实时检测电磁阀的驱动电流波形,微控制器与PC机之间的数据通讯量较大,因此本系统采用USB通讯的方式。PIC18F4450内部带有USB通讯模块,可以实现高达12Mbps的数据通讯速率,完全满足本系统的数据通讯要求。
2 软件设计
  高速电磁阀检测模块的软件主要由电磁阀驱动程序、数据采集" title="数据采集">数据采集程序以及上位机、下位机间的通讯程序组成。电磁阀驱动程序主要实现利用内部或者外部触发提升保持电流以驱动高速电磁阀。数据采集程序则完成电磁阀的电流波形采集以及提升、关闭时间等检测功能。通讯程序则实现采集数据从微处理器通过USB接口上传到PC机以进行采集加工的功能。下面分别就这些功能的实现进行阐述。
2.1 电磁阀驱动程序设计
  电磁阀驱动程序主要用于实现电磁阀的提升保持电流驱动。程序是利用中断方式实现的。主程序如图5所示。主程序用于确定是内部还是外触发脉冲方式,并将相应的IO口置位,然后等待中断。图6和图7则是CCP中断处理程序流程及比较器中断处理程序流程,采用带反馈的PWM实现图4所描述的提升保持电流驱动并检测提升、关闭响应时间。

 


2.2 数据采集程序设计
  数据采集系统主要采集电磁阀侧特性,包括提升及关闭响应时间、驱动脉宽、驱动电流波形等。其中,提升及关闭响应时间驱动脉冲可以根据CCP、比较器中断时的计时器值结合式(2)、式(3)、式(4)计算出来。进入微处理器中断时,记录T0、T1、T2、T3的值,存入缓冲区中。电流波形采集则利用PIC18F4450的A/D转换模块来实现。为了保证数据采集和传输的可靠性,所有采集的数据均采用双缓冲区的形式。其中,一个缓冲区为USB模块自带的1KB RAM,另外的一个从PIC18F4450的RAM划出1KB作为缓冲区。采集的数据一般写入USB RAM中,只有当USB模块在USB通讯区间来不及传送USB RAM中的数据时,采集的数据才被写入PIC18F4450的RAM中。
2.3 通讯软件设计
  为了使大量的数据能够高速地从MCU传送到PC机,本系统采用USB通讯方式。为了实现数据的高速可靠传送,本系统采用具有错误检测以及数据重传功能的块传输模式。系统采用多端点(endpoint)的USB传送方式,其中端点1用于传送T0~T3,端点2用于传输A/D转换的结果。
  软件主要包括外设" title="外设">外设(18F4450)固件程序(firmware)、PC上位机的驱动程序以及应用程序。固件程序包括系统初始化以及传输完成中断处理程序。
  系统初始化用于USB模块的设置。传输完成中断分为IN令牌中断和OUT令牌中断。通过主机每5ms发出IN令牌,当外设处于如图4所示的数据采集区间时,外设使用NAK表示忙。当外设完成数据采集,处于USB通讯区间时,外设的USB模块将USB RAM中保存的数据送往主机,响应IN令牌。当主机发出一个ACK 信号表示数据接收无误时,清空USB RAM用于保存下一次检测数据。如果这是一个多包传输,那么主机将发多个IN令牌直到主机所期望的所有数据传输完毕。
  PC上位机的驱动程序则采用Microchip公司PIC18F4450 USB通用驱动程序MCHPUSB DRIVER来实现。应用程序通过Win32 函数DeviceIoControl()调用I/O控制码(IOCTL)来访问外设。通过主机每隔5ms调用OCTL_USB_BULK_WRITE函数向PIC18F4450发送一个控制码,当接收到外设的ACK信号后,上位机紧接着用OCTL_USB_BULK_READ 控制码从外设中读出数据。在传输完成后的剩余时间内,应用程序完成数据的处理和显示功能。
  该高速电磁阀驱动以及参数检测系统在某型号的喷油器电磁阀上得到了应用。图8为在驱动电压为110V、提升电流设置为17A、保持电流设置为7A、发动机转速为1500rpm、驱动脉宽为2.0ms的情况下检测到的驱动电流的波形。试验证明,该系统可以用于各种车用高速电磁阀的检测。


参考文献
1 PIC18Fxx8 data sheet. Microchip Technology Inc., 2003
2 Universal serial bus specification reversion 1.1. Intel Inc, 1998
3 颜荣江, 阴大兴. 基于EZ-USB的数据采集与控制. 单片机与嵌入式系统应用, 2002;(2)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。