一种发光二极管的指数调光方法及系统与流程

文档序号:18619738发布日期:2019-09-06 22:22阅读:514来源:国知局
一种发光二极管的指数调光方法及系统与流程

本发明涉及调光技术领域,更为具体地说,涉及一种发光二极管的指数调光方法及系统。



背景技术:

随着led(lightemittingdiode,发光二极管)照明应用的推广,led驱动与调光技术的发展也日新月异。目前在led背光调光方面,相较于线性调光曲线,越来越多的led驱动芯片采用指数调光曲线,这是因为在低亮度时,指数曲线的亮度变化会使人眼获得更舒适的体验与感受。常用的指数调光方法有模拟与数字两大类,模拟电路可以通过相应的模拟器件如二极管实现指数调光,但是模拟调光方法的精度与稳定性远不如数字电路。

目前通过数字电路实现led指数调光的方法主要有:查表法、分段线法和迭代方法。查找表方法可以人为的设定调光亮度编码形成既定的调光曲线;例如,在指数调光时使用查找表方法,以11bit分辨率的调光为例,可以采用指数的映射方式,将代表调光控制编码的1至2047映射为某种a^x函数的计算值,这样,人为造出了一条近似的指数调光曲线。分段线性可以利用多段线性去拟合指数曲线,实现指数调光;同样以11bit分辨率的调光为例,可以采用256段线性近似使得所得曲线越来越趋近与目标函数曲线。而迭代方法通过一个乘法器对底数进行指定次数的迭代乘法,实现指数调光;例如y=a^x函数,当x=2时,可通过乘法器计算y=a*a,需要一个周期的乘法得到结果;当x=100时,通过乘法器计算y=a^100,需要通过99个周期的乘法得到结果。现有的led指数调光方法较为复杂。



技术实现要素:

有鉴于此,本发明提供了一种发光二极管的指数调光方法及系统,有效解决现有技术存在的问题。

为实现上述目的,本发明提供的技术方案如下:

一种发光二极管的指数调光方法,包括:

获取nbit的调光控制编码,其中,所述调光控制编码包括顺序排列的第n-1数码至第零数码,n为不小于2的整数;

对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i),及在所述数码为0时获取相应系数为1,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

根据公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数),计算得到调节电流,其中,idac为所述调节电流,i计算为参考imin计算得到的电流值;

根据所述调节电流对所述发光二极管进行调光。

可选的,所述数码的系数为预存的系数编码,其中,在获取nbit的调光控制编码后包括:

对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i)的系数编码,及在所述数码为0时获取相应系数为1的系数编码,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

根据公式dac_code=i计算的编码*(第n-1数码相应系数编码*···*第零数码相应系数编码),计算得到指数转换编码,其中,dac_code为所述指数转换编码,i计算=(imin/i固定),i固定由数模转换器的最小电流源控制为固定值;

通过所述数模转换器将所述指数转换编码转换为调节电流,并根据所述调节电流对所述发光二极管进行调光。

可选的,所述计算得到指数转换编码包括:

判断一所述数码且获取相应系数编码后,根据公式dac_code_j=dac_code_j-1*第j数码相应系数编码,计算第j次中间指数转换编码,其中,dac_code_j为所述第j次中间指数转换编码,dac_code_j-1为第j-1次中间指数转换编码,且第一次中间指数转换编码为i计算的编码*初始判断数码相应系数编码,j大于1且不大于n的整数;

直至将最后一系数编码按照上述计算规律计算得到指数转换编码。

可选的,所述对所有数码进行判断为:

按照预设规律对所有数码进行判断。

可选的,所述预设规律为由所述第n-1数码至所述第零数码的顺序。

相应的,本发明还提供了一种发光二极管的指数调光系统,包括:

寄存模块,所述寄存模块用于获取nbit的调光控制编码,其中,所述调光控制编码包括顺序排列的第n-1数码至第零数码,n为不小于2的整数;并对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i),及在所述数码为0时获取相应系数为1,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

计算模块,所述计算模块根据公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数),计算得到调节电流,其中,idac为所述调节电流,i计算为参考imin计算得到的电流值;

