单线LED调光芯片的设计与实现
扫描二维码
随时随地手机看文章
1.引言
LED以其使用时间长、大视角、高亮度、色彩斑斓等特点而在近年来迅速的发展,它是继白炽灯、高强度放电灯、荧光灯之后第四代新能源。LED属于P/N结型半导体,它作为一种固态冷光源,与传统光源相比,具有耗电量小、环保、安全可靠、体积小的优点。为了加强节能减排的目,所以各种类型的LED驱动器中加上调光的功能是大势所趋。通常,LED驱动器的调光方式有3种:可控硅调光、模拟调光、PWM(脉宽调制)调光。每种调光方式都有其优点及局限性。为了便于数字信号控制,本芯片主要采用脉宽调制(PWM)来调光。脉冲宽度调制(PWM)就是脉冲调制方法中的一种,是指工作频率恒定(即工作周期不变),通过改变功率开关管导通时间或截止时间来改变占空比。占空比是指高电平在一个周期之内所占的时间比率,通过占空比的调整使输出电压稳定的方式。广泛应用在从测量、通信到功率控制与变换及LED照明等许多领域中。
2.芯片结构框图
图1所示为该调光芯片的结构框图,其中SDI用于接收数据,SDO用于数据的向后传输,振荡器为芯片提供时钟晶振,VLED为芯片提供电源,LDO为一线性稳压器,数字控制单元包括decode模块、PWM模块,OUTR、OUTG、OUTB为芯片的三个输出端,用于颜色显示。
3.芯片的工作原理
本芯片采用单线通讯方式传输数据,采用归零码的方式发送信号。系统在上电以后,SDI接收从控制器传输来的数据流,该数据流为基于归零码的二进制数据,当每个芯片接收36bit后,SDO输出口开始转发数据,为下一个芯片提供输入数据。RGB是工业界的一种颜色标准,是通过红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。
系统OUTR、OUTG、OUTB三个PWM输出端经过数字控制单元,每通道接收到12bit数据,每通道有12位PWM灰阶控制,有4096灰度等级。每通道发出相应不同占空比的信号,如果输入的是RESET信号,系统将接收到的数据送LED显示。
4.主要功能模块的实现
4.1 decode模块
该模块用于数据的采集,判断输入的数据是1还是0,并且将数据传送到R、G、B端口。采用脉冲边沿检测法,获得输入数据的上升沿sdi_posedge和sdi_negedge信号,将一个数据周期的高电平时钟数、低电平时钟数、整个周期的时钟数分别存放在high_count、low_count、count_cycle三个寄存器中,在数据的下降沿来临时,将high_count寄存器中的数据与count_cycle寄存器右移一位的数据进行比较,当high_count中的数值大于count_cycle右移一位的数值时,我们判断此时输入的数据位1,反之为0.将此时获得的0或者1存储在8位寄存器data_reg的最后一位,每来一位数据下降沿,将sdi_negedge_count寄存器加1,当该寄存器的数值分别为12、24、36时,将8为寄存器data_reg中的数据赋与rdata、gdata、bdata用于PWM模块的编码。在sdi_negedge_count为36时,将frame_flag寄存器置1,表示该模块已经接收完数据,剩下的信号通过SDO转发出去。图2所示为各个寄存器的Modelsim的仿真波形。
4.2 PWM模块
该模块用于将decode模块采集的数据,用于PWM编码,输出不同占空比的波形。
图3中,当来一个时钟脉冲时,循环计数器的输出增大,寄存器锁存一个12bit信号,锁存信号不断与循环计数器的数据进行比较,当锁存信号小于循环计数器的输出时,比较器输出高电平,否则输出低电平。
循环计数器循环一个周期后,向寄存器发出一个使能信号EN,寄存器锁存下一个信号。
在每一个计数器计数周期,由于输入的调制信号的大小不同,比较器输出端输出的高电平个数不一样,因而产生出占空比不同的脉冲宽度调制信号。图4所示为各通道PWM波形。
5.芯片的级联验证和验证分析
该芯片采用单线传输的方式进行级联,它的特点是:仅用一根数据线进行信号传输,极大缩小了印刷电路板尺寸,降低了布线的难度,需要外围器件也少,同时提高了芯片的可靠性和稳定性。如图5所示为该芯片的三颗级联工作示意图。
数据从左侧S D I进入第一颗芯片,每个芯片截取36bit数据,剩下的数据进行转发,SDO1、SDO2、SDO3分别为前一个芯片的输出数据。
RTL级代码编写完毕之后,用Modelsim进行功能仿真,利用Synopsys公司的DesignCompile进行逻辑综合,利用Prime TIme工具进行静态时序分析,利用Cadence公司的Silicon Ensemble进行自动布局布线,在经过后仿测试,最后完成流片。图7所示为流片完成后的示波器测试波形图。
6.结论
本文利用QuartusII平台编写RTL代码,利用Modelsim仿真软件进行了功能仿真,最后用示波器测试实物,获取了理想的波形,基本达到了预期的设计要求,相应的RGB输出正确的波形。本文至此已基本完成设计的要求,但还需要优化代码,提高可靠性和稳定性才可以用于大规模生产。