CN116056293A - 一种串行rgb灯驱动方法、系统、设备及存储介质 - Google Patents
一种串行rgb灯驱动方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN116056293A CN116056293A CN202211699170.4A CN202211699170A CN116056293A CN 116056293 A CN116056293 A CN 116056293A CN 202211699170 A CN202211699170 A CN 202211699170A CN 116056293 A CN116056293 A CN 116056293A
- Authority
- CN
- China
- Prior art keywords
- rgb lamp
- signal
- spi
- driving
- hexadecimal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B47/00—Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
- H05B47/10—Controlling the light source
- H05B47/165—Controlling the light source following a pre-assigned programmed sequence; Logic control [LC]
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B47/00—Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
- H05B47/10—Controlling the light source
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B20/00—Energy efficient lighting technologies, e.g. halogen lamps or gas discharge lamps
- Y02B20/40—Control techniques providing energy savings, e.g. smart controller or presence detection
Abstract
本发明公开了一种串行RGB灯驱动方法、系统、设备及存储介质,其中串行RGB灯驱动方法包括:获取用于驱动RGB灯的驱动信号,调用SPI协议对所述驱动信号进行数据转换并存储至缓存区中;利用DMA自动从所述缓存区中读取转换后的数据并将其传送至SPI总线,通过SPI总线控制与其相连的RGB灯执行操作。本发明采用SPI+DMA机制,将用于驱动RGB灯的驱动信号进行数据转换后再由DMA发送至SPI总线,而其他按键等用户行为所产生的信号则依然继续使用CPU进行数据传输,可避免各信号传输过程中出现中断的情况,提高灯显示准确性。
Description
技术领域
本发明涉及灯具驱动技术领域,尤其涉及一种串行RGB灯驱动方法、系统、设备及计算机可读存储介质。
背景技术
现有RGB串行驱动依赖CPU的处理算力,当算力不够时会出现严重的灯效错误,严重影响用户体验;且根据常用串行RGB数据格式,从通信数据格式可以得知,当需要发出一个bit 0时,需先发0.3us的高电平,后再拉0.9us的低电平,而正常的代码处理都是us级,有的是ms级,加上实际代码运行过程中还有很多按键等用户行为来打断,导致这么短的时间,想要发出一个正常的bit 0是很难的,若RGB串行驱动完全依赖于CPU,大概率会导致数据通信异常,从而出现灯显示错乱。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种串行RGB灯驱动方法,解决了信号发送过程中被打断的问题,提高灯控显示准确性。
本发明的目的之二在于提供一种串行RGB灯驱动系统。
本发明的目的之三在于提供一种电子设备。
本发明的目的之四在于提供一种计算机可读存储介质。
本发明的目的之一采用如下技术方案实现:
一种串行RGB灯驱动方法,包括:
获取用于驱动RGB灯的驱动信号,调用SPI协议对所述驱动信号进行数据转换并存储至缓存区中;
利用DMA自动从所述缓存区中读取转换后的数据并将其传送至SPI总线,通过SPI总线控制与其相连的RGB灯执行操作。
进一步地,在获取所述驱动信号前,还包括:
获取配置参数对SPI及其时钟频率进行配置,根据SPI时钟频率计算出对应的时钟周期。
进一步地,对所述驱动信号进行转换的方法为:
根据所述驱动信号在N个时钟周期内的电平状态转换为二进制码,再将二进制码输出为以十六进制形式传输的十六进制数字信号,并存储至所述缓存区。
进一步地,当所述SPI时钟为6MHz,所述驱动信号为bit0时,将bit0转换为十六进制的0xc0。
进一步地,当所述SPI时钟为6MHz,所述驱动信号为bit1时,将bit1转换为十六进制的0xf3。
进一步地,还包括:
实时判断获取到的信号的类型,若信号由用户行为产生,则直接通过CPU将该信号填充至SPI总线。
本发明的目的之二采用如下技术方案实现:
一种串行RGB灯驱动系统,执行如上述的串行RGB灯驱动方法;所述系统包括:
第一缓存模块,用于接收并存储待发送的驱动信号;
数据转换模块,用于将所述第一缓存模块中所存储的所述驱动信号转换为十六进制数字信号;
第二缓存模块,用于接收并存储所述数据转换模块发送的所述十六进制数字信号;
DMA控制模块,用于自动从所述第二缓存模块中读取所述十六进制数字信号并传送至与其相连的SPI总线上以实现对RGB灯的控制。
进一步地,所述系统还包括:
CPU模块,用于接收由用户行为所产生的信号,并直接传送至与其相连的SPI总线以实现对RGB灯的控制。
本发明的目的之三采用如下技术方案实现:
一种电子设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的串行RGB灯驱动方法。
本发明的目的之四采用如下技术方案实现:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上述的串行RGB灯驱动方法。
相比现有技术,本发明的有益效果在于:
本发明采用SPI+DMA机制,将用于驱动RGB灯的驱动信号进行数据转换后再由DMA发送至SPI总线,而其他按键等用户行为所产生的信号则依然继续使用CPU进行数据传输,可避免各信号传输过程中出现中断的情况,提高灯显示准确性。
附图说明
图1为本发明串行RGB灯驱动方法的流程示意图;
图2为本发明串行RGB数据电平示意图;
图3为本发明串行RGB灯驱动系统的模块示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例一
本实施例提供一种串行RGB灯驱动方法,该方法利用普通算力的CPU,再搭配SPI+DMA模块从而实现对RGB灯的准确控制,解决因CPU算力不够所导致的灯效错误问题,提高用户使用体验。
如图1所示,所述串行RGB灯驱动方法具体包括如下步骤:
步骤S1:在系统上电后需要预先配置DMA和SPI;其中,DMA(Direct MemoryAccess,即直接存储器访问),直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输;而本实施例利用DMA对驱动信号进行传输可防止信号被中断的问题。
而配置DMA过程可确定传输数据的外设和寄存器地址,确定传输方向等。而SPI的配置过程中包括了对SPI时钟频率进行配置,SPI时钟可根据实际需求进行设置,而本实施例中可将SPI时钟频率设置为6MHz,而SPI时钟频率的倒数则为时钟周期,因此本实施例的时钟周期为1/6MHz=0.167us。
步骤S2:获取待发送的用于驱动RGB灯的驱动信号,并将待发送的驱动信号复制至第一缓存区中进行临时存放。
步骤S3:调用SPI协议对存储在所述第一缓存区中的所述驱动信号进行数据转换,转换后存储至第二缓存区中。具体地,数据转换方法为:
根据所述驱动信号在N个时钟周期内的电平状态转换为二进制码,再将二进制码输出为以十六进制形式传输的十六进制数字信号。
如图2所示,图2为常用串行RGB数据格式,从通信数据格式上可以看出,当要一个bit0时,先发0.3us的高电平,后再拉0.9us的低电平;以SPI时钟频率为6MHz(1bit=1/6MHz=0.167us)为例,T0H=0.167*2=0.33us,即T0H高电平阶段维持时间约占两个时钟周期;T0L=0.167*6=0.99us,T0L低电平阶段维持时间占六个时钟周期;根据0码的高低电平状态即可转换为二进制码11000000,再将二进制码转换为十六进制0xc0;因此,当所述SPI时钟频率为6MHz时,用十六进制的0xc0代表bit0。
同理,1码的电平状态为T1H高电平时间约占六个时钟周期,T1H=0.167*6=0.99us;而T1L低电平时间约占两个时钟周期,T1L=0.167*2=0.33us;根据1码的高低电平状态即可转换为二进制码00000011,再将二进制码转换为十六进制0xf3;因此,当所述SPI时钟频率为6MHz时,用十六进制0xf3代表bit1。
经过转换后的十六进制数字信号存放至第二缓存区中进行临时存放。
步骤S4:利用DMA自动从所述第二缓存区中读取转换后的数据并将其传送至SPI总线,通过SPI总线控制与其相连的RGB灯执行对应操作。
DMA不间断地读取第二缓存区中的数据并发送至SPI总线上,期间不需要CPU接入,从而释放CPU算力;而释放的CPU算力可用于传输由用户行为产生的其他数据,例如用户按下按键所发出的按键信号等,当判断得知待发送的信号为用户行为所产生的信号时,则可直接使用CPU将该信号传输至SPI总线上进行灯的控制。本实施例采用普通算力的CPU再搭配SPI+DMA机制来实现RGB灯的信号传输,可避免发出bit0、bit1时被其他用户行为打断,减少数据通信异常的情况,提高RGB灯的控制准确性和稳定性,避免出现灯效错误,提高用户使用体验感。
实施例二
本实施例提供一种串行RGB灯驱动系统,执行如实施例一的串行RGB灯驱动方法;如图3所示,所述系统包括有第一缓存模块、数据转换模块、第二缓存模块以及DMA控制模块。
所述第一缓存模块用于获取待发送的驱动信号,并将待发送的驱动信号复制至第一缓存区中进行临时存放。
所述数据转换模块用于调用SPI协议对存储在所述第一缓存模块中的所述驱动信号进行数据转换,转换后存储至第二缓存区中;其数据转换方法是根据所述驱动信号在N个时钟周期内的电平状态转换为二进制码,再将二进制码输出为以十六进制形式传输的十六进制数字信号;本实施例中,所述SPI时钟频率为6MHz,用十六进制的0xc0代表bit0,用十六进制0xf3代表bit1。
所述第二缓存模块用于接收并存储所述数据转换模块发送的所述十六进制数字信号。
所述DMA控制模块则用于自动从所述第二缓存模块中读取所述十六进制数字信号并传送至与其相连的SPI总线上以实现对RGB灯的控制。
此外,所述串行RGB灯驱动系统还包括有传统的CPU模块,当所述DMA控制模块不间断地读取所述第二缓存模块中的数据并将其发送至SPI总线上,期间不需要CPU接入,相当于释放CPU算力;此时释放算力的CPU模块则可用于传输由用户行为产生的其他数据,即通过CPU模块将接收到的由用户行为所产生的信号直接传送至与其相连的SPI总线以实现对RGB灯的控制。
本实施例采用SPI+DMA模块,将用于驱动RGB灯的驱动信号进行数据转换后再由DMA发送至SPI总线,而其他按键等用户行为所产生的信号则依然继续使用CPU进行数据传输,可避免各信号传输过程中出现中断的情况,提高灯显示准确性。
实施例三
本实施例提供一种电子设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中的串行RGB灯驱动方法。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的串行RGB灯驱动方法。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本实施例中的设备及存储介质与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的设备及存储介质的结构及实施过程,为了说明书的简洁,在此就不再赘述。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (10)
1.一种串行RGB灯驱动方法,其特征在于,包括:
获取用于驱动RGB灯的驱动信号,调用SPI协议对所述驱动信号进行数据转换并存储至缓存区中;
利用DMA自动从所述缓存区中读取转换后的数据并将其传送至SPI总线,通过SPI总线控制与其相连的RGB灯执行操作。
2.根据权利要求1所述的串行RGB灯驱动方法,其特征在于,在获取所述驱动信号前,还包括:
获取配置参数对SPI及其时钟频率进行配置,根据SPI时钟频率计算出对应的时钟周期。
3.根据权利要求2所述的串行RGB灯驱动方法,其特征在于,对所述驱动信号进行转换的方法为:
根据所述驱动信号在N个时钟周期内的电平状态转换为二进制码,再将二进制码输出为以十六进制形式传输的十六进制数字信号,并存储至所述缓存区。
4.根据权利要求3所述的串行RGB灯驱动方法,其特征在于,当所述SPI时钟为6MHz,所述驱动信号为bit0时,将bit0转换为十六进制的0xc0。
5.根据权利要求3所述的串行RGB灯驱动方法,其特征在于,当所述SPI时钟为6MHz,所述驱动信号为bit1时,将bit1转换为十六进制的0xf3。
6.根据权利要求1所述的串行RGB灯驱动方法,其特征在于,还包括:
实时判断获取到的信号的类型,若信号由用户行为产生,则直接通过CPU将该信号填充至SPI总线。
7.一种串行RGB灯驱动系统,其特征在于,执行如权利要求1~6任一所述的串行RGB灯驱动方法;所述系统包括:
第一缓存模块,用于接收并存储待发送的驱动信号;
数据转换模块,用于将所述第一缓存模块中所存储的所述驱动信号转换为十六进制数字信号;
第二缓存模块,用于接收并存储所述数据转换模块发送的所述十六进制数字信号;
DMA控制模块,用于自动从所述第二缓存模块中读取所述十六进制数字信号并传送至与其相连的SPI总线上以实现对RGB灯的控制。
8.根据权利要求7所述的串行RGB灯驱动系统,其特征在于,所述系统还包括:
CPU模块,用于接收由用户行为所产生的信号,并直接传送至与其相连的SPI总线以实现对RGB灯的控制。
9.一种电子设备,其特征在于,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1~6任一所述的串行RGB灯驱动方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被执行时实现权利要求1~6任一所述的串行RGB灯驱动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211699170.4A CN116056293A (zh) | 2022-12-28 | 2022-12-28 | 一种串行rgb灯驱动方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211699170.4A CN116056293A (zh) | 2022-12-28 | 2022-12-28 | 一种串行rgb灯驱动方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116056293A true CN116056293A (zh) | 2023-05-02 |
Family
ID=86115016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211699170.4A Pending CN116056293A (zh) | 2022-12-28 | 2022-12-28 | 一种串行rgb灯驱动方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116056293A (zh) |
-
2022
- 2022-12-28 CN CN202211699170.4A patent/CN116056293A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241955B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
WO2021244194A1 (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
US10579581B2 (en) | Multilane heterogeneous serial bus | |
KR20160065206A (ko) | 카메라 제어 인터페이스 슬레이브 디바이스 대 슬레이브 디바이스 통신 | |
CN111865952A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN113613289B (zh) | 一种蓝牙数据传输方法、系统及通信设备 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
CN116056293A (zh) | 一种串行rgb灯驱动方法、系统、设备及存储介质 | |
CN110659143A (zh) | 一种容器间的通讯方法、装置及电子设备 | |
CN116185929A (zh) | 主从设备间通讯的通讯转换装置 | |
CN114595080A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN110492935B (zh) | 数据处理系统、方法、装置及终端设备 | |
JP2007299367A5 (zh) | ||
KR100865572B1 (ko) | 이동통신 단말기의 인터페이스 제공 장치 및 그 방법 | |
CN1173797A (zh) | 比特同步电路及其方法 | |
KR20210063011A (ko) | 저전력 투-버스트 데이터 전송을 위한 or-네트워크 버스 인코딩 장치 및 방법 | |
CN113328998B (zh) | 影像数据传输的方法和电子设备 | |
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
CN113886296B (zh) | 数据传输方法、装置、设备和存储介质 | |
CN113360326B (zh) | 调试日志获取方法及设备 | |
CN112637011B (zh) | 数据传输方法、数据传输装置、数据传输设备及存储介质 | |
CN117493248B (zh) | Usb数据传输方法、装置、系统、电子设备及存储介质 | |
CN116578514A (zh) | 一种信号传输方法及相关组件 | |
KR100591844B1 (ko) | 유에스비를 이용한 이동통신 단말기의 소프트웨어다운로드 방법 및 그 시스템 | |
CN117743233A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |