1、数控直流电流源设计数控直流电流源(F题)摘要:本设计以AT89S52为核心,通过A/D、D/A转换、V/I转换及独特的算法实现了高精度的,电流输出范围为20mA2000mA的数控直流电流源。该电流源具有电流可预置,1mA步进,同时显示给定值和实测值等功能。关键字:89S52,数控电源,V/I转换Numerical Controlled Constant-Current SourceAbstract : The paper expounds the design of the numerical controlled constant-Current source. The system cor
2、e is AT89s52.The A/D D/A V/I converts and the specific arithmetic is used to carry out high precision and the current output range from 20mA to 2000mA.The source realizes that the output current can be set, 1mA adjusted step by step, the display of the present value and the practice measure value。Ke
3、y words : AT89S52, Numerical controlled source, V/I converter目 录1. 系统设计 31.1 设计要求 31.1.1 基本要求 31.1.2 发挥部分 31.2 总体设计方案 41.2.1 方案论证与比较 42. 单元电路设计 72.1 恒定电流源电路设计 72.2 控制器电路设计 82.2.1 单片机最小系统设计 82.2.2 A/D、D/A电路设计 82.3 键盘电路设计 92.4 显示器电路设计 102.5 稳压电源电路 103. 软件设计 113.1 软件设计流程图 113.2 软件功能、算法及源程序: 124. 系统测试 1
4、44.1 测试使用的仪器 144.2 指标测试和测试结果 144.2.1 输出电流范围测试 144.2.2 步进调整测试 144.2.3 输出电流测试 144.2.4 结论 155. 结语 15参考文献 16附录1 主要元器件清单 16附录2 单片机最小系统原理图 17附录3 模块电路原理图 17附录4 单片机最小系统PCB 19附录5 模块电路PCB 19附录6 操作说明: 201. 系统设计设计并制作数控直流电流源。输入交流200240V,50Hz;输出直流电压10V。其原理示意图如下所示。图1.1 数控直流电流源原理示意图1.1 设计要求题目要求设计并制作数控直流电流源。输入交流2002
5、40V,50Hz;输出直流电压10V。其要求如下:1.1.1 基本要求(1)输出电流范围:200mA2000mA;(2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值给定值的1+10 mA;(3)具有“+”、“-”步进调整功能,步进10mA;(4)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值输出电流值的1+10 mA; (5)纹波电流2mA;(6)自制电源。1.1.2 发挥部分(1)输出电流范围为20mA2000mA,步进1mA;(2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值测量值的0.1+3个字;(3)
6、改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值输出电流值的0.1+1 mA;(4)纹波电流0.2mA;(5)其他。1.2 总体设计方案1.2.1 方案论证与比较(1)恒定电流源模块方案方案一:采用开关电源的开关恒流源。其组成方框图如图1.2所示。图中C1、C2为滤波电容;K是开关器件;D是续流二极管;L是扼流圈;PWM是脉宽调制电路;KF是电流反馈电路;R0是电流取样电阻。在原理图电路上,通过精选元器件和采用合理的结构设计,可以使电路的分布参数得到有效控制。采用开关电源的开关恒流源主要特点是:振荡反馈电容小,阻抗大,反馈电流小。图1.2 采用开关电源的开关恒流源组成框图方案
7、二:采用集成稳压器构成的开关恒流源。图1.3所示是是三端集成稳压器构成的开关恒流源。当设定电阻R一定时,电路给负载Ro提供一恒定电流当RL发生变化时,由IC的输入输出压差进行自动补偿而使负载电流保持不变。图1.3 采用集成稳压器构成的开关恒流源原理框图方案三:采用集成运放的线性恒流源。该恒流源输出的电流与负载无关, 通过使用两块构成比较放大环节,功率管构成调整环节,利用晶体管平坦的输出特性和深度的负反馈电路可以得到稳定的恒流输出和高输出阻抗,实现了电压电流转换。其原理框图如图1.4所示。图1.4 采用集成运放的线性恒流源原理框图综上所述,采用方案三,使用低噪音、高速宽带运放LF356和中功率管
8、TIP42C等构成一个恒流源电路。(2)控制器模块方案方案一:采用FPGA作为系统的控制模块。FPGA可以实现复杂的逻辑功能,规模大,稳定性强,易于调试和进行功能扩展。FPGA采用并行输入输出方式,处理速度高,适合作为大规模实时系统的核心。但由于FPGA集成度高,成本偏高,且由于其引脚较多,加大了硬件设计和实物制作的难度。方案二:采用AT89S52作为控制模块核心。单片机最小系统简单,容易制作PCB,算术功能强,软件编程灵活、可以通过ISP方式将程序快速下载到芯片,方便的实现程序的更新,自由度大,较好的发挥C语言的灵活性,可用编程实现各种算法和逻辑控制,同时其具有功耗低、体积小、技术成熟和成本
9、低等优点。基于以上分析,选择方案二,利用89S52单片机将电流步进值或设定值通过换算由D/A转换,驱动恒流源电路实现电流输出。输出电流经处理电路作A/D转换反馈到单片机系统,通过补偿算法调整电流的输出,以此提高输出的精度和稳定性。在器件的,D/A转换器选用12位优质D/A转换芯片 TLV5618,直接输出电压值,且其输出电压能达到参考电压的两倍,A/D转换器选用高精度16位模数转换芯片AD7705。(3)显示器模块方案方案一:使用LED数码管显示。数码管采用BCD编码显示数字,对外界环境要求低,易于维护。但根据题目要求,如果需要同时显示给定值和测量值,需显示的内容较多,要使用多个数码管动态显示
10、,使电路变得复杂,加大了编程工作量。方案二:使用LCD显示。LCD具有轻薄短小,可视面积大,方便的显示汉字数字,分辨率高,抗干扰能力强,功耗小,且设计简单等特点。综上所述,选择方案二。采用19264D汉字图形点阵液晶显示模块同时显示电流给定值和实测值。(4)键盘模块方案方案一 :采用独立式按键电路,每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点为当按键较多时占用单片机的I/O口数目较多。方案二 :采用标准4X4键盘,此类键盘采用矩阵式行列扫描方式,优点是当按键较多时可降低占用单片机的I/O口数目,而且可以做到直接输入电流值而不必步进。 题目
11、要求可进行电流给定值的设置和步进调整,需要的按键比较多。综合考虑两种方案及题目要求,采用方案二。(5)电源模块方案 系统需要多个电源,单片机、A/D、D/A、使用5V稳压电源,运放需要12V稳压电源,同时题目要求最高输出电流为2000mA,电源需为系统提供足够大的稳定电流。综上所述,采用三端稳压集成7805、7812、7912分别得到+5V和12V的稳定电压,再外对LM7812加功率管构成扩流电路,达到可以提供3A以上的电流。利用该方法实现的电源电路简单,工作稳定可靠。122 系统组成 经过方案比较与论证,最终确定系统的组成框图如图所示。图1.5 系统组成框图2. 单元电路设计2.1 恒定电流
12、源电路设计 恒流源电路主要由运算放大器和大功率管等组成,如图2.1所示。图中U1是LF356,这是一个JEFT输入的高速宽带运算放大器,可以稳定工作2V40V之间。具有输入阻抗高、带宽高(5MHz)、速度快(12V/us)、噪声低等优点。U1A、R3、R5组成电平转换电路,保证U1B的同相端电位随直流电压VAC的变化而同步变化,使得D/A转换后的电压值与R5上的电压值相等,即满足VAB=VIN,以避免直流电压VAC变化时电路的输出电流也随之变化。U1B、Q2与Q3构成电压跟随器,因此有VAB=VAC,该电压跟随器和R5等一起组成一个V/I转换电路。 由此得到恒流源输出电流的大小为: 对于题目基
13、本要求中的输出200mA2000mA,在实际电路测试中容易达到,但考虑到发挥部分的输出20mA2000mA,受限于元器件的来源,我们采用了分段控制电路,在软件上也加以辅助,从而用较常见的器件实现了题目发挥部分的输出20mA2000mA的要求,取得了良好的效果。图2.1 恒流源电路图2.2 控制器电路设计2.2.1 单片机最小系统设计通过键盘模块输入给定的电流值或是步进调整信号传送给单片机,单片机在接受到信号后进行处理运算,并显示其给定的电流值,然后经D/A转换以输出电压,驱动恒流源电路实现电流输出,并将采样电阻上的电压经过A/D转换输入单片机系统,通过补偿算法进行数值补偿处理,调整电流输出,并
14、驱动显示器显示当前的电流值。 最小系统的核心为AT89S52,为了方便单片机引脚的使用,我们将单片机的引脚用接口引出,电路如图2.2所示.P0口和P2.0P2.3是LCD接口;P3口作为A/D与D/A转换接口,其中P3.0P3.2是D/A转换器的接口;P3.3P3.7是A/D转换器的接口;P1口为键盘接口。图2.2 由AT89S52为核心的单片机最小系统2.2.2 A/D、D/A电路设计(1)D/A转换器根据设计基本要求,电流的输出范围为200mA2000mA,将最高输出电流2000mA进行十进制二进制转换有要满足步进为1mA的要求,需选用十二位的D/A转换器,TLV5618是较好的选择。TL
15、V5618是带有缓冲基准输入(高阻抗)的双路12位电压输出DAC。DAC输出电压范围可编程为基准电压的两倍,其输出电压Vout=2VrefD/4096有两个输出端口A和B,且它们可以同步刷新。此外,该器件还包含上电复位功能。通过3线串行总线可对TLV5618实现控制,可采用单5V电源进行供电。在快速、慢速模式下功耗分别为8mW和3mW,输入数据的刷新率可达1.21MHz。(2)A/D转换器 A/D转换器选用带信号调理、1mW功耗、双通道16位AD转换器AD7705。其串行数据接口包括5个:片选输入口 ,串行施密特逻辑输入时钟SCLK,数据输入口DIN,转换数据输出口DOUT,指示数据准备就绪的
16、状态信号输出口。在电路中,AD7705与单片机P1.5P1.7口相接,通过编程模拟AD7705的通信时序实现对AD7705的操作,然后通过程序查询该管脚是否为低电平,从而实现对AD7705中寄存器数据的读取。如图2.3所示为A/D与D/A转换电路图,其中CON8接口与单片机最小系统的P1口相接。图2.3 A/D与D/A转换电路图2.3 键盘电路设计在设计中,使用标准的4x4键盘,可以实现09数字输入,“+”、“-”、“设置”。其电路图如图2.4所示。图2.4 键盘电路图2.4 显示器电路设计 本设计采用RT19264D STN型汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字
17、(16X16点阵)、128个字符(12X16点阵)及64X256点阵显示RAM(GDRAM)。可显示内容为192列 64行,还带多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。RT19264D与单片机接口:8位或4位并行/3位串行.在本设计中,采用8位并行接法,RT19264D与单片机P2口相连,用于显示设定值与当前测量值。其接口如图2.5所示。图2.5 RT19264D接口2.5 稳压电源电路 在本设计中,运放需12V供电,单片机和A/D、D/A需5V供电,采用三端稳压器7805、7812、7912构成一稳压电源,由于78及79系列稳压器最大输出电流只有1.5A,而题目要求输出电流
18、范围是200mA2000mA。为了给系统提供更大的电流,需外加功率管进行扩流,电路如图2.6所示。输入电压由环形变压器和全波整流滤波电路产生;图中Q5是过流保护取样电阻,当输出电流增大超过一定值时,Q5上压降增大,促使NPN1向截止方向转化;U3用于产生一直流电压VREF,为D/A转换器TLV5618提供参考电压;C18用于抑制电源纹波。图2.6 稳压电源电路3. 软件设计 软件设计采用C语言,对89S52进行编程实现各种功能。软件设计的关键是对A/D、D/A转换器的控制。软件实现的功能是: 确定电流步进调整 电流给定值的设置 测量输出电流值 控制TLV5618工作 控制AD7705工作 对反
19、馈回单片机的电流值进行补偿处理 驱动液晶显示器显示电流设置值与测量值3.1 软件设计流程图图3.1 单片机程序流程图3.2 软件功能、算法及源程序:R 源程序用Keil C51编写,在XP系统下调试成功。以下给出部分源程序:7705初始化子程序:/*/void MX7705_Init() /ad7705初始化 unsigned char i; ADC_CLK=1; /防止接口迷失 ADC_DIN=1; for(i=0;i200;i+)/prevent interface from losting ADC_CLK=0;_nop_(); ADC_CLK=1;_nop_(); WriteToReg_
20、ADC(0x20); /write 0x20 to communication register to choose channel 0 /and clock register for the next one to write WriteToReg_ADC(0x00); /写0x00到时钟寄存器,指定晶振频率为1MHz. WriteToReg_ADC(0x10); /write 0x10 to communication register to choose channel 0 /and setup register for the next one to write WriteToReg_
21、ADC(0x44); /写0x44到设置寄存器,指定增益为1, buffer off, FSYNC=0, and self-calibration 串行DA TLV5618DAC子程序/TLV5618DAC子程序,三线串行方式void set_dac(unsigned int vcon)char i;int svcon;svcon=vcon|0x8000;/vcon最高位置1,选择TLV5618的A通道DAC_CS=0;/.5618的CS=0,允许片选for(i=0;i16;i+)DAC_DIN=svcon&0x8000;/串行方式送16位数据svcon=1;DAC_CLK=0;DAC_CLK
22、=1;DAC_CS=1;/禁止片选return;44键盘子程序uchar key()uchar i;keytruth=0;for(i=0;i200;i+) uchar key_return; loop:P1=send; get=P1;/get是接收回来的键值 get2=get;/保留get的值,不用也应该可以 test=get2|0xf0;/屏蔽高位,如果有按键的话低四位不全为一 if(test=0xff)/没有按键的话就移位,只限高四位 send=send1; send=send|0x0f;/因为移位后低位出现0,所以将其屏蔽,令低四位全为一 if(t3)/控制移位次数,当零移到最高位时作一
23、次大循环,再装入初始值 t+; goto loop; else t=0; send=0xef; /goto loop; else/有按键的情况 key_return=cheak(get);dy();dy();keytruth=1;return key_return; 4. 系统测试4.1 测试使用的仪器测试使用的仪器设备如表4.1所示表4.1 测试使用的仪器设备序号名称、型号、规格数量备注1WYK-303B2 直流稳压稳流电源12DT-9202 数字万用表131/2位3UT56 数字万用表141/2位4SC-7401 数字万用表15位4.2 指标测试和测试结果4.2.1 输出电流范围测试 由于
24、在程序设计上限制了电流输出范围是202000mA,当给定值在量程内时显示“设置成功”;当给定值超过量程时将显示“超出2000mA!请重新设定”4.2.2 步进调整测试 在量程范围内,通过“”、“”按钮可实现1mA步进,通过显示器可观察到效果4.2.3 输出电流测试随机设置给定值,记录设定值和实测值,测量结果见表4.2给定值20507532956395716891956实测值20507532956395616891955误差绝对值000001.0400.054.2.3改变负载电阻,输出电压在10V以内变化时的电流测试 这里给出接上2.2负载电阻的电流测量结果,见表4.3给定值2010032916
25、89实测值201003291689电流变化绝对值0000由测量结果可以看出,在改变负载条件下,电流值没变化,可以得出结论:在有效的电压范围内,输出电流与负载无关。4.2.4 结论 经过对系统的电流输出的测试,本设计基本达到以下要求:(1)输出电流范围为20mA2000mA,步进1mA;(2)可同时显示电流的给定值和实测值,测量误差的绝对值测量值的0.1+3个字;(3)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值输出电流值的0.1+1 mA。5. 结语 本系统以单片机AT89S52为核心部件,利用A/D进行数值采集,D/A补偿等技术结合并配合补偿算法实现了题目中要求的精度。
26、在系统设计过程中,力求硬件电路参数合理,线路简单,发挥软件编程灵活的特点,通过多次的调试,不断提高系统的精度和电流的稳定性,来满足系统设计的要求。由于时间关系,该系统还有许多值得改进的地方。 在本次设计的过程中,遇到了许多困难和意料之外的事情,设计进度比较慢,但通过仔细的分析和进行多方面的调整后解决了问题。我们从中体会了共同协作和团队精神的重要性和提高了自身的综合能力。参考文献1赵亮,侯国锐.单片机C语言编程与实例.M北京:人民邮电出版社,20032曲学基,王增福,曲敬铠.稳定电源实用电路选编.M北京:电子工业出版社,20033黄智亮.全国大学生电子设计竞赛训练教程.M北京:电子工业出版社,2
27、0054张毅刚,刘杰.MCS-51单片机原理及应用.M哈尔滨:哈尔滨工业大学出版社,20045那文鹏,王昊.通用集成电路的选择与使用.M北京:人民邮电出版社,2004附 录附录1 主要元器件清单序号元器件名型号数量备注1单片机AT89S5212AD转换器AD770513DA转换器TLV561814运算放大器LF35625LCD显示器RT19264D1附录2 单片机最小系统原理图附录3 模块电路原理图附录4 单片机最小系统PCB附录5 模块电路PCB附录6 操作说明:1. 上电之后,直接按数字键输入电流值,按其他键无效,数据格式为四位,不够的前面补零。当输入四位的电流值之后如果没有超出20mA2000mA的话,第三行显示“设置成功”,第一行显示的是给定的电流值,第二行是测得的电流值。2. 按右下脚的“+”“-”可以实现步进,步进单位为1mA。3. 按右下脚的“设置”键可以直接设置20mA2000mA的电流值,通过数字键设定,数据格式为四位,不够的前面补零。操作流程:忽略此处.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1