一种动态负载电流的模拟装置
技术领域
本申请属于测量仪器参数控制领域,尤其涉及一种动态负载电流的模拟装置。
背景技术
现有技术中,几乎所有的电子电路都需要稳定的供电电压,以确保正确运行,例如典型的CPU芯片的电源规范要求,即使动态负载电流在几百纳秒内发生20A或30A的变化,供电电压仍然要保持稳定。如何准确模拟动态负载电流的瞬态变化在电源测试领域尤为重要。当负载电流变换频率过快或边沿时间过长时,电源瞬态恢复时间过长电源输出电压将不稳定。
电子电路采用压控电流源,目前,业界通常采用交替导通不同控制环路的方式实现动态负载电流的模拟。如图1所示,DSP芯片101输出电流码值到数模转换器(DAC)102/103,DSP芯片101定时切换开关104,将数模转换器102/103生成的模拟量循环交替输出,以产生负载电流的跃变,输出的电流经过RC组成的压摆率控制电路105调整电流的摆率,从而模拟出实际动态负载的电流波形。具体的,压摆率控制电路调整电流摆率的方法主要有两种:一种为调节电压,另一种为调节带宽。压摆率控制电路通过图2中的U12B搭建的积分器实现,积分器带宽计算公式为T=2πR4*C4,其输入电压为V2,因此,电流摆率的计算公式为:设计中主要通过调节V2和R4来配合产生不同的电流摆率,一般可在图2中R4、R1、R2和R3的位置添加电阻和选通电路,切换开关选不同的电阻,以实现调节电流摆率的目的。
现有技术的上述方案虽然能够模拟动态负载电流,但由于成本和空间的限制,图2中提出的电阻对的个数是有限的,动态负载电流摆率调节的精度有限;且由于模拟开关104本身特性,动态负载电流变换频率也在一定范围内。因此,上述方案在模拟动态负载电流的精度和范围都是有限的。
发明内容
本申请提供一种动态负载电流的模拟装置,用于解决现有技术中模拟动态负载电流的电路结构复杂,所需成本高,模拟精度和范围受限的问题。
为了解决上述技术问题,本申请的技术方案为提供一种动态负载电流的模拟装置,包括:FPGA模块及数模转换器,其中FPGA模块包括输出控制器、加法器、定时器、输入接口及输出接口。
所述输出控制器通过输入接口接收第一电流值、第二电流值、电流交替时长及电流摆率步进值,根据所述电流交替时长开启所述定时器,以使所述加法器交替输出第一电流值及第二电流值,当所述加法器输出的电流值等于待交替为的电流值时,关闭所述定时器,根据待交替为的电流值确定电流摆率步进值取正或取负以得到电流摆率步进量,将所述电流摆率步进量输出至所述加法器的第一输入端。
所述加法器的第二输入端连接加法器的输出端及输出控制器,所述定时器每计满一步进时间时发出一使能脉冲至所述加法器,所述加法器根据所述使能脉冲进行加法处理以更新加法器输出的电流值。
所述输出控制器判断所述待交替为的电流值与所述加法器输出的电流值差值的绝对值是否小于或等于所述电流摆率步进值,若判断结果为是,则定时器再计满一步进时间时控制所述加法器输出待交替为的电流值。
所述数模转换器用于通过所述输出接口接收所述加法器输出的电流值,将其转换为模拟电压值以反映动态负载电流大小。
一实施例中,动态负载电流的模拟装置还包括滤波电路,连接所述数模转换器,用于将数模转换器输出的阶梯状模拟电压转换为平滑的模拟电压。
一实施例中,动态负载电流的模拟装置还包括压控电流环路,电连接所述滤波电路,用于将滤波电路输出的电压转换为电流。
一实施例中,动态负载电流的模拟装置还包括主控制器,电连接所述输入接口,用于向所述输出控制器提供第一电流值、第二电流值、电流交替时长及电流摆率步进值。
一实施例中,所述主控制器用于向所述输出控制器提供第一电流值、第二电流值、电流摆率步进值、动态负载频率及占空比,由所述输出控制器根据所述动态负载频率及占空比计算得到电流交替时长。
详细的说,电流交替时长由如下公式确定:
TA=T*DUTY,TB=T-TA,T=1/f,
其中,TA为第一电流值的输出时间,TB为第二电流值的输出时间,T为动态负载周期,DUTY为占空比,f为动态负载频率。
一实施例中,所述输入模块为CPU接口,所述输出模块为SPI接口。
一实施例中,所述第二电流值大于所述第一电流值,当交替为的电流值为第一电流值时,所述电流摆率步进值取负值,当交替为的电流值为第二电流值时,所述电流摆率步进值取正值。
一实施例中,动态负载电流的模拟装置还包括计数器,连接所述输出控制器,用于统计定时器发出的使能脉冲个数;
所述输出控制器通过输入接口还接收步进个数,判断所述计数器统计的使能脉冲个数是否等于步进个数,若判断结果为是,则定时器再计满一步进时间时控制所述加法器输出待交替为的电流值。
一实施例中,所述步进时间大于或等于数模转换器的转换时间。
本申请提供的动态负载电流的模拟装置具有结构简单,所需成本低,动态负载电流调节范围大、精度可控的特点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中交替导通不同控制环路实现动态负载电流的功能模块图;
图2为图1所示压摆率控制电路图;
图3为本申请实施例动态负载电流的模拟装置的结构图;
图4A为本申请实施例的数模转换器输出的模拟电压波形图;
图4B为本申请实施例的滤波电路输出的模拟电压波形图;
图5为本申请实施例的电流摆率、电流摆率步进值及步进时间之间的关系示意图;
图6为本申请另一实施例动态负载电流的模拟装置的结构图。
图7A及7B为本申请实施例的FPGA模块处理过程示意图;
具体实施方式
为了使本申请的技术特点及效果更加明显,下面结合附图对本申请的技术方案做进一步说明,本申请也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本申请的保护范畴。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
如图3所示,图3为本申请实施例动态负载电流的模拟装置的结构图。本实施例采用现场可编程门阵列(FPGA)加数字模拟转换器(DAC)的基本架构,能够实现动态负载电流的精确控制。
具体的,模拟装置包括:FPGA模块30及数模转换器(DAC)40,其中FPGA模块包括输出控制器301、加法器302、定时器303、输入接口304及输出接口305。加法器302具有第一输入端、第二输入端及输出端,第一、第二输入端连接输出控制器301,第二输入端连接加法器的输出端。定时器303输入端连接输出控制器301,定时器303输出端连接加法器302。输入接口304连接输出控制器301。输出接口305连接加法器的输出端及DAC 40的输入端。
所述输出控制器301通过输入接口304接收第一电流值、第二电流值、电流交替时长及电流摆率步进值。其中,第一电流值、第二电流值、电流交替时长及电流摆率步进值为二进制码值。这些值的设定过程将在后面实施例进行说明,此处不再详细说明。
所述输出控制器301根据所述电流交替时长开启所述定时器,以使所述加法器302交替输出第一电流值及第二电流值(由于摆率需求,输出控制器并不直接控制加法器输出第一电流值或第二电流值)。当所述加法器302输出的电流值等于待交替为的电流值时,关闭所述定时器。根据待交替为的电流值确定电流摆率步进值的正负以得到电流摆率步进量,将所述电流摆率步进量输出至所述加法器302的第一输入端。
详细的说,第二电流值及第一电流值为动态负载的高/低两个电流值(如图5中的CurrentB和CurrentA),第二电流值大于第一电流值,当交替为的电流值为第一电流值时,电流摆率步进值取负值,即电流摆率步进量本身为负值;当交替为的电流值为第二电流值时,电流摆率步进值取正值,即电流摆率步进量本身为正值。具体实施时,还可根据交替为的电流值与当前输出接口输出的电流值的差值确定电流摆率步进量。本申请对此不作具体限定。
所述定时器303每计满一步进时间时发出一使能脉冲至所述加法器302,所述加法器302根据所述使能脉冲进行加法处理以更新加法器输出的电流值,即使所述加法器302输出的电流值加上所述电流摆率步进量。需要说明的是,本申请所述的定时器每计满一步进时间后,立即进入下一计时周期重新计时。
所述输出控制器301还用于判断所述待交替为的电流值与所述加法器302输出的电流值差值的绝对值是否小于或等于所述电流摆率步进值(即电流摆率步进量的绝对值),若判断结果为是,则定时器303再计满一步进时间时控制所述加法器302输出待交替为的电流值,若判断结果为否,则输出控制器301继续重复上述判断过程。
所述DAC 40用于通过所述输出接口305接收所述加法器302输出的电流值,将其转换为模拟电压值以反映动态负载电流大小。详细的说,DAC输出的模拟电压为阶梯状,具体形状如图4A所示,每一步进时间内DAC输出的模拟电压值相同,每计满一步进时间,DAC输出的模拟电压值增加一电流摆率步进量。
本实施例中,动态负载电流的模拟精度由电流摆率步进值决定,而电流摆率步进值的设定与电流摆率及步进时间相关,下面结合图5详细说明电流摆率步进值如何设定。电流摆率步进值满足如下关系:
C_Step=K·T_Step (1)
其中,C_Step为电流摆率步进值,K为电流摆率,T_Step为步进时间。
电流摆率K的带宽最小为DAC的转换率,最大由定时器的步进时间决定。步进时间T_Step与DAC的转换时间相关,应大于或等于DAC的转换时间,例如,DAC的转换时间为0.5us,则步进时间T_Step大于或等于0.5us即可。
具体实施时,先根据DAC的转换率及定时器确定电流摆率K,接着根据DAC的转换时间确定步进时间T_Step,电流摆率K及步进时间T_Step确定后通过公式(1)可以得到电流摆率步进值。
鉴于电流摆率K最大由定时器的步进时间决定,最小可以为DAC的转换率,本申请可以提高电流摆率的调节范围,从而提高动态负载电流的模拟精度。
本申请进一步实施例中,如图6所示,动态负载电流的模拟装置还包括滤波电路50,连接DAC 40,用于将DAC输出的阶梯状模拟电压转换为平滑的模拟电压(如图4B所示)。
进一步的,动态负载电流的模拟装置还包括压控电流环路60,电连接所述滤波电路50,用于将滤波电路输出的电压转换为电流。压控电流环路输出的电流波形为动态负载电流的波形。该压控电流环路利用MOSFET或三极管等手段将输入电压转换为电流输出,本申请对压控电流环路具体电路不做限定。
为了更清楚说明FPGA模块的处理过程,下面以一具体实施例进行说明。第一电流值为电流A,第二电流值为电流B,电流B大于电流A,FPGA模块的处理过程包括:
当启动加法器输出电流A切换为电流B时,如图7A,FPGA模块的处理过程包括:
步骤701:输出控制器启动定时器开始计时;
步骤702:定时器计满一步进时间后,发出一使能脉冲至加法器,使得加法器输出的电流值加上电流摆率步进量(该电流摆率步进量为正值);
步骤703:输出控制器判断电流B与加法器输出的电流值之间的差值是否小于或等于电流摆率步进值C_Step,如果判断结果为是,则于定时器再计满一步进时间时,控制加法器输出电流B,结束定时器计时,如果判断结果为否,则重复步骤702。
当启动加法器输出电流B切换为电流A时,如图7B,FPGA模块的处理过程包括:
步骤701’:输出控制器启动定时器开始计时;
步骤702’:定时器计满一步进时间后,发出一使能脉冲至加法器,使得加法器输出的电流值加上电流摆率步进量(该电流摆率步进量为负值);
步骤703’:输出控制器判断加法器输出的电流值与电流A之间的差值是否小于或等于电流摆率步进值C_Step,如果判断结果为是,则于定时器再计满一步进时间时,控制加法器输出电流A,结束定时器计时,如果判断结果为否,则重复步骤702’。
加法器输出的电流值经过DAC后转换为电压模拟量,该电压模拟量能够反映动态负载电流大小。进一步的,通过图6所示的滤波电路及压控电流环路后形成平滑的电流。
本申请进一步实施例中,复请参阅图6,动态负载电流的模拟装置还包括主控制器20,电连接所述输入接口304,用于向输出控制器301提供第一电流值、第二电流值、电流交替时长及电流摆率步进值。具体实施时,第一电流值、第二电流值、电流交替时长及电流摆率步进值由用户进行设定,主控制器计算出第一电流值、第二电流值对应的码值。主控制器可以选用ARM或DSP处理器,本申请对主控制器具体型号不做限定。
另一实施例中,主控制器用于20向输出控制器301提供第一电流值、第二电流值、电流摆率步进值、动态负载频率及占空比,由输出控制器301根据动态负载频率及占空比通过如下公式计算得到电流交替时长:
TA=T*DUTY,TB=T-TA,T=1/f, (2)
其中,TA为第一电流值的输出时间,TB为第二电流值的输出时间,T为动态负载周期,DUTY为占空比,f为动态负载频率。
本申请一具体实施例中,输入接口304为CPU接口,输出模块为SPI接口(SerialPeripheral Interface,串行外设接口)。CPU接口为主控制器与FPGA模块之间的桥梁,用于解析主控制器发来的数据。SPI接口使输出控制器与DAC以串行方式进行通信以交换信息,SPI接口将加法器输出的电流值封装为SPI格式后发送DAC。
本申请进一步实施例中,动态负载电流的模拟装置还包括计数器,连接所述输出控制器,用于统计定时器发出的使能脉冲个数。
输出控制器通过输入接口还接收步进个数,或通过如下公式计算出步进个数:
CurrentB-CurrentA=N·C_Step+C_Remainder (3)
其中,N为步进个数,C_Step为电流摆率步进值,CurrentB为第二电流值,CurrentA为第一电流值,C_Remainder为不满足一个电流摆率步进增量的差值。
输出控制器判断计数器统计的使能脉冲个数是否等于步进个数N,若判断结果为是,则定时器再计满一步进时间时(即步进个数为N+1)控制加法器输出待交替为的电流值。
本实施例能够减少主控制器判断是否输出待交替为的电流值的过程,但会增加计数器和主控制器和输出控制器之间的交互数据量。
本申请利用FPGA控制写入DAC的码值以实现动态负载电流的模拟。动态负载电流的控制只占用FPGA内部的基本逻辑门,具有如下特点:
1.由一片FPGA和一片DAC组成,节省硬件成本及空间;
2.FPGA计算速度快,可精确控制电流摆率的精度;
3.电流摆率的带宽最小为DAC的转换率,最大由FPGA模块中的定时器决定,可提高电流摆率的调节范围,从而提高动态负载电流的模拟精度;
4.在FPGA上利用定时器和加法器实现的线性插值方法实现动态负载电流模拟,算法简单,易于实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅用于说明本申请的技术方案,任何本领域普通技术人员均可在不违背本申请的精神及范畴下,对上述实施例进行修饰与改变。因此,本申请的权利保护范围应视权利要求范围为准。