Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2019033306) METHOD AND APPARATUS FOR DYNAMIC ADJUSTMENT OF PULSE WIDTH MODULATION SIGNALS
Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20  

附图

0001   0002   0003   0004   0005   0006   0007  

说明书

发明名称 : 一种脉冲宽度调制信号的动态调整方法和装置

技术领域

[0001]
本申请涉及信号处理技术领域,尤其涉及一种脉冲宽度调制(Pulse Width Modulation,PWM)信号的动态调整方法和装置。

背景技术

[0002]
PWM是利用微处理器的数字输出对模拟电路进行控制的有效技术,广泛应用于测量、通信、功率控制与变换等诸多领域中。举例,PWM技术可以应用在电流输出控制的工业现场设备中,尤其适用于可寻址远程传感器高速通道(HART,Highway Addressable Remote Transduce)的相关设备。
[0003]
PWM控制的输出电流精度由CPU时钟频率、PWM控制位长度、低通滤波器转角(corner frequency)频率等因素共同决定,其中CPU时钟频率尤其关键。然而,低功率设备的CPU时钟频率通常较低,比如为1至2兆赫(MHz),难以提供大量的PWM控制位。
[0004]
目前,通常利用在缓存中预先设置的PMW控制数据对位数较少的PWM控制位进行精度补偿,以尝试提高输出电流精度。然而,这种补偿方式的输出电流精度依然不理想,还对缓存的存储空间提出较高要求。
[0005]
发明内容
[0006]
有鉴于此,本发明实施方式的主要目的在于提供一种PWM信号的动态调整方法和装置。
[0007]
本发明实施方式的技术方案是这样实现的:
[0008]
一种PWM信号的动态调整方法,包括:
[0009]
确定目标占空比和控制精度位数;
[0010]
确定PWM控制位、缓存位和动态补偿位的各自位数,其中所述PWM控制位、缓存位和动态补偿位的位数之和等于所述控制精度位数;
[0011]
基于所述目标占空比确定基础值,在PWM控制位存储所述基础值,在缓存位存储基础值的精度补偿数据,在动态补偿位中存储动态补偿参数;
[0012]
利用所述基础值和精度补偿数据生成PWM信号,基于所述动态补偿参数动态调整所述精度补偿数据以动态调整所述PWM信号。
[0013]
可见,在本发明实施方式中,不仅利用缓存对因PWM控制位数小于控制精度位数而丢失的精度数据进行精度补偿,还利用动态补偿位对精度数据执行动态补偿,从而可以改进PWM信号的控制精度。
[0014]
在一个实施方式中,所述确定目标占空比包括:
[0015]
确定目标输出电流值和最大输出电流值;
[0016]
计算目标输出电流值与最大输出电流值的商;
[0017]
将所述商确定为所述目标占空比。
[0018]
可见,本发明实施方式通过建立目标输出电流值与最大输出电流值之间的函数关系,可以快速确定目标占空比,便于在工业现场中的具体实施。
[0019]
在一个实施方式中,所述基于目标占空比确定基础值包括:
[0020]
基于PWM控制位的位数确定控制位最大值;
[0021]
确定所述控制位最大值与所述目标占空比的乘积,将所述乘积的向下取整值确定为所述基础值。
[0022]
可见,本发明实施方式根据PWM控制位的位数可以便捷地确定基础值,适用于各种具体的控制环境。
[0023]
在一个实施方式中,所述精度补偿数据为缓存中所存储的基础值的个数,所述缓存的剩余部分填充基础值加一,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值;或
[0024]
所述精度补偿数据为缓存中所存储的基础值加一的个数,所述缓存的剩余部分填充基础值,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值。
[0025]
可见,本发明实施方式可以基于基础值的个数确定缓存的具体存储结构,还可以基于基础值加一的个数确定缓存的具体存储结构,缓存的存储结构具有多种实施方式。
[0026]
在一个实施方式中,所述利用基础值和精度补偿数据生成PWM信号包括:
[0027]
从缓存中提取全部的基础值并求和以作为第一值,从缓存中提取全部的基础值加一并求和以作为第二值;
[0028]
计算第一值与第二值的和,再将第一值与第二值的和除以缓存位最大值以得到第三值;
[0029]
利用所述第三值确定实际占空比,并基于所述实际占空比生成PWM信号。
[0030]
可见,本发明实施方式利用缓存的具体存储结构确定实际占空比并生成PWM信号,计算过程简单,PWM信号生成速度快。
[0031]
在一个实施方式中,所述动态补偿参数包括步进值;
[0032]
所述基于动态补偿参数动态调整所述精度补偿数据包括:
[0033]
基于动态补偿位的位数确定动态补偿位最大值;
[0034]
当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑假时,将缓存中所存储的一个基础值变为基础值加一,将所述动态调整标识设置为逻辑真,并且将步进值减去所述动态补偿位最大值。
[0035]
可见,当确认缓存没有被动态调整过且步进值大于等于动态补偿位最大值时,本发明实施方式将缓存中所存储的一个基础值变为基础值加一,即增加缓存中的基础值加一的数目,其中增加数目严格限定为一,并且减少缓存中的基础值的数目,其中减少数目严格限定为一,因此细微补偿了丢失精度。
[0036]
在一个实施方式中,所述动态补偿参数包括步进值;
[0037]
所述基于动态补偿参数动态调整所述精度补偿数据包括:
[0038]
基于动态补偿位的位数确定动态补偿位最大值;
[0039]
当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑真时,将缓存中所存储的一个基础值加一变为基础值,将所述动态调整标识设置为逻辑假。
[0040]
可见,当确认缓存已经被动态调整过且步进值小于动态补偿位最大值时,本发明实施方式将缓存中所存储的一个基础值加一变为基础值,即降低缓存中的基础值加一的数目,其中降低数目严格限定为一,而且增加缓存中的基础值的数目,其中增加数目严格限定为一,从而防止了重复补偿所导致的错误。
[0041]
在一个实施方式中,所述动态补偿参数包括步进值;
[0042]
所述基于动态补偿参数动态调整所述精度补偿数据包括:
[0043]
基于动态补偿位的位数确定动态补偿位最大值;
[0044]
当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑真时,增加所述步进值。
[0045]
可见,当确认缓存已经被动态调整过且步进值大于等于动态补偿位最大值时,本发明实施方式重新增加步进值,从而构成新的完整循环。
[0046]
在一个实施方式中,所述动态补偿参数包括步进值;
[0047]
所述基于动态补偿参数动态调整所述精度补偿数据包括:
[0048]
基于动态补偿位的位数确定动态补偿位最大值;
[0049]
当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑假时,增加所述步进值。
[0050]
可见,当确认缓存没有被动态调整过且步进值小于动态补偿位最大值时,本发明实施方式可以重新增加步进值,从而构成新的完整循环。
[0051]
一种PWM信号的动态调整装置,包括:
[0052]
占空比和精度确定模块,用于确定目标占空比和控制精度位数;
[0053]
位数确定模块,用于确定PWM控制位、缓存位和动态补偿位的各自位数,其中所述PWM控制位、缓存位和动态补偿位的位数之和等于所述控制精度位数;
[0054]
位确定模块,用于基于所述目标占空比确定基础值,在PWM控制位存储所述基础值,在缓存位存储基础值的精度补偿数据,在动态补偿位中存储动态补偿参数;
[0055]
动态调整模块,用于利用所述基础值和精度补偿数据生成PWM信号,基于所述动态补偿参数动态调整所述精度补偿数据,以动态调整所述PWM信号。
[0056]
可见,在本发明实施方式中,不仅利用缓存对因PWM控制位数小于控制精度位数而丢失的精度数据进行精度补偿,还利用动态补偿位对精度数据执行动态补偿,从而可以改进PWM信号的控制精度。
[0057]
在一个实施方式中,占空比和精度确定模块,用于确定目标输出电流值和最大输出电流值;计算目标 输出电流值与最大输出电流值的商;将所述商确定为所述目标占空比。
[0058]
可见,本发明实施方式通过建立目标输出电流值与最大输出电流值之间的函数关系,可以快速确定目标占空比,便于在工业现场中的具体实施。
[0059]
在一个实施方式中,位确定模块,用于基于PWM控制位的位数确定控制位最大值;确定所述控制位最大值与所述目标占空比的乘积,将所述乘积的向下取整值确定为所述基础值。
[0060]
可见,本发明实施方式根据PWM控制位的位数可以便捷地确定基础值,适用于各种具体的控制环境。
[0061]
在一个实施方式中,所述精度补偿数据为缓存中所存储的基础值的个数,所述缓存的剩余部分填充基础值加一,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值;或
[0062]
所述精度补偿数据为缓存中所存储的基础值加一的个数,所述缓存的剩余部分填充基础值,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值。
[0063]
可见,本发明实施方式可以基于基础值的个数确定缓存的具体存储结构,还可以基于基础值加一的个数确定缓存的具体存储结构,缓存的存储结构具有多种实施方式。
[0064]
在一个实施方式中,动态调整模块,用于从缓存中提取全部的基础值并求和以作为第一值,从缓存中提取全部的基础值加一并求和以作为第二值;计算第一值与第二值的和,再将第一值与第二值的和除以缓存位最大值以得到第三值;利用所述第三值确定实际占空比,并基于所述实际占空比生成PWM信号。
[0065]
可见,本发明实施方式利用缓存的具体存储结构确定实际占空比并生成PWM信号,计算过程简单,PWM信号生成速度快。
[0066]
在一个实施方式中,所述动态补偿参数包括步进值;
[0067]
动态调整模块,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑假时,将缓存中所存储的一个基础值变为基础值加一,将所述动态调整标识设置为逻辑真,并且将步进值减去所述动态补偿位最大值。
[0068]
可见,当确认缓存没有被动态调整过且步进值大于等于动态补偿位最大值时,本发明实施方式将缓存中所存储的一个基础值变为基础值加一,即增加缓存中的基础值加一的数目,其中增加数目严格限定为一,并且减少缓存中的基础值的数目,其中减少数目严格限定为一,因此细微补偿了丢失精度。
[0069]
在一个实施方式中,所述动态补偿参数包括步进值;
[0070]
动态调整模块,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑真时,将缓存中所存储的一个基础值加一变为基础值,将所述动态调整标识设置为逻辑假。
[0071]
可见,当确认缓存已经被动态调整过且步进值小于动态补偿位最大值时,本发明实施方式将缓存中所存储的一个基础值加一变为基础值,即降低缓存中的基础值加一的数目,其中降低数目严格限定为一,而 且增加缓存中的基础值的数目,其中增加数目严格限定为一,从而防止了重复补偿所导致的错误。
[0072]
在一个实施方式中,所述动态补偿参数包括步进值;
[0073]
动态调整模块,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑真时,增加所述步进值。
[0074]
可见,当确认缓存已经被动态调整过且步进值大于等于动态补偿位最大值时,本发明实施方式重新增加步进值,从而构成新的完整循环。
[0075]
在一个实施方式中,所述动态补偿参数包括步进值;
[0076]
动态调整模块,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑假时,增加所述步进值。
[0077]
可见,当确认缓存没有被动态调整过且步进值小于动态补偿位最大值时,本发明实施方式可以重新增加步进值,从而构成新的完整循环。
[0078]
一种HART设备,包括:
[0079]
如上任一项所述的PWM信号的动态调整装置,用于生成PWM信号;
[0080]
电流输出模块,用于输出被所述PWM信号所控制的电流。可见,本发明实施方式还提出了一种改进PWM信号的控制精度的HART设备,该HART设备还可以降低PMW控制位的位数及缓存空间。
[0081]
一种存储介质,其中存储有计算机程序,该计算机程序用于执行上述任一项所述的方法。可见,本发明实施方式还提出了一种改进PWM信号的控制精度的存储介质。

