数控恒流源
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控恒流源
1.任务
设计并制作数控直流电流源。
输入交流200~240V,50Hz;输出直流电压≤10V。
其原理示意图如下所示。
、要求
基本要求
(1)输出电流范围:200mA~2000mA;
(2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10 mA;
(3)具有“+”、“-”步进调整功能,步进≤10mA;
(4)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的1%+10 mA;
(5)纹波电流≤2mA;
(6)自制电源。
发挥部分
(1)输出电流范围为20mA~2000mA,步进1mA;
(2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值≤测量值的%+3个字;
(3)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的%+1 mA;
(4)纹波电流≤;
(5)其他。
总体设计方案
经初步分析设计要求,得出总体电路由以下几部分组成:电源模块,控制模块(包括AD、DA
转换)恒流源模块,键盘模块,显示模块。
以下就各电路模块给出设计方案。
控制部分方案
方案一:采用FPGA作为系统的控制模块。
FPGA可以实现复杂的逻辑功能,规模大,稳定性强,易于调试和进行功能扩展。
FPGA采用并行输入输出方式,处理速度高,适合作为大规模实时系统的核心。
但由于FPGA集成度高,成本偏高,且由于其引脚较多,加大了硬件设计和实物制作的难度。
方案二:采用单片机作为控制模块核心。
单片机最小系统简单,容易制作PCB,算术功能强,软件编程灵活、可以通过ISP方式将程序快速下载到芯片,方便的实现程序的更新,自由度大,较好的发挥C语言的灵活性,可用编程实现各种算法和逻辑控制,同时其具有功耗低、体积小、技术成熟和成本低等优点。
基于以上分析,选择方案二,利用STC89C52单片机将电流步进值或设定值通过换算由D/A转换,驱动恒流源电路实现电流输出。
输出电流经处理电路作A/D转换反馈到单片机系统,通过补偿算法调整电流的输出,以此提高输出的精度和稳定性。
在器件的选取中,D/A转换器选用12位优质D/A转换芯片 TLV5618,直接输出电压值,且其输出电压能达到参考电压的两倍,A/D转换器选用高精度12数转换芯片AD7896。
.
恒流源模块设计方案
方案一:由三端可调式集成稳压器构成的恒流源。
其典型恒流源电路图如图所示。
一旦稳压器选定,则U
0 是定值。
若R固定不变,则I
不变,
因此可获得恒流输出。
若改变R值,可使输出 I
改变。
因此将R设为数控电位器,则输出电流可
以以某个步长进行改变。
此电路结构简单,调试方便,价格便宜,但是精密的大功率数控电位器难购买。
图三端集成稳压器构成的恒流源框图
方案二:由数控稳压器构成的恒流源
方案一是在U
不变的情况下,通过改变R的数值获得输出电流的变化。
如果固定R不变,若
能改变U
的数值,同样也可以构成恒流源,也就是说将上图中的三端可调式集成稳压源改为数控电压源,其工作原理和上图类似。
此方案原理清楚,若赛前培训过数控电压源的设计的话,知识、器件有储备,方案容易实现。
但是,由图可知,数控稳压源的地是浮地,与系统不共地线,对于系统而言,地线不便处理。
图数控电压源构成的恒流源框图
方案三:采用集成运放的线性恒流源
该恒流源输出的电流与负载无关, 通过使用两块构成比较放大环节,功率管构成调整环节,利用晶体管平坦的输出特性和深度的负反馈电路可以得到稳定的恒流输出和高输出阻抗,实现了电压—电流转换。
其原理框图如图所示。
图集成运放构成的恒流源框图
综合考虑,采用方案三,使用低噪音、高速宽带运放OP27BJ和达林顿管TIP122构成一个恒流源电路。
显示器模块方案
方案一:使用LED数码管显示。
数码管采用BCD编码显示数字,对外界环境要求低,易于维护。
但根据题目要求,如果需要同时显示给定值和测量值,需显示的内容较多,要使用多个数码管动态显示,使电路变得复杂,加大了编程工作量。
方案二:使用1602 LCD显示。
LCD具有轻薄短小,可视面积大,分辨率高,抗干扰能力强,功耗小,且设计简单等特点。
综上所述,选择方案二。
采用1602液晶显示模块同时显示电流给定值和实测值。
键盘模块方案
方案一:采用独立式按键电路,每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。
缺点为当按键较多时占用单片机的I/O口数目较多。
方案二:采用标准4X4键盘,此类键盘采用矩阵式行列扫描方式,优点是当按键较多时可降低占用单片机的I/O口数目,而且可以做到直接输入电流值而不必步进。
题目要求可进行电流给定值的设置和步进调整,需要的按键比较多。
综合考虑两种方案及题目要求,采用方案二。
电源模块方案
系统需要多个电源,单片机、A/D、D/A、使用5V稳压电源,运放需要±15V稳压电源,同时题目要求最高输出电流为2000mA,电源需为系统提供足够大的稳定电流。
综上所述,采用三端稳压集成7805、7815、7915分别得到+5V和±15V的稳定电压,利用该方法实现的电源电路简单,工作稳定可靠。
系统组成
经过方案比较与论证,最终确定系统的组成框图如图所示。
图 系统组成框图
2. 单元电路设计
稳压电源电路
在在本设计中,运放需±15V 供电,单片机需、A/D 、D/A 需+5V 供电,采用三端稳压器7805、
78H15、79H15构成一稳压电源,题目要求输出电流范围是200mA ~2000mA ,而78H 、79H 系列稳压器输出电流最大可以达到,能为系统提供足够大的稳定电流。
稳压电路如图所示:考虑系统对功率要求较高,所以在设计中选取了输出功率50W 的变压器,输入电压由变压器和全波整流滤波电路产生。
图 稳压电源电路
控制器电路设计
单片机最小系统设计
STC89C 52 单 片 机 系 统
4*4键盘
1602液晶显示
D/A 转换
V/I 转换 负载
A/D 转换
稳压电源
恒流源
通过键盘模块输入给定的电流值或是步进调整信号传送给单片机,单片机在接受到信号后进行处理运算,并显示其给定的电流值,然后经D/A 转换以输出电压,驱动恒流源电路实现电流输出,并将采样电阻上的电压经过A/D 转换输入单片机系统,通过补偿算法进行数值补偿处理,调整电流输出,并驱动显示器显示当前的电流值。
最小系统的核心为AT89S52,为了方便单片机引脚的使用,我们将单片机的引脚用接口引出,电路如图所示.P0口和,是LCD 接口;P1口作为A/D 与D/A 转换接口,其中~是D/A 转换器的接口;~是A/D 转换器的接口;P3口为键盘接口。
图 由AT89S52为核心的单片机最小系统
A/D 、D/A 电路设计 (1)D/A 转换器
根据设计基本要求,电流的输出范围为200mA ~2000mA ,将最高输出电流2000mA 进行十进制~二进制转换有
102(2000)(11111010000)
要满足步进为1mA 的要求,需选用十二位的D/A 转换器,TLV5618是较好的选择。
TLV5618是带有缓冲基准输入(高阻抗)的双路12位电压输出DAC 。
DAC 输出电压范围可编程为基准电压的两倍,其输出电压V out =2×V ref ×D/4096有两个输出端口A 和B ,且它们可以同步刷新。
此外,该器件还包含上电复位功能。
通过3线串行总线可对TLV5618实现控制,可采用单5V 电源进行供电。
在快速、慢速模式下功耗分别为8mW 和3mW ,输入数据的刷新率可达。
(2)A/D转换器
A/D转换采用BB公司的ADS7816构成的转换电路,如图。
AD7896是12位串行模/数转换器,采样频率高达200kHz,转换所需时间短,转换精度高。
AD7896转换器将采样电阻上的电压转换成数字信号反馈给单片机,单片机将此反馈信号与预置值比较,根据两者间的差值调整输出信号大小。
这样就形成了反馈调节,提高输出电流的精度。
同时,A/D采样回来的电流经过单片机处理传送到LCD,可以显示当前的实际电流值。
如图所示为A/D与D/A转换电路图,其中CON8接口与单片机最小系统的P1口相接。
图 A/D与D/A转换电路图
键盘电路设计
在设计中,使用标准的4x4键盘,可以实现0~9数字输入,“+”、“-”、“设置”。
其电路图如图所示:
图键盘电路图
显示器电路设计
本液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,因此,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。
这里向大家介绍一款LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
其接口如图所示。
图 LED1602接口
恒定电流源电路设计
本系统以直流电流源为核心,AT89S52单片机为主控制器,通过键盘来设置直流电源的输出电流,设置步进等级可达1mA,并可由数码管显示实际输出电流值和电流设定值。
本系统由单片机程控输出数字信号,经过D/A转换器(MAX532)输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电流。
单片机系统还兼顾对恒流源进行实时监控,输出电流经过电流/电压转变后,通过A/D转换芯片,实时把模拟量转化为数据量,再经单片机分析处理,通过数据形式的反馈环节,使电流更加稳定,这样构成稳定的压控电流源。
实际测试结果表明,本系统输出电流稳定,不随负载和环境温度变化,并具有很高的精度,输出电流误差范围±5mA,输出电流可在20mA~2000mA范围内任意设定,因而可实际应用于需要高稳定度小功率恒流源的领域。
由于D/A转换输出的模拟信号不稳定,加上C3稳定电压。
经过的电阻和 1K的电位器加到单运放OP07 的同相输入端,调节电位器的阻值的大小可调节同相输入端的电位,从而改变输出点的电位,输出电位加到达林顿管的B管脚上,进入达林顿信号产生自激信号,通过C1过滤掉。
利用达林顿管的电流放大特性,可实现大电流的输出。
电流放大倍数为 1000~15000 倍。
I c =β Ib ,由于β值很大则I c >> Ib,那么 I c≈ Ie ,改变达林顿B管脚的电位可改变达林顿管集电极C管脚的电流。
达林顿管E管脚和地之间接一个功率电阻,把达林顿管的E管脚和OP07 的反相输入端相连,使功率电阻的电位送到OP07,来钳位达林顿管基极B管脚的电位。
E管脚电压需要采集送到单片机处理,接C2使采集电压更加稳定。
E管脚电压Uf = IeR ,ΔU =Ud / Auf 。
当通过达林顿管的集电极 C 和发射极 E 上的电流变大时,功率电阻上的电压升高,ΔU 为负值,则B 管脚的电位降低,从而使流过达林顿管的集电极 C 和发射极电流降低。
当通过达林顿管的集电极 C 和发射极 E 上的电流变小时,功率电阻上的电压降低,ΔU 为正值,则 B 管脚的电位升高,从而使流过达林顿管的集电极 C 和发射极电流升高,当ΔU 为零时电流稳定不变,由此来达到恒流的目的。
3. 软件设计
软件设计采用C语言,对89S52进行编程实现各种功能。
软件设计的关键是对A/D、D/A转换器的控制。
软件实现的功能是:
①确定电流步进调整
②电流给定值的设置
③测量输出电流值
④控制TLV5618工作
⑤控制AD7896工作
⑥对反馈回单片机的电流值进行补偿处理
⑦驱动液晶显示器显示电流设置值与测量值
软件设计流程图
图单片机程序流程图
软件功能、算法及源程序:
源程序用Keil C51编写,在XP系统下调试成功。
以下给出程序:#include <>
#include <>
#define uint unsigned int
#define uchar unsigned char
#define Channal_A 1
#define Channal_B 2
#define Channal_AB 3
sbit DIN = P1^0;
sbit SCLK = P1^1;
sbit CS = P1^6;
unsigned long int num = 0; unsigned long int key_num = 0; unsigned long int num1 = 0; uchar show_num;
uchar show_num1;
uchar temp;
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
void DA_conver(uint Dignum) {uint Dig=0;
uchar i=0;
SCLK=1;
CS=0;
for(i=0;i<16;i++)
{Dig=Dignum&0x8000;
if(Dig)
{DIN=1; }
else
{ DIN=0; }
SCLK=0;
_nop_();
Dignum<<=1;
SCLK=1;
_nop_(); }
SCLK=1;
CS=1;}
void Write_A_B(uint Data_A,uint Data_B,uchar Channal,bit Model) {uint Temp;
if(Model)
{Temp=0x4000; }
else
{Temp=0x0000;}
switch(Channal)
{ case Channal_A:
DA_conver(Temp|0x8000|(0x0fff&Data_A));
break;
case Channal_B:
DA_conver(Temp|0x0000|(0x0fff&Data_B));
break;
case Channal_AB:
DA_conver(Temp|0x8000|(0x0fff&Data_A));
DA_conver(Temp|0x0000|(0x0fff&Data_B));
break;
default:
break; }}
void delay(uint z)
{uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void write_com(uchar com)
{lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;}
void write_data(uchar date)
{lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;}
void init()
{ dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);}
unsigned long int keyscan()
{ P2=0xfe;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{temp=P2;
switch(temp)
{case 0xee:key_num=key_num+5;
if(key_num >= 2000) key_num = 2000;
break;
case 0xde:key_num=key_num-5;
if(key_num <= 0) key_num = 0;
break;
default:
break;}
while(temp!=0xf0)
{temp=P2;
temp=temp&0xf0;}}}
return key_num;}
void main(void)
{ init();
while(1){
num1 = keyscan();
Write_A_B(num1,0x0000,Channal_A,0); 系统测试
测试使用的仪器
测试使用的仪器设备如表所示
表测试使用的仪器设备
指标测试和测试结果
输出电流范围测试
由于在程序设计上限制了电流输出范围是200~2000mA,当给定值在量程内时显示“设置成功”;当给定值超过量程时将显示“超出2000mA!!请重新设定”
步进调整测试
在量程范围内,通过“+”、“-”按钮可实现1mA步进,通过显示器可观察到效果
输出电流测试
这里给出接上5Ω负载电阻的电流测量结果,见表
由测量结果可以看出,在改变负载条件下,电流值没变化,可以得出结论:在有效的电压范围内,输出电流与负载无关。
但是给定值与实际值有偏差,而且呈都是偏差6MA,后来测DA输入值,发现给定值被置低了,以上数据并不是十分稳定,电路设计有待改善。
结论
经过对系统的电流输出的测试,本设计基本达到以下要求:
(1)输出电流范围为20mA~2000mA,步进1mA;
(2)可同时显示电流的给定值和实测值,测量误差的绝对值≤测量值的%+3个字;
(3)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的%+1 mA。
参考文献
[1]赵亮,侯国锐.单片机C语言编程与实例.[M]北京:人民邮电出版社,2003
[2]曲学基,王增福,曲敬铠.稳定电源实用电路选编.[M]北京:电子工业出版社,2003
[3]黄智亮.全国大学生电子设计竞赛训练教程.[M]北京:电子工业出版社,2005
[4]张毅刚,刘杰.MCS-51单片机原理及应用.[M]哈尔滨:哈尔滨工业大学出版社,2004
[5]那文鹏,王昊.通用集成电路的选择与使用.[M]北京:人民邮电出版社,2004
[6]谢嘉奎,宣月清,冯军.电子线路-线性部分(第四版):高等教育出版社
附录1原理图
单片机最小系统原理图:
矩阵键盘原理图:
电源模块原理图
DA转换模块原理图:
AD转换模块原理图:恒流源原理图
附录2 PCB图
单片机最小系统
PCB
4*4矩阵PCB图:
电源模块PCB图:
DA转换PCB图:
AD转换模块原理图:恒流源PCB图。