基于单片机的高精度数字直流电流源设计
扫描二维码
随时随地手机看文章
直流电流源是一种应用广泛的电子仪器,对于要求输出电流可调的情况,最简单实用的方法是通过软件控制来实现。使用单片机作为主控部件,系统设计简单方便。本文设计的直流电流源是以凌阳61单片机系统[1,2]为核心,采用12位外部扩展MAX531DA和MAX197AD芯片,并在外部电流输出模块中引入PI控制[3],构成电流闭环,有效消除了由于电子器件本身以及外界干扰造成的输出误差,大大提高了电流源的精度。
图1 系统结构图
2 系统原理与设计方案
系统主电路采用全桥整流电路作为负载电路电源,并选用大功率三极管[4]串联电路进行电流输出。控制电路使用凌阳61单片机,单片机扫描键盘显示接口,当有键按下时,键值通过83编码器CD4532读给单片机。单片机控制DA转换,转换输出值经过电流源输出模块输出。输出电流经采样放大电路一方面传递给AD转换器转换成数字量信号,经处理后换算成相应的电流值,最终通过液晶显示;另一方面结合模板PI调节器实现电流闭环控制,以保证输出电流值无静差跟踪程控给定电流。整个控制系统采用模块化设计思想,系统结构如图1所示。
3 硬件电路设计
3.1 负载电路电源设计
本设计没有采用开关电源。因为开关电源采用高频斩波电路,虽然可以在输入电压波动比较大的情况下高效保持稳定的直流输出,但高频电路容易产生高频电磁噪声,对采样、控制电路形成干扰。因此,为避免开关电源对控制电路造成干扰、提高控制和输出精度,本系统采用传统的全桥整流电路,作为负载电路电源。
使用输出功率50W、变比220/15的变压器,经全桥整流后加30000μF电容稳压滤波输出21V直流电压,再串入扼流线圈用于减小电流纹波。
本电路还加载了过流保护功能,使用电压比较器检测电阻的电压,当检测电压超过最高设定电压时,电压比较器输出高电平,通过DA的CLR脚使DA清零从而使得负载电流为零,达到过流保护目的。
3.2 电流源输出模块
3.2.1 PI控制
程控12位D/A给定进行1:1比例放大电路反向输出,与电流采样板输出的电流反馈进行比较,形成电流闭环,调节PI控制器的比例放大系数,使DA输出量和实际采样检测值之间保持线性关系。系统电流闭环消除了由运放引起的非线性误差,并有效抑制模拟电路部分的非线性对AD转换电路的干扰,简化了软件部分的设计。实验表明,系统输出电流误差绝对值小于1mA。
500)this.style.width=500;" border="0" />
500)this.style.width=500;" border="0" />
改变电路中的电阻和电容,可进行积分时间和放大系数的改变。
3.2.2 电流放大输出
从PI控制输出的电流较小,无法满足系统输出电流20mA-2000mA的要求,需附加电流放大电路。为了使电流源带负载能力更强,电流放大电路接一个PNP型大功率三极管MJ2955输出,采用NPN型通用三极管9013驱动MJ2955。考虑到MJ2955的电流比较大,功耗大、发热严重,系统中使用了散热器并强迫风冷,以保证MJ2955不被烧坏。PI调节电路及主电路如图2。
3.2.3 负载电路
电源输出端并联30000μF的大电容稳压后,再串联π型滤波电路滤波,减小电流波动干扰;在负载正极和地之间并联60000μF大电容用于减小电流纹波。
3.2.4 电流采样电路
系统要求电流源输出电流范围为20mA到2000mA。当输出电流为2000mA时,若取采样电阻为0.5欧姆,则采样电阻上产生的功率为2瓦,这将导致采样电阻发热,电阻阻值发生改变,使得电流给定值与实测值之间产生很大误差。康铜丝的电阻温度系数比较小,因此系统选用康铜丝作为采样电阻,用多根较粗的康铜丝并接,同时用风扇给电阻降温,以降低温漂,保持采样电阻阻值恒定。
3.3 AD和DA转换模块的选择
凌阳61单片机自带8个通道的10位AD转换器,其中7个为普通AD转换通道,另一个为语音信号输入通道;61单片机也有两路DA转换。61单片机的10位AD和DA转换分辨精度为1/1024,而系统输出电流的误差绝对值要求小于1mA,因此,应该选用更高位数的AD和DA转换芯片。系统采用12位AD芯片MAX197和12位DA芯片MAX531,基本满足精度要求。
为提高AD和DA的可靠性,增加系统的抗干扰能力,提高转换精度,系统中对AD和DA电源使用π型滤波器再次进行滤波处理,避免干扰信号串入转换电路。在没有加入滤波电路之前,测得纹波电流为8mA;在加入滤波电路后,实际测得的纹波电流下降到0.8mA。
3.4 控制模块
3.4.1 凌阳61单片机最小系统
SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。SPCE061A 单片机应用领域非常广泛,例如应用在家用电器控制器、工业控制领域。
3.4.2 单片机与AD、DA转换的接口电路
系统采用单片机作为AD和DA转换的控制模块,只需考虑外部接口电路的设计,即可方便实现控制过程。芯片MAX531,MAX197均采用内电压基准工作模式,单电源+5V供电。MAX531内部给出2.048V基准电压,MAX197内部给出4.096V基准电压。MAX531提供两倍增益,即输出电压从0V到+4.096V。
500)this.style.width=500;" border="0" />
由于凌阳61单片机没有类似于51单片机的控制总线,本系统中对AD、DA的读写等控制信号均采用输出口模拟的方式来提供。AD和DA转换电路如图3和图4。
3.4.3 键盘和显示模块
本系统没有采用凌阳61单片机自带的四键键盘,而是用83编码器CD4532扩展了8个键。这样可以分级“+”,“-”调整电流源输出,达到步进1mA,10mA和100mA。系统提供了一个方便的用户操作界面,体现了人性化设计的思想。
由于用数码管显示时接口电路复杂,考虑到更好的人机交互界面和方便的控制,系统使用液晶显示模块OCM4X8C,同时显示电流给定值和实测值。
OCM4X8C液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形;可与CPU直接接口,提供两种界面来连接微处理机,即8位并行和串行两种连接方式;具有多种功能,如光标显示、画面移位、睡眠模式等。
4 软件设计
软件是系统的重要组成部分,在设计软件时,主要从确保系统精确度,提高系统反应速度、稳定性及高效实时控制等几方面出发。系统用C语言编写液晶显示菜单,同时显示给定值与实际输出测量值,液晶显示稳定可靠。键盘扫描程序通过读取不同的键值实现了步进1mA,10mA和100mA分级“+”,“-”可调,实现了系统的精确控制,提高了效率。另外,系统主程序中加入了数字滤波,可以满足测量误差的要求。
500)this.style.width=500;" border="0" />
4.1 软件实现的功能:
(1)完成AD和DA转换
(2)控制液晶显示
(3)读取按键键值
4.2 系统软件工作流程图
(1)主程序和判断程序流程图如图5。
(2)键盘扫描子程序流程图如图6。
(3)DA输出显示子程序流程图如图7。
500)this.style.width=500;" border="0" />
500)this.style.width=500;" border="0" />
500)this.style.width=500;" border="0" />
5 系统测试
给定电流在20mA-2000mA内变化时,系统实际输出电流和误差如表一;在负载电阻为4.936Ω时,输出负载纹波电压和纹波电流如表二。
系统测试结果表明:当负载电阻变化时(负载电阻电压小于15V),输出电流恒定不变。系统给定电流在20mA-2000mA范围内变化时,输出电流误差绝对值在1mA以内;通过测量负载电阻上电压交流分量测得的纹波电流小于0.2mA。
6 结论
本文创新之处在于以单片机系统为核心,使用12位的AD和DA芯片,输出模块引入PI控制器,设计出一种高精度数字直流电流源。当需要程控电流在20mA-2000mA内变化时,系统输出电流误差小于1mA,电流纹波小于0.2mA,满足系统高精度的要求。