附图说明

[0082]
图1为根据本发明实施方式的PWM信号的动态调整方法的流程图;
[0083]
图2为根据本发明实施方式控制精度位数为16时的位组成示范性结构图;
[0084]
图3为根据本发明实施方式,基于图2所示的位结构的动态补偿方法的示范性流程图;
[0085]
图4为根据本发明实施方式的PWM信号的动态调整装置的结构图;
[0086]
图5为根据本发明实施方式的HART设备的结构图;
[0087]
图6为仅采用缓存补偿的现有技术的输出电流仿真图;
[0088]
图7为根据本发明实施方式的输出电流仿真图。
[0089]
其中,附图标记如下:
[0090]
[表0001]
标号 含义
101~104 步骤
301~307 步骤

[0091]
[表0002]
400 PWM信号的动态调整装置
401 占空比和精度确定模块
402 位数确定模块
403 位确定模块
404 动态调整模块
500 HART设备
501 PWM信号的动态调整装置
502 电流输出模块

具体实施方式

[0092]
为了使本发明的技术方案及优点更加清楚明白,以下结合附图及实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以阐述性说明本发明,并不用于限定本发明的保护范围。
[0093]
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
[0094]
在本发明实施方式中,不仅利用缓存对因PWM控制位数小于控制精度位数而丢失的精度数据进行精度补偿(可以称为一次补偿),还进一步利用动态补偿位对因PWM控制位数而丢失的精度数据再次执行动态补偿(可以称为二次补偿)。在保证控制精度的前提下,本发明实施方式可以降低PMW控制位的位数及缓存空间,从而降低对CPU时钟频率的要求并节约成本。
[0095]
图1为根据本发明实施方式的PWM信号的动态调整方法的流程图。
[0096]
如图1所示,该方法包括:
[0097]
步骤101:确定目标占空比(DutyRatio)和控制精度位数。
[0098]
占空比是指有效电平在一个周期之内所占的时间比率;目标占空比是期望PWM信号能达到的占空比。
[0099]
在一个实施方式中,当利用PWM信号控制输出电流时,可以基于目标输出电流值和最大输出电流值确定目标占空比。具体包括:首先确定目标输出电流值和最大输出电流值,再计算目标输出电流值与最大输出电流值的商;将商确定为目标占空比。
[0100]
而且,基于具体控制场景的精度需求,控制精度位数可以具体实施为4位、8位、16位、32位、64 位,等等。
[0101]
以上描述了确定目标占空比的典型方式和控制精度位数的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
[0102]
步骤102:确定PWM控制位、缓存位和动态补偿位的各自位数,其中PWM控制位、缓存位和动态补偿位的位数之和等于控制精度位数。
[0103]
在这里,将步骤101中确定的控制精度位数分为三部分,这三部分分别是PWM控制位的位数、缓存位的位数和动态补偿位的位数。
[0104]
比如,当控制精度位数为16位时:PWM控制位的位数可以为6位,缓存位的位数可以为5位,动态补偿位的位数可以为5位;或者,PWM控制位的位数可以为8位,缓存位的位数可以为4位,动态补偿位的位数可以为4位,等等。
[0105]
可以基于具体的应用需求,在控制精度位数之内灵活分配PWM控制位、缓存位和动态补偿位的位数。只要分配后的PWM控制位、缓存位和动态补偿位的位数之和仍然等于控制精度位数,则依然可以保证控制精度不变。
[0106]
比如,当CPU时钟频率较低时,可以降低PWM控制位的位数;当CPU时钟频率较高时,可以增加PWM控制位的位数。
[0107]
再比如,当缓存存储空间紧张时,可以降低缓存位的位数;当缓存存储空间充裕时,可以增加缓存位的位数。
[0108]
步骤103:基于目标占空比确定基础值,在PWM控制位存储基础值,在缓存位存储基础值的精度补偿数据,在动态补偿位中存储动态补偿参数。
[0109]
PWM控制位通常用于保存由目标占空比确定的基础值。基础值是由PWM控制位的位数和目标占空比所共同确定的中间值,用于后续快速计算实际占空比。另外,通过将余数的目标占空比转换为整数的基础值,还便于缓存进行存储。
[0110]
在一个实施方式中,基于目标占空比确定基础值包括:基于PWM控制位的位数确定控制位最大值;确定控制位最大值与目标占空比的乘积,将乘积的向下取整值确定为基础值。
[0111]
举例,假定最大输出电流值为32毫安(mA);目标输出电流值为12.3456mA,那么目标输出电流值与最大输出电流值的商为12.3456/32=0.3858,即目标占空比为0.3858。再假定PWM控制位为5位,因此PWM控制位最大值为2 5,即32,PWM控制位最大值与目标占空比的乘积为32×0.3858,对该乘积结果向下取整得到值12,即可以确定基础值为12。
[0112]
PWM控制位数小于控制精度位数,可以降低PWM控制周期并由此降低低频噪声。不过,受限于PWM控制位数的精度限制,基础值通常只能在PWM控制位数所确定的精度之内接近于目标占空比。
[0113]
在缓存位中保存基础值的精度补偿数据。精度补偿数据可以对受PWM控制位数限制而丢失的精度数 据执行补偿。具体包括:设置存储空间等于缓存位最大值的缓存,并且在缓存中保存若干个基础值和若干个基础值加一。通过在缓存中保存基础值及对基础值最细微增值的基础值加一,可以实现对基础值所间接体现的占空比的最细微调节。
[0114]
缓存的存储空间由缓存位的大小所决定,而精度补偿数据体现了缓存中基础值与基础值加一之间的数目比例。精度补偿数据既可以实施为缓存中所存储的基础值的个数,也可以实施为缓存中所存储的基础值加一的个数。
[0115]
在一个实施方式中,精度补偿数据为缓存中所存储的基础值的个数,缓存的剩余部分全部填充基础值加一,而且缓存中的基础值的个数与基础值加一的个数之和,等于基于缓存位的位数确定的缓存位最大值。此时,在缓存中存储的基础值的数目等于精度补偿数据,而缓存的剩余部分则存储基础值加一,即基础值加一的数目为缓存位最大值减去精度补偿数据。
[0116]
在一个实施方式中,精度补偿数据为缓存中所存储的基础值加一的个数,缓存的剩余部分全部填充基础值,而且缓存中的基础值的个数与基础值加一的个数之和,等于基于缓存位的位数确定的缓存位最大值。此时,在缓存中存储的基础值加一的数目等于精度补偿数据,而缓存的剩余部分则存储基础值,即基础值的数目为缓存位最大值减去精度补偿数据。
[0117]
PWM控制位的位数与缓存位的位数之和仍然小于控制精度位数,因此即使采用缓存位对受PWM控制位数限制而丢失的精度数据执行了一次补偿,仍然会丢失精度数据。
[0118]
本发明实施方式利用动态补偿位中所存储的动态补偿参数对丢失的精度数据执行二次动态补偿,后续步骤104中将具体描述该二次动态补偿方式。
[0119]
步骤104:利用基础值和精度补偿数据生成PWM信号,基于动态补偿参数动态调整精度补偿数据以动态调整PWM信号。
[0120]
在一个实施方式中,利用基础值和精度补偿数据生成PWM信号包括:从缓存中提取全部的基础值并求和以作为第一值,从缓存中提取全部的基础值加一并求和以作为第二值;计算第一值与第二值的和,再将第一值与第二值的和除以缓存位最大值以得到第三值;利用第三值确定实际占空比,并基于实际占空比生成PWM信号。此时,该PWM信号为采用精度补偿数据执行一次补偿后所生成的PWM信号,该PWM信号虽然经过了一次补偿,仍然丢失了部分精度数据。在具体硬件实现中,PWM生成电路遍历整个缓存,其中当在缓存中遇到基础值时,在以PWM控制位最大值所确定的控制周期内生成基础值个高电平脉冲,而在该控制周期的其它时间保持低电平;当在缓存中遇到基础值加一时,在以PWM控制位最大值所确定的控制周期内生成基础值加一个高电平脉冲,而在该控制周期的其它时间保持低电平。PWM生成电路遍历完整个缓存后,产生的全部电平脉冲组合即构成PWM信号。
[0121]
下面描述利用动态补偿位中存储的动态补偿参数对丢失的精度数据执行动态补偿的示范方式。
[0122]
在本发明实施方式中,利用动态补偿位中所存储的动态补偿参数对缓存中的基础值与基础值加一的数 目比例进行细微动态调整,从而实现对丢失的精度数据执行动态补偿。
[0123]
在执行动态补偿之前,预先设置动态调整标识。动态调整标识用于标识缓存是否已经被动态调整过。当动态调整标识为逻辑假时,表示缓存没有被动态调整过;当动态调整标识为逻辑真时,表示缓存已经被动态调整过。动态调整标识的初始值为逻辑假。
[0124]
在一个实施方式中,动态补偿参数包括步进值,基于动态补偿参数动态调整精度补偿数据包括:
[0125]
基于动态补偿位的位数确定动态补偿位最大值;当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑假时,将缓存中所存储的一个基础值加一,将动态调整标识设置为逻辑真,并且将步进值减去动态补偿位最大值。
[0126]
可见,当确认缓存没有被动态调整过时,将缓存中所存储的一个基础值变为基础值加一,即增加缓存中的基础值加一的数目(增加数目严格限定为1),而且减少缓存中的基础值的数目(减少数目严格限定为1),从而细微补偿了丢失精度。
[0127]
在一个实施方式中,动态补偿参数包括步进值,基于动态补偿参数动态调整精度补偿数据包括:
[0128]
基于动态补偿位的位数确定动态补偿位最大值;当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑真时,将缓存中所存储的一个基础值加一变为基础值,将动态调整标识设置为逻辑假。
[0129]
可见,当确认缓存已经被动态调整过时,将缓存中所存储的一个基础值加一变为基础值,即降低缓存中的基础值加一的数目(降低数目严格限定为1),而且增加缓存中的基础值的数目(增加数目严格限定为1),从而防止了重复补偿所导致的错误。
[0130]
在一个实施方式中,动态补偿参数包括步进值,基于动态补偿参数动态调整精度补偿数据包括:基于动态补偿位的位数确定动态补偿位最大值;当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑真时,增加步进值。
[0131]
在一个实施方式中,动态补偿参数包括步进值,基于动态补偿参数动态调整精度补偿数据包括:基于动态补偿位的位数确定动态补偿位最大值;当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑假时,增加步进值。
[0132]
可以基于各种硬件电路或软件流程实施图1所示的方法。当采用硬件电路时,可以利用专门设计的永久性电路、逻辑器件或可编程逻辑器件以执行图1所示的方法。当采用软件流程时,可以利用各种编程语言或汇编语言执行图1所示的方法。
[0133]
下面结合具体的位格式对本发明实施方式进行示范性说明。
[0134]
图2为根据本发明实施方式控制精度位数为16时的位组成示范性结构图。
[0135]
由图2可见,控制精度位数为16位,其中PWM控制位为前面6位,缓存位为中间5位,动态补偿位为后面5位。
[0136]
假定:最大输出电流值为32毫安(mA);目标输出电流值为12.3456mA;CPU时钟频率为1.84320MHZ; 滤波器的转角频率为18HZ。
[0137]
首先,计算目标输出电流值与最大输出电流值的商,12.3456/32=0.3858,即目标占空比为0.3858。
[0138]
PWM控制位为6位,因此PWM控制位最大值为2 6,即64。PWM控制位最大值与目标占空比的乘积为64×0.3858,对该乘积结果向下取整得到值24,即可以确定基础值为24。将基础值(24)转换为二进制数,转换结果为011000,因此在PWM控制位中存储该二进制数(011000)。
[0139]
如果此时直接利用基础值(24)与PWM控制位最大值(64)确定实际占空比,则实际占空比为24/64=0.375。可见,该实际占空比与目标占空比具有显著的精度差异,需要被执行补偿。
[0140]
缓存位中存储有经过计算预先确定的精度补偿数据,以使得被补偿后的实际占空比尽量接近于目标占空比。在图2中,缓存位中保存有二进制数10110(即22),假定表明缓存中所存储的基础值加一(也就是24+1,即25)的个数为22个。缓存位最大值为2 5=32,因此基础值(即24)的个数为32-22=10个。也就是说,在存储空间为32的缓存中,存储有22个基础值加一(即25),10个基础值(即24)。
[0141]
由于PWM控制位的位数(6)与缓存位的位数(5)之和仍然小于控制精度位数(16),因此即使采用缓存对实际占空比执行了一次补偿,仍然会丢失精度数据。
[0142]
在动态补偿位中保存步进值。步进值用于控制动态补偿过程的循环速度。步进值是预设值,当期望循环速度较快时,可以增加步进值;当期望循环速度较慢时,可以降低步进值。
[0143]
在图2中,动态补偿位为二进制数00100,即4,则步进值为4。而且,动态补偿位的最大值为2 5=32。
[0144]
预先设置动态调整标识,用于标识缓存是否已经被动态调整过。当动态调整标识为逻辑假时,表示缓存没有被动态调整过;当动态调整标识为逻辑真时,表示缓存已经被动态调整过。
[0145]
图3为根据本发明实施方式,基于图2所示的位结构的动态补偿方法流程图。
[0146]
如图3所示,该方法包括:
[0147]
步骤300:将动态调整标识的初始值设置为逻辑假,从PWM控制位中获取基础值,按照PWM控制位的精度补偿数据所决定的存储数目比例,在缓存中存储基础值(即24)和基础值加一(即25),而且基于动态补偿位的存储内容确定步进值为4。
[0148]
步骤301:从缓存中提取全部的基础值和全部的基础值加一,以生成PWM信号。
[0149]
在这里,从缓存中提取出全部的22个基础值加一(即25),并对这22个基础值加一求和得到第一值550;从缓存中提取出全部的10个基础值(即24),再对这10个24求和得到第二值240;然后将第一值(550)与第二值(240)的和除以缓存位最大值(32)以得到第三值(24.6875),利用第三值确定经过缓存补偿后的实际占空比为0.3857。接着,利用该经过缓存补偿后的实际占空比生成PWM信号。
[0150]
在生成PWM信号的具体硬件实施中,PWM生成电路遍历整个缓存,其中当在缓存中遇到基础值时,在以PWM控制位最大值所确定的控制周期内生成基础值个高电平脉冲;当在缓存中遇到基础值加一时,在以PWM控制位最大值所确定的控制周期内生成基础值加一个高电平脉冲。
[0151]
具体在本例中,PWM控制位最大值为2 6=64,因此时钟周期数为64。PWM生成电路遍历整个缓存,当在缓存中遇到基础值(即24)时,PWM生成电路在64个时钟周期中生成24个高电平脉冲,而剩余的40个时钟周期保持低电平。当遇到基础值加一(即25)时,PWM生成电路在64个时钟周期中生成25个高电平脉冲,而剩余的39个时钟周期保持低电平。PWM生成电路将在缓存中遇到10个基础值,并由此10次执行如下操作:在64个时钟周期中生成24个高电平脉冲;PWM生成电路将在缓存中遇到22个基础值加一,并由此22次执行如下操作:在64个时钟周期中生成25个高电平脉冲。PWM生成电路遍历完整个缓存后,产生的全部电平脉冲组合即构成PWM信号。
[0152]
步骤302:步进值递增。
[0153]
在这里,用Id表示步进值,则Id=Id+4。
[0154]
步骤303:判断步进值是否大于等于动态补偿位最大值。如果大于则执行步骤304,否则执行步骤305。
[0155]
其中,动态补偿位最大值为2 5=32。当递增后的步进值大于等于32时,执行步骤304;否则,当递增后的步进值小于32时,执行步骤305。
[0156]
步骤304:判断动态调整标识是否为逻辑真,如果是则返回执行步骤301,否则执行步骤307。
[0157]
步骤305:判断动态调整标识是否为逻辑真,如果是则执行步骤306,否则返回执行步骤301。
[0158]
步骤306:将动态调整标识设置为逻辑假,并且将缓存中所存储的一个基础值加一变为基础值,即降低缓存中的基础值加一的数目(降低数目严格限定为1),增加缓存中的基础值的数目(增加数目严格限定为1),然后返回执行步骤301。此时,后续步骤301中可以基于已被调整的缓存动态恢复到原始的PWM信号,防止重复补偿所导致的错误。
[0159]
步骤307:将动态调整标识设置为逻辑真,并且将缓存中所存储的一个基础值变为基础值加一,即增加缓存中的基础值加一的数目(增加数目严格限定为1),降低了缓存中的基础值的数目(增加数目严格限定为1),然后返回执行步骤301。经过调整后,缓存中的基础值的数目变为9,而基础值加一的数目变为23。然后,后续步骤301中可以基于已被调整的缓存动态调整PWM信号,细微补偿丢失精度。具体的,在后续步骤301中,PWM生成电路将遇到9个基础值,并由此9次执行如下操作:在64个时钟周期中生成24个高电平脉冲;PWM生成电路将遇到23个基础值加一,并由此23次执行如下操作:在64个时钟周期中生成25个高电平脉冲。在后续步骤301中,PWM生成电路遍历完整个缓存后,产生的全部电平脉冲组合即构成调整后的PWM信号。
[0160]
可选地,在上述流程中,可以在步骤307中不执行将动态调整标识设置为逻辑真的操作,而是在步骤303与步骤303之间,执行该将动态调整标识设置为逻辑真的操作。也就是说,将动态调整标识设置为逻辑真的操作,从步骤307中移动到步骤303与步骤303之间,从而避免可能的循环瑕疵。
[0161]
上述以具体数值相应描述了PWM控制位、缓存位和动态补偿位及动态补偿过程,本领域技术人员可以意识到,这些数值仅为示范性作用,并不用于限定本发明实施方式的保护范围。
[0162]
基于上述描述,本发明实施方式还提出了一种PWM信号的动态调整装置。
[0163]
图4为根据本发明实施方式的PWM信号的动态调整装置的结构图。
[0164]
如图4所示,该装置400包括:
[0165]
占空比和精度确定模块401,用于确定目标占空比和控制精度位数;
[0166]
位数确定模块402,用于确定PWM控制位、缓存位和动态补偿位的各自位数,其中PWM控制位、缓存位和动态补偿位的位数之和等于所述控制精度位数;
[0167]
位确定模块403,用于基于目标占空比确定基础值,在PWM控制位存储基础值,在缓存位存储基础值的精度补偿数据,在动态补偿位中存储动态补偿参数;
[0168]
动态调整模块404,用于利用基础值和精度补偿数据生成PWM信号,基于动态补偿参数动态调整所述精度补偿数据,以动态调整PWM信号。
[0169]
在一个实施方式中,占空比和进度确定模块401,用于确定目标输出电流值和最大输出电流值;计算目标输出电流值与最大输出电流值的商;将商确定为所述目标占空比。
[0170]
在一个实施方式中,位确定模块403,用于基于PWM控制位的位数确定控制位最大值;确定控制位最大值与所述目标占空比的乘积,将所述乘积的向下取整值确定为所述基础值。
[0171]
在一个实施方式中,精度补偿数据为缓存中所存储的基础值的个数,所述缓存的剩余部分填充基础值加一;缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值。
[0172]
在一个实施方式中,动态调整模块404,用于从缓存中提取全部的基础值并求和以作为第一值,从缓存中提取全部的基础值加一并求和以作为第二值;计算第一值与第二值的和,再将第一值与第二值的和除以缓存位最大值以得到第三值;利用第三值确定实际占空比,并基于实际占空比生成PWM信号。
[0173]
在一个实施方式中,动态补偿参数包括步进值;
[0174]
动态调整模块404,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑假时,将缓存中所存储的一个基础值变为基础值加一,将所述动态调整标识设置为逻辑真,并且将步进值减去所述动态补偿位最大值。
[0175]
在一个实施方式中,动态补偿参数包括步进值;
[0176]
动态调整模块404,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑真时,将缓存中所存储的一个基础值加一变为基础值,将所述动态调整标识设置为逻辑假。
[0177]
在一个实施方式中,动态补偿参数包括步进值;
[0178]
动态调整模块404,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑真时,增加所述步进值。
[0179]
在一个实施方式中,动态补偿参数包括步进值;
[0180]
动态调整模块404,用于基于动态补偿位的位数确定动态补偿位最大值,当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑假时,增加所述步进值。
[0181]
HART设备通常为低功率设备,CPU时钟频率通常较低,难以提供大量的PWM控制位。本发明实施方式通过增加二次动态补偿方式,可以在保证控制精度的前提下,降低PMW控制位的位数及缓存空间,从而降低对CPU时钟频率的要求并可以节约成本,尤其适用于HART设备。
[0182]
本发明实施方式还提出了一种HART设备。图5为根据本发明实施方式的HART设备的结构图。
[0183]
如图5所示,该设备500包括:
[0184]
PWM信号的动态调整装置501,用于生成PWM信号;
[0185]
电流输出模块502,用于输出被PWM信号所控制的电流。
[0186]
其中,PWM信号的动态调整装置501可以具有如图4所示的PWM信号的动态调整装置400的相同结构。
[0187]
将本发明实施方式与仅采用缓存补偿的现有技术分别应用到HART设备中,基于仿真结果可以清晰看出本发明的有益效果。图6为仅采用缓存补偿的现有技术的输出电流仿真图;图7为根据本发明实施方式的输出电流仿真图。
[0188]
在图6中,PWM控制位的位数为9,缓存位的位数为7;在图7中,PWM控制位的位数为6,缓存位的位数为5,动态补偿位的位数为5。在图6中,纵轴为输出电流,横轴为缓存位的存储值;在图7中,纵轴为输出电流,横轴为动态补偿位的存储值。在图6和图7中,输出电流的限制值相同,都分别是-0.5和+0.5。
[0189]
由图6和图7的对比可见,在图6为实例的现有技术中,输出电流普遍超出了限制值,在极端情况下甚至能达到限制值的两倍。应用本发明实施方式后,图7中的输出电流被限制在限制值之内。
[0190]
而且,应用本发明实施方式后,PWM控制位只需要6位,相比现有技术所需的9位,PWM控制位数获得显著降低,可以降低对CPU时钟频率的需求。
[0191]
另外,应用本发明实施方式后,缓存位的位数只需要5位,相比现有技术所需的7位,缓存位数也获得了显著降低,还可以降低对缓存空间的需求。
[0192]
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
[0193]
各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。 至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
[0194]
本发明还提供了一种机器可读的存储介质,存储用于使一机器执行如本文所述方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施方式中任一实施方式的功能。
[0195]
用于提供程序代码的存储介质实施方式包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
[0196]
以上所述,仅为本发明的较佳实施方式而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求书

