首页 > 新闻中心 > 电子膨胀阀试验机的软硬件设计
电子膨胀阀试验机的软硬件设计
2012-02-17 [2945]

    DPF系列电子膨胀阀由主阀和定子线圈组成,电子膨胀阀的驱动部件是一个脉冲步进电机。电子膨胀阀的执行机构有多种形式,但专门用于测试膨胀阀性能的试验机却并不多见。因此,开发出一种合适的试验机,以测试DPF系列电子膨胀阀的一些重要性能及参数就变得很有意义,如通过阀的循环开闭来测试阀的寿命、通过阀的开度来进行流量系数、流量与阀的开度实验等。
1系统硬件设计
    DPF电子膨胀阀试验机主要由键盘操作来控制。系统主要功能键分为两大类:设置显示键和控制键。设置显示键主要设置及显示试验机参数,控制键主要用来控制阀的各种性能测试试验。
    整个系统采用模块化设计。系统硬件电路主要由单片机、键盘、显示、A/D采样电路、步进电机驱动电路等部分组成。其硬件电路框图如图1所示。

    由于程序比较大、中间变量比较多,我们采用了ATMEL公司的AT89C52的单片机。它具有8KB的flash程序存储空间、256字节的RAM。因试验机对常用的参数要进行保护,所以,单片机外接了一个EEPROM。为了减少数字电路对模拟驱动电路和采样电路的影响,在它们中间加光耦进行隔离。

    为了使采样电压的精度达到0.1%,翻盖试验机本系统中采用了内部带有采样保持器、十二位串行输出的A/D采集芯片MAX186。为了准确控制数据的转换及传送,利用软件和通过一个I/O口发控制脉冲。在本系统中,MAX186 和单片机的接口有四根线:转换信号线(ADCS)、时钟线(CLOCK)、数据输入线(MISO)、数据输出线(MOSI)。软件利用单片机的P1.6和 P1.7口模拟ADCS和CLOCK时序,通过P1.4口输出相应的控制字到MAX186,从P1.5得到12bit的电压采样数据,并存入相应的数据存储区。由于步进电机的驱动电压一般为12V,而MAX186的最大测量值为4.096V,因此,输入的电压还要经过降压处理;为了提高带负载能力,中间还加入了电压跟随器。

    试验机工作原理大致如下:单片机通过154控制灯位、通过8255的B口输出当前的段码值来定时刷新显示,通过8255C口定时扫描键盘。当有键按下时,如“位置1”键按下,CPU通过扫描8255C口状态且延时去键抖动后,确认是“位置1”键按下,于是,系统就进入“控制”模块中的“位置1”子程序。系统根据设置的膨胀阀转到“位置1”所需的脉冲数和当前的脉冲数循环调用单步转动子程序。在单步转动子程序中,软件把电机控制字节写到8255,并通过 8255的A口,经过光耦的隔离,输入步进电机驱动电路,通过控制功率开关三极管的开断,进而控制步进电机的正反转动,实现膨胀阀的开闭,同时系统更改当前的“实时脉冲”值,并通过LED显示出来。这样,通过全程脉冲数和“实时脉冲”值就可知道当前的阀的开度。在电机转动的过程中,通过采样电路把采集到的驱动相电压值送入单片机,并通过LED实时显示。
2软件设计
    在本程序设计中,采用置事件标志和分时控制的办法对事件进行处理。如在T0中断子程序中,每隔lms进行LED动态扫描,每隔60ms对键盘进行扫描。当通过EX0外部中断子程序得到某“控制”键键值时,在主程序中则置一相应的标志位。当进入下一T0中断时,T0中断子程序中除了对LED动态扫描事件进行处理外,还对步进电机驱动脉冲宽度进行控制;若此时的时间片为60ms,则还对键盘扫描事件进行处理。此外,为了提高事件的实时响应程度,我们把中断子程序中耗时长的部分交给主程序来做(主程序把处理的结果放到相应的缓冲区)。当中断子程序处理到相应的事件时,只需从缓冲区把数据读入,并把数据放到相应的数据区即可。如在本系统中,经常要通过键盘对LED显示的参数数值进行更改,则系统需要对参数所对应的以二进制形式存储的内部数据进行相应的更改操作,并把它转换为相应的七段码和显示在 LED上,此时可把数据转换这一耗时长的程序交给主程序来做,主程序把得到的相应的七段码放到一个缓冲区中,当进入T0中断子程序对LED内容刷新时,只需把缓冲区中的数据写入到8255的相应口。运用这种处理方法,使系统可以实时有序地处理各种事件。
    整个软件采用结构化的程序设计方法设计。程序分为三大模块:主程序模块、EX0中断服务子程序模块、T0中断服务子程序模块。
    主程序模块按照功能又分为三大子程序:初始化子程序、设置显示子程序、控制子程序。由于试验机的操作都由键盘中断来控制,所以,在主程序中通过查询键值来进入相应的子程序。其流程图如图2所示。在初始化子程序中,主要对AT89C52的系统资源,如定时器、寄存器等的初始化,把EEPROM存储的参数写入到相应的RAM、8255、参数寄存器等。
    在设置显示子程序中,主要根据读入的键值显示设置的参数或进行更改并保存到相应的EEPROM和RAM。

    在控制子程序中,根据读入的键值和设置的参数驱动电机作相应的动作,循环转动或复位。同时采集相应的相电压,并把电压值存储到相应的缓存区。
 


skype:
0755-29437880

联系电话:
13342990691

电子邮箱:
sales@hkgd17.com

阿里旺旺:
szhkyq

QQ:583992516

Baidu
map