具有输出信号显示功能的可编程电源及其显示控制方法 技术领域 本发明涉及一种具有输出信号显示功能的可编程电源, 同时也涉及该可编程电源 实现输出信号显示功能的显示控制方法, 属于数字电源技术领域。
背景技术 可编程电源是一种自身的某些功能或参数可以通过计算机软件编程控制的数字 电源。因此, 可编程电源一般配备了 RS-232、 USB、 LAN、 GPIB 等接口。通过这些接口可以把 电源集成到自动化测试系统内, 这样就可与其他可编程仪器共同组成测试效率极高的专业 测试系统。可编程电源有许多种类, 可分为线性电源、 开关电源、 直流电源、 交流电源等, 其 中线性直流电源中又分为恒压源、 恒流源和恒压恒流源。
图 1 为一种典型的可编程电源的整体结构框图。可编程电源一般由下面几个单元 组成, 每个单元的功能如下所述 :
① CPU : 中央处理单元 ; 它是整个可编程电源的控制中心, 电源的各个部分和资源 都由它来控制、 调配和监控, 相当于 “大脑” 的作用 ;
②键盘 : 人机交互最直接最常用的方式, 用户可通过键盘控制电源的输出以及进 行其它功能的设置 ;
③显示单元 : 主要作用是监控电源的参数和状态, 包括设置参数、 输出参数、 输出 状态等等 ;
④外围接口 : 接口主要包括 RS232、 GPIB、 USB、 LAN ; 它起到连接上位机和网络的作 用, 这样用户可以通过发命令等方式来远程控制和监控电源, 甚至可以实现直接操作键盘 实现不了的功能 ;
⑤ DA : 数模转换器 ; CPU 设置功率电路参数时, 需要通过模数转换器来把数字信号 转化成模拟信号, 因为 CPU 处理的是数字信号, 而电源的功率电路处理的是模拟信号 ;
⑥ AD : 模数转换器 ; 读回功率电路的输出值和输出状态时, 功率电路给 CPU 传递这 些信息时需要通过模数转换器, 即把模拟信号转化为数字信号 ;
⑦模拟功率输出和测量电路 : 产生用户所设置的输出信号, 并且实时读回电路的 输出值和状态信息。
模拟功率输出部分是整个可编程电源产生功率输出信号的核心部分, 下面就来具 体介绍此部分的特性和工作原理。
如图 2(a) 所示, 理想恒压源输出阻抗应该在任何频率下为零, 不论输出电流如何 变化, 输出电压都会保持在恒定状态。同样, 图 2(b) 所示的理想恒流源的输出阻抗在任何 频率下为无穷大, 根据负载的变化, 调整输出电压, 使输出电流保持恒定状态。图 3 显示了 恒压 / 恒流电源的工作模式, 图中 VS 是电压设定值, IS 是电流设定值, RC = VS/IS, RL 是负 载电阻。每一路电源的工作点要么工作在 RL = RC 直线的上方, 要么工作在下方。当负载 RL 大于 RC 时, 由于电流小于电流设定值, 输出电压会成为主导, 负载点 1 工作在恒压状态, 输出电压为电压设定值 VS, 输出电流小于 IS。 在这种情况下, 电源处于恒压模式 (CV), 并且
电流设定值事实上是电流的上限。当负载 RL 小于 RC 时, 由于电压小于电压设定值, 输出电 流会成为主导, 负载点 2 工作在恒流状态, 输出电流为电流设定值 IS, 输出电压小于 VS。在 这种情况下, 电源处于恒流模式 (CC), 并且电压设定值事实上是电压的上限。因此, 当对模 拟功率输出部分设定好了电压电流值, 且接入的负载是恒定不变的, 此时电路的输出电压 和输出电流就可以确定, 处于恒压或恒流的状态也就可以确定了。
在电源运行的过程中, 如图 1 所示, AD 会定时从模拟功率输出部分采集实时的电 路输出电压和电流值, 然后传送给 CPU 进行处理后再传递给显示设备进行显示, 这样用户 就能清楚方便地看到电源此时此刻的输出值和输出状态。
对于可编程电源来说, 有许多应用场合需要使得电压电流的设置值随时间进行变 化, 比如阶梯变化或脉冲变化, 这样电源的输出也会随时间进行变化 ; 如果电源的设置电 压和电流不变, 而负载的电阻会变化, 那么此时电源的输出也会进行变化。在以上两种情 况下, 如果用户需要查看负载的变化趋势或者电源设置电压电流的变化, 就需要查看电源 历史的输出电压电流才能达到上述目的, 而传统的可编程电源只能看到实时输出的电压电 流, 而没有查看历史输出电压电流的功能, 这是现有技术所欠缺的一个方面。 发明内容 本发明所要解决的首要技术问题在于提供一种具有输出信号显示功能的可编程 电源。该可编程电源具有波形显示功能, 能够动态地反映电源输出的变化趋势。
本发明所要解决的另外一个技术问题在于提供该可编程电源实现输出信号显示 功能的显示控制方法。
为实现上述的发明目的, 本发明采用下述的技术方案 :
一种具有输出信号显示功能的可编程电源, 包括中央处理单元、 键盘、 显示单元、 外围接口、 数模转换器、 模数转换器以及模拟功率输出和测量电路, 其特征在于 :
所述可编程电源还具有 FPGA ;
所述外围接口连接所述中央处理单元, 所述中央处理单元分别与所述显示单元、 键盘和 FPGA 进行连接, 所述 FPGA 分别与所述数模转换器和所述模数转换器进行连接, 所述 数模转换器和所述模数转换器分别连接所述模拟功率输出和测量电路。
其中, 所述外围接口包括 GPIB、 USB、 LAN 中的一种或数种。
一种用于上述可编程电源的显示控制方法, 基于事件池模块、 BoardManager 线程 和 GUI 线程实现, 其特征在于包括如下的步骤 :
(1) 在预定时间给 Board Manager 线程发消息, 通知 Board Manager 线程要对模拟 功率输出部分进行操作, 取得此时模拟功率输出部分的输出值 ;
(2) 由 Board Manager 线程给 GUI 线程发消息, 并把从模拟功率输出部分取得的输 出值传递给 GUI 线程 ;
(3)GUI 线程把接收到的输出值存储在缓存中, 并记下存储在缓存中的位置 ;
(4) 根据输出值在缓存中的位置, 按时间顺序从缓存中取出点, 然后把这些点连成 线, 在可编程电源的显示单元之中显示。
其中在所述步骤 (3) 中, 首先判断输出值的位置参数是否超过缓存数组名参数的 最大范围, 如果是的话则确定所述位置参数为 0 地址, 不是的话所述位置参数加 1 ; 然后根
据确定好的所述位置参数把取得的所述输出值放入缓存中的相应位置。
在所述步骤 (4) 中, 在所述可编程电源的波形显示功能关闭的情况下, 用数字显 示存储在缓存中的输出值。
所述步骤 (4) 中, 所述时间顺序为从最新数据到最旧数据的顺序。
本发明所提供的具有输出信号显示功能的可编程电源利用缓存实现了查看历史 输出电压电流的功能, 解决了现有技术中不能动态地反映电源输出变化趋势的缺陷。 附图说明
下面结合附图和具体实施方式对本发明作进一步的说明。 图 1 为一种典型的可编程电源的整体结构框图 ; 图 2(a) 和图 2(b) 分别为理想恒压源和恒流源的输出特性示意图 ; 图 3 为理想恒压 / 恒流电源的工作模式示意图 ; 图 4 为本发明所提供的具有输出信号显示功能的可编程电源的整体结构框图 ; 图 5 为本发明所提供的可编程电源的面板按键布局示意图 ; 图 6 为本发明所提供的可编程电源中, 与波形显示功能有关的功能模块示意图 ; 图 7 为本可编程电源实现输出信号显示功能的显示控制方法流程图 ; 图 8 为 +6V 通道输出电压值存入波形显示缓存的流程图 ; 图 9 为在绘制波形的过程中, 从缓存中读取数据的顺序示意图。具体实施方式
如图 4 所示, 本发明所提供的具有输出信号显示功能的可编程电源由下面几个功 能单元组成。每个单元的功能如下 :
① CPU : 中央处理单元 ; 它是整个可编程电源的控制中心, 电源的各个部分和资源 都由它来控制、 调配和监控, 相当于 “大脑” 的作用 ;
②键盘 : 人机交互最直接最常用的方式, 用户可通过键盘控制电源的输出以及进 行其它功能的设置 ;
③显示单元 : 主要作用是监控电源的参数和状态, 包括设置参数、 输出参数、 输出 状态等等 ;
④外围接口 : 接口包括 GPIB、 USB、 LAN ; 它起到连接上位机和网络的作用, 这样用 户可以通过发命令等方式来远程控制和监控电源, 甚至可以实现直接操作键盘实现不了的 功能 ;
⑤ DA : 数模转换器 ; CPU 设置功率电路参数时, 需要通过模数转换器来把数字信号 转化成模拟信号, 因为 CPU 处理的是数字信号, 而电源的功率电路处理的是模拟信号 ;
⑥ AD : 模数转换器 ; 读回功率电路的输出值和输出状态时, 功率电路给 CPU 传递这 些信息时需要通过模数转换器, 即把模拟信号转化为数字信号 ;
⑦模拟功率输出和测量电路 : 通过接收 DA 传递过来的参考电压, 产生用户所设置 的输出信号, 并且实时读回电路的输出值和状态信息 ;
⑧ FPGA( 现场可编程门阵列 ) : 作为数字板连接和功率电路板的桥梁和中转。
在本发明中, CPU、 显示单元、 外围接口等布置在数字板上, 而模拟功率输出和测量电路、 FPGA 等布置在功率电路板上。 数字板和功率电路板是两块单独的电路板, 其中数字板 发挥主控的作用, 它和功率电路板的通信就通过上述的 FPGA, 由 FPGA 控制和监控功率电路 板。这样做的好处有两点 : 1. 由于 CPU 的接口和硬件资源有限, 因此可以节省 CPU 的接口 和硬件资源 ; 2. 在对功率电路板的某些参数的控制和监控上, 需要很快的速度, 而 FPGA 的 速度比 CPU 快, 因此采用 FPGA 更佳。
在图 4 所示的可编程电源中, 来自上位机 ( 一般来说是 PC) 的控制命令经外围接 口进入电源中。 该外围接口连接 CPU。 CPU 分别与显示单元、 键盘和 FPGA 进行连接。 该 FPGA 分别与数模转换器和模数转换器进行连接。 数模转换器和模数转换器分别连接模拟功率输 出和测量电路。该模拟功率输出和测量电路对外输出用户所需的电源信号。需要说明的 是, 模拟功率输出和测量电路中的模拟功率输出部分是可编程电源产生功率输出信号的核 心部分。它的工作原理和使用方式也是以恒压源、 恒流源为基础的。作为本领域普通技术 人员都能掌握的常规技术, 在此不赘述。
图 5 为本可编程电源的面板按键布局示意图。要使用可编程电源的波形显示功 能, 需要对面板上的按键进行操作。其中切换波形显示功能开关的按键是 当此键的按键灯是亮的, 代表此时所选通道的波形显示功能是开启的, 因此按下此键就能关 闭其波形显示功能, 按键灯也会熄灭 ; 当此键的按键灯是灭的, 代表此时所选 按键通道的波形显示功能是关闭的, 因此按下此键就能开启其波形显示功能, 灯也会点亮。
图 6 显示了在本可编程电源中, 与波形显示功能有关的功能模块。这些功能模块包括 : ①事件池模块 : 这是软件系统的核心模块, 负责处理各个线程之间的通信 ;
② Board Manager 线程 : 这是软件系统中和模拟功率输出部分打交道的一个线 程, 它通过硬件驱动接口和模拟功率输出部分通信, 用来设置模拟功率输出部分的参数和 读回模拟功率输出部分的输出以及状态 ;
③功率输出驱动 (Driver) 接口 : 模拟功率输出部分的驱动接口 ;
④ GUI 线程 : 可编程电源中专门负责显示的线程, 在这个线程中画好需要显示的 界面, 然后通过硬件接口驱动传递给 LCD 进行显示 ;
⑤显示驱动 (Driver) 接口 : LCD 电路的驱动接口。
在可编程电源中, 波形显示功能主要与 Board Manager 和 GUI 线程有关 ( 即图 6 中的②、 ④ ), ①是为这两个线程通信和交互信息所用, 而③、 ⑤则是软件和硬件进行交互的 驱动接口。
下面, 结合图 7 对本可编程电源实现输出信号显示功能的显示控制方法进行具体 阐述。该显示控制方法包括如下的步骤 :
步骤 101 : 查询定时时间是否到了预定时间如 1 秒钟, 如果没有到预定时间, 则继 续查询 ;
步骤 102 : 步骤 101 的判断为 “是” , 即如果到了预定时间, 则给 BoardManager 线程 发消息, 通知 Board Manager 线程要对模拟功率输出部分进行操作, 取得此时模拟功率输出 部分的输出值 ( 包括输出电压、 输出电流等参数 ) ;
步骤 103 : 然后 Board Manager 线程会给 GUI 线程发消息, 并把从模拟功率输出部 分取得的输出值传递给 GUI 线程 ;
步骤 104 : GUI 线程把接收到的各个输出值存储在相应的缓存 (buffer) 中, 并记下 当前值存储在缓存中的位置 ;
步骤 105 : 判断波形显示功能是否开启 ;
步骤 106 : 如果步骤 105 的判断为 “是” , 即波形显示功能为开, 则根据当前值所存 在缓存中的位置, 按时间顺序从缓存中取出点, 然后把这些点连线, 画在波形显示背景坐标 方格上, 此时再通过 LCD 驱动接口则可以在 LCD 看到画出的输出波形 ;
步骤 107 : 如果步骤 105 的判断为 “否” , 即波形显示功能为关, 则实时用数字显示 存储在缓存中的最新输出值。
在步骤 104 中提到的输出值的缓存 (buffer) 在波形显示功能中发挥着关键作用。 它里面所存的数据是构成波形的数据点, 而这个缓存的大小是有限的 ( 即整个波形背景坐 标方格的时间轴长度 ), 因此如何把输出点全部存放在缓存中, 也是需要很多技巧的。这 里, 以 +6V 通道输出电压为例结合图 8 所示的具体步骤展开详细的说明。假设它的缓存数 组名参数为 g_stDispPara.f32P6VoltWaveOut, 当前电压输出值在缓存中的位置参数为 g_ stDispPara.u16P6VoltWavePos, 当执行步骤 104 时, 填充缓存的流程图如图 8 所示 : 步 骤 201 : 判 断 当 前 电 压 输 出 值 在 缓 存 中 的 位 置 参 数 g_stDispPara. u16P6VoltWavePos 是否超过缓存本身的 g_stDispPara.f32P6VoltWaveOut 的最大范围 ;
步 骤 202 : 如 果 步 骤 201 的 判 断 为 “是” ,则 该 位 置 参 数 g_stDispPara. u16P6VoltWavePos 为 0 地址, 即从最左边开始。
步 骤 203 ; 如 果 步 骤 201 的 判 断 为 “否” ,则 该 位 置 参 数 g_stDispPara. u16P6VoltWavePos 加 1 ;
步骤 204 : 根据确定好的当前电压输出值在缓存中的位置参数 g_stDispPara. u16P6VoltWavePos, 把取得的最新 +6V 电压输出值放入缓存中相应的位置。
数据存放的工作做完了, 画波形时就得把缓存中的数都取出来。其中缓存中的位 置 g_stDispPara.u16P6VoltWavePos 是最新的输出值, 因此应该把这个点放在坐标的最左 边, 然后 g_stDispPara.u16P6VoltWavePos-1 是次新的值, 依此类推一直到缓存的 0 地址 ; 然后再从缓存最末端的点开始取, 一直到 g_stDispPara.u16P6VoltWavePos+1 为止, 这是 最后一个点, 应该放在坐标的最右端。
从缓存中读取数据的顺序示意图如 9 所示, 其中连续的方格表示缓存 ( 即数 组 g_stDispPara.f32P6VoltWaveOut), 黑 色 方 格 Pos( 即 当 前 位 置 参 数 g_stDispPara. u16P6VoltWavePos) 表示当前最新输出值所存位置, 从 Pos 开始沿着箭头的走向依次从缓 存中取数。这种取数的过程就是从最新数据到最旧数据的过程。在此需要说明的是, 上面 描述的波形画法只是一个示例。事实上, 波形也可以由右向左走, 即最新的数据在右, 最旧 的数据在左。
采用上述的数据存放以及读取方式, 有如下的两个优点 :
1. 当缓存放满时, 可以自动把最旧的数据给覆盖掉, 相当于自动实现了一个 FIFO 的存储器 ;
2. 每次存数或取数, 不用对缓存重新排序, 只需要仅仅根据当前位置参数 g_
stDispPara.u16P6VoltWavePos 来定位缓存中的数据, 这样可以节省程序运行时间, 大大提 高程序运行效率。
本发明所提供的显示控制方法也可用作恒压源或恒流源的输出信号波形显示。 当 应用于恒压源时, 如果设置电压恒定不变, 则输出电流随着负载的变化而变化, 因此可以通 过观测电流的输出波形, 来判断负载的变化趋势。 当应用于恒流源时, 如果设置电流恒定不 变, 则输出电压随着负载的变化而变化, 因此可以通过观测电压的输出波形, 来判断负载的 变化趋势。
另外, 当可编程电源有多路输出时也和单路输出的情况类似, 因为通道间的波形 显示的坐标和数据都是彼此独立的, 同时也是独立控制和独立操作的, 因此本发明所提供 的显示控制方法也可以在可编程电源有多路输出时使用。
以上对本发明所提供的具有输出信号显示功能的可编程电源及其显示控制方法 进行了详细的说明。对本领域的一般技术人员而言, 在不背离本发明实质精神的前提下对 它所做的任何显而易见的改动, 都将构成对本发明专利权的侵犯, 将承担相应的法律责任。