提高单片机的模数转换精度的方法及装置与流程

文档序号:19104872发布日期:2019-11-12 22:33阅读:215来源:国知局
提高单片机的模数转换精度的方法及装置与流程

本发明涉及电子技术领域,尤其涉及一种提高单片机的模数转换精度的方法及装置。



背景技术:

在很多单片机的应用场景中,单片机的电源电压Vcc都会不可避免地波动。如果搭载模数转换器(Analog-to-Digital Converter,ADC)的单片机应用于这些应用场景中,则模数转换器的转换精度会严重下降。图1示出单片机通过一个引脚与一个MOS(Metal-Oxide-Semiconductor,金属-氧化物-半导体)管相连的电路示意图。图1所示的电路被应用于大量的应用场景中。在图1所示的电路中,当单片机输出PWM(Pulse Width Modulation,脉冲宽度调制)波信号去开关MOS管时,单片机的电源电压会随着PWM波周期性地波动。电源电压的波动越剧烈,则模数转换器的性能越差。因此,目前提高单片机的模数转换精度的常规思路是降低电源电压的波动剧烈程度。影响电源电压波动的剧烈程度的因素主要包括:PWM波对应的输出驱动电流的大小;PWM波上升沿的上升时间和下降沿的下降时间;电源系统在负载变化时输出电压的稳定性。相应地,降低电源电压的波动剧烈程度主要包括以下三个方案。方案一:图2示出在PWM模块对应的输出引脚与MOS管之间串联电阻的示意图。如图2所示,在PWM模块对应的输出引脚与MOS管之间串联电阻R1,以减小PWM波对应的输出驱动电流。方案二:配置寄存器以调节PWM波上升沿的上升时间和下降沿的下降时间。方案三:改善电源系统使电源系统对负载变化有较强的适应能力。对于方案一,需要增加硬件,且会降低MOS管的开关速度。MOS管开关速度的降低会影响一些应用场景的性能(例如移动电源的效率)。对于方案二,仅有少数的单片机能够通过配置寄存器来调节PWM波上升沿的上升时间和下降沿的下降时间,而对于大多数单片机都无法调节PWM波上升沿的上升时间和下降沿的下降时间。此外,对于能够通过配置寄存器来调节PWM波上升沿的上升时间和下降沿的下降时间的单片机而言,增加PWM波上升沿的上升时间和下降沿的下降时间会降低MOS管的开关速度,从而影响一些应用场景的性能。对于方案三,改善电源系统也需要增加硬件。增加硬件将导致成本提高,且会增加系统方案的空间开销。



技术实现要素:

技术问题

有鉴于此,本发明要解决的技术问题是,如何在不增加硬件的前提下,提高单片机的模数转换精度。

解决方案

为了解决上述技术问题,根据本发明的一实施例,提供了一种提高单片机的模数转换精度的方法,包括:

判断是否由单片机的内部原因造成所述单片机的电源电压波动;

在由所述单片机的内部原因造成所述单片机的电源电压波动的情况下,配置所述单片机的PWM模块相应的寄存器以及所述单片机的模数转换器相应的寄存器,以使所述PWM模块的输出频率等于所述模数转换器的时钟频率的整数倍。

对于上述方法,在一种可能的实现方式中,配置所述单片机的PWM模块相应的寄存器以及所述单片机的模数转换器相应的寄存器,包括:

配置所述PWM模块的第一寄存器以及所述PWM模块的第二寄存器,并配置所述模数转换器相应的寄存器,以调节所述PWM模块的输出频率以及所述模数转换器的时钟频率。

对于上述方法,在一种可能的实现方式中,配置所述PWM模块的第一寄存器以及所述PWM模块的第二寄存器,并配置所述模数转换器相应的寄存器,以调节所述PWM模块的输出频率以及所述模数转换器的时钟频率,包括:

配置所述PWM模块的第一寄存器,以在所述PWM模块中对所述单片机的振荡频率进行2n分频,其中,n为大于或等于0的整数;

配置所述PWM模块的第二寄存器,以使所述PWM模块的计数周期为m,其中,m为正整数;

配置所述模数转换器相应的寄存器,以使所述模数转换器的时钟频率为所述单片机的振荡频率的2k分频,其中,k为大于或等于0的整数;

其中,(1+m)x=2k-n,x为正整数。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种提高单片机的模数转换精度的方法,包括:

判断是否由单片机的外部原因造成所述单片机的电源电压波动;

在由所述单片机的外部原因造成所述单片机的电源电压波动的情况下,配置所述单片机的模数转换器相应的寄存器,以使所述单片机的PWM模块的输出频率等于所述模数转换器的时钟频率的整数倍。

对于上述方法,在一种可能的实现方式中,配置所述单片机的模数转换器相应的寄存器,包括:

