CN110609499A - 一种adc实时性采样与非实时性采样的切换方法及设备 - Google Patents
一种adc实时性采样与非实时性采样的切换方法及设备 Download PDFInfo
- Publication number
- CN110609499A CN110609499A CN201910881681.XA CN201910881681A CN110609499A CN 110609499 A CN110609499 A CN 110609499A CN 201910881681 A CN201910881681 A CN 201910881681A CN 110609499 A CN110609499 A CN 110609499A
- Authority
- CN
- China
- Prior art keywords
- adc
- real
- time sampling
- data
- state
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24215—Scada supervisory control and data acquisition
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Analogue/Digital Conversion (AREA)
- Control Of Electric Motors In General (AREA)
Abstract
本发明提供了一种ADC实时性采样与非实时性采样的切换方法及设备,方法包括:通过重置预先设置的ADC数据链表中的ADC状态启动ADC通道的DMA中断模式,驱动ADC进行非实时性采样,采样完成后将ADC通道配置为TIMER驱动模式,驱动ADC进行实时性采样。通过预先设置用于存储非实时性采样数据的述ADC数据链表,在接收到非实时性采样命令时,将所述ADC通道由实时性采样的TIMER驱动模式切换为非实时性采样的DMA中断模式,ADC在DMA中断模式下进行非实时性采样时直接从内存中获取数据并将数据保存到ADC数据链表中,充分利用ADC功能,在一个ADC中实现实时性采样与非实时性采样的快速切换。
Description
技术领域
本发明涉及电机驱动技术领域,尤其涉及的是一种ADC实时性采样与非实时性采样的切换方法及设备。
背景技术
随着人们生活水平的提高和现代化生产、办公自动化的发展,家用电器、工业机器人等设备都越来越趋向于高效率化、小型化。直流无刷电机等作为元器件的重要组成部分,也往普遍化和低成本的方向发展。
现有的MCU通常是采用两个ADC来分别进行实时性采集和非实时性采集。当采用低成本MCU时,通常只配置了一个ADC对多个通道执行分时采样。当用于电机驱动控制时,需要使用外部信号来触发ADC采样时机,对实时性,优先级的要求都非常高。一旦ADC配置出现错误,实时性电机采样出现错误,经过反馈计算造成电机的输出电压过高,如果电流过流就会造成电机烧坏。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于提供一种ADC实时性采样与非实时性采样的切换方法及设备,克服现有技术中低成本MCU配置一个ADC对多个通道执行分时采样时,容易出现ADC配置错误,造成电机烧坏的问题。
本发明所公开的第一实施例为一种ADC实时性采样与非实时性采样的切换方法,其中,包括以下步骤:
接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式;
在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值;
当各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式;
在所述TIMER驱动模式下,驱动所述ADC进行实时性采样。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式的步骤之前,还包括:
建立用于存储所述ADC状态以及所述ADC进行非实时性采样返回的value值的所述ADC数据链表。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述ADC状态包括:未启动、无效、正在获取、有效。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态使所述ADC的通道配置为DMA中断模式的步骤包括:
接收输入的ADC读命令,获取所述ADC数据链表中的ADC状态;
判断获取到的所述ADC状态是否为有效,若是,则获取所述ADC的value值,并重置所述ADC状态为无效,启动所述ADC通道的DMA中断模式;
若否,则重置所述ADC状态为无效,启动所述ADC通道的DMA中断模式。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述获取所述ADC数据链表中的ADC状态的步骤之前,还包括:
判断驱动电机的脉宽调制器与所述ADC是否为锁定状态,若否,则直接驱动所述ADC进行非实时性采样。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值的步骤包括:
在所述DMA中断模式下,根据所述ADC数据链表中指针指向各个所述数据块的状态,通过DMA通道驱动所述ADC直接访问内存进行非实时性采样;
根据所述非实时性采样数据对所述ADC数据链表中各个所述数据块中的value值进行更新。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述根据所述ADC数据链表中指针指向各个所述数据块的状态,通过DMA通道驱动所述ADC直接访问内存进行非实时性采样的步骤之后,还包括:
更新各个所述数据块中ADC状态为正在获取;
判断所述ADC非实时性采样是否完成,若完成,则获取所述ADC非实时性采样数据。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述根据所述非实时性采样数据对所述数据块中的value值进行更新的步骤之后,还包括:
将各个所述数据块中ADC状态更新为有效;
更新所述ADC数据链表,将所述ADC数据链表中的指针指向下一个需要读取的数据块。
所述的ADC实时性采样与非实时性采样的切换方法,其中,所述在所述TIMER驱动模式下,驱动所述ADC进行实时性采样的步骤包括:
在所述TIMER驱动模式下,判断计数器的计数值是否等于预设值;
若是,则触发所述ADC进行实时性采样。
本发明所公开的第二实施例为一种一种电机驱动设备,其中,所述设备包括:
启动重置模块,用于接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式;
DMA驱动模块,在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值;
驱动配置模块,用于在各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式;
TIMER驱动模块,用于在所述TIMER驱动模式下,驱动所述ADC进行实时性采样。
本发明的有益效果:本发明通过预先设置用于存储非实时性采样数据的述ADC数据链表,在接收到非实时性采样命令时,将所述ADC通道由实时性采样的TIMER驱动模式切换为非实时性采样的DMA中断模式,ADC在DMA中断模式下进行非实时性采样时直接从内存中获取数据并将数据保存到ADC数据链表中,充分利用ADC功能,在一个ADC中实现实时性采样与非实时性采样的快速切换。
附图说明
图1是本发明所提供的ADC实时性采样与非实时性采样的切换方法的较佳实施例的流程图;
图2是本发明所提供的ADC数据链表的具体结构图;
图3是本发明所提供的启动ADC通道的DMA中断模式的具体应用实施例的流程图;
图4是本发明所提供的ADC进行TIMER模式采样的功能原理图;
图5是本发明的设备的较佳实施例的功能原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了解决现有低成本MCU配置一个ADC对多个通道执行分时采样时,容易出现ADC配置错误,造成电机烧坏的问题。本发明提供了一种ADC实时性采样与非实时性采样的切换方法。
请参照图1,图1是本发明提供的一种ADC实时性采样与非实时性采样的切换方法的较佳实施例的流程图。
在实施例一中,所述ADC实时性采样与非实时性采样的切换方法包括步骤:
S100、接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式。
在本发明的一具体实施方式中,所述ADC实时性采样与非实时性采样的切换方法应用于电机驱动设备,包括所有使用电机驱动的设备如家用电器洗衣机、吸尘器、缝纫机,消费电子产品录像机、摄像机、数码相机,国防领域如传统鱼雷舵机。所述实时性采样是指ADC采样电机三相电流,通过反馈算法计算出三相电压通过脉宽调制器(PWM)形成电压波形图以驱动电机运转;所述非实时性采样是指用户需要使用ADC进行采集的非实时性变量,如电压、温度、湿度等。
发明人发现现有技术中通常是采用两个ADC,一个用于实时性采样,一个用于非实时性采样,两者互不干扰。为了降低成本,现有的电机驱动设备通常采用低成本MCU,由于低成本MCU性能较低通过只采用一个ADC进行分时采样,这种设置虽然能够降低成本,但在应用过程中触发ADC进行非实时性采样时,容易出现ADC配置错误,读取到的实时性采样数据是错误值,经过反馈算法造成电机驱动电压过高电机烧坏。因此本实施例中在接收到用户输入的进行非实时性采样的命令后,通过切换ADC通道启动所述ADC通道的DMA中断模式进行非实时性采样,由于ADC在DMA中断模式进行采样不会占用MCU资源,且实时性采样和非实时性采样在不同的模式下进行互不干扰,不会出现ADC配置错误的问题。
在一具体实施方式中,所述步骤S100的步骤之前,还包括:
S1、建立用于存储所述ADC状态以及所述ADC进行非实时性采样返回的value值的所述ADC数据链表。
在一具体实施方式中,为了便于所述ADC进行非实时性采样以及非实时性采样数据的存储,本实施例中预先建立了ADC数据链表,如图2所示,所述ADC数据链表中包括若干个数据块,各个所述数据块中存储有ADC状态(status),ADC通道(channel),ADC采样时间(samplingTime),非实时性采样值(value值)等,当然本领域技术人员还可以在数据块中设置存储其它值,本申请在此不作限定。用户通过ADC采集到的非实时性变量数据分别存储在各个数据块的value值中,如当用户需要ADC进行非实时性采样的变量包括电压、温度、湿度三个变量,则ADC数据链表中的数据块至少有三个,各个数据块中的value值分别用来存储ADC采集到的电压、温度、湿度值。
在一具体实施方式中,所述步骤S100具体包括步骤:
S101、接收输入的ADC读命令,获取所述ADC数据链表中的ADC状态;
S102、判断获取到的所述ADC状态是否为有效,若是,则获取所述ADC的value值,并重置所述ADC状态为无效启动所述ADC通道的DMA中断模式;若否,则重置所述ADC状态为无效启动所述ADC通道的DMA中断模式。
在一具体实施方式中,所述ADC状态包括未启动(nostart)状态,无效(notvalid)状态,正在获取(ongoing)状态以及有效(valid)状态。本实施例中设置所述ADC状态为无效(notvalid)状态时启动所述ADC通道配置为DMA中断模式即进入非实时性采样模式,当然本领域技术人员也可以设置当ADC状态为其它状态时作为DMA中断模式的启动状态,本发明对此不作限定。如前述步骤中提到所述ADC数据链表可以用来存储非实时性采样数据,所述ADC数据链表设置有若干个数据块可以用来存储不同的非实时性采用数据如温度、电压、湿度等,当用户需要通过ADC进行非实时性采样时,通过获取所述ADC数据链表中相对应的各个数据块中ADC状态,判断获取到的所述各个数据块中ADC状态是否处于有效(valid)状态,若是,则判断所述对应数据块中的value值有效,获取对应数据块中所述value值,并重置所述ADC状态为无效(novalid)状态以启动所述ADC通道的DMA中断模式。若判断所述各个数据块中ADC状态未处于有效(valid)状态,即处于未启动(nostart)状态,无效(notvalid)状态或正在获取(ongoing)状态时,即判断所述对应数据块中的value值无效,不获取数据块中的value值,直接重置所述ADC状态为无效(novalid)状态以启动所述ADC通道的DMA中断模式进行非实时性采样。
在一具体实施方式中,所述步骤S101中在接收输入的ADC读命令的步骤之后,还包括:
S101a、判断驱动电机的脉宽调制器与所述ADC是否为锁定状态,若否,则直接驱动所述ADC进行非实时性采样。
在一具体实施方式中,为了避免ADC的配置出错,造成电机烧坏,本实施例中当用户开启电机后,将驱动电机的脉宽调制器(PWM)与ADC设置为锁定状态;当电机关闭后,将PWM与ADC设置为解锁状态。因此当接收到用户发送的ADC非实时性采样命令后,首先判断PWM与ADC是否处于锁定状态,若未处于锁定状态即表明ADC的非实时性采样不会造成ADC配置出错电机烧坏,因而可以直接使用ADC进行非实时性采样。反之,当判断PWM与ADC处于锁定状态时,则表明电机正在运行,ADC的非实时性采样会造成ADC配置错误,因此需要按照前述步骤中提到的通过重置ADC数据链表中的ADC状态来启动ADC通道的DMA中断模式以进行ADC的非实时性采样。
为了更好地理解本发明的技术,本发明还提供一种具体的应用实施例,如图3中所示,具体包括如下步骤:
步骤301、接收ADC读命令;
步骤302、判断PWM与ADC是否处于锁定状态,若否,则执行步骤303,若是,则执行步骤304;
步骤303、进行ADC非实时性采样;
步骤304、获取ADC状态;
步骤305、判断ADC状态是否有效,若否,则执行步骤306,若是,则执行步骤307;
步骤306、将ADC状态设置为无效;
步骤307、获取ADC数据链表中的value值;
步骤308、将ADC状态设置为无效;
步骤309、启动ADC通道的DMA中断模式。
继续回到图1,在实施例一中,所述ADC实时性采样与非实时性采样的切换方法还包括步骤:
S200、在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值。
在一具体实施方式中,为了防止ADC采样时出现配置错误,本实施例中通过在DMA中断模式下驱动ADC进行非实时性采样,前述步骤中提到ADC为无效(notvalid)状态下才会触发ADC进行非实时性采样,而无效状态下所述数据链表中数据块的value值也是无效的,采样结束后将所述ADC数据链表中对应数据块中的value值更新为采样后的值,然后用户通过发出ADC读命令即可直接从所述数据块中获取非实时性采样数据。
在一具体实施方式中,所述步骤S200具体包括:
S201、在所述DMA中断模式下,根据所述ADC数据链表中指针指向各个所述数据块的状态,通过DMA通道驱动所述ADC直接访问内存进行非实时性采样;
S202、根据所述非实时性采样数据对所述ADC数据链表中各个所述数据块中的value值进行更新。
具体实施时,前述步骤中提到所述ADC数据链表中设置有指针,当用户需要ADC进行非实时性采样时,将ADC数据链表中对应的各数据块中的ADC状态重置为无效(notvalid)状态,如用户需要ADC对温度、电压、湿度进行非实时性采样时,将温度、电压、湿度对应的数据块中的ADC状态重置为无效状态,启动ADC通道配置为DMA中断模式,此时所述ADC数据链表中的指针会首先按顺序指向数据链表中第一个ADC状态为无效的数据块,由于启动ADC进行非实时性采样之前,已经将需要ADC进行非实时性采样的变量对应的数据块中的ADC状态设置为无效(notvalid)状态,此时指针即指向用户需要ADC读取的第一个非实时性变量对应的数据块,即温度对应的数据块。DMA中断模式中含有DMA通道,DMA通道会驱动ADC直接访问内存进行非实时性采样,DMA中断模式进行非实时性采样可以直接访问内存进行采样,不会浪费处理器资源,采样效率高,且非实时性采样和实施性采样在不同模式下进行,不会出现ADC配置错误,烧坏电机的情况。
在本实施例中,所述步骤S201中所述通过DMA通道驱动所述ADC直接访问内存进行非实时性采样的步骤之后,还包括:
S201a、更新各个所述数据块中ADC状态为正在获取;
S201b、判断所述ADC非实时性采样是否完成,若完成,则获取所述ADC非实时性采样数据。
具体实施时,由于ADC对各个数据块中的值进行非实时性采样是需要采样时间(samplingTime)的,启动ADC对数据块中的变量进行非实时性采样后,数据块中ADC状态会由前面的无效(notvalid)状态更新为正在获取(ongoing)状态,表明ADC正在进行非实时性采样。前述步骤中提到数据链表中各数据块中存储有采样时间(samplingTime),当达到设置的采样时间后,ADC状态寄存器中会出现转换完成(End of coversion)标志,ADC状态寄存器中出现了转换完成标志后,才能获取非实时性采样数据。然后将获取到的非实时性采样数据存储到对应的数据块的value值中,即完成了数据块中value值的更新。
在本实施例中,所述步骤S202之后还包括步骤:
S203、将各个所述数据块中ADC状态更新为有效;
S204、更新所述ADC数据链表,将所述ADC数据链表中的指针指向下一个需要读取的数据块。
在一具体实施方式中,对所述ADC数据链表中的指针指向的数据块对应的变量进行非实时性采样,并将采样获得的值存储在所述数据块的value值中后,将所述数据块中的ADC状态更新为有效(valid)状态,由于数据块中的ADC状态为有效状态,用户可以直接通过发出ADC读命令从所述数据块中获取非实时性采样获得的变量值。
具体实施时,前述步骤中提到的非实时性采样及value值更新是对指针指向的数据块,当用户只需要ADC对一个非实时性变量进行采样时,指针只需要针对一个数据块进行非实时性采样。而当用户需要ADC对二个或多个非实时性变量进行采样时,对指针指向的数据块进行非实时性采样结束后,由于ADC数据链表中已经采样完成的数据块中的ADC状态和value值已经进行了更新,为了防止ADC重复采样,每个数据块采样完成后需要对所述ADC数据链表进行更新。更新完成后,已经进行非实时性采样的数据块中的ADC状态变为有效(valid)状态。由于启动ADC进行非实时性采样的条件是ADC状态为无效(notvalid)状态,则已经采样完成的数据块不会重复进行采样,而指针会指向下一个需要采样的数据块,即指向ADC状态为无效(notvalid)的数据块进行继续采样,采样步骤与前述步骤一致,此处不再赘述。
继续回到图1,在实施例一中,所述ADC实时性采样与非实时性采样的切换方法还包括步骤:
S300、当各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式。
具体实施时,当各个需要采样的数据块中的value值更新完成,即所有ADC状态为无效(notvalid)状态的数据块的非实时性采样结束后,将所述ADC通道由DMA中断模式重新配置为TIMER驱动模式,这样下一次TIMER触发ADC采样时,就可以正常工作。
继续回到图1,在实施例一中,所述ADC实时性采样与非实时性采样的切换方法还包括步骤:
S400、在所述TIMER驱动模式下,驱动所述ADC进行实时性采样。
在一具体实施方式中,如图4所示,为ADC在TIMER驱动模式下进行采样的原理图。控制电机的TIMER采用中央对齐模式即计数器交替地向上和向下计数,其中输出比较寄存器1(OCR1)中存储值控制PWM中电压Va的输出极值,从而控制三相电机A端电压;输出比较寄存器2(OCR2)中存储值控制PWM中电压Vb的输出极值,从而控制三相电机B端电压;输出比较寄存器3(OCR3)中存储值控制PWM中电压Vc的输出极值,从而控制三相电机C端电压;输出比较寄存器4(OCR4)中存储值,产生内部触发ADC对Ia、Ib、Ic进行依次采样。具体实施时,计数器开始向上计数,首先计数值到达OCR3控制输出三相电机C端电压波形图,然后计数值到达OCR2控制输出三相电机B端电压波形图,随后计数值到达OCR1控制输出三相电机A端电压波形图,最后计数值到达OCR4产生内部触发ADC开始对Ia、Ib、Ic进行依次采样。由于控制电机的TIMER交替的向上和向下计数,随后计数值到达OCR1三相电机A端电压波形图峰值消失,计数值到达OCR2三相电机B端电压波形图峰值消失,计数值到达OCR3三相电机C端电压波形图峰值消失。计数器周期性的交替计数,电机的三相电压波形图随ADC采样获得的Ia、Ib、Ic值交替变化,使得PWM控制三相电机电压与ADC采样时间(采样Ia、Ib、Ic)同步。
在本发明一具体实施方式中,还提供一种电机驱动设备,如图5所示,所示设备包括:
启动重置模块100,用于接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式;具体如上所述;
DMA驱动模块200,在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值;具体如上所述;
驱动配置模块300,用于在各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式;具体如上所述;
TIMER驱动模块400,用于在所述TIMER驱动模式下,驱动所述ADC进行实时性采样;具体如上所述。
所述电机驱动设备,其中,所述设备还包括:
ADC数据链表建立模块,用于建立存储ADC状态以及ADC进行非实时性采样返回的value值的ADC数据链表;其中所述ADC状态包括:未启动、无效、正在获取、有效;具体如上所述。
所述电机驱动设备,其中,所述启动重置模块100具体包括:
ADC状态获取单元,用于接收输入的ADC读命令,获取所述ADC数据链表中的ADC状态;具体如上所述;
ADC状态重置单元,用于判断获取到的所述ADC状态是否为有效,若是,则获取所述ADC的value值,并重置所述ADC状态为无效;若否,则重置所述ADC状态为无效;具体如上所述;
DMA中断模式启动单元,用于当ADC状态为无效时,启动ADC通道的DMA中断模式;具体如上所述。
所述电机驱动设备,其中,所述设备还包括:
锁定判断模块,判断驱动所述电机的脉宽调制器与ADC是否为锁定状态,若否,则直接驱动所述ADC进行非实时性采样;具体如上所述。
所述电机驱动设备,其中,所述DMA驱动模块200具体包括:
非实时性采样单元,用于在所述DMA中断模式下,根据所述ADC数据链表中指针指向各个所述数据块的状态,通过DMA通道驱动所述ADC直接访问内存进行非实时性采样;具体如上所述;
value值更新单元,用于根据所述非实时性采样数据对所述ADC数据链表中各个所述数据块中的value值进行更新;具体如上所述。
所述电机驱动设备,其中,所述DMA驱动模块200还包括:
ADC状态更新单元,用于更新各个所述数据块中ADC状态为正在获取或有效状态;具体如上所述;
采样值获取单元,用于判断所述ADC非实时性采样是否完成,若完成,则获取所述ADC非实时性采样数据;具体如上所述;
ADC数据链表更新单元,用于更新所述ADC数据链表,将所述ADC数据链表中的指针指向下一个需要读取的数据块;具体如上所述。
所述电机驱动设备,其中,所述TIMER驱动模块400还包括:
计数值判断单元,用于在TIMER驱动模式下,判断计数器的计数值是否等于预设值;具体如上所述;
实时采样触发单元,用于在计数值等于预设值时,触发ADC进行实时性采样;具体如上所述。
综上所述,本发明提供了一种ADC实时性采样与非实时性采样的切换方法及设备,所述方法包括:接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式;在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值;当各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式;在所述TIMER驱动模式下,驱动所述ADC进行实时性采样。通过预先设置用于存储非实时性采样数据的ADC数据链表,在接收到非实时性采样命令时,将所述ADC通道由实时性采样的TIMER驱动模式切换为非实时性采样的DMA中断模式,ADC在DMA中断模式下进行非实时性采样时直接从内存中获取数据并将数据保存到ADC数据链表中,充分利用ADC功能,在一个ADC中实现实时性采样与非实时性采样的快速切换。
应当理解的是,本发明的系统应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种ADC实时性采样与非实时性采样的切换方法,应用于电机驱动设备,其特征在于,包括以下步骤:
接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式;
在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值;
当各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式;
在所述TIMER驱动模式下,驱动所述ADC进行实时性采样。
2.根据权利要求1所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式的步骤之前,还包括:
建立用于存储所述ADC状态以及所述ADC进行非实时性采样返回的value值的所述ADC数据链表。
3.根据权利要求2所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述ADC状态包括:未启动、无效、正在获取、有效。
4.根据权利要求3所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态使所述ADC的通道配置为DMA中断模式的步骤包括:
接收输入的ADC读命令,获取所述ADC数据链表中的ADC状态;
判断获取到的所述ADC状态是否为有效,若是,则获取所述ADC的value值,并重置所述ADC状态为无效,启动所述ADC通道的DMA中断模式;
若否,则重置所述ADC状态为无效,启动所述ADC通道的DMA中断模式。
5.根据权利要求4所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述获取所述ADC数据链表中的ADC状态的步骤之前,还包括:
判断驱动电机的脉宽调制器与所述ADC是否为锁定状态,若否,则直接驱动所述ADC进行非实时性采样。
6.根据权利要求1所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值的步骤包括:
在所述DMA中断模式下,根据所述ADC数据链表中指针指向各个所述数据块的状态,通过DMA通道驱动所述ADC直接访问内存进行非实时性采样;
根据所述非实时性采样数据对所述ADC数据链表中各个所述数据块中的value值进行更新。
7.根据权利要求6所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述根据所述ADC数据链表中指针指向各个所述数据块的状态,通过DMA通道驱动所述ADC直接访问内存进行非实时性采样的步骤之后,还包括:
更新各个所述数据块中ADC状态为正在获取;
判断所述ADC非实时性采样是否完成,若完成,则获取所述ADC非实时性采样数据。
8.根据权利要求6所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述根据所述非实时性采样数据对所述数据块中的value值进行更新的步骤之后,还包括:
将各个所述数据块中ADC状态更新为有效;
更新所述ADC数据链表,将所述ADC数据链表中的指针指向下一个需要读取的数据块。
9.根据权利要求1所述的ADC实时性采样与非实时性采样的切换方法,其特征在于,所述在所述TIMER驱动模式下,驱动所述ADC进行实时性采样的步骤包括:
在所述TIMER驱动模式下,判断计数器的计数值是否等于预设值;
若是,则触发所述ADC进行实时性采样。
10.一种电机驱动设备,其特征在于,所述设备包括:
启动重置模块,用于接收输入的ADC读命令,通过重置预先设置的ADC数据链表中的ADC状态启动所述ADC通道的DMA中断模式;
DMA驱动模块,在所述DMA中断模式下,驱动所述ADC进行非实时性采样,并更新所述ADC数据链表中各个数据块中的value值;
驱动配置模块,用于在各个所述数据块中的value值更新完成后,将所述ADC通道配置为TIMER驱动模式;
TIMER驱动模块,用于在所述TIMER驱动模式下,驱动所述ADC进行实时性采样。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910881681.XA CN110609499B (zh) | 2019-09-18 | 2019-09-18 | 一种adc实时性采样与非实时性采样的切换方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910881681.XA CN110609499B (zh) | 2019-09-18 | 2019-09-18 | 一种adc实时性采样与非实时性采样的切换方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110609499A true CN110609499A (zh) | 2019-12-24 |
CN110609499B CN110609499B (zh) | 2021-06-29 |
Family
ID=68891532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910881681.XA Active CN110609499B (zh) | 2019-09-18 | 2019-09-18 | 一种adc实时性采样与非实时性采样的切换方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110609499B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925293A (zh) * | 2021-01-25 | 2021-06-08 | 东风电子科技股份有限公司 | 实现针对bcm不同负载反馈波形进行检测的方法、系统、装置、处理器及其存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710253A (zh) * | 2009-11-25 | 2010-05-19 | 安凯(广州)微电子技术有限公司 | 嵌入式系统的深度休眠方法 |
CN101833336A (zh) * | 2010-04-28 | 2010-09-15 | 北京航空航天大学 | 一种共轴式无人直升机的双余度姿态控制系统及调试方法 |
CN102938647A (zh) * | 2012-11-20 | 2013-02-20 | 华为技术有限公司 | 转换电路及芯片 |
CN203193563U (zh) * | 2012-12-26 | 2013-09-11 | 广西师范大学 | 一种基于stm32的无刷直流电机电子调速器 |
CN106815158A (zh) * | 2017-01-17 | 2017-06-09 | 深圳市新威尔电子有限公司 | 基于Linux系统的定时方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0404696D0 (en) * | 2004-03-02 | 2004-04-07 | Level 5 Networks Ltd | Dual driver interface |
JP2010259132A (ja) * | 2009-04-21 | 2010-11-11 | Panasonic Corp | 電動機駆動装置およびこれを具備した空気調和装置 |
CN102231075B (zh) * | 2011-06-25 | 2013-04-24 | 山东科汇电力自动化有限公司 | 一种电力测控装置通用平台及控制方法 |
CN103034599B (zh) * | 2012-12-12 | 2015-07-22 | 深圳国微技术有限公司 | 安全dma控制器、soc系统及其数据搬运方法 |
CN103051262A (zh) * | 2012-12-26 | 2013-04-17 | 广西师范大学 | 一种基于stm32的无刷直流电机电子调速器 |
CN103559250A (zh) * | 2013-10-30 | 2014-02-05 | 陕西省地方电力(集团)有限公司 | 一种数据监控方法及装置 |
CN103684455B (zh) * | 2013-11-19 | 2016-11-16 | 浙江大学 | 多adc数据采集系统中单路adc故障诊断及恢复方法 |
CN203732619U (zh) * | 2014-03-23 | 2014-07-23 | 韩东 | 一种基于msp430f247ipm的三相电数据采集系统 |
CN105991136B (zh) * | 2015-03-03 | 2020-12-01 | 上海联影医疗科技股份有限公司 | 模数转换器的串行接口及其数据对齐方法和装置 |
-
2019
- 2019-09-18 CN CN201910881681.XA patent/CN110609499B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710253A (zh) * | 2009-11-25 | 2010-05-19 | 安凯(广州)微电子技术有限公司 | 嵌入式系统的深度休眠方法 |
CN101833336A (zh) * | 2010-04-28 | 2010-09-15 | 北京航空航天大学 | 一种共轴式无人直升机的双余度姿态控制系统及调试方法 |
CN102938647A (zh) * | 2012-11-20 | 2013-02-20 | 华为技术有限公司 | 转换电路及芯片 |
CN203193563U (zh) * | 2012-12-26 | 2013-09-11 | 广西师范大学 | 一种基于stm32的无刷直流电机电子调速器 |
CN106815158A (zh) * | 2017-01-17 | 2017-06-09 | 深圳市新威尔电子有限公司 | 基于Linux系统的定时方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925293A (zh) * | 2021-01-25 | 2021-06-08 | 东风电子科技股份有限公司 | 实现针对bcm不同负载反馈波形进行检测的方法、系统、装置、处理器及其存储介质 |
CN112925293B (zh) * | 2021-01-25 | 2022-09-06 | 东风电子科技股份有限公司 | 实现针对bcm不同负载反馈波形进行检测的方法、系统、装置、处理器及其存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110609499B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10164534B2 (en) | Single inductor multi-output buck-boost converter and control method thereof | |
US5933344A (en) | Microprocessor having timer circuit generating complementary non-overlapped PWM signals | |
JP3565613B2 (ja) | 半導体集積回路装置 | |
TWI392216B (zh) | 用於三相無刷直流馬達之無感測啟動方法及相關裝置 | |
CN110609499B (zh) | 一种adc实时性采样与非实时性采样的切换方法及设备 | |
CN1913579A (zh) | 数字电视机顶盒及其遥控控制、遥控学习的方法 | |
CN101341657B (zh) | 模数转换器装置 | |
US10115537B2 (en) | Apparatus for detecting a switch position | |
US10003288B2 (en) | Motor control circuit and fan including the same | |
CN104898520A (zh) | 一种用于电机控制的微控制器 | |
JP2009077353A (ja) | パラレルデータ出力制御回路及び半導体装置 | |
US20070050655A1 (en) | Single-wire sequencing technique | |
JP2019097350A (ja) | 組電池制御装置 | |
JPH0972238A (ja) | タイマ装置 | |
CN112705832B (zh) | 一种焊接控制方法及焊接系统 | |
CN117833720A (zh) | 一种电机控制方法、装置、电机驱动器及存储介质 | |
JP2005535029A (ja) | データ処理装置のコンフィギュレーション・データの取得 | |
CN215344414U (zh) | 无刷直流电机及其微控制器 | |
CN217333131U (zh) | 一种模拟输入信号的切换系统 | |
CN112526205B (zh) | 基于mcu的dma功能控制ad转换器峰值采样方法 | |
CN110798194B (zh) | 一种电容式触摸多按键的快速检测方法及系统 | |
CN108702151B (zh) | 用于检测由用户对集成在传感器电路中的操作元件的操纵的控制装置和方法 | |
CN114696674A (zh) | 无刷电机的控制方法、装置、电控装置及存储介质 | |
SU1529266A1 (ru) | Устройство дл контрол перерывов электроснабжени | |
US20200304055A1 (en) | Control system and control method |
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 |