[权利要求 1]
一种脉冲宽度调制信号的动态调整方法,其特征在于,包括: 确定目标占空比和控制精度位数(101); 确定脉冲宽度调制控制位、缓存位和动态补偿位的各自位数,其中所述脉冲宽度调制控制位、缓存位和动态补偿位的位数之和等于所述控制精度位数(102); 基于所述目标占空比确定基础值,在脉冲宽度调制控制位存储所述基础值,在缓存位存储基础值的精度补偿数据,在动态补偿位中存储动态补偿参数(103); 利用所述基础值和精度补偿数据生成脉冲宽度调制信号,基于所述动态补偿参数动态调整所述精度补偿数据以动态调整所述脉冲宽度调制信号(104)。
[权利要求 2]
根据权利要求1所述的脉冲宽度调制信号的动态调整方法,其特征在于,所述确定目标占空比包括: 确定目标输出电流值和最大输出电流值; 计算目标输出电流值与最大输出电流值的商; 将所述商确定为所述目标占空比。
[权利要求 3]
根据权利要求1所述的脉冲宽度调制信号的动态调整方法,其特征在于, 所述基于目标占空比确定基础值包括: 基于脉冲宽度调制控制位的位数确定控制位最大值; 确定所述控制位最大值与所述目标占空比的乘积,将所述乘积的向下取整值确定为所述基础值。
[权利要求 4]
根据权利要求3所述的脉冲宽度调制信号的动态调整方法,其特征在于, 所述精度补偿数据为缓存中所存储的基础值的个数,所述缓存的剩余部分填充基础值加一,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值;或 所述精度补偿数据为缓存中所存储的基础值加一的个数,所述缓存的剩余部分填充基础值,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值。
[权利要求 5]
根据权利要求4所述的脉冲宽度调制信号的动态调整方法,其特征在于,所述利用基础值和精度补偿数据生成脉冲宽度调制信号包括: 从缓存中提取全部的基础值并求和以作为第一值,从缓存中提取全部的基础值加一并求和以作为第二值; 计算第一值与第二值的和,再将第一值与第二值的和除以缓存位最大值以得到第三值; 利用所述第三值确定实际占空比,并基于所述实际占空比生成脉冲宽度调制信号。
[权利要求 6]
根据权利要求4所述的脉冲宽度调制信号的动态调整方法,其特征在于,所述动态补偿参数包括步进值; 所述基于动态补偿参数动态调整所述精度补偿数据包括: 基于动态补偿位的位数确定动态补偿位最大值; 当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑假时,将缓存中所存储的一个基础值变为基础值加一,将所述动态调整标识设置为逻辑真,并且将步进值减去所述动态补偿位最大值。
[权利要求 7]
根据权利要求4所述的脉冲宽度调制信号的动态调整方法,其特征在于,所述动态补偿参数包括步进值; 所述基于动态补偿参数动态调整所述精度补偿数据包括: 基于动态补偿位的位数确定动态补偿位最大值; 当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑真时,将缓存中所存储的一个基础值加一变为基础值,将所述动态调整标识设置为逻辑假。
[权利要求 8]
根据权利要求4所述的脉冲宽度调制信号的动态调整方法,其特征在于,所述动态补偿参数包括步进值; 所述基于动态补偿参数动态调整所述精度补偿数据包括: 基于动态补偿位的位数确定动态补偿位最大值; 当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑真时,增加所述步进值。
[权利要求 9]
根据权利要求4所述的脉冲宽度调制信号的动态调整方法,其特征在于,所述动态补偿参数包括步进值; 所述基于动态补偿参数动态调整所述精度补偿数据包括: 基于动态补偿位的位数确定动态补偿位最大值; 当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑假时,增加所述步进值。
[权利要求 10]
一种脉冲宽度调制信号的动态调整装置,其特征在于,包括: 占空比和精度确定模块(401),用于确定目标占空比和控制精度位数; 位数确定模块(402),用于确定脉冲宽度调制控制位、缓存位和动态补偿位的各自位数,其中所述脉冲宽度调制控制位、缓存位和动态补偿位的位数之和等于所述控制精度位数; 位确定模块(403),用于基于所述目标占空比确定基础值,在脉冲宽度调制控制位存储所述基础值,在缓存位存储基础值的精度补偿数据,在动态补偿位中存储动态补偿参数; 动态调整模块(404),用于利用所述基础值和精度补偿数据生成脉冲宽度调制信号,基于所述动态补偿参数动态调整所述精度补偿数据,以动态调整所述脉冲宽度调制信号。
[权利要求 11]
根据权利要求10所述的脉冲宽度调制信号的动态调整装置,其特征在于, 占空比和进度确定模块(401),用于确定目标输出电流值和最大输出电流值;计算目标输出电流值与最大输出电流值的商;将所述商确定为所述目标占空比。
[权利要求 12]
根据权利要求10所述的脉冲宽度调制信号的动态调整装置,其特征在于, 位确定模块(403),用于基于脉冲宽度调制控制位的位数确定控制位最大值;确定所述控制位最大值与所述目标占空比的乘积,将所述乘积的向下取整值确定为所述基础值。
[权利要求 13]
根据权利要求12所述的脉冲宽度调制信号的动态调整装置,其特征在于, 所述精度补偿数据为缓存中所存储的基础值的个数,所述缓存的剩余部分填充基础值加一,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值;或 所述精度补偿数据为缓存中所存储的基础值加一的个数,所述缓存的剩余部分填充基础值,所述缓存中的基础值的个数与基础值加一的个数之和,等于基于所述缓存位的位数确定的缓存位最大值。
[权利要求 14]
根据权利要求13所述的脉冲宽度调制信号的动态调整装置,其特征在于, 动态调整模块(404),用于从缓存中提取全部的基础值并求和以作为第一值,从缓存中提取全部的基础值加一并求和以作为第二值;计算第一值与第二值的和,再将第一值与第二值的和除以缓存位最大值以得到第三值;利用所述第三值确定实际占空比,并基于所述实际占空比生成脉冲宽度调制信号。
[权利要求 15]
根据权利要求13所述的脉冲宽度调制信号的动态调整装置,其特征在于,所述动态补偿参数包括步进值; 动态调整模块(404),用于基于动态补偿位的位数确定动态补偿位最大值,当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑假时,将缓存中所存储的一个基础值变为基础值加一,将所述动态调整标识设置为逻辑真,并且将步进值减去所述动态补偿位最大值。
[权利要求 16]
根据权利要求13所述的脉冲宽度调制信号的动态调整装置,其特征在于,所述动态补偿参数包括步进值; 动态调整模块(404),用于基于动态补偿位的位数确定动态补偿位最大值,当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑真时,将缓存中所存储的一个基础值加一变为基础值,将所述动态调整标识设置为逻辑假。
[权利要求 17]
根据权利要求13所述的脉冲宽度调制信号的动态调整装置,其特征在于,所述动态补偿参数包括步进值; 动态调整模块(404),用于基于动态补偿位的位数确定动态补偿位最大值,当步进值大于等于动态补偿位最大值且预设置的动态调整标识为逻辑真时,增加所述步进值。
[权利要求 18]
根据权利要求13所述的脉冲宽度调制信号的动态调整装置,其特征在于,所述动态补偿参数包括步进值; 动态调整模块(404),用于基于动态补偿位的位数确定动态补偿位最大值,当步进值小于动态补偿位最大值且预设置的动态调整标识为逻辑假时,增加所述步进值。
[权利要求 19]
一种可寻址远程传感器高速通道设备,其特征在于,包括: 如权利要求10-18中任一项所述的脉冲宽度调制信号的动态调整装置(501),用于生成脉冲宽度调制 信号; 电流输出模块(502),用于输出被所述脉冲宽度调制信号所控制的电流。
[权利要求 20]
一种存储介质,其特征在于,其中存储有计算机程序,该计算机程序用于执行所述权利要求1至9任一项所述的方法。

附图

[ 图 0001]  
[ 图 0002]  
[ 图 0003]  
[ 图 0004]  
[ 图 0005]  
[ 图 0006]  
[ 图 0007]