当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路--电源电路,直流电源趋向多功能和数字化方向。直流稳压电源的供电电源大都是交流电源,当交流供电电源的电压或负载电阻变化时,稳压器的直流输出电压都会保持稳定。 直流稳压电源随着电子设备向高精度、高稳定性和高可靠性的方向发展,对电子设备的供电电源提出了高的要求。本文以单片机为核心,构成可同时控制6路正负输出,具有定点显示和巡回显示等功能的数控直流稳压电源。
1 系统的功能和特点
系统有6路电压输出,其中3路为正,3路为负。电压调节范围为0~35 V ,最大输出电流(A )分别为5,2和1,具有过流保护功能。数字显示有5位,其中1位显示路号,1位显示电压极性,另3位显示输出电压。键盘设有16个键,数字键0~ 9及小数点键用于设定电压输出路号及幅值;“↑”键为逐步增加输出电压或路号;“↓”键为逐步减少输出电压或路号;“C L R ”键用于清除错误输入,恢复原先状态;“# ”键用于启动电压设定状态和确认新设定;“@ ”键为巡回显示和定点显示切换键。
本系统设有巡回显示、定点显示和电压设定3种工作状态。当接通电源时,自动设置为巡回显示状态,它将每隔4 s 在显示器上巡回显示不同路号和相应电压。若再按“# ”,则电压显示值出现闪烁现象,表示进入电压设定状态。如果依次按下“2”,“6”,“·”,“3”,再按“# ”键确认,新的电压26.3 V 为实际输出,设定完毕。也可以在电压设定状态下, 用“↑”键和“↓”键以0. 1 V 的增量设定电压。系统设有自动识别功能,将不接受超出使用范围的电压设定值。在未按“# ”键之前,对误输入的电压可以用“C L R ”键清除后重新设定。在定点显示态,可用数字键、“↑”或“↓”键选择监视的电压路号。同样地,系统将不接受超出实际范围的路号设定值。输出电压的正负值由系统自动给出,无需用户输入。巡回显示和定点显示的切换按“@”键即可。
2 硬件电路分析
系统选用A T 89C 51单片机为控制核心,完全兼容了8031单片机的指令和功能。同时,它还增加了内置4 K B 闪速存储器,具有128 B 内部R A M ,3个I/O 口,功耗低,体积小巧,不需扩展存储器就能满足系统要求。图1为系统硬件原理图。
系统采用了开环控制方式。一般说来,开环控制的抗干扰能力和精度差〔3 〕。但由于本电压输出电路采用了特有的结构,能实现无静差调节。这样,可以省去类似文献〔2〕电路中的A /D 采样和比较电路,既降低了成本,又简化了结构。其控制算法简单,可靠性显着增强。D /A 输出一般很稳定,但分辨率有限。按本系统的设计要求,输出电压的分辨率必须大于0.1 V .已知稳压输出量程为0~3 5V , 若D /A 的量程和参考电压以5V 计,则D / A 的分辨率B应满足2B> 35/0.1,B> 8.4.故可采用10或12位的D /A 转换器。为保证一定裕量,系统采用D A C 1210.本系统具有多路正负输出,考虑到高位D /A 转换器价格较高。采样-保持电路由数据锁存器74L S 273,以及6块采样-保持器L F 398组成。当D A C 1210输出第N 路(1≤N≤6)控制电压时,通过74L S 273的第N 位输出状态的改变,使相应路的采样/保持器L F 398由保持状态变为采样状态。然后,再恢复成保持状态,从而实现对控制电压的采样和保持。
2.3 显示和键盘接口电路
考虑到本系统监控软件的负担较重,显示采用了静态显示模式〔5 〕。不难发现,电源输出的极性决定于输出电压回路的电路结构,与路号有一一对应的关系。因而,可由软件自动设置。故两块数码管完全可以共享一组8位显示数据。这样5位L E D 只需设4个锁存器(74L S273)。键盘电路设置于P 1 口,为典型的4×4中断扫描键盘。
3 系统软件设计
本软件设计通过合理安排中断和划分各功能模块,设置统一的状态字,有效克服了系统的功能多、状态转换复杂给软件设计带来的困难。系统软件流程图,如图3所示。
3.1 状态字设计
状态字(SB )占用一个字节,有效位为5位。状态字通道被启动后,控制指定的设备完成规定的操作,同时,通道在执行对外围设备控制的过程中,要记录通道与设备执行情况,为此系统在主存中安排另一个固定单元,用于存放这些被记录状态,有
S B .0 = 1,表示处于巡回显示状态, SB .0 = 0,无意义;
S B .1 = 1,表示处于定点显示状态, SB .0 = 0,无意义;
S B .2 = 1,表示处于电压设定状态, SB .0 = 0,无意义;
S B .3 = 1,表示电压设定值有误, SB .3 = 0,表示电压设定值正确;
S B .4 = 1,表示电压非首次数字设定,SB .4 = 0,表示电压首次数字设定。
3.2 各功能处理模块
主程序。进行系统初始化设定(I/O 口、定时、中断、状态字、各数据缓冲区等初始化),等待中断。定时中断服务程序。输出电压的稳定性是稳压器最重要的指标。考虑到采样-保持器输出有一缓慢的下降速率(当L F 398保持电容为0.1 μF 时,下降速率约200 V ·m in- 1 ),故需定时对其进行保持和电压刷新。本服务程序完成各路电压值刷新和显示。中断申请由定时/计数器T 0 提出,每隔130 m s 中断一次,中断服务级为最高级。 键盘中断服务程序。根据键码和当前状态字,跳转相应的功能处理程序,中断由IN T 0 引入。 键扫描译码程序。将0~9、小数点,以及其它按键译成对应00H ~0F H 的十六进制码。显示译码程序。将键码缓冲区的内容译成七段码并存入相应的显示缓冲区。 D /A 译码程序。将键码缓冲区的内容译成对应的12位D /A 二进制数码,并存入相应的D /A 数据缓冲区(一路输出占2 B )。显示子程序。根据路数,将该路数据缓冲区的内容与屏蔽字相或后,送对应数管。错程识别序1.在电压设定状态,判定键入数字码后,键码缓冲区数据格式的错误,恢复键入前的状态并给出相应标志(SB .3)。错程识别序2.在电压设定状态,判定键入“↑”键、“↓”键后,键码缓冲区数据格式的错误恢复键入前的状态,并给出相应标志(S B .3)。
3.3 数据缓冲区设定
互方之一定义用于数据交换的底层内存分配机制。另一方总是使用已公布的接口来分配或释放缓冲区,从而避免潜在的不一致。这种模型需要双方都坚持一个可能与软件基本功能无关的编程约定,而且在一般情况下,这个编程约定可能使代码更加不可重用。
驱动数据交换的那一方将负责管理操作 —— 当该方充当数据提供者时,这是一个相对适当的方案。 然而,当该方充当数据使用者时,事情就变得棘手了。为避免去发现数据大小,数据使用者可以分配一个任意大小的缓冲区。如果该数据缓冲区没有足够大,就必须对数据提供者发出多次调用。因此这种方法需要围绕该交互调用编写额外的循环代码,以备多次调用之需。
(1) D /A 数据缓冲区。存放各路输出的D /A 值二进制码,每路占2 B ,共12 B .(2) 键码缓冲区。在电压设定状态,存储键入的数值码(包括小数点),一键码用4位二进制数表示。故每路占2 B ,共12 B .(3) 显示缓冲区。 存储各路输出电压显示七段码(含路数、输出极性、电压大小),每路占4 B ,共24 B .(4) 键码备份缓冲区。进入电压设定状态时,程序将复制当前路键码缓冲区的内容并存入此区,共2 B .(5) 显示备份缓冲区。进入电压设定状态时,程序将复制当前路显示缓冲区的内容并存入此区,共4 B .
除了上述困难之外,安全性也证明是传统方法存在的问题:传统缓冲区管理方案无法容易地防止恶意用户刻意改写数据缓冲区,从而导致程序异常。考虑到所有这一切,设计一个适当的数据缓冲区接口就势在必行!
4 结束语
本文将单片机控制回路与无静差的电压输出回路有机结合,构成一款新式多路数字可调功率直流稳压电源,非常适合一般教学和科研使用。单片机、D A C 与其它外围电路独立供电。D A C 采用高稳定性的基准电源为参考电压,面板电源开关可设计成仅切断输出回路的供电电源。还要注意选择特性较理想的、功率适当的晶体管,加装大小适当的散热片。这样,一般不需太多调试就能获得成功。因此,本电源推广容易,可望获得广泛的应用。