配置所述模数转换器相应的寄存器,以使所述模数转换器的时钟频率并使fPWM=fVcc=y·fADC,其中,k和y均为正整数,fOSC为所述单片机的振荡频率,fPWM为所述PWM模块的输出频率,fVcc为所述电源电压的波动频率。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种提高单片机的模数转换精度的装置,包括:

判断模块,用于判断是否由单片机的内部原因造成所述单片机的电源电压波动;

配置模块,用于在由所述单片机的内部原因造成所述单片机的电源电压波动的情况下,配置所述单片机的PWM模块相应的寄存器以及所述单片机的模数转换器相应的寄存器,以使所述PWM模块的输出频率等于所述模数转换器的时钟频率的整数倍。

对于上述装置,在一种可能的实现方式中,所述配置模块用于:

配置所述PWM模块的第一寄存器以及所述PWM模块的第二寄存器,并配置所述模数转换器相应的寄存器,以调节所述PWM模块的输出频率以及所述模数转换器的时钟频率。

对于上述装置,在一种可能的实现方式中,所述配置模块包括:

第一配置子模块,用于配置所述PWM模块的第一寄存器,以在所述PWM模块中对所述单片机的振荡频率进行2n分频,其中,n为大于或等于0的整数;

第二配置子模块,用于配置所述PWM模块的第二寄存器,以使所述PWM模块的计数周期为m,其中,m为正整数;

第三配置子模块,用于配置所述模数转换器相应的寄存器,以使所述模数转换器的时钟频率为所述单片机的振荡频率的2k分频,其中,k为大于或等于0的整数;

其中,(1+m)x=2k-n,x为正整数。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种提高单片机的模数转换精度的装置,包括:

判断模块,用于判断是否由单片机的外部原因造成所述单片机的电源电压波动;

配置模块,用于在由所述单片机的外部原因造成所述单片机的电源电压波动的情况下,配置所述单片机的模数转换器相应的寄存器,以使所述单片机的PWM模块的输出频率等于所述模数转换器的时钟频率的整数倍。

对于上述装置,在一种可能的实现方式中,所述配置模块用于:

配置所述模数转换器相应的寄存器,以使所述模数转换器的时钟频率并使fPWM=fVcc=y·fADC,其中,k和y均为正整数,fOSC为所述单片机的振荡频率,fPWM为所述PWM模块的输出频率,fVcc为所述电源电压的波动频率。

有益效果

通过配置单片机的寄存器,使单片机的PWM模块的输出频率等于单片机的模数转换器的时钟频率的整数倍,根据本发明实施例的提高单片机的模数转换精度的方法及装置能够在不增加硬件的前提下,保证单片机的模数转换精度不受电源电压波动的影响。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出单片机通过一个引脚与一个MOS管相连的电路示意图;

图2示出在PWM模块对应的输出引脚与MOS管之间串联电阻的示意图;

图3示出根据本发明一实施例的提高单片机的模数转换精度的方法的实现流程图;

图4示出根据本发明一实施例的提高单片机的模数转换精度的方法中单片机的电源电压的波形图和单片机的模数转换器的时钟频率图的示意图;

图5示出根据本发明另一实施例的提高单片机的模数转换精度的方法的实现流程图;

图6示出根据本发明另一实施例的提高单片机的模数转换精度的装置的结构框图;

图7示出根据本发明另一实施例的提高单片机的模数转换精度的装置的一示例性的结构框图;

图8示出根据本发明另一实施例的提高单片机的模数转换精度的装置的结构框图。

具体实施方式

以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

实施例1

图3示出根据本发明一实施例的提高单片机的模数转换精度的方法的实现流程图。该方法的执行主体可以为与单片机连接的、用于对单片机进行配置的装置(如计算机),在此不作限定。如图3所示,该方法主要包括:

在步骤S301中,判断是否由单片机的内部原因造成单片机的电源电压波动。

需要说明的是,本领域技术人员可以通过多种方式判断是否由单片机的内部原因造成单片机的电源电压波动,在此不作限定。例如,在单片机的外围引脚接容性负载的情况下,若在接通电源的瞬间,检测到该外围引脚由高电平变为低电平,则可以判定由单片机的内部原因造成单片机的电源电压波动。

在步骤S302中,在由单片机的内部原因造成单片机的电源电压波动的情况下,配置单片机的PWM模块相应的寄存器以及单片机的模数转换器相应的寄存器,以使PWM模块的输出频率等于模数转换器的时钟频率的整数倍。

其中,PWM模块相应的寄存器位于PWM模块内部,配置PWM模块相应的寄存器可以调节PWM模块的输出频率。模数转换器相应的寄存器可以位于模数转换器外部,配置模数转换器相应的寄存器可以调节模数转换器的时钟频率。