以及,调光模块,所述调光模块根据所述调节电流对所述发光二极管进行调光。

可选的,所述数码的系数为预存在系数存储器中的系数编码,其中,所述寄存模块用于获取nbit的调光控制编码;并对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i)的系数编码,及在所述数码为0时获取相应系数为1的系数编码,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

所述计算模块为乘法器,所述乘法器根据公式dac_code=i计算的编码*(第n-1数码相应系数编码*···*第零数码相应系数编码),计算得到指数转换编码,其中,dac_code为所述指数转换编码,i计算=(imin/i固定),i固定由数模转换器的最小电流源控制为固定值;

所述调光模块为所述数模转换器,通过所述数模转换器将所述指数转换编码转换为调节电流,并根据所述调节电流对所述发光二极管进行调光。

可选的,所述寄存模块包括第一寄存器和第二寄存器;

所述第一寄存器用于获取nbit的调光控制编码后,对所有数码进行判断,其中,判断一所述数码且获取相应系数编码后,控制相应系数编码输出至所述乘法器;

所述乘法器根据公式dac_code_j=dac_code_j-1*第j数码相应系数编码,计算第j次中间指数转换编码且传输至所述第二寄存器中寄存,其中,dac_code_j为所述第j次中间指数转换编码,dac_code_j-1为所述第二寄存器寄存传输至所述乘法器的第j-1次中间指数转换编码,且第一次中间指数转换编码为i计算的编码*初始判断数码相应系数编码,直至将最后一系数编码按照上述计算规律计算得到指数转换编码并传输至所述第二寄存器中寄存,j大于1且不大于n的整数。

可选的,所述发光二极管的指数调光系统通过计数器控制所述乘法器的计算次数,且控制所述第二寄存器将所述指数转换编码传输至所述数模转换器。

可选的,所述寄存模块对所有数码进行判断为:

按照预设规律对所有数码进行判断。

相较于现有技术,本发明提供的技术方案至少具有以下优点:

本发明提供了一种发光二极管的指数调光方法及系统,包括:获取nbit的调光控制编码,其中,所述调光控制编码包括顺序排列的第n-1数码至第零数码,n为不小于2的整数;对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i),及在所述数码为0时获取相应系数为1,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;根据公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数),计算得到调节电流,其中,idac为所述调节电流,i计算为参考imin计算得到的电流值;根据所述调节电流对所述发光二极管进行调光。

由上述内容可知,结合公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数)可得出,本发明提供的技术方案,对于nbit的调光控制编码,仅仅通过n次系数的乘法计算即可得到调节电流,进而达到对发光二极管调光的目的,该调光方法更为简单,并且能够占用更少的硬件资源,同时保证调光电流的精度较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种发光二极管的指数调光方法的流程图;

图2为本申请实施例提供的另一种发光二极管的指数调光方法的流程图;

图3为本申请实施例提供的一种发光二极管的指数调光系统的结构示意图;

图4为本申请实施例提供的另一种发光二极管的指数调光系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

正如背景技术所述,目前通过数字电路实现led指数调光的方法主要有:查表法、分段线法和迭代方法。但是,现有的led指数调光方法较为复杂。

具体的,查找表方法对于数字电路而言需要较多的硬件资源,特别是在调光分辨率要求越来越高时,硬件资源也会迅速增加,例如11bit分辨率的调光,共有2048个档位,对应这些档位选择,实现电路需要由11*2047个寄存器来构建出所有的查找表数据,这可能会使芯片的成本过高。分段线性可以利用多段线性去拟合指数曲线;但是,分段越多,缺点越趋近与查找表方法,会耗费较多的硬件资源,而分段较少时,指数调光曲线的精度会变得很差,因此,减少分段是一个折中的办法,但无法获得较为理想的拟合效果。而迭代方法通过一个乘法器对底数进行指定次数的迭代乘法,实现指数调光;但是在分辨率较高时,如11bit(即调光控制编码数量为2047),当输入调光控制编码为2047时,就要进行2047次迭代乘法,这会使得芯片的反应时间过长,或者需要极高的频率来保证。

