1 系统概述
程控电流源具有输出电流范围宽、准确度高、功率大等特点,是组成自动测试系统和校验系统的必需仪器,广泛用于工矿企业、科研国防等军工单位的计量仪表、自动化标定等设备中。本文介绍的精密程控电流源除上述特点外,还具备usb总线通信、温度测量和输出电流非线性温度补偿功能。
系统总体结构如图1所示,精密程控电流源由微控制器(mcu)单元,usb接口单元,温度测量单元,输出电流校准单元,信号输出单元及电源单元组成。mcu单元通过usb接口单元实现与上位机的通信,从上位机获得控制命令并返回相应的数据,同时解析上位机命令来控制信号输出信号,完成最终电流输出。温度测量单元和输出电流校准单元共同完成输出电流的非线性温度补偿。电源单元向其他单元提供所需电源。精密程控电流源还包括过流检测、系统自检、继电器隔离输出等单元,进一步提高了系统的智能性和可靠性。
2 系统电路设计
2.1 usb接口单元
精密程控电流源通过usb总线与上位机接口,usb接口的热插拔、高速和即插即用特性大大简化了系统设计,方便了电流源与上位机的通信,usb接口单元电路如图2所示。
图中,ft232am完成usb总线到mcu串口信号线的转换,以便上位机将usb虚拟成传统的串行口,从而简化了驱动程序,便于实现usb总线与mcu的通信。为了避免usb信号与信号源间的干扰,选用光耦器件(图中的u29)实现其与mcu的隔离,提高系统的抗干扰能力。
2.2 mcu及其外接单元
微控制器mcu是精密程控电流源的核心控制单元,其与温度测量单元及输出电流校准单元的接口电路如图3所示。
mcu单元选用at89c51型单片机构建运行环境,完成对电流源系统的控制,包括外部扩展rom、外部扩展ram、硬件看门狗、硬件地址译码器等。
考虑到器件输出特性随温度的变化,mcu外接温度测量单元和输出电流校准单元来完成输出电流的非线性温度补偿,其原理是输出电流校准单元保存各温度范围内不同设定电流值和实际输出值之间的误差,此误差通过实际测量得到,称为修正系数。系统工作时,通过温度测量单元可得到当前工作温度,用此工作温度对应的设定电流值乘以修正系数,即可完成输出电流的非线性温度补偿,大大提高电流的输出精度。
温度测量单元的核心器件是高精度数字温度测量电路ad7416(图中的u19),它采用ic总线与at89c51接口,测量的环境温度范围为-10℃~+50℃,设计的mcu以十六进制形式输出所测温度。
输出电流校准单元由m24c64型64k bit eeprom构成,用来存贮电流源修正系统数值。mcu通过i2c总线可方便地对其进行读写操作,并按照可变电流源的通信协议以8位十进制数形式写入和读出修正系数,从而保证了对输出电流的精确非线性温度补偿。
2.3 信号输出单元
信号输出单元完成精密程控电流源的电流产生与输出,包括以12位高精度dac-hk12bgc型dac为核心的dac转换电路和由ti公司的精密电压/电流转换器组成的后级转换电路。mcu先译码上位机指令,然后向dac转换电路写入特定数据以控制其输出的模拟电压值。后级转换电路接收dac转换电路输出的模拟电压值完成电压到电流的转换,随后输出上位机设定的电流。信号输出单元电路如图4所示。
图中,at89c51的数据线d0-b7通过二片74hc573与dac-hk12bgc接口来控制其模拟输出,控制过程如下:at89c51通过cs_da与51_wr信号来启动dac,当dac低字节选择信号线cs_dal与单片机写使能线51_wr构成的组合逻辑有效时,向dac写入低8位数据,然后以相同方式写入高4位数据。为进一步提高精度,dac输出端连有电位器w1、w2,分别用来微调满偏和零偏。
dac输出的模拟电压信号da_out接入后级转化电路xtr110,先通过其片内的金属薄膜电阻网络提供输入的缩放比例及电流偏移,完成电压到电流的转换,再通过irf7104型场效应管输出电流。xtr110具有14位转换精度,0.005%的非线性度,确保了转换精度。电位器w3、w4分别用来微调输出电流零偏和满偏,进一步提高精度。
3 单片机控制程序设计
在电流源系统软件中设计了完整的通信协议,规定了电流源从上位机获得的控制命令字和相应的返回数据值。系统控制程序以at89c51型单片机作为控制核心,采用汇编语言编写,分为主程序和串口中断处理程序2部分。
3.1 主程序设计
主程序主要完成系统参数初始化、系统自检、串口中断配置等,流程如图5所示。
系统上电后,mcu从地址0000h开始执行,主程序的入口地址为0050h。系统初始化包括初始化堆栈、初始化dac、初始化串口、初始化寄存器、初始化看门狗等。部分主程序如下。
mov sp,#58h ;初始化堆栈指针
mov a,#00h
movx @dptr,a ;初始化dac
nop
mov a,#20h ;初始