在一种可能的实现方式中,配置单片机的PWM模块相应的寄存器以及单片机的模数转换器相应的寄存器,包括:配置PWM模块的第一寄存器以及PWM模块的第二寄存器,并配置模数转换器相应的寄存器,以调节PWM模块的输出频率以及模数转换器的时钟频率。其中,PWM模块的第一寄存器可以用于决定分频系数,PWM模块的第二寄存器可以用于决定计数周期。例如,对于一些单片机(如TMS320F28027),PWM模块的第一寄存器可以为PWM模块的TB(Time-Base,时基)子模块的控制寄存器(如TBCTL),PWM模块的第二寄存器可以为PWM模块的计数周期寄存器(如TBPRD)。其中,第二寄存器对应的计数器可以为递减的计数器,在此不作限定。

在一种可能的实现方式中,配置PWM模块的第一寄存器以及PWM模块的第二寄存器,并配置模数转换器相应的寄存器,以调节PWM模块的输出频率以及模数转换器的时钟频率,包括:配置PWM模块的第一寄存器,以在PWM模块中对单片机的振荡频率进行2n分频,其中,n为大于或等于0的整数;配置PWM模块的第二寄存器,以使PWM模块的计数周期为m,其中,m为正整数;配置模数转换器相应的寄存器,以使模数转换器的时钟频率为单片机的振荡频率的2k分频,其中,k为大于或等于0的整数;其中,(1+m)x=2k-n,x为正整数。在该实现方式中,通过配置PWM模块的第一寄存器以及PWM模块的第二寄存器,并配置模数转换器相应的寄存器,使fPWM=x·fADC,其中,fPWM表示PWM模块的输出频率,fOSC表示单片机的振荡频率,fADC表示模数转换器的时钟频率。例如,x=1,m=63,k=6,n=0;x=2,m=31,k=6,n=0;x=1,m=63,k=7,n=1。

图4示出根据本发明一实施例的提高单片机的模数转换精度的方法中单片机的电源电压的波形图和单片机的模数转换器的时钟频率图的示意图。在本实施例中,模数转换器可以包括DAC(Digital-to-Analog Converter,数模转换器)、逻辑控制电路和比较器。模数转换器是在ADC时钟的驱动下工作的,在每个ADC时钟的边沿(上升沿或者下降沿)处刷新转出值并进行比较,例如经过20次左右的比较(即20个左右的ADC时钟周期)可以完成一次模数转换,在一次模数转换的过程中,由于每次比较发生在ADC时钟的边沿处,因此,只需要保证ADC时钟的边沿处对应的电源电压值固定,就可以保证模数转换器的模数转换精度不受电源电压波动的影响。单片机的电源电压是随着PWM波周期性地波动的,即fVcc=fPWM,其中,fVcc表示电源电压的波动频率。在图4中,fVcc=2fADC。虽然电源电压在波动,但在ADC时钟的边沿处(如A点和B点)对应的电源电压值是固定不变的,因此,可以保证模数转换器的模数转换精度不受电源电压波动的影响。

这样,在由单片机的内部原因造成单片机的电源电压波动的情况下,单片机的PWM模块相应的寄存器以及单片机的模数转换器相应的寄存器,以使PWM模块的输出频率等于模数转换器的时钟频率的整数倍,根据本发明实施例的提高单片机的模数转换精度的方法能够在不增加硬件的前提下,保证单片机的模数转换精度不受电源电压波动的影响。

实施例2

图5示出根据本发明另一实施例的提高单片机的模数转换精度的方法的实现流程图。该方法的执行主体可以为与单片机连接的、用于对单片机进行配置的装置(如计算机),在此不作限定。如图5所示,该方法主要包括:

在步骤S501中,判断是否由单片机的外部原因造成单片机的电源电压波动。

需要说明的是,本领域技术人员可以通过多种方式判断是否由单片机的外部原因造成单片机的电源电压波动,在此不作限定。例如,在单片机断电的情况下,若仍然检测到电源电压波动,则可以判定由单片机的外部原因造成单片机的电源电压波动。

在步骤S502中,在由单片机的外部原因造成单片机的电源电压波动的情况下,配置单片机的模数转换器相应的寄存器,以使单片机的PWM模块的输出频率等于模数转换器的时钟频率的整数倍。

其中,模数转换器相应的寄存器可以位于模数转换器外部,配置模数转换器相应的寄存器可以调节模数转换器的时钟频率。单片机的电源电压是随着PWM波周期性地波动的,即fVcc=fPWM,其中,fVcc表示电源电压的波动频率,fPWM表示PWM模块的输出频率。配置单片机的模数转换器相应的寄存器使单片机的PWM模块的输出频率等于模数转换器的时钟频率的整数倍,也就是使电源电压的波动频率等于模数转换器的时钟频率的整数倍。其中,电源电压的波动频率可以由示波器测量得到,从而可以确定PWM模块的输出频率。