基于此,本申请实施例提供了一种发光二极管的指数调光方法及系统,有效解决现有技术存在的问题。为实现上述目的,本申请实施例提供的技术方案如下,具体结合图1至图4对本申请实施例提供的技术方案进行详细的描述。

参考图1所示,为本申请实施例提供的一种发光二极管的指数调光方法的流程图,其中,发光二极管的调光方法包括:

s1、获取nbit的调光控制编码,其中,所述调光控制编码包括顺序排列的第n-1数码至第零数码,且调光控制编码为二进制,n为不小于2的整数;

s2、对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i),及在所述数码为0时获取相应系数为1,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

s3、根据公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数),计算得到调节电流,其中,idac为所述调节电流,i计算为参考imin计算得到的电流值;

s4、根据所述调节电流对所述发光二极管进行调光。

可以理解的,结合公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数)可得出,本申请实施例提供的技术方案,对于nbit的调光控制编码,仅仅通过n次系数的乘法计算即可得到调节电流,进而达到对发光二极管调光的目的,该调光方法更为简单,并且能够占用更少的硬件资源,同时保证调光电流的精度较高。

在本申请一实施例中,由于对调光控制编码转换为调节电流可以通过数字电路实现,因此,在转换过程中涉及的系数等均为二进制编码类型。参考图2所示,为本申请实施例提供的另一种发光二极管的指数调光方法的流程图,其中,所述数码的系数为预存的系数编码,本申请实施例提供的发光二极管的指数调光方法包括:

在s1、获取nbit的调光控制编码后包括:

s2’、对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i)的系数编码,及在所述数码为0时获取相应系数为1的系数编码(即使得乘积结果保持不变),其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

s3’、根据公式dac_code=i计算的编码*(第n-1数码相应系数编码*···*第零数码相应系数编码),计算得到指数转换编码,其中,dac_code为所述指数转换编码,i计算=(imin/i固定),i固定由数模转换器的最小电流源控制为固定值;

s4’、通过所述数模转换器将所述指数转换编码转换为调节电流,并根据所述调节电流对所述发光二极管进行调光。

结合图2所示发光二极管的指数调光方法,对本申请实施例提供的指数调光的原理进行进一步说明,其中,下面具体数值以十进制方式进行表述。通常,指数调光公式由最大电流与最小电流决定,若想得到较为细腻的调光曲线,调光控制编码code的位数(即分辨率)就需要尽可能多。对于发光二极管的调光公式,一般而言有:

i驱动=imin*a^code

其中,imin为发光二极管的最小电流,a=(imax/imin)^(1/codemax)

对于指数映射的数学原理与实现有:

对于公式i驱动=imin*a^code,由于最终输出为模拟的调节电流,因此有:

dac_code*i固定=imin*a^code

转换可得:

dac_code=(imin/i固定)*a^code

由于i固定为模数转换器的最小电流源控制为固定值。可知,映射的核心在于a^code指数函数。

最终,对于指数映射的核心算法:

调光控制编码code为nbit的二进制数,有

code[n-1:0]={code[n-1],code[n-2],code[n-3],···,code[1],code[0]}

将该调光控制编码code转换为十进制code时,则有:

十进制code=code[n-1]*2^(n-1)+code[n-2]*2^(n-2)+···+code[1]*2^1+code[0]*2^0

对十进制a^code,有:

a^code=a^[code[n-1]*2^(n-1)]*a^[code[n-2]*2^(n-2)]*···*a^(code[1]*2^1)*a^(code[0]*2^0)

注意到调光控制编码code中任意一数码code[i]为二进制数,其数值非0即1,i为不小于0且不大于n-1的整数;因此,a^code可以由最多n次乘法来得到结果,每次乘以的系数为依次为a^[2^(n-1)],a^[2^(n-2)],···a^(2^0)。

进而,利用本申请实施例提供的指数调光方法,可以通过n次系数编码的乘法计算得到指数转换编码。

下面以调光控制编码code的位数为11bit为例进行说明(即n为11),且以发光二极管的指数调光曲线i驱动=100*1.0028^code为例来说明本申请实施例提供的技术方案的原理与实现方式。其中,imin=100ua,imax=30.5ma,11bit的最大值codemax=2047。

