标题：直流电流
基本概念
方向、大小保持不变的电流称为直流电流，通称直流。即在单位时间内通过导体横截面的电量相等，则称之为稳恒电流或恒定电流，简称为直流(Direct Current)，记为DC或dc，直流电流要用大写字母I表示。
直流电流I与时间t的关系在I－t坐标系中为一条与时间轴平行的直线。
数控直流电流源的设计
在电子设备中经常用到稳定性好、精度高、输出可预置的直流电流源。本文设计的数控直流电流源能够很好地降低因元器件老化、温漂等原因造成的输出误差，输出电流在20mA～2000mA可调，输出电流可预置、具有“+”、“-”步进调整、输出电流信号可直接显示和语音提示等功能。硬件电路采用凌阳单片机SPCE061A为控制核心，利用闭环控制原理，加上反馈电路，使整个电路构成一个闭环，在软件方面主要利用PID算法来实现对输出电流的精确控制。该系统可靠性高、体积小、操作简单方便、人机界面友好。
系统硬件实现方案
本设计采用单片机作为主要控制部件，通过键盘预置输出电流值并采用液晶模块实时显示。整个系统硬件部分由微控制器、电压-电流转换、键盘、显示、直流稳压电源和语音提示等模块组成。系统组成框图如图1所示。
微控制器是整个系统的核心，负责整个系统的运作。为了实现简化硬件电路、系统性能稳定可靠，便于实现语音播报、键盘设置和信息的实时显示等功能的协调，通过多种方案论证后，微控制器选用凌阳公司的SPCE061A，该单片机内部集成有ADC、DAC、PLL、AGC、DTMF、LCD-Driver等电路(与IC型号有关)。它采用精简指令集(RISC)，指令周期均以CPU时钟数为单位。另外，它还兼有DSP功能，内置16位硬件乘法器和加法器，并配备有DSP拥有的特殊指令，大大加速了各种算法的运行速度。同时可以在Windows环境下使用凌阳单片机应用开发工具，该工具支持标准C语言和凌阳单片机汇编语言，集汇编、编程、仿真等功能于一体，大大加快了软件开发过程。用该单片机作为控制器比较合适，在硬件电路简单的前提下，容易实现A/D和D/A转换、语音提示、PID运算等功能。
显示模块主要实现的功能是显示设置的电流输出值和其它人机交互信息。本部分可以采用七段数码LED显示器，显示数字、简单字母和小数点等信息，但由于其显示信息单一，人机交互不友好，本文采用字符型液晶显示屏LCDSMC1602A模块。该模块具有轻薄短小、低压微功耗、体积小、无辐射、平面直角显示及影像稳定不闪烁等优点，且可视面积大、面效果好、分辨率高、抗干扰能力强，适合用于显示字母、数字、符号等信息，而且不需要扩展过多外围电路，可由单片机直接进行控制输出显示。
电压-电流转换模块由精密运放与三个晶体管组成的达林顿管电路构成。转换电路利用晶体管平坦的输出特性和深度负反馈电路使输出电流稳定，如图2所示，此V/I转换电路的带负载能力强，电流输出范围达0~3A。输出电流Io经反馈电阻Rf得到一个反馈电压Vf，Vf= V11-V12，通过R5、R6加到运算放大器的两输入端，设运放两端的电为V1、V2，Vi由单片机DAC输出。因为理想运放的输入电流约等于零，且V1=V2，则：
V12[1-R6/(R2+R6)]+ViR6/(R2+R6)=V11R1(R1+R6)
由于V12 =V11-Vf，则：
V11R2/(R2+R6)+(ViR6-VfR2)/(R2+R6)=V11R1/(R1+R5)
令R1=R2=10kW，R5 =R6 =1kW，则有Vf=ViR6/R2=Vi/10
若暂不考虑反馈时，
Io=Vi/(10Rf)
由此可见，输出电流的标定由D/A转换所得输出电压Vi和Rf的阻值决定，成线性变换。Rf由大线径铜丝制作，其温度系数很小(5ppm/℃)，大线径可以使其温度影响减至最小。3个三极管应选用大功率管TIP122，且使用散热片，以保证管子工作在线性区。
电压-电流转换模块还有另外一种方案，即采用三个运放构成输出电流可变的电流源，如图3所示。输出电流I=Vi/R1，为使R1两端的电压保持恒定，由差分放大器IC1b通过射随器IC1c监测R1两端的电位，此电位经IC1b的7脚加到比较器 ICa的反相输入端与Vref比较，根据比较结果使比较器的输出端变化，直到平衡为止，即Vr1=Vi。电路中的电容用于补偿ICa的频率，减少控制环路的延时。只要R1=R2=R3=R4=R5，此电路的性能较好，但带负载能力不强，环路延时补偿对电路的稳定有较大影响。
系统键盘模块可以采用独立式或行列式(矩阵式)连接方式，该模块主要完成对输出电流和其它信息的设定。直流稳压电源模块为整个系统供电，语音模块实现语音提示，使系统设计更具人性化，系统具有友好的工作界面。凌阳单片机内部集成有ADC、DAC、PLL、AGC、DTMF等模块，语音功能可由软件编程实现，不需要外接任何电路，有效利用了系统资源。
系统工作及软件流程
通过以上对各模块的分析，系统在工作过程中由SPCE061A单片机将被预置的电流通过换算进行D/A转换，以输出电压驱动V/I转换电路，并将该电流对应的电压通过闭环回路，经信号处理电路作A/D转换后输入单片机系统，通过PID算法调整电流输出。整个系统工作流程如图4所示。
系统软件设计在凌阳十六单片机应用开发工具unSPIDE1.16.1中进行，采用凌阳单片机汇编语言和标准C语言对单片机进行编程，以实现各种功能。主要包括: (1)系统的初始化，包括各外围接口设备的初始化；(2)键盘输入；(3)D/A、A/D转换； (4)PID算法进行电流调整；(5)语音提示和电流显示。其主程序流程如图5所示。 
A/D转换部分程序主要用于将采样电阻采集的模拟电压信号转换为数字信号。采样信号由IoA6输入并直接送入缓冲器P_ADC_MUX_Data，在ADC自动方式被启用后，会产生一个启动信号，此时RDY=0，DAC0的电压模拟量与外部的采样模拟量相比较，以尽快找出外部信号模拟量的数字量，A/D转换的结果保存在SAR内。当10位A/D转换完成时，RDY=1，此时，通过读P_ADC_MUX_Data单元，可以获得10位A/D转换的数据。其IRQ1 中断服务程序的流程如图6所示。
PID算法主要用于修正实际输出的电流值和设定值的偏差，调节下一次的输出值，使输出更接近于设定值，提高精度。具体控制过程为：单片机经A/D转换芯片读出实际电流Ik,然后和设定的电流Is比较,得出偏差值Ek=Is-Ik，单片机根据Ek的大小，调用PID公式，计算出本次电流调节的增量ΔIk，然后根据前一次的D/A转换输出电流Iq-1,计算出本次的输出电流Iq。
离散增量PID的计算公式为
ΔIk=Kp[(Ek-Ek-1)+K1Ek+KD(Ek-2Ek-1+Ek-2)]
=Kp(Ek-Ek-1)+K1’Ek+KD’(Ek-2Ek-1+Ek-2)
式中: K1’= Kp*K1, KD’=Kp * KD，Ek为本次采样的电流误差， Ek-1为上次采样电流误差， Ek-2为再次采样电流误差值。
为了测试系统运行的准确性和可靠性，可以对设定量与反馈量进行测试，误差在0.01%之内，并且运行稳定，达到了预期目的，还增添了特色的音频播放设计。凌阳SPCE061A单片机在该系统中使用，使系统功能齐全、外围电路简单、输出精确，软件编程采用C和汇编混合编程来实现，集两种优点于一身，丰富了编程思想,体现了很大的优越性。
直流电流传感器
一种直流电流传感器，包括环形磁芯，在环形铁心上绕制激励绕组 WS、反馈绕组W2，其特性在于：在环形铁心上绕制检测线圈WM，在激励绕组WS的两端接处理电路，激励绕组WS处理电路为激励绕组WS提供激励电流IS，并将反映激励电流IS的电压信号送到计算机；在检测线圈WM的两端接处理电路，检测线圈WM处理电路将检测线圈WM获得的感应电势转换为正负半波有效值的差值信号，送到反馈绕组W2的处理电路，并将检测线圈WM获得的感应电势的电压信号送到计算机；在反馈绕组W2的两端接处理电路，计算机根据获得的激励电流IS和感应电势的大胸制反馈绕组W2处理电路的工作状态，反馈绕组W2处理电路将上述正负半波有效值的差值信号转换为电流I2，送入反馈绕组W2中，并将反映反馈电流I2的电压信号送到计算机；计算机将上述三组不同的电压信号进行处理，将反映被测电流I1大小的电压信号送到显示器显示。
无源直流电流调理器
电流环隔离器是单片两线制隔离接口模块，该模块内部包含有电流信号调制解调电路、信号耦合隔离变换电路等。很小的输入等效电阻，使该模块的输入电压达到超宽范围（7.5—32V），以满足用户无需外接电源而实现信号远距离、无失真传输的需要。内部的陶瓷基板、印刷电阻工艺及新技术隔离措施使器件能达到3KVAC绝缘电压和工业级宽温度、潮湿、震动的现场恶劣环境要求。产品使用非常方便无需外接任何元件即可实现4-20mA电流环隔离或信号一进二出、二进二出等变换功能。
用开关改变直流电流方向
（1）用一只双刀双掷开关是最简易的方法。 
在开关的输入端分别接正极和负极，输出端分别接负极和正极，在动触点上接上负载就可以了。 
（2）用一只容量和负载相当的小型继电器或接触器，接法同（1）。再用一只开关或电路控制小型继电器的线包通断，可方便地实现自动控制。