在一种可能的实现方式中,配置单片机的模数转换器相应的寄存器,包括:配置模数转换器相应的寄存器,以使模数转换器的时钟频率并使fPWM=fVcc=y·fADC,其中,k和y均为正整数,fOSC为单片机的振荡频率,fPWM为PWM模块的输出频率,fVcc为电源电压的波动频率。在该实现方式中,在确定PWM模块的输出频率之后,确定合适的y和k,使也就是使PWM模块的输出频率等于模数转换器的时钟频率的整数倍。

这样,在由单片机的外部原因造成单片机的电源电压波动的情况下,配置单片机的模数转换器相应的寄存器,以使单片机的PWM模块的输出频率等于模数转换器的时钟频率的整数倍,根据本发明实施例的提高单片机的模数转换精度的方法能够在不增加硬件的前提下,保证单片机的模数转换精度不受电源电压波动的影响。

实施例3

图6示出根据本发明另一实施例的提高单片机的模数转换精度的装置的结构框图。该装置可以为与单片机连接的、用于对单片机进行配置的装置(如计算机),在此不作限定。图6可以用于运行图3所示的提高单片机的模数转换精度的方法。为了便于说明,在图6中仅示出了与本实施例相关的部分。

如图6所示,该装置包括:判断模块61,用于判断是否由单片机的内部原因造成所述单片机的电源电压波动;配置模块62,用于在由所述单片机的内部原因造成所述单片机的电源电压波动的情况下,配置所述单片机的PWM模块相应的寄存器以及所述单片机的模数转换器相应的寄存器,以使所述PWM模块的输出频率等于所述模数转换器的时钟频率的整数倍。

图7示出根据本发明另一实施例的提高单片机的模数转换精度的装置的一示例性的结构框图。图7可以用于运行图3所示的提高单片机的模数转换精度的方法。为了便于说明,在图7中仅示出了与本实施例相关的部分。图7中标号与图6相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。如图7所示:

在一种可能的实现方式中,所述配置模块62用于:配置所述PWM模块的第一寄存器以及所述PWM模块的第二寄存器,并配置所述模数转换器相应的寄存器,以调节所述PWM模块的输出频率以及所述模数转换器的时钟频率。

在一种可能的实现方式中,所述配置模块62包括:第一配置子模块621,用于配置所述PWM模块的第一寄存器,以在所述PWM模块中对所述单片机的振荡频率进行2n分频,其中,n为大于或等于0的整数;第二配置子模块622,用于配置所述PWM模块的第二寄存器,以使所述PWM模块的计数周期为m,其中,m为正整数;第三配置子模块623,用于配置所述模数转换器相应的寄存器,以使所述模数转换器的时钟频率为所述单片机的振荡频率的2k分频,其中,k为大于或等于0的整数;其中,(1+m)x=2k-n,x为正整数。

这样,在由单片机的内部原因造成单片机的电源电压波动的情况下,单片机的PWM模块相应的寄存器以及单片机的模数转换器相应的寄存器,以使PWM模块的输出频率等于模数转换器的时钟频率的整数倍,根据本发明实施例的提高单片机的模数转换精度的装置能够在不增加硬件的前提下,保证单片机的模数转换精度不受电源电压波动的影响。

实施例4

图8示出根据本发明另一实施例的提高单片机的模数转换精度的装置的结构框图。该装置可以为与单片机连接的、用于对单片机进行配置的装置(如计算机),在此不作限定。图8可以用于运行图5所示的提高单片机的模数转换精度的方法。为了便于说明,在图8中仅示出了与本实施例相关的部分。

如图8所示,该装置包括:判断模块81,用于判断是否由单片机的外部原因造成所述单片机的电源电压波动;配置模块82,用于在由所述单片机的外部原因造成所述单片机的电源电压波动的情况下,配置所述单片机的模数转换器相应的寄存器,以使所述单片机的PWM模块的输出频率等于所述模数转换器的时钟频率的整数倍。

在一种可能的实现方式中,所述配置模块82用于:配置所述模数转换器相应的寄存器,以使所述模数转换器的时钟频率并使fPWM=fVcc=y·fADC,其中,k和y均为正整数,fOSC为所述单片机的振荡频率,fPWM为所述PWM模块的输出频率,fVcc为所述电源电压的波动频率。

这样,在由单片机的外部原因造成单片机的电源电压波动的情况下,配置单片机的模数转换器相应的寄存器,以使单片机的PWM模块的输出频率等于模数转换器的时钟频率的整数倍,根据本发明实施例的提高单片机的模数转换精度的装置能够在不增加硬件的前提下,保证单片机的模数转换精度不受电源电压波动的影响。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1