对于指数映射的数学原理与实现有:

对于公式i驱动=100×1.0028^code,由于最终输出为模拟的调节电流,因此有:

dac_code*i固定=100×1.0028^code

转换可得:

dac_code=100/i固定×1.0028^code

由于i固定为模数转换器的最小电流源控制为固定值。可知,映射的核心在于1.0028^code指数函数。

最终,对于指数映射的核心算法:

调光控制编码code为11bit的二进制数,有

code[10:0]={code[10],code[9],code[8],···,code[1],code[0]}

将该调光控制编码code转换为十进制code时,则有:

十进制code=code[10]*2^10+code[9]*2^9+···+code[1]*2^1+code[0]*2^0

对十进制1.0028^code,有

1.0028^code=1.0028^(code[10]*2^10)*1.0028^(code[9]*2^9)*···*1.0028^(code[1]*2^1)*1.0028^(code[0]*2^0)

注意到调光控制编码code中任意一数码code[i]为二进制数,其数值非0即1,i为不小于0且不大于10的整;因此,1.0028^code可以由最多11次乘法来得到结果;

每次乘以的系数为依次为1.0028^(2^10),1.0028^(2^9),···1.0028^(2^0),实际数字如下表1所示:

表1

进而,利用本申请实施例提供的指数调光方法,可以通过1次系数编码的乘法计算得到指数转换编码。

在本申请一实施例中,在对数码进行1或0的数值判断、且对系数编码进行乘法计算时,可以每判断一次数码并获得系数编码后,即进行一次乘法计算,最终通过循环迭代乘法得到最终的指数转换编码,即,本申请实施例提供的所述计算得到指数转换编码包括:

判断一所述数码且获取相应系数编码后,根据公式dac_code_j=dac_code_j-1*第j数码相应系数编码,计算第j次中间指数转换编码,其中,dac_code_j为所述第j次中间指数转换编码,dac_code_j-1为第j-1次中间指数转换编码,且第一次中间指数转换编码为i计算的编码*初始判断数码相应系数编码,j大于1且不大于n的整数;

直至将最后一系数编码按照上述计算规律计算得到指数转换编码。

在本申请一实施例中,本申请对数码进行判断时可以无规律进行判断。进一步的,本申请实施例提供的数码判断可以通过预设规律进行,进而简化控制时序,其中,所述对所有数码进行判断为:

按照预设规律对所有数码进行判断。

可选的,本申请实施例提供的所述预设规律为由所述第n-1数码至所述第零数码的顺序。

相应的,本申请实施例还提供了一种发光二极管的指数调光系统,参考图3所示,为本申请实施例提供的一种发光二极管的指数调光系统的结构示意图,其中,发光二极管的指数调光系统包括:

寄存模块100,所述寄存模块100用于获取nbit的调光控制编码,其中,所述调光控制编码包括顺序排列的第n-1数码至第零数码,n为不小于2的整数;并对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i),及在所述数码为0时获取相应系数为1,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

计算模块200,所述计算模块200根据公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数),计算得到调节电流,其中,idac为所述调节电流,i计算为参考imin计算得到的电流值;

以及,调光模块300,所述调光模块根据所述调节电流对所述发光二极管进行调光。

可以理解的,结合公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数)可得出,本申请实施例提供的技术方案,对于nbit的调光控制编码,仅仅通过n次系数的乘法计算即可得到调节电流,进而达到对发光二极管调光的目的,该调光方法更为简单,并且能够占用更少的硬件资源。

在本申请一实施例中,由于对调光控制编码转换为调节电流可以通过数字电路实现,因此,在转换过程中涉及的系数等均为二进制编码类型,即寄存模块和计算模块为数字电路类型。参考图4所示,为本申请实施例提供的另一种发光二极管的指数调光系统的结构示意图,其中,所述数码的系数为预存在系数存储器500中的系数编码,其中,所述寄存模块100用于获取nbit的调光控制编码;并对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i)的系数编码,及在所述数码为0时获取相应系数为1的系数编码,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;

所述计算模块为乘法器200,所述乘法器200根据公式dac_code=i计算的编码*(第n-1数码相应系数编码*···*第零数码相应系数编码),计算得到指数转换编码,其中,dac_code为所述指数转换编码,i计算=(imin/i固定),i固定由数模转换器的最小电流源控制为固定值;

所述调光模块为所述数模转换器dac,通过所述数模转换器dac将所述指数转换编码转换为调节电流,并根据所述调节电流对所述发光二极管进行调光。

在本申请一实施例中,在对数码进行1或0的数值判断、且对系数编码进行乘法计算时,可以每判断一次数码并获得系数编码后,即进行一次乘法计算,最终通过循环迭代乘法得到最终的指数转换编码,即,所述寄存模块包括第一寄存器101和第二寄存器102;

所述第一寄存器101用于获取nbit的调光控制编码后,对所有数码进行判断,其中,判断一所述数码且获取相应系数编码后,控制相应系数编码输出至所述乘法器200;

所述乘法器200根据公式dac_code_j=dac_code_j-1*第j数码相应系数编码,计算第j次中间指数转换编码且传输至所述第二寄存器102中寄存,其中,dac_code_j为所述第j次中间指数转换编码,dac_code_j-1为所述第二寄存器102寄存传输至所述乘法器的第j-1次中间指数转换编码,且第一次中间指数转换编码为i计算的编码*初始判断数码相应系数编码,直至将最后一系数编码按照上述计算规律计算得到指数转换编码并传输至所述第二寄存器102中寄存,j大于1且不大于n的整数。

参考图4所示,本申请实施例提供的所述发光二极管的指数调光系统通过计数器400进行时序控制,其中,计数器400可以控制所述乘法器200的计算次数,且控制所述第二寄存器102将所述指数转换编码传输至所述数模转换器。

在本申请一实施例中,本申请对数码进行判断时可以无规律进行判断。进一步的,本申请实施例提供的数码判断可以通过预设规律进行,进而简化控制时序,其中,所述寄存模块对所有数码进行判断为:

按照预设规律对所有数码进行判断。

可选的,本申请实施例提供的所述预设规律为由所述第n-1数码至所述第零数码的顺序,对此本申请不做具体限制。

本申请实施例提供了一种发光二极管的指数调光方法及系统,包括:获取nbit的调光控制编码,其中,所述调光控制编码包括顺序排列的第n-1数码至第零数码,n为不小于2的整数;对所有数码进行判断,在第i数码为1时获取所述第i数码相应系数为[(imax/imin)^(1/codemax)]^(2^i),及在所述数码为0时获取相应系数为1,其中,imax为所述发光二极管的最大驱动电流,imin为所述发光二极管的最小驱动电流,codemax为所述nbit的最大十进制值,i为不小于0且不大于n-1的整数;根据公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数),计算得到调节电流,其中,idac为所述调节电流,i计算为参考imin计算得到的电流值;根据所述调节电流对所述发光二极管进行调光。

由上述内容可知,结合公式idac=i计算*(第n-1数码相应系数*···*第零数码相应系数)可得出,本申请实施例提供的技术方案,对于nbit的调光控制编码,仅仅通过n次系数的乘法计算即可得到调节电流,进而达到对发光二极管调光的目的,该调光方法更为简单,并且能够占用更少的硬件资源,同时保证调光电流的精度较高。具体的:

相比现有常规方法,本申请实施例提供的技术方案可以仅通过一个乘法器通过n次循环乘法即可实现,电路面积与成本具有明显的优势,硬件资源消耗少。

另外,通过较高位数的乘法器,可实现精度非常高的指数映射。经过仿真得到,在举例调光公式下,使用本申请实施例提供指数调光算法,通过使用1个15*11的乘法器实现指数映射电路,输出15bit的dac_code调光编码代表的电流值与理论值平均误差仅有0.03%;

此外,相比现有迭代方法,本申请实施例提供的技术方案仅需要至多n个周期得到结果,在同样使用乘法器复用的条件下使运算速度得到极大的提升。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1