基于数控直流电流源系统的设计.docx
《基于数控直流电流源系统的设计.docx》由会员分享,可在线阅读,更多相关《基于数控直流电流源系统的设计.docx(50页珍藏版)》请在冰豆网上搜索。
基于数控直流电流源系统的设计
基于数控直流电流源系统的设计
摘要:
随着电子技术的发展、数字电路应用领域的扩展,人们对数控恒定电流器件的需求越来越高。
应社会发展的需求,对基于单片机控制的“数控直流电流源的设计”进行研究论证,并运用Proteus软件进行仿真。
以直流稳压电源和稳流电源为核心,结合单片机最小系统实现对输出电流的控制。
首先采用了单片集成稳压芯片实现直流稳压,然后采用了分立元件实现稳流。
为实现对输出电流的精确控制:
一方面,通过D/A输出实现电流的预置,再通过运算放大器控制晶体管的输出电流;另一方面,运用A/D转换器件将输出电流的采样值送入单片机,与预置值进行比较,将误差值通过D/A转换芯片添加到调整电路,从而进一步降低了输出电流的纹波。
Abstract:
Therequiementsofnumericalcontrollingconstantcurrentdevicesisincreasingasdevelopmentofelectronictechnologyandexpandingofdigitalcircuitapplicationalfield.Astosatisfysocietydevelopment,doastudybasedon"Numericalcontroldccurrentsourcedesign"ofSCMcontrollingand
applyProteustosimulatingsoftware.DC(digitalcurrent)VoltageregulatorandDCcurrentregulatoristhekeypartofthedesign,itsoutputcurrentiscontrolledbysinglechipmicroprocessor,Firstly,singlechipIC(integratedcircuit)VoltageregulatorLM338Kisusedtogeneratestablevoltage,andthendesperatedevicesisusedtogeneratestabilizecurrent.Tocontroltheoutputcurrent,ononehand,systemsetsoutputcurrentbyD/A(digital/analogueconverterandcontrolscurrentoftransistorbyoperationalamplifier;ontheotherhand,withthehelpofA/D(analogue/digital)converter,systemsamplestheoutputcurrentandconvertitintodigitaldata,comparesitwithpresetvalue,convertstheerrorvalueintoanalogyandputsitonadjustingcircuit,anddecreasestherippleofthesystemoutputcurrent.
1引言
1.1数控直流电流源的发展现状
电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。
电子电力技术是电能的最佳应用技术之一。
现在电源技术融合了电子、电气、系统集成、控制理论、材料等众多领域。
随着数控电源在电子设备中的普遍使用,普通电源在工作时产生的误差,会影响整个系统的精确度。
电源在使用时会产生很多不良后果,世界各国纷纷对电源产品提出了不同要求并制定了一系列的产品精度标准。
随着经济全球化的发展,恒流源是电路中广泛使用的一种电路,恒流源的实质是利用器件对电流进行反馈,动态调节设备的供电状态,从而使得所输出的电流趋于恒定。
本课题对恒流源进行研究,设计出所需要的符合标准的数控制流电流源。
1.2数控直流电流源的研究意义
数控直流电流源是我们生活中比较常见的设备,这次设计就是基于单片机为主体所设计的微机数字触发式直流电流源,相比其他以往的电源设计,此次的课题更新颖,更符合技术发展的潮流。
设计中,对整体电源进行了硬件、软件总体设计,从两方面满足设计的基本要求的同时,对整个微机控制的系统有了比较全面的了解。
1.3该研究解决的主要内容
本次对数控直流电流源的设计主要是针对以下方面:
如何实现对电源的输出控制,该系统主要是应用单片机,用微处理器来替代传统直流稳压电源中手动旋转电位器,实现输出电压的连续可调,精度要求高。
实现的途径很多,可以用DAC的模拟输出控制电源的基准电压或分压电阻,或者用其它更有效的方法,因此如何选择简单有效的方法是本课题需要解决的首要问题;数控直流电流源要实现电流的键盘化输出控制,同时对于输出的电流的精度也具有相应的要求,如何有效的实现这些功能也是课题所需研究解决的问题。
2设计任务及要求
2.1任务
设计并制作数控直流电流源。
输入交流200~240V,50Hz;输出直流电压≤10V。
其原理示意图如下所示。
2.2设计思路
采用改进型单输出端单向电流源电路来产生恒定的电流。
此方法是利用精密电阻取样得到反馈电压,将反馈电压和高精度的参考电压比较得到误差电压,该误差电压经放大后输出控制调整管的导通程度,使预设电流值和实测电流值的步步逼近,直到相等,从而达到数控的目的。
2.3方案论证
对于数控直流电流源的设计有很多方案,下面做一下介绍:
方案一:
方框图如图1所示,数控直流电流源由键盘、控制器、显示器、数模转换、电压电流转换和模数转换等部分组成,键盘的作用是设定电流值和确定电流步进值;控制器的作用是将设定电流值的8位(或12位)二进制输出;显示器的作用是显示设定电流值;数模转换的作用是设定电流值的数字量转换为模拟量;电压电流转换的作用是将电压转换成恒定电流输出;模数转换的作用是将输出的模拟量再转换为数字量反馈到控制器,使实际输出电流值与设定电流值一致。
图1方案一的方框图
方案二:
方框图如图2所示,采用改进型的单输出端单向电流源电路来产生恒定电流。
该方法是用精密电阻取样得到反馈电压,将反馈电压与高精度的参考电压比较得到误差电压,此误差电压经放大后输出控制调整管的导通程度,使预设电流值和实测电流值的逐步逼近,直至相等,从而达到数控的目的。
从题目的要求来分析,该题目最大的难点在于大电流输出和高精度控制,所以在具体的方案确定中,大电流、功耗,以及精度、误差等都是我们所必须要考虑和克服的。
2.4总体方案设计
方案一的数控直流电流源设计较简单,对于电流的变化是用相比而言使用可编程芯片,如CPLD或FPGA等和DAC控制,采用LED数码管进行实时显示,操作也较方便。
方案二的数控直流电源设计采用单片机作为核心控制,基本原理简单,实现比较方便,电源的电流值也可以调整到较精确的数值,同样的也是采用LCD进行显示。
此方案采用保持电阻恒定而改变输入电压的方法来改变电流的大小。
利用高精度D/A转换器在单片机程序控制下提供可变的高精度的基准电压,该基准电压经过V/I转换电路得到电流,再通过A/D转换器将输出电流反馈至单片机进行比较,调整D/A的输入电压,从而达到数控的目的。
该方案的难点在于稳定恒流源的设计和高精度电流检测电路的设计。
特点是可精确的控制电流的步进量,负载变化对电流输出的影响较小。
根据题目要求以及设计思路,比较之后,基于以上优点以及对于单片机的成熟应用,因此我决定用单片机来作为控制器,我所采用的是第二种方案
图2方案二方框图
3硬件系统的设计
3.1硬件系统的模块
3.1.1单片机最小系统
(1)时钟电路
单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中石英晶体振荡器的频率为12MHz,两个电容C1、C2的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
C1、C2的典型值为33PF。
单片机的时钟电路如图3所示。
(2)复位电路
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态。
复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位。
因为AT89S52单片机的复位是靠外部电路实现的。
复位电路的好坏直接影响单片机系统工作的可靠性,因此,要重视复位电路的设计和研究。
只要RST端保持10ms以上的高电平,就能使单片机有效地复位。
AT89S52单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。
则复位电路图如图4所示。
(3)AT89C52单片机
AT89C52是一种带8K字节闪烁可擦除可编程只读存储器的低电压,高性能CMOS8位微处理器,简称单片机。
AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C52共有4个8位的并行双向I/O口,分别记作P0、P1、P2、P3,这4个口除可按字节寻址以外,还可按位寻址。
P0口地址为80H,位地址为80H~87H。
各位口线具有完全相同但又相互独立的逻辑电路。
P1口地址为90H,位地址为90H~97H。
P1口只能作为通用数据I/O口使用,所以在电路结构上与P0口有些不同。
P2口地址为A0H,位地址为A0H~A7H。
P2口既可以作为系统高位地址线使用,也可以为通用I/O口使用,所以P2口电路逻辑与P0口类似。
P3口地址为B0H,位地址为B0H~B7H。
虽然P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。
AT89C52单片机还有一个地址锁存控制信号ALE,外部程序存储器读选通信号
访问程序存储器控制信号
复位信号RST,地线
和+5V的电源
。
单片机最小系统图如图5所示.
图3单片机的时钟电路图
图4单片机复位电路图
图5单片机最小系统图
3.1.2自制电源模块
这次设计的系统需要多个电源,单片机使用+
稳压电源,A/D转换器,D/A转换器,运放等需要
稳压电源。
电源虽简单,但在高精度的系统中,稳压电源有着非常重要的作用。
在进行研究后得出以下方案。
如图6所示,本电源先通过变压器电压变换隔离,桥式全波整流,电容滤波,再通过三端固定输出集成稳压器产生稳定电压+15V,-15V,+5V,稳压器内部电路由恒流源,基准电压,取样电阻,比较放大,调整管,保护电路,温度补偿电路等组成。
为了改善纹波特性,在输入端加接电容。
为了改善负载的瞬态响应,在输出端加接电容。
采用三端集成稳压器7805、7815、7915分别得到+5V和±15V的稳定电压,再外对OP07加大功率场效应管构成扩流电路,可以提供2000mA的上限电流。
利用该方法实现的电源电路简单,工作稳定可靠。
稳压电源在实物上设计上是必不可少的部分,但在运用Proteus仿真时为了简化电路,此模块用软件自带的励磁电压代替。
3.1.3显示模块
方案一:
使用LED数码管显示。
数码管采用BCD编码显示数字,对外界环境要求低,易于维护。
但根据题目要求,如果需要同时显示给定值和测量值,以及其他输出特性值,需显示的内容较多,要使用多个数码管动态显示,使电路变得复杂,加大了编程工作量。
方案二:
使用LCD液晶显示。
LCD具有轻薄短小,可视面积大,方便的显示数字,分辨率高,抗干扰能力强,功耗小,且设计简单等特点。
LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯能采用4位或者8位并行传输的两种方式,HD44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。
LM016L液晶模块的引脚功能如下表1所示。
图6稳压电源电路图
表1LM016L引脚功能
引脚
符号
功能说明
1
VSS
一般接地
2
VDD
接电源(+5V)
3
V0
液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
4
RS
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
5
R/W
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
6
E
E(或EN)端为使能(enable)端,下降沿使能。
7
DB0
底4位三态、双向数据总线0位(最低位)
8
DB1
底4位三态、双向数据总线1位
9
DB2
底4位三态、双向数据总线2位
10
DB3
底4位三态、双向数据总线3位
11
DB4
高4位三态、双向数据总线4位
12
DB5
高4位三态、双向数据总线5位
13
DB6
高4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busyflang)
15
BLA
背光电源正极
16
BLK
背光电源负极
综上所述,选择方案二。
采用LM016L液晶显示模块同时显示电流给定值和实测值以及负载内阻。
连接电路图如图7所示。
图7LM016L与单片机的接线图
3.1.4键盘模块
采用标准4×4键盘,此类键盘采用矩阵式行列扫描方式,优点是当按键较多时可降低占用单片机的I/O口数目,而且可以做到直接输入电流值而不必步进。
使用标准的4x4键盘,可以实现0~9数字输入、“+”、“-”、“OK”、“SET”、“DEL”、“RESET/ON”这些功能按键。
其电路图如图8所示。
图8键盘与单片机的接线图
3.1.5电流源模块
采用运放和场效应管的压控恒流源。
该恒流源电路由运算放大器、大功率场效应管Q1、采样电阻R2、负载电阻RL等组成硬件设计。
采用场效应管,更加容易实现电压线性控制电流,既满足输出电流最大达到2A的要求,电路简洁也能较好地实现电压近似线性地控制电流。
该电路中,为了满足题目的设计要求,调整管用大功率场效应管IRF640。
当场效应管工作到饱和区时,漏电流Id近似为电压Ugs控制的电流。
即当Ud为常数时,满足:
Id=f(Ugs),只要Ugs不变,Id就不变。
在此电路中,R2为取样电阻,采用康铜丝绕制阻值为1Ω。
运放OP07作为电压跟随器,Uin=Up=Un,场效应管Id=Is所以Iout=Is=Un/R2=Uin/R2。
正因为Iout=Uin/R2,电流Iout被输入电压UI控制,即Iout不会随RL的变化而变化,从而实现压控恒流。
电路原理图如图9所示
图9压控恒流源模块电路图
3.1.6负载模块
根据题目要求,设计了如图10所示的电路图。
电路综合各方面的考虑因素在里面,由于TLC2543所测电压值在5V内,而负载一端接15V电压源另一端接功率管,因此采用差分增益电路采样负载电压,当Rb/Rc=Rd/Ra时,OP07输出电压ADin=Rb/Rc(Va-Vb),硬件设置Rb/Rc=1/4,软件还原负载电压,保证测量精度。
而采样精密电阻R1为1Ω,通过采样R1两端电压值换算成电流值即可得到输出电流。
3.1.4D/A、A/D转换模块
D/A、A/D模块是单片机与外部数据连接的通道,因此这两个模块的选择与使用应当合理。
(1)D/A转换器
采用DAC模块提供高精度的基准电压,即通过CPU发出的二进制转换为
的模拟电压,送给误差放大器,实现步进要求。
根据题目扩展功能要求输出
,以1mA为步进,需要的级数由公式
(1)可见。
(1)
,故应采用12位D/A转换器为D/A转换芯片,供选择的很多,在此选LTC1456芯片。
(2)A/D转换器
A/D模块的是反馈的核心,我采用Proteus元件库中的TLC2543芯片实现。
TLC2543是一种低功耗、低电压的12位串行开关电容型AD转换器。
它使用逐次逼近技术完成A/D转换过程。
最大非线性误差小于1LSB,转换时间9µs。
它具有三个控制器输入端,采用简单的3线SPI串行接口可方便与微机进行连接,是12位数据采集系统的最佳选择器件之一。
(3)D/A、A/D连接电路
D/A、A/D连接电路如图11所示。
图10负载电流、电压测量电路图
。
3.2系统的原理图
所绘制的系统原理图采用的是Proteus软件。
其系统原理图见附录所示。
图11D/A、A/D连接电路图
4软件系统的设计
4.1单片机资源使用情况
本设计用到了单片机控制DA和AD转换功能,另外用到了单片机的中断功能,在数据的显示时所采用的是查表的方法,因此需要将表格、数据存到单片机的程序存储器中去。
数控直流电流源的数据要存储到数据存储器中去,用到了30H到50H之间的单元。
由于数控直流电流源需要可以进行调节,因此,需要在单片机的P口上加上按键,采用行列式键盘,直接接在P2口上。
用到的液晶显示器接到了单片机的P0口线上,液晶显示器的使能端用到了P3口线。
4.2软件系统的模块
(1)定时模块
在本设计中用到了几个定时模块,第一个定时是用于定时按键的抖动时间,因为当按键时都会出现电压抖动,但对键盘工作有影响的是键闭合时的抖动,所以为了确保键扫描的正确性,每当扫描到有闭合键时,都要进行去抖动处理。
本设计中采用的是软件去抖动的方法,抖动的定时采用的软件的延时进行定时的。
第二个定时的功能是在数码管显示时的延时时间,即在数码管显示时是采用查表的方法进行显示的,因此需要用到一定的延时,使得我们能够看的清楚所显示的内容,在这里用到的延时也是采用软件的延时。
(2)按键操作模块
我用到了三个独立式键盘进行按键的操作。
因为本数控直流电流源的操作简单,而只用到了三个键,因此在键盘的操作时采用的是一步步递进的方法,一步一步往下操作的,设置了键的名称为ON/OFF键、ADD键、DEC键,在软件设计中是在ON/OFF键按下了之后才会有ADD键、DEC键的操作,键与键之间的功能采用层层套用使得程序看起来更加清晰明了。
采用查询的方法对按键进行操作,当查询到按键有动作时,则执行相应的操作。
独立式键盘的程序设计一般把键盘扫描程序设计成子程序,以便其它各程序调用。
键盘扫描子程序KEY应具有以下功能:
判定有无按键动作;去抖动;确认是否真正有闭合键;计算并保存闭合键键码;判定闭合键是否释放;恢复闭合键键码。
(3)D/A转换模块
主要是利用单片机做处理器,然后经过数模转换模块进行转换,将单片输出的二进制代码转换成相应的模拟电压输出,这样使得所设计的电流源更加精确。
在此模块中,因为进行换挡的转换,在这里我所采用的是做除法,然后再存储除法得到的商和余数,这里面我用到了两个子程序,一个是将十进制转换为十六进制数,二个是采用移位相减的方法做除法。
(4)A/D转换模块
当所设定的二进制代码经过数模转换模块输出之后,经过A/D转换模块进行采样之后,由单片机进行处理。
然后输出相应的电流值大小。
(5)LCD显示模块
寄存器选择控制表如表2所示。
表2寄存器选择控制表
RS
R/W
操作说明
0
0
写入指令寄存器(清除屏等)
0
1
都busyflag,以及读取位址计数器(DB0~DB6)值
1
0
写入数据寄存器(显示各字型等)
1
1
从数据寄存器读取数据
注:
关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0。
busyflag(DB7):
在此位为被清除为0时,LCD将无法再处理其他的指令要求。
1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的代码,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,
4.3程序流程图
(1)主控制流程图
在此次设计的过程中,我是采用模块的设计方法,一个一个实现功能,在本次课程设计的过程中,我都是采用这种思想进行数控直流电流源的设计的。
因此,在设计的过程,让我能够很轻易的就抓住了主要的设计核心。
主控制流程图如图12所示。
(2)按键操作流程图
对于键盘的设计,我专门设计了一个键盘扫描子程序,它的功能是,首先对键盘进行处理,给每一个键都设置了一个键码,那么只要判断键盘的键码就可以知道是否有键按下,如若有键按下也可以判断是哪一个键按下了。
这次设计中,键盘扫描子程序的代号为KEY,其键盘扫描程序设计的流程框图如图13所示。
(3)D/A转换、A/D转换流程图
本设计主要是用到LTC1456进行数模转换,用到TLC2543进行模数转换,其转换的流程图如图14所示。
(4)数制转换流程
由于使用的十进制数,而在做除法的时候,要进行数制的转换,其转换的流程图如图15所示。
图12主控制流程图
图13按键扫描子程序流程图
图14D/A转换、A/D转换流程图
图15数制转换流程图
4.4程序清单
所设计的程序清单见附录。
5仿真测试及结果
5.1设计结论及使用方法
本次通过对数控直流电流源的设计,知道了利用单片机处理之后,进行数控直流电流源的显示。
本次设计比较成功,在按键操作中能够按照预先给定的功能进行操纵。
打开Proteus软件,打开设计的电路文件,然后输入通过KEIL软件编好的程序,点击开始按钮即可以进行测试。
按了复位键之后,液晶显示屏上也能显示“S0200mA"。
按下RESET/ON键显示四项值。
电流设定初始值为200mA。
可以按+,-键实现步进,数据实时显示。
要设置电流直接按数字键无效。
此时需按SET键进入电流设置,之后屏幕显示“yichunxueyuanhuanyingni!
”,按下OK键即可设定,如果不需要设定,按RESET/ON返回。
在设定电流的过程中,需要有效按四次数字键,如果在设置的过程中想放弃修改,按下RESET/ON键,按DEL键可以修改已经按下的数值,光标返回到上一个数,重新按某一个数字键即完成修改。
设置完成后屏幕显示相应值。
操作显示界面如图16所示。
如果设定的电流值不在200mA~2000mA内屏幕显示“ERROR!
RESET”。
图16仿真显示器显示界面图
5.2仿真结果
5.2.1输出电流范围仿真
在程序设计上限制了电流输出范围是20~2000mA,限定了电压值小于10V,当给定值在量程内时显示“OK!
”;当给定值超过量程时将显示“ERROR!
RESET”,如下图17所示。
若需要设定输出电流值,当按下SET键时,出现如图18所示界面,显示器显示“yichunxueyuanhuanyingni!
”,此时按下OK键,出现如图19所示界面,这是可随意输入一个4位数,如果满足200~2000