温度的控制是由光电隔离电路、G3NA-220B固体继电器和水阀继电器等器件所组成的,分别用来控制油箱的加热管或水冷散热器以升温和降温。整个电路采取了多种抗干扰措施,其中在输入和输出加有WS系列三端口V/V电压输入、V/I电流输出型隔离端子。温度和压力变送器的输出信号为0~5 V。电流输出为0~±5 mA,恒流特性,在阀绕组阻抗变化范围内,精度达0.2%。
电源采用纹波较小、EMI较好的模块式一体化的线性电源。采用嵌入式微型打印机打印简单的汉字和数据。
3 数据采集处理
系统的D/A模拟输出Vo=5×(D-2 048)/2 048,D值范围为0~4 096,即为0~±5 V输出,经V/I隔离转换成0~±5 mA的控制电流。隔离器件精度优于0.3%。D/A模拟转换电流分辨率=模拟电流值/D=5/2 048≈2.441 4μA
由于阀的迟滞存在,要求加在伺服阀控制绕组上的三角波电流信号的频率要低,其周期T=20 s。将组成周期三角波形的数字值放在DA中的4 096个缓存器中。当启动DA自动转换时,由T3定时器控制,每20/4 096=0.004 882 s中断一次,将缓冲区的波形值送出。由于采用的是22.118 4 MHz晶振作为时钟源,C8051F020处理的速度很快,在程序中断的4.88 ms时间里完成采集和相关滤波处理计算是绰绰有余的。系统同时对1路油温、1路室温、2路压力信号进行采集,采样频率20 kHz,连续循环采集后,进行去除最大和最小值和数字平均值滤波法对采集信号进行滤波。
伺服阀温度零漂试验的升温和降温周期随外界气候而变化,大约1个多小时,因为在温度点测试时间相对较短,即该点实际的温度变化在约20 s的测试时间里变化不大,故对每个温度点所采取的温控相对简单,根据实测外界温度和油温,程序在到某个温度测试点前稍作控制,就能在20 s的时间里使控制精度不大于±2℃。
4 系统软件设计
本软件采用C51进行编程。C51是一种专门用于51系列单片机编程的C语言,继承了标准C语言的绝大部分的特性,但同时又在51系列的特定的硬件结构上有所扩展;具有与c语言一样的在功能上以及结构性、可读性、可维护性上的优点,并且生成的目标代码效率非常高。借助集成开发环境(IDE)Keil μVision3-C51,在PC机上先初步进行各源程序模块的创建、编辑、连接后,通过设断点等来完成模拟调试、仿真,并根据Keil μVision3界面上的各种信息找出程序错误,并进行修改。最后将已实施完成好的整个应用系统硬件按设计要求与外部有关信号和设备连接好,再通过串口适配器EC3与C8051F020配置的标准JTAG接口,将生成的HEX目标程序下载到芯片的Flash存储器中,直接在片对其进行非侵入式、不占用片内资源、全速在线的实时调试、修改,直至达到设计要求。