CN113835465B - 生成pwm信号的系统、方法及相应的电子设备 - Google Patents
生成pwm信号的系统、方法及相应的电子设备 Download PDFInfo
- Publication number
- CN113835465B CN113835465B CN202111144457.6A CN202111144457A CN113835465B CN 113835465 B CN113835465 B CN 113835465B CN 202111144457 A CN202111144457 A CN 202111144457A CN 113835465 B CN113835465 B CN 113835465B
- Authority
- CN
- China
- Prior art keywords
- data
- spi interface
- dma controller
- cache
- bits
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000000737 periodic effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/022—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种生成PWM信号的系统、方法及相应的电子设备,该系统包括:处理器生成第一数据并写入第一数据;配置DMA控制器从首地址开始每次读取一份第一数据,读取的总数据量为预定份数的第一数据;启动DMA控制器;DMA控制器若收到通知,则读取下一份第一数据,并发送给SPI接口的缓存;SPI接口按位将缓存中数据调制成电压电平信号并输出,同时将已输出的数据从缓存中丢弃;若判断缓存中数据等于或小于特定位数,向DMA控制器发送通知。在本发明中,由DMA控制器控制SPI接口输出PWM信号,输出多个周期信号的过程中,无需处理器介入,相比处理器实时控制,资源占用率较低。
Description
技术领域
本发明涉及一种生成PWM信号的系统,同时涉及一种生成PWM信号的方法及相应的电子设备,属于电脉冲技术领域。
背景技术
PWM(Pulse Width Modulation)是脉冲宽度调制的缩写。它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化。
近年来,智能家居得到了的发展和应用。在智能家居领域,PWM应用非常广泛。智能家居对PWM信号的要求也变得越来越高,智能家居要求有更多路数的PWM信号。
在专利号为ZL 201310118488.3的中国发明专利中,公开了一种基于FPGA的PWM发生器。在该专利中,实现PWM信号发生器的方式是FPGA内自带的FPGA单元,是FPGA中内置的硬件电路,现有技术中,某个系统中支持的PWM数由系统中硬件电路支持的路数决定。
在实际应用场景中,经常会出现硬件电路支持的PWM数不够的情况,例如PWM的作用是利用占空比控制智能灯具的亮暗,常见的灯具只有两个颜色的灯(黄白),因而与之配合的硬件电路通常只支持两个PWM,但市场又提出了彩色智能灯具的需求,这需要三个PWM控制三种颜色的(红黄蓝)灯的亮暗,若使用市场上常见的硬件电路会出现了PWM数量不足的情况。智能灯具中通常包含有处理器,若只使用处理器直接控制I/O引脚输出矩形波信号,处理器需要不停地控制I/O引脚输出高电平或低电平,对处理器资源的占用过高。
发明内容
本发明所要解决的技术问题在于提供一种生成PWM信号的系统。
本发明所要解决的另一技术问题在于提供一种生成PWM信号的方法。
本发明所要解决的又一技术问题在于提供一种生成PWM信号的电子设备。
为实现上述技术目的,本发明采用以下技术方案:
根据本发明实施例的第一方面,提供一种生成PWM信号的系统,包括:
处理器,用于根据要生成的第一PWM信号的第一占空比生成第一数据并向内存的连续地址空间中写入预定份数的第一数据;配置DMA控制器从连续地址空间的首地址开始读取,每次读取一份第一数据,读取的总数据量为内存中存储的预定份数的第一数据;其中,第一数据中数值为“1”的位的数量与第一数据的所有位的数量之比等于第一PWM信号的占空比,并且第一数据的位数小于或等于DMA控制器单次写入能写入的最大位数;启动DMA控制器;
DMA控制器,用于从首地址读取一份第一数据,并发送给SPI接口的缓存;若收到通知,则从内存中读取下一份第一数据,并发送给SPI接口的缓存;
SPI接口,用于按位将缓存中存储的数据调制成电压电平信号并输出,同时将已输出的数据从缓存中丢弃;若判断缓存中存储的数据等于或小于特定位数,则向DMA控制器发送需要读取数据的通知。
其中较优的,所述DMA控制器,还用于若确定向缓存完成写入预定份数的第一数据,则向处理器申请中断;
所述处理器,还用于若收到中断,则重新配置DMA控制器从首地址读取第一数据。
其中较优的,所述处理器,还用于若收到输出第二PWM信号的指令,则根据第二PWM信号的第二占空比生成第二数据,向预定空间写入预定份数的第二数据,以覆盖预定份数的第一数据;其中,第二PWM信号的周期与第一PWM信号的周期相等,第一数据的位数与第二数据的位数相同;第二数据中数值为“1”的位的数量与第二数据的所有位的数量之比等于第二PWM信号的占空比。
其中较优的,所述处理器,还用于按照下列公式,根据第一数据的位数和第一PWM信号的周期,确定SPI接口的波特率,并将波特率发送给SPI接口:
B=(T1×F)/N
其中,B为SPI接口的波特率,T1为第一PWM信号的周期,F为处理器的主频,N为第一数据的位数。
根据本发明实施例的第二方面,提供一种生成PWM信号的方法,基于上述的系统实现,包括以下步骤:
步骤S1,根据要生成的第一PWM信号的第一占空比生成第一数据并向内存的连续地址空间中写入预定份数的第一数据;配置DMA控制器从连续地址空间的首地址开始读取,每次读取一份第一数据,读取的总数据量为内存中存储的预定份数的第一数据;其中,第一数据中数值为“1”的位的数量与第一数据的所有位的数量之比等于第一PWM信号的占空比,且第一数据的位数小于或等于DMA控制器单次写入能写入的最大位数;
步骤S2,启动DMA控制器;
步骤S3,DMA控制器从首地址读取一份第一数据,并发送给SPI接口的缓存;
步骤S4,SPI接口按位将缓存中存储的数据调制成电压电平信号并输出,同时将已输出的数据从缓存中丢弃;
步骤S5,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若SPI接口判断缓存中存储的数据等于或小于特定位数,则向DMA控制器发送需要读取数据的通知;
步骤S6,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若DMA控制器收到通知,则从内存中读取下一份第一数据,并发送给SPI接口的缓存。
其中较优的,该方法还包括以下步骤:
步骤S7,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若DMA控制器确定向缓存完成写入预定份数的第一数据,则向处理器申请中断;
步骤S8,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若需要中断,则重新配置DMA控制器从首地址读取第一数据。
其中较优的,该方法还包括以下步骤:
步骤S9,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若收到输出第二PWM信号的指令,则根据第二PWM信号的第二占空比生成第二数据,向预定空间写入预定份数的第二数据,以覆盖预定份数的第一数据;其中,第二PWM信号的周期与第一PWM信号的周期相等,第一数据的位数与第二数据的位数相同;第二数据中数值为“1”的位的数量与第二数据的所有位的数量之比等于第二PWM信号的占空比。
其中较优的,步骤S1,还包括以下步骤:
步骤S11,按照下列公式,根据第一数据的位数和第一PWM信号的周期,确定SPI接口的波特率,并将波特率发送给SPI接口:
B=(T1×F)/N
其中,B为SPI接口的波特率,T1为第一PWM信号的周期,F为处理器的主频,N为第一数据的位数。
根据本发明实施例的第三方面,提供一种电子设备,包括上述任意一种生成PWM信号的系统。
与现有技术相比较,本发明利用SPI接口生成PWM信号,由于SPI接口使用的数据中用于输出高电平的数值“1”占所有数值的比例与要输出的PWM信号的占空比相同,因而能够SPI接口能够根据设定的占空比输出PWM信号,因此实现了利用软件来扩展硬件路数的效果;并且SPI接口输出的PWM信号是由DMA控制器控制的,DMA控制器控制输出多个周期PWM信号的过程中,无需处理器介入控制,因而相比需要处理器实时控制的方法,资源占用率较低。
附图说明
图1为本发明实施例提供的一种生成PWM信号的方法流程图;
图2为第一数据数值分布以及对应SPI接口输出电平的示意图;
图3为逻辑分析仪中的SPI接口输出信号和SPI接口时钟的波形图;
图4是本发明第二实施例公开一种生成PWM信号的系统框图;
图5为第三实施例的所有装置相互作用的关系示意图;
图6为智能灯具利用本发明提供的系统生成PWM信号的方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。
本发明可以应用于包含处理器(例如CPU等)、内存、SPI(Serial PeripheralInterface,串行外设接口)接口、DMA(Direct Memory Access,直接存储器访问)控制器的系统中。该系统通常在独立的MCU(Microcontroller Unit,微控制单元)芯片基础上,通过软件和/或固件层面的优化实现。系统中的各个装置按照如下方法相互配合,可以生成所需的PWM信号。在本发明的一个实施例中,所使用的MCU芯片可以是深圳前海维晟智能技术有限公司生产的WS8100芯片,也可以是具有类似功能的其他芯片。
图1为本发明实施例公开的一种生成PWM信号的方法流程图,该方法基于包括处理器、内存、DMA控制器和SPI接口的系统实现,包括以下步骤:
步骤S1,处理器根据要生成的第一PWM信号的第一占空比生成第一数据并向内存的连续地址空间中写入预定份数的第一数据;处理器配置DMA控制器从连续地址空间的首地址开始读取,每次读取一份第一数据,读取的总数据量为内存中存储的预定份数的第一数据;其中,第一数据中数值为“1”的位的数量与第一数据的所有位的数量之比等于第一PWM信号的占空比,且第一数据的位数小于或等于DMA控制器单次写入能写入的最大位数;
步骤S2,处理器启动DMA控制器;
步骤S3,DMA控制器从首地址读取一份第一数据,并发送给SPI接口的缓存;
步骤S4,SPI接口按位将缓存中存储的数据调制成电压电平信号并输出,同时将已输出的数据从缓存中丢弃;
步骤S5,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若SPI接口判断缓存中存储的数据等于或小于特定位数,则向DMA控制器发送需要读取数据的通知;
步骤S6,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若DMA控制器收到通知,则从内存中读取下一份第一数据,并发送给SPI接口的缓存。
本发明处理器主要作用是生成用于输出PWM信号的数据以及配置DMA控制器和SPI接口,内存的作用是存储用于生成多个周期的PWM信号的数据(即第一数据和第二数据),DMA控制器主要作用是将内存中的用于SPI接口输出PWM信号的数据搬运到SPI接口的缓存中的作用,SPI接口用于将缓存中的用于输出PWM信号的数据调制成PWM信号并输出。
由于SPI接口能将缓存中的数据按位输出,若一位数据的数值为“1”,则SPI接口在一个SPI接口时钟周期内输出高电平,若一位数据的数值为“0”,则SPI接口在一个SPI接口时钟周期内输出低电平,因而第一数据的每位的数值与SPI接口根据第一数值输出的波形存在对应关系,SPI接口按照第一数据输出高电平持续的时间=SPI接口时钟周期×第一数据中所有数值为“1”的位的数量。SPI接口输出第一数据的总时间=SPI接口时钟周期×第一数据中所有位的数量。因而SPI接口根据第一数据输出的一个周期的PWM信号的占空比=第一数据中数值为“1”的位的数量/第一数据的所有位的数量。
实际应用中,根据PWM信号的占空比和用于输出的数据的总位数,能够计算出,数值为“1”的位的数量。数值为“1”的位的数量=用于输出的数据的总位数×PWM信号的占空比。例如,总位数为32位,占空比为50%,数值为“1”的位的数量为16个。
要输出的PWM信号为上升沿起始的矩形波信号,矩形波前半部分为连续的高电平,后半部分为连续的低电平。SPI接口输出缓存中数据的方式为按照位数从低到高,因此第一数据分可为两部分,用于输出高电平的低位区和用于输出低电平的高位区,低位区从第一数据的最低位开始直到处理器根据第一占空比计算出第一数据中数值为“1”的位数,所有低位区的位的数值都为“1”,高位区从比低位区最高的位高1位的位开始,直到第一数据的最高位,所有的收据都为“0”。图2为第一数据数值分布以及对应SPI接口输出电平的示意图;例如,第一数据为四个字节大小,要输出的PWM为占空比50%的方波,则前两个字节所有的位的数值为“1”,后两个字节所有的位的数值都为“0”,第一数据为0xFFFF。
第一数据对应一个周期的PWM信号,第一数据长度越大,每位的数值对应的时间相对于整个PWM的周期的比值越小,可实现更精确的占空比。本发明第一数据的长度,最大可以是16字节(DMA控制器一次最多向SPI缓存写入16个字节),处理器配置DMA控制器每次从内存读取的数据的长度也为第一数据的长度。这样的好处是,DMA控制器读取一份第一数据是一个原子操作(一旦执行不会被打断),若DMA控制器读取一份第一数据是两个操作(第一数据过长,导致DMA无法一次读完;或者虽然第一数据长度不超过DMA一次能读完的最大长度,但处理器设置DMA每次读取的长度小于第一数据的长度,使得需要两次或多次才能读完第一数据),可能出现被处理器打断,导致读取的数据有问题的情况。例如,第一数据过长,为32个字节,DMA需要读两次,才能读完,DMA读完第一数据的前16个字节后,处理器刚好打断DMA的读取动作,对后16个字节的数据进行了改写,DMA控制器继续读取下半个已经修改过的数据,就会导致DMA控制器读到的上半个数据是未经修改的,下半个数据是经过修改的情况,导致出错。
图3是逻辑分析仪中的SPI接口输出信号和SPI接口时钟的波形图。其中,SPI-MISO为SPI接口输出信号的波形,SPI-CLK为SPI接口时钟的波形。每个SPI接口时钟周期,SPI接口输出第一数据的一位数值调制成的波形,SPI接口输出信号(即输出的PWM信号)的周期等于第一数据位数个SPI接口时钟周期。
具体地,预定份数可以是十几份,每份第一数据都是相同的。DMA控制器在配置好之后,可以每次从内存读取一份第一数据,之后自动更改读取数据的指针,使指针指向下一份第一数据,直到读完预定份数的第一数据。DMA控制器读完一份第一数据,不是马上读取下一份,而是将第一数据发送给SPI接口的缓存,等待SPI接口对第一数据进行调制并输出。SPI接口按位将缓存中的数据输出,当发现缓存中剩余的数据等于或小于特定位数(特定位数可以是128位)时,则通知DMA控制器从内存读取下一份第一数据。DMA控制器接到通知,就从内存读取下一份第一数据,并将下一份第一数据发送给SPI接口。若SPI接口在输出缓存中所有数据之后,再请求获取数据,则一定会有小段时间,SPI接口缓存是空的,没有数据可以用于输出,输出的数据会中断。提前通知DMA控制器获取数据的好处是,在SPI接口缓存中所有数据都用完之前,SPI接口缓存能够通过DMA控制器获取下一份第一数据用于继续输出,输出的数据不会中断。SPI接口的缓存的大小通常为32字节。缓存的数据用于输出时,是后进后出的。SPI接口中确定缓存剩余数据的位数不多时,通知DMA控制器与SPI接口输出数据是并行的,SPI接口继续按照处理器设置的波特率按位输出调制后的信号。
在上述工作原理的基础上,步骤S4,还包括以下步骤:
步骤S7,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若DMA控制器确定向缓存完成写入预定份数的第一数据,则向处理器申请中断;
步骤S8,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若处理器收到中断,则重新配置DMA控制器从首地址读取第一数据。
本发明实施例中的DMA控制器可以重复读取内存中的第一数据,具体方式是在读完内存空间中存储的最后一份第一数据,并将最后一份数据发送给SPI接口后,向处理器申请中断,处理器重新配置DMA控制器读取数据的地址为内存中所有第一数据中地址最小的那份第一数据的首地址。例如,内存中存有16份第一数据,DMA控制器读取第16份第一数据并将第一数据发送给SPI接口的缓存后,DMA控制器向处理器申请中断,处理器配置DMA控制器从内存中读取数据的地址为第一份第一数据的首地址,当SPI接口确定缓存中剩下8位数据,向DMA控制器发出通知,DMA控制器从内存中读取第一份第一数据,发送给SPI接口。
在上述工作原理的基础上,步骤S4,还包括以下步骤:
步骤S9,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若处理器收到输出第二PWM信号的指令,则根据第二PWM信号的第二占空比生成第二数据,处理器向预定空间写入预定份数的第二数据,以覆盖预定份数的第一数据;其中,第二PWM信号的周期与第一PWM信号的周期相等,第一数据的位数与第二数据的位数相同;第二数据中数值为“1”的位的数量与第二数据的所有位的数量之比等于第二PWM信号的占空比。
本发明能够在输出PWM信号的过程中,调整输出PWM信号的占空比,即本发明初始输出的第一PWM信号的占空比为第一占空比,在某时刻处理器接受命令,调整输出信号的占空比,调整后输出信号(改变占空比后输出的PWM信号为第二PWM信号)的占空比为第二占空比,第二占空比不等于第一占空比。实际应用中,上位机向处理器发送调整占空比的请求,此时若DMA控制器正在读取内存,占据总线,处理器需要等待DMA控制器完成读取一份第一数据,然后再将内存中所有的第一数据替换成第二数据。处理器可不对DMA控制器的配置进行修改,例如DMA控制器读取完内存中第3份第一数据后,处理器将16份第一数据替换成第二数据,DMA控制器下一次读取的是16份第二数据的第4份。
在上述工作原理的基础上,步骤S1,还包括以下步骤:
步骤S11,处理器按照下列公式,根据第一数据的位数和第一PWM信号的周期,确定SPI接口的波特率,并将波特率发送给SPI接口:
B=(T1×F)/N
其中,B为SPI接口的波特率,T1为第一PWM信号的周期,F为处理器的主频,N为第一数据的位数。
本发明中通过调整SPI接口的波特率来调整输出的PWM信号的周期。SPI接口时钟周期T2与波特率B之间的关系是:T2=B/F,又由于要输出的PWM信号的周期等于第一数据的位数个SPI接口时钟周期T1=N×T2,因而根据可以得到SPI接口的波特率B与要输出的PWM信号的周期之间的关系式B=(T1×F)/N。
本发明利用SPI接口生成PWM信号,由于SPI接口根据的数据中用于输出高电平的数值“1”占所有数值的比例与要输出的PWM信号的占空比相同,因而能够根据设定的占空比输出PWM信号;并且SPI接口输出PWM信号是由DMA控制器控制的,DMA控制器控制输出多个周期PWM信号的过程中,无需处理器介入控制,因而相比需要处理器实时控制的方法,资源占用率较低。
图4是本发明实施例公开一种生成PWM信号的系统的框图。该系统至少包括以下装置:
处理器,用于根据要生成的第一PWM信号的第一占空比生成第一数据并向内存的连续地址空间中写入预定份数的第一数据;配置DMA控制器从连续地址空间的首地址开始读取,每次读取一份第一数据,读取的总数据量为内存中存储的预定份数的第一数据;其中,第一数据中数值为“1”的位的数量与第一数据的所有位的数量之比等于第一PWM信号的占空比,且第一数据的位数小于或等于DMA控制器单次写入能写入的最大位数;启动DMA控制器;
DMA控制器,用于从首地址读取一份第一数据,并发送给SPI接口的缓存;若收到通知,则从内存中读取下一份第一数据,并发送给SPI接口的缓存;
SPI接口,用于按位将缓存中存储的数据调制成电压电平信号并输出,同时将已输出的数据从缓存中丢弃;若判断缓存中存储的数据等于或小于特定位数,则向DMA控制器发送需要读取数据的通知。
在上述系统的基础上,DMA控制器,还用于若确定向缓存完成写入预定份数的第一数据,则向处理器申请中断;
处理器,还用于若收到中断,则重新配置DMA控制器从首地址读取第一数据。
在上述系统的基础上,处理器还用于若收到输出第二PWM信号的指令,则根据第二PWM信号的第二占空比生成第二数据,向预定空间写入预定份数的第二数据,以覆盖预定份数的第一数据;其中,第二PWM信号的周期与第一PWM信号的周期相等,第一数据的位数与第二数据的位数相同;第二数据中数值为“1”的位的数量与第二数据的所有位的数量之比等于第二PWM信号的占空比。
在上述系统的基础上,处理器还用于按照下列公式,根据第一数据的位数和第一PWM信号的周期,确定SPI接口的波特率,并将波特率发送给SPI接口:
B=(T1×F)/N
其中,B为SPI接口的波特率,T1为第一PWM信号的周期,F为处理器的主频,N为第一数据的位数。
图5为图4所示系统中所有装置相互作用的关系示意图。其中,DMA控制器和处理器共用总线对内存进行读写,若DMA控制器正在从内存读取数据,处理器需等待DMA控制器读取完数据,再向内存写入数据。
本发明进一步提供一种电子设备,包括上述任意一种的系统。该电子设备可以是智能灯具也可以是无刷电机,灯具中集成了本发明中的生成PWM信号的系统,还可以集成WIFI或者蓝牙通讯单元,远程接受终端的控制。以电子设备是智能灯具为例,图6为智能灯具利用生成PWM信号的系统生成PWM信号的方法流程图,该方法包括以下步骤:
步骤S1,用户在终端的软件界面中设置PWM信号的占空比和频率的数据发送给处理器;
步骤S2,终端将PWM信号的占空比和频率的数据发送给处理器;
步骤S3,处理器根据PWM信号的占空比的数据生成第一信号,将第一信号复制成16份并发送给内存,将频率的数据发送给SPI接口;
步骤S4,处理器配置DMA读取内存的第一信号,配置DMA控制器从连续地址空间的首地址开始读取,每次读取一份第一数据,读取的总数据量为内存中存储的预定份数的第一数据;
步骤S5,处理器启动DMA;
步骤S6,DMA控制器从首地址读取一份第一数据,并发送给SPI接口的缓存;
步骤S7,SPI接口按位将缓存中存储的数据调制成电压电平信号并输出,同时将已输出的数据从缓存中丢弃;
步骤S8,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,SPI接口判断缓存中存储的数据等于或小于特定位数,若等于或小于则跳转到步骤S9,若大于则仍然停留在步骤S8;
步骤S9,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,SPI接口向DMA控制器发送需要读取数据的通知;
步骤S10,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若DMA控制器收到通知,则从内存中读取下一份第一数据,并发送给SPI接口的缓存;
步骤S11,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若DMA控制器判断是否完成向缓存写入预定份数的第一数据,若是,则跳转到步骤S12,若否则继续执行步骤S11;
步骤S12,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,DMA控制器则向处理器申请中断;
步骤S13,在SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若处理器收到中断,则重新配置DMA控制器从首地址读取第一数据。
另外,图5的示例输出的PWM信号用于控制智能灯具的亮暗,若要彻底关闭智能灯具,处理器可以关闭DMA的使能,或直接关闭SPI。
本发明中的电子设备还可以是无刷电机,PWM信号能够应用于驱动无刷电机。
不同于现有技术中,所能支持的PWM个数由系统中硬件电路支持的路数决定,本发明中的PWM信号个数不变但是支持的路数利用软件增加,从而节约硬件成本;并且利用软件可以方便设计自由度,有利于对使用本发明的系统(例如灯具等电子产品)变更设计,从而降低研发成本。
上面对本发明所提供的生成PWM信号的系统、方法及相应的电子设备进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质内容的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (10)
1.一种生成PWM信号的系统,其特征在于包括:
处理器,用于根据要生成的第一PWM信号的第一占空比生成第一数据,并向内存的连续地址空间中写入预定份数的所述第一数据;配置DMA控制器从所述连续地址空间的首地址开始读取,每次读取一份所述第一数据,读取的总数据量为所述内存中存储的所述预定份数的第一数据;其中,所述第一数据中数值为“1”的位的数量与所述第一数据的所有位的数量之比等于所述第一PWM信号的占空比,并且所述第一数据的位数小于或等于所述DMA控制器单次能写入的最大位数;启动所述DMA控制器;
DMA控制器,用于从所述首地址读取一份所述第一数据,并发送给SPI接口的缓存;
SPI接口,用于按位将所述缓存中存储的第一数据调制成电压电平信号并输出,同时将已输出的数据从所述缓存中丢弃;若判断所述缓存中存储的数据等于或小于特定位数,则向所述DMA控制器发送需要读取数据的通知。
2.如权利要求1所述的系统,其特征在于:
所述DMA控制器还用于在确定向所述缓存写入所述预定份数的第一数据已完成后,向所述处理器申请中断;
所述处理器,还用于收到所述中断的情况下,重新配置所述DMA控制器从所述首地址读取所述第一数据。
3.如权利要求2所述的系统,其特征在于:
所述处理器还用于在收到输出第二PWM信号的指令的情况下,则根据所述第二PWM信号的第二占空比生成第二数据,向预定空间写入所述预定份数的第二数据,以覆盖所述预定份数的第一数据;其中,所述第二PWM信号的周期与所述第一PWM信号的周期相等,所述第一数据的位数与所述第二数据的位数相同;所述第二数据中数值为“1”的位的数量与所述第二数据的所有位的数量之比等于所述第二PWM信号的占空比。
4.如权利要求1~3中任意一项所述的系统,其特征在于:
所述处理器,还用于按照下列公式,根据所述第一数据的位数和所述第一PWM信号的周期,确定所述SPI接口的波特率,并将所述波特率发送给所述SPI接口:
其中,B为SPI接口的波特率,T1为第一PWM信号的周期,F为处理器的主频,N为第一数据的位数。
5.一种生成PWM信号的方法,其特征在于包括以下步骤:
步骤S1,根据要生成的第一PWM信号的第一占空比生成第一数据并向内存的连续地址空间中写入预定份数的所述第一数据;配置DMA控制器从所述连续地址空间的首地址开始读取,每次读取一份所述第一数据,读取的总数据量为所述内存中存储的所述预定份数的第一数据;其中,所述第一数据中数值为“1”的位的数量与所述第一数据的所有位的数量之比等于所述第一PWM信号的占空比,并且所述第一数据的位数小于或等于所述DMA控制器单次能写入的最大位数;
步骤S2,启动所述DMA控制器;
步骤S3,所述DMA控制器从所述首地址读取一份所述第一数据,并发送给SPI接口的缓存;
步骤S4,所述SPI接口按位将所述缓存中存储的数据调制成电压电平信号并输出,同时将已输出的数据从所述缓存中丢弃;
步骤S5,在所述SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若所述SPI接口判断所述缓存中存储的数据等于或小于特定位数,则向所述DMA控制器发送需要读取数据的通知;
步骤S6,在所述SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若所述DMA控制器收到所述通知,则从所述内存中读取下一份所述第一数据,并发送给所述SPI接口的缓存。
6.如权利要求5所述的方法,其特征在于还包括以下步骤:
步骤S7,在所述SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若所述DMA控制器确定向所述缓存完成写入所述预定份数的第一数据,则向处理器申请中断;
步骤S8,在所述SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若需中断,则重新配置所述DMA控制器从所述首地址读取所述第一数据。
7.如权利要求6所述的方法,其特征在于还包括以下步骤:
步骤S9,在所述SPI接口按位将缓存中存储的数据调制成电压电平信号并输出的过程中,若收到输出第二PWM信号的指令,则根据所述第二PWM信号的第二占空比生成第二数据,向预定空间写入所述预定份数的第二数据,以覆盖所述预定份数的第一数据;其中,所述第二PWM信号的周期与所述第一PWM信号的周期相等,所述第一数据的位数与所述第二数据的位数相同;所述第二数据中数值为“1”的位的数量与所述第二数据的所有位的数量之比等于所述第二PWM信号的占空比。
8.如权利要求5~7中任意一项所述的方法,其特征在于:所述步骤S1,还包括以下子步骤:
步骤S11,按照下列公式,根据所述第一数据的位数和所述第一PWM信号的周期,确定所述SPI接口的波特率,并将所述波特率发送给所述SPI接口:
其中,B为SPI接口的波特率,T1为第一PWM信号的周期,F为处理器的主频,N为第一数据的位数。
9.一种电子设备,其特征在于包括权利要求1~4中任意一项所述的系统。
10.如权利要求9所述的电子设备,其特征在于: 所述电子设备是智能灯具或无刷电机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111144457.6A CN113835465B (zh) | 2021-09-28 | 2021-09-28 | 生成pwm信号的系统、方法及相应的电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111144457.6A CN113835465B (zh) | 2021-09-28 | 2021-09-28 | 生成pwm信号的系统、方法及相应的电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113835465A CN113835465A (zh) | 2021-12-24 |
CN113835465B true CN113835465B (zh) | 2024-02-02 |
Family
ID=78967056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111144457.6A Active CN113835465B (zh) | 2021-09-28 | 2021-09-28 | 生成pwm信号的系统、方法及相应的电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835465B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719430A (zh) * | 2022-07-28 | 2023-09-08 | 广州众远智慧科技有限公司 | 红外触摸屏的扫描设备以及红外触摸系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2678250Y (zh) * | 2004-01-09 | 2005-02-09 | 李剑 | 一种采用dma技术的pwm控制器 |
KR20070093802A (ko) * | 2006-03-15 | 2007-09-19 | 오므론 가부시키가이샤 | 리졸버 신호 처리 장치 |
JP2014075720A (ja) * | 2012-10-05 | 2014-04-24 | Hitachi Ulsi Systems Co Ltd | Pwm信号生成装置 |
CN104570858A (zh) * | 2014-12-19 | 2015-04-29 | 深圳市科陆电子科技股份有限公司 | 模拟信号采样方法以及采样系统 |
CN106656707A (zh) * | 2016-12-03 | 2017-05-10 | 河池学院 | 一种步进电机细分控制系统 |
EP3537293A1 (de) * | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
CN111162984A (zh) * | 2019-12-27 | 2020-05-15 | 常州节卡智能装备有限公司 | 一种基于biss-c的控制方法、装置及通信系统 |
CN111552205A (zh) * | 2018-12-30 | 2020-08-18 | 德州仪器公司 | 管理来自多个源的脉冲宽度调制跳闸信号 |
CN112650049A (zh) * | 2019-10-11 | 2021-04-13 | 博世华域转向系统有限公司 | 电动助力转向电机的信号采集和控制输出的系统及方法 |
-
2021
- 2021-09-28 CN CN202111144457.6A patent/CN113835465B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2678250Y (zh) * | 2004-01-09 | 2005-02-09 | 李剑 | 一种采用dma技术的pwm控制器 |
KR20070093802A (ko) * | 2006-03-15 | 2007-09-19 | 오므론 가부시키가이샤 | 리졸버 신호 처리 장치 |
JP2014075720A (ja) * | 2012-10-05 | 2014-04-24 | Hitachi Ulsi Systems Co Ltd | Pwm信号生成装置 |
CN104570858A (zh) * | 2014-12-19 | 2015-04-29 | 深圳市科陆电子科技股份有限公司 | 模拟信号采样方法以及采样系统 |
CN106656707A (zh) * | 2016-12-03 | 2017-05-10 | 河池学院 | 一种步进电机细分控制系统 |
EP3537293A1 (de) * | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
CN111552205A (zh) * | 2018-12-30 | 2020-08-18 | 德州仪器公司 | 管理来自多个源的脉冲宽度调制跳闸信号 |
CN112650049A (zh) * | 2019-10-11 | 2021-04-13 | 博世华域转向系统有限公司 | 电动助力转向电机的信号采集和控制输出的系统及方法 |
CN111162984A (zh) * | 2019-12-27 | 2020-05-15 | 常州节卡智能装备有限公司 | 一种基于biss-c的控制方法、装置及通信系统 |
Non-Patent Citations (2)
Title |
---|
基于ATmega128的步进电机细分驱动技术;何帅等;微计算机信息;第26卷(第14期);第90-92页 * |
基于MSP430的直流电机PWM调速双闭环控制系统设计;董燕飞;煤矿机械;第31卷(第06期);第206-208页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113835465A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2174311B1 (en) | Remote control signaling infrared generator | |
US20170255588A1 (en) | Multiprotocol i3c common command codes | |
US20180143935A1 (en) | Bus Device with Programmable Address | |
CN113220108B (zh) | 计算机可读取存储介质、操作频率调整方法及装置 | |
CN113835465B (zh) | 生成pwm信号的系统、方法及相应的电子设备 | |
CN105404500A (zh) | 用于开关电压调节器的可配置数字接口 | |
US10970243B2 (en) | Front end serial bus automatic bus park tri-state activation | |
US20180173667A1 (en) | Hard reset over i3c bus | |
JP2017527038A (ja) | 周波数および電力管理 | |
CN111627200B (zh) | 基于红外协议的信号调制方法、电路及遥控终端 | |
EP1223515A2 (en) | Bidirectional parallel signal interface | |
CN116776781B (zh) | 一种寄存器参数的管理方法、系统、设备及存储介质 | |
CN104464617A (zh) | 一种并联显示系统及其显示装置 | |
CN116312393A (zh) | 彩色墨水屏的驱动方法、装置、设备以及存储介质 | |
WO2021208805A1 (zh) | 硬件单板的逻辑地址空间的配置方法、设备和存储介质 | |
CN111095780B (zh) | 马达控制装置、马达控制装置的控制方法、控制程序、及记录介质 | |
TWI770516B (zh) | 操作頻率調整方法及電腦程式產品及裝置 | |
US20030088724A1 (en) | Asynchronous bus interface apparatus | |
CN107168897B (zh) | 一种实现i2c重复读写控制的装置 | |
US11720159B2 (en) | Unified bus architecture for a voltage regulator | |
CN113553000B (zh) | 降低集成电路功耗的方法及其控制电路 | |
WO2023284131A9 (zh) | 脉冲调制控制系统、装置及方法 | |
CN114583924A (zh) | 电路的控制方法、终端及存储介质 | |
US6043762A (en) | Hardware bit coder | |
CA2502306A1 (en) | A reconfigurable state machine architecture and related method of execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |