发明内容
本发明的目的在于提供一种LED驱动脉冲宽度分割方法,旨在解决现有LED脉冲宽度切割方法存在LED刷新率与显示真实度不能共存的问题。
本发明是这样实现的,一种LED驱动脉冲宽度分割方法,所述LED脉冲宽度分割方法包括以下步骤:
将与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期平均分割成第一预设数量的显示子周期;
将每个所述显示子周期划分为第二预设数量的显示单元周期,每个显示单元周期中包括第三预设数量的时钟脉冲数;
根据所述时钟脉冲数与所述灰度数据获取所述LED驱动脉冲的一个显示周期所包含的显示单元周期的数量;
根据所述显示单元周期的数量将所述LED驱动脉冲在所述显示子周期中进行分配。
本发明的另一目的还在于提供一种LED驱动脉冲宽度分割系统,所述LED驱动脉冲分割系统包括:
周期均分模块,用于将与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期平均分割成第一预设数量的显示子周期;
显示子周期均分模块,用于将每个所述显示子周期划分为第二预设数量的显示单元周期,每个显示单元周期中包括第三预设数量的时钟脉冲数;
单元周期数量获取模块,用于根据所述时钟脉冲数与所述灰度数据获取所述LED驱动脉冲的一个显示周期所包含的显示单元周期的数量;
脉冲分配模块,用于根据所述显示单元周期的数量将所述LED驱动脉冲在所述显示子周期中进行分配。
在本发明中,将与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期平均分割成第一预设数量的显示子周期,并将每个显示子周期划分为第二预设数量的显示单元周期,每个显示单元周期中包括第三预设数量的时钟脉冲数,再根据时钟脉冲数与灰度数据获取LED驱动脉冲的一个显示周期所包含的显示单元周期的数量,并根据显示单元周期的数量将LED驱动脉冲在显示子周期中进行分配,进而引用显示单元周期的概念对LED驱动脉冲的宽度进行分割,保证了LED刷新率的同时又不会降低LED驱动脉冲对应的灰度数据的真实性,从而解决了现有的LED脉冲宽度切割方法存在无法同时实现高LED刷新率和良好的显示真实度的问题。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体附图对本发明的实现进行详细的描述:
图3示出了本发明一实施例所提供的LED驱动脉冲宽度分割方法的实现流程,为了便于说明,仅示出与本发明实施例相关的部分,详述如下:
在步骤S1中,将与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期平均分割成第一预设数量的显示子周期。
具体的,步骤S1包括以下步骤:
将灰度数据转换为n位二进制数据,则与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期包含2n个时钟脉冲,n为不小于2的正整数。
其中,假设n为16,则与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期包含216=65536个时钟脉冲。
将2n个时钟脉冲平均分割成第一预设数量的显示子周期,第一预设数量为2m,m为大于零且小于n的正整数。
其中,假设m为6,则第一预设数量为26=64,即与灰度数据所对应的LED 驱动脉冲的一个显示周期对应的时钟周期可划分为64个显示子周期,每个显示子周期中具有2n-m=216-6=1024个时钟脉冲。在本实施例中,m的值可根据用户需要进行设定。
在步骤S2中,将每个显示子周期划分为第二预设数量的显示单元周期,每个显示单元周期中包括第三预设数量的时钟脉冲数。
其中,将每个显示子周期划分为2a个显示单元周期,即第二预设数量为2a,每个显示单元周期中包含2k个时钟脉冲数,即第三预设数量为2k;a为大于零且小于n的正整数,k为大于零且小于m的正整数;需要说明的是,a与k的值同样可根据用户需要进行设定,并且a值的大小可与m值的大小相同,也可不同,而k的值必须小于m的值或者a的值。
在本实施例中,可知与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期内的时钟脉冲数2n=2m×2a×2k,即假设当n=16,a=8,m=6,k=2时,则与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期内的可划分为26=64个显示子周期,每个显示子周期中包含28=256个显示单元周期,每个显示单元周期包含22=4个时钟脉冲。
在步骤S3中,根据时钟脉冲数与灰度数据获取LED驱动脉冲的一个显示周期所包含的显示单元周期的数量。
其中,步骤S3具体为:
将灰度数据与时钟脉冲数进行相除以获取显示单元周期的数量。
其中,每个灰度数据所对应的LED驱动脉冲的一个显示周期内的高电平宽度为该灰度数据个时钟脉冲的宽度,并且该灰度数据对应的LED驱动脉冲的一个显示周期内的高电平宽度包含的显示单元周期的数量为灰度数据/2k;即假设灰度数据为64时,则与该灰度数据64对应的LED驱动脉冲的一个显示周期内的高电平宽度为64个时钟脉冲的宽度,则显示单元周期的数量为64/2k=64/4=16个显示单元周期。
在步骤S4中,根据显示单元周期的数量将LED驱动脉冲在显示子周期中 进行分配。
其中,步骤S4又分为以下三种情况:
第一种情况:当灰度数据大于零且小于2k时,显示单元周期的数量为1,并根据显示单元周期的数量将灰度数据对应的LED驱动脉冲分配在一个显示子周期中。
具体的,如图4所示,当灰度数据在[0,2k]之间,即灰度数据在[0,4]之间时,假设灰度数据为3时,该灰度数据3对应的16位二进制数据为0000000000000011,则与该灰度数据对应的LED驱动脉冲PWM的一个显示周期对应的时钟周期包含216=65536个时钟脉冲,而该时钟周期可分为26=64个显示子周期,每个显示子周期中包含1024个时钟脉冲,并且每个显示子周期可分为28=256个显示单元周期,每个显示单元周期中包含22=4个时钟脉冲。
进一步地,与该灰度数据3对应的LED驱动脉冲PWM的一个显示周期内的高电平宽度为3个时钟脉冲的宽度,而该灰度数据3对应的LED驱动脉冲PWM的一个显示周期内的高电平宽度所包含的显示单元周期的数量为3/2k=3/4,由于该显示单元周期的数量不足1,则将该灰度数据3对应的驱动脉冲PWM的一个显示周期内的高电平全部划分到显示子周期中的一个显示单元周期中,即将该灰度数据3对应的驱动脉冲PWM的一个显示周期内的高电平全部划分到第一个显示子周期中的第一个显示单元中。
此外,LED驱动脉冲PWM1是现有技术中对灰度数据3对应的LED驱动脉冲PWM进行分割后的脉冲波形图,从图4可以看出,现有技术将灰度数据3对应的LED驱动脉冲PWM中高电平的宽度平均分配至三个显示子周期中,且每个显示子周期中包含的LED驱动脉冲PWM的高电平宽度为一个时钟脉冲,由于现有技术分割后的LED驱动脉冲PWM1中每个高电平宽度只包含一个时钟脉冲,其宽度很窄,因此,分割后的LED驱动脉冲PWM1所产生的驱动电流失真度比较大,进而导致灰度数据显示失真较大,而本发明实施例将灰度数据对应的LED驱动脉冲PWM的一个显示周期内的高电平全部划分到一个 显示子周期中的一个显示单元周期中,使得LED驱动脉冲PWM的宽度较宽,进而降低了LED驱动脉冲PWM所产生的驱动电流的失真度,从而保证了灰度数据的显示真实性。
第二种情况:当灰度数据大于2k且小于或等于2m+k时,显示单元周期的数量为灰度数据除以2k,并根据显示单元周期的数量将灰度数据对应的LED驱动脉冲平均分配在与显示单元周期的数量对应的多个显示子周期中。
进一步地,当灰度数据除以2k的结果存在余数时,根据余数对应的LED驱动脉冲与显示单元周期的数量对灰度数据对应的LED脉冲进行分配。
具体的,如图5所示,当灰度数据在(2k,2m+k]之间,即灰度数据在(4,256]之间时,假设灰度数据为64时,该灰度数据64对应的16位二进制数据为0000000001000000,则与该灰度数据对应的LED驱动脉冲PWM2的一个显示周期对应的时钟周期包含216=65536个时钟脉冲,而该时钟周期可分为26=64个显示子周期,每个显示子周期中包含1024个时钟脉冲,并且每个显示子周期可分为28=256个显示单元周期,每个显示单元周期中包含22=4个时钟脉冲。
进一步地,与该灰度数据64对应的LED驱动脉冲PWM2的一个显示周期内的高电平宽度为64个时钟脉冲的宽度,而该灰度数据64对应的LED驱动脉冲PWM2的一个显示周期内的高电平宽度所包含的显示单元周期的数量为64/2k=64/4=16,即该灰度数据64对应的LED驱动脉冲PWM2的一个显示周期内的高电平宽度所包含的显示单元周期的数量为16个,并且每个显示单元周期包含4个时钟脉冲数。因此,如图5所示,本发明实施例提供的LED驱动脉冲宽度分割方法可将灰度数据64对应的LED驱动脉冲PWM2划分为子周期数为16,且刷新率倍数为16的LED驱动脉冲PWM3,即本发明实施例提供的LED驱动脉冲宽度分割方法可将灰度数据64对应的LED驱动脉冲PWM2平均分配至16个显示子周期中,并且分割之后的LED驱动脉冲PWM3在每个显示子周期中的高电平宽度为一个显示单元周期所包含的4个时钟脉冲。
进一步地,如果本实施例中的灰度数据为67时,则灰度数据67对应的LED 驱动脉冲PWM2的一个显示周期内的高电平宽度为67个时钟脉冲的宽度,而该灰度数据67对应的LED驱动脉冲PWM2的一个显示周期内的高电平宽度所包含的显示单元周期的数量为67/2k=67/4=16……3,并且每个显示单元周期包含4个时钟脉冲数,因此,本发明实施例提供的LED驱动脉冲宽度分割方法可将灰度数据67对应的LED驱动脉冲PWM2划分为子周期数为16,且刷新率倍数为16的LED驱动脉冲PWM3,即本发明实施例提供的LED驱动脉冲宽度分割方法可将灰度数据67对应的LED驱动脉冲PWM2平均分配至16个显示子周期中,并且分割之后的LED驱动脉冲PWM3在每个显示子周期中的高电平宽度为一个显示单元周期所包含的4个时钟脉冲,而对于余数3,本发明实施例提供的LED驱动脉冲宽度分割方法将该余数3所对应的3个时钟脉冲作为一个显示子周期进行分配,即最终将灰度数据67对应的LED驱动脉冲分割为显示子周期数为17,并且其中16个显示子周期中的高电平宽度均为4个时钟脉冲的宽度,有一个显示子周期中的高电平宽度为3个时钟脉冲的宽度。
此外,LED驱动脉冲PWM4是现有技术中对灰度数据64对应的LED驱动脉冲PWM2进行分割后的脉冲波形图,从图5可以看出,现有技术将灰度数据64对应的LED驱动脉冲PWM2中高电平的宽度平均分配至64个显示子周期中,且每个显示子周期中包含的LED驱动脉冲PWM4的高电平宽度为一个时钟脉冲,由于现有技术分割后的LED驱动脉冲PWM4中每个高电平宽度只包含一个时钟脉冲,其宽度很窄,因此,分割后的LED驱动脉冲PWM4所产生的驱动电流失真度比较大,进而导致灰度数据显示失真较大,而本发明实施例将灰度数据64对应的LED驱动脉冲PWM2分割为子周期数为16,且刷新率倍数为16的LED驱动脉冲PWM3,该LED驱动脉冲PWM3中每个高电平宽度包含4个时钟脉冲,使得LED驱动脉冲PWM3的宽度较宽,进而降低了LED驱动脉冲PWM4所产生的驱动电流的失真度,从而保证了灰度数据的显示真实性,并且提高了LED驱动脉冲PWM2的刷新率。
第三种情况:当灰度数据大于2m+k且小于或等于2n时,显示单元周期的数 量为灰度数据除以2k,并根据显示单元周期的数量将灰度数据对应的LED驱动脉冲平均分配在2m个显示子周期中。
进一步地,当灰度数据除以2k的结果存在余数时,将余数对应的LED驱动脉冲添加在2m个显示子周期中的第一个显示子周期的LED驱动脉冲之后。
具体的,如图6所示,当灰度数据在(2m+k,2n]之间,即灰度数据在(256,65536]之间时,假设灰度数据为258时,该灰度数据258对应的16位二进制数据为0000000100000010,则与该灰度数据258对应的LED驱动脉冲PWM5的一个显示周期对应的时钟周期包含216=65536个时钟脉冲,而该时钟周期可分为26=64个显示子周期,每个显示子周期中包含1024个时钟脉冲,并且每个显示子周期可分为28=256个显示单元周期,每个显示单元周期中包含22=4个时钟脉冲。
进一步地,与该灰度数据258对应的LED驱动脉冲PWM5的一个显示周期内的高电平宽度为258个时钟脉冲的宽度,而该灰度数据258对应的LED驱动脉冲PWM5的一个显示周期内的高电平宽度所包含的显示单元周期的数量为258/2k=258/4=64……2,即该灰度数据258对应的LED驱动脉冲PWM5的一个显示周期内的高电平宽度所包含的显示单元周期的数量为64个,并且每个显示单元周期包含4个时钟脉冲数。因此,如图6所示,本发明实施例提供的LED驱动脉冲宽度分割方法可将灰度数据258对应的LED驱动脉冲PWM5划分为子周期数为64,且刷新率倍数为64的LED驱动脉冲PWM6,即本发明实施例提供的LED驱动脉冲宽度分割方法可将灰度数据258对应的LED驱动脉冲PWM5平均分配至64个显示子周期中,并且分割之后的LED驱动脉冲PWM6在每个显示子周期中的高电平宽度为一个显示单元周期所包含的4个时钟脉冲。
进一步地,对于余数2,本发明实施例提供的LED驱动脉冲宽度分割方法将该余数2添加在LED驱动脉冲PWM6的第一个显示子周期的LED驱动脉冲之后。
此外,LED驱动脉冲PWM7是现有技术中对灰度数据258对应的LED驱动脉冲PWM5进行分割后的脉冲波形图,从图6可以看出,现有技术将灰度数据258对应的LED驱动脉冲PWM5中高电平的宽度平均分配至64个显示子周期中,且每个显示子周期中包含的LED驱动脉冲PWM4的高电平宽度为4个时钟脉冲,虽然现有技术的LED驱动脉冲分割方法对灰度数据258对应的LED驱动脉冲进行分割后的LED驱动脉冲包含的显示子周期相同,但是现有技术在针对余数2进行分割时,是将余数2平均分割至64个显示子周期中的第一个显示子周期中与第二个显示子周期中,而本发明实施例所提供的LED驱动脉冲宽度分割方法是将余数2添加至LED驱动脉冲PWM6的第一个显示子周期的LED驱动脉冲之后,如此可使LED驱动脉冲PWM6中的脉冲宽度大于LED驱动脉冲PWM7中的脉冲宽度,进而降低了LED驱动脉冲PWM7所产生的驱动电流的失真度,从而保证了灰度数据的显示真实性,并且提高了LED驱动脉冲PWM5的刷新率。
下面通过设计实例来说明本发明实施例所提供的LED驱动脉冲宽度分割方法。
本发明实施例所提供的LED驱动脉冲宽度分割方法主要将灰度数据分为三段[0,2k],(2k,2m+k],(2m+k,2n]处理,并对灰度数据进行了包括单元分割和子周期分割的两次分割。具体的,对于0~k位数据,主要采用单元时脉计数器cell_cnt进行计数,对于k~m+k位数据,主要采用子周期计数器subT_cnt进行计数,以及对于m+k~n位数据,主要采用子周期时脉计数器subck_cnt进行计数。
在本实施例中,16位数据由高位到低为b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0。则n=16,假设a=8,m=6,k=2,则单元时脉计数器cell_cnt设计为2位计数器(k=2),负责对低2位的b1b0计数,该单元时脉计数器cell_cnt是对切割的显示单元周期的数量不足1个显示单元周期的灰度数据进行计数,由0计数到22-1,并且计数结果作为1个显示单元周期分配,也就是说,如果 单元时脉计数器cell_cnt计数结果不为0,则进位1到子周期计数器subT_cnt,如果为0则不进位。
子周期计数器subT_cnt设计为6位计数器(m=6),负责对中间6位的b7b6b5b4b3b2计数,该子周期计数器是对不足64个显示子周期数的显示单元周期的数量进行计数处理,该子周期计数器subT_cnt的计数值会加上单元时脉计数器cell_cnt送过来的进位,而且计数达到26后会向子周期时脉计数器subck_cnt计数器进位,该子周期计数器subT_cnt由0计数到26-1,然后子周期计数器subT_cnt的计数结果通过组合逻辑处理将不足64个显示子周期数的显示单元周期的数量平均分配到64个显示子周期中去。
子周期时脉计数器subck_cnt设计为8位计数器(a=8),负责对高8位的b15b14b13b12b11b10b9b8计数,并加上子周期计数器subT_cnt送来的进位。该子周期时脉计数器subck_cnt是对显示单元周期的数量进行计数,所以是用周期进行k分频后的时钟计数,并且可由0计数到28-1,该计数结果表示每个显示子周期内所含的显示单元周期的数量。每个显示子周期所含的显示单元周期的数量和子周期计数器subT_cnt计数结果通过组合逻辑处理的结果再进行组合逻辑,将每个显示子周期所含的显示单元周期的数量加上从子周期计数器subT_cnt处理得到的1个显示单元周期的数量,得到最终的该显示子周期的LED驱动脉冲宽度。
如灰度值为64的灰度数据,其二进制码为0000000001000000,则单元时脉计数器cell_cnt计数的低2位为00,即单元时脉计数器cell_cnt计数为0,不进位。子周期计数器subT_cnt计数的中间6位为010000,计数为16,不进位,说明LED驱动脉冲中有有包含16个时钟脉冲的高电平平均分配到64个设定的显示子周期中去,按设定好的平均分配原则,每隔4个显示子周期分配1个时钟脉冲宽度的LED驱动脉冲的高电平。子周期时脉计数器subck_cnt计数的高8位为00000000,计数为0,所以每个显示子周期的显示单元周期的数量为0。最终只有将LED驱动脉冲平均分配到64个显示子周期的16个显示子周期中, 如图5所示。
如灰度值为258的灰度数据,其二进制码为0000000100000010,则单元时脉计数器cell_cnt计数的低2位为10,即单元时脉计数器cell_cnt计数为2,进位1。子周期计数器subT_cnt计数的中间6位为000000,计数为0,加上进位1,结果为1,说明现在有1个PWM分配到64个设定的显示子周期中去,按设定好的平均分配原则,第1个显示子周期分配1个PWM脉冲,即LED驱动脉冲中宽度为2个时钟脉冲的高电平分配到第一个显示子周期中。子周期时脉计数器subck_cnt计数的高8位为00000001,计数为1,所以每个显示子周期的显示单元周期的数量为1,也就是每个显示子周期都含有1个显示单元周期(4个时脉数),加上第1个显示子周期分配的1个PWM脉冲,最终如图6所示。
图7示出了本发明一实施例所提供的LED驱动脉冲宽度分割系统的模块结构,为了便于说明,仅示出与本发明实施例相关的部分,详述如下:
如图7所示,本发明实施例所示的LED驱动脉冲宽度分割系统包括周期均分模块100、显示子周期均分模块200、单元周期数量获取模块300以及脉冲分配模块400。
其中,周期均分模块100,用于将与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期平均分割成第一预设数量的显示子周期。
显示子周期均分模块200,用于将每个显示子周期划分为第二预设数量的显示单元周期,每个显示单元周期中包括第三预设数量的时钟脉冲数。
单元周期数量获取模块300,用于根据时钟脉冲数与灰度数据获取LED驱动脉冲的一个显示周期所包含的显示单元周期的数量。
脉冲分配模块400,用于根据显示单元周期的数量将LED驱动脉冲在显示子周期中进行分配。
在本发明实施例中,将与灰度数据所对应的LED驱动脉冲的一个显示周期对应的时钟周期平均分割成第一预设数量的显示子周期,并将每个显示子周期 划分为第二预设数量的显示单元周期,每个显示单元周期中包括第三预设数量的时钟脉冲数,再根据时钟脉冲数与灰度数据获取LED驱动脉冲的一个显示周期所包含的显示单元周期的数量,并根据显示单元周期的数量将LED驱动脉冲在显示子周期中进行分配,进而引用显示单元周期的概念对LED驱动脉冲的宽度进行分割,提高了LED刷新率的同时又保证了LED驱动脉冲对应的灰度数据的真实性,从而解决了现有的LED脉冲宽度切割方法存在无法同时实现高LED刷新率和良好的显示真实度的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。