用于通用系统芯片的适用范围广的模数转换器控制装置的制作方法

文档序号:16085887发布日期:2018-11-27 22:25阅读:209来源:国知局

本发明涉及通用系统芯片领域,具体是一种用于通用系统芯片的适用范围广的模数转换器控制装置。



背景技术:

为了获取传感器等输出的模拟电压的大小,通用系统芯片中需要模数转换器来实现这一功能。通用系统芯片中的模数转换器都包含多个模数转换通道,一般为4/8/16/32通道等。一方面,模数转换器控制器与CPU交互:接受CPU下发的模数转换任务;待模数转换任务完成之后,通知CPU。另一方面,模数转换器控制器根据CPU的配置,产生模数转换器的控制时序信号,读取并存储模数转换器输出的电压值数据。

在电子系统中,一次完整的模数转换过程如下所述:

1) CPU配置模数转换器控制器的寄存器。指明要进行模数转换的模数转换器的通道号,模数转换次数等信息。

2) 模数转换器控制器产生所需控制信号,使能模数转换器的相应通道开始模数转换。

3) 模数转换完毕后,模数转换器控制器保存数据。通过中断或寄存器标识的方式,通知CPU模数转换已经完毕。此时CPU可以读出模数转换数据。

现有技术中通用系统芯片中模数转换器控制器功能如下所述:

1) 模数转换模式有:单次、连续、扫描模式。其中,单次模式是指进行一个通道的模数转换,一次转换结束后停止模数转换。连续模式是指进行一个通道的模数转换,一次转换结束后继续下一次模数转换。扫描模式是指按照既定的顺序,完成一个通道的模数转换之后,继续进行下一个通道的模数转换。

2) 模数转换完成之后,可以通过和DMA的接口,通知DMA将模数转换数据搬运到目的地址。

3) 模拟看门狗功能,当模数转换数据大于阈值上限,或者小于阈值下限时,则会产生中断,通知CPU。

现有技术中存在的缺陷如下:

1) 不支持单通道多次模数转换,多通道扫描多次模数转换。其中,单通道多次模数转换,是指进行预定次数的一个通道的数模转换;也就是,进行一个通道的模数转换,本次模数转换之后,继续进行这个通道的模数转换,直到转换次数达到预定值。多通道扫描多次模数转换,是指进行预定次数的多个通道的扫描模数转换;也就是,按照既定的顺序,完成一个通道的数模转换之后,继续进行下一个通道的模数转换,如此循环指定次数。

2) 不支持模数转换数据求和功能。模数转换数据求和功能,是指将某一个通道进行的多次模数转换的数据求和。

3) 不支持模数转换数据求平均值功能。模数转换数据求平均值功能,是指将某一个通道进行的多次模数转换的数据求平均值。

4) 模拟看门狗只有一组阈值上限和阈值下限。不同的通道只能公用同一组阈值上限和阈值下限,无法支持不同通道配置不同的阈值上限和阈值下限的情况。

5) 不支持模数转换数据校正功能。当需要对某一通道模数转换的数值进行线性校正的情况下,只能采用软件来计算。

目前已有的模数转换器控制器功能单一,仅能实现模数转换器的简单控制;对于复杂的任务,则需要软件配合完成。模数转换器控制器与软件交互的方式一般分为中断和轮询两种;这两种方式都会降低CPU运行效率,降低整个电子系统的实时性。



技术实现要素:

为了解决现有技术中存在的上述技术问题,本发明提供了一种用于通用系统芯片的适用范围广的模数转换器控制装置,包括总线接口模块、寄存器模块、数据处理模块、控制时序产生模块和中断产生模块, CPU通过总线接口模块将全部控制信息写入寄存器模块,寄存器模块为模数转换器提供直接的配置信息,寄存器模块为控制时序产生模块提供配置信息,控制时序产生模块按照配置信息产生相应的转换控制信号并连接到模数转换器。

进一步的,一个通道的模数转换结束后,控制时序发生模块判断下一次进行模数转换的通道,并产生转换控制信号;同时,依据配置信息产生转换结束标志。

进一步的,所述中断产生模块依据配置信息产生中断信号,用以通知CPU转换完毕。

进一步的,一次模数转换完成后,所述数据处理模块依据配置信息,对模数转换数据进行求和、求平均值、阈值上下限比较和校正等运算。

进一步的,所述数据处理模块把运算结果送回寄存器模块,CPU可以通过总线接口模块将处理过后的数据读回。

进一步的,当数据处理模块发现模数转换数据大于对应通道的阈值上限或者小于对应通道的阈值下限,通知中断产生模块,产生中断。

进一步的,所述控制时序产生模块包括循环计数器、通道计数器、转换开始控制器和通道选择逻辑模块,当进行单通道模数转换时,通道选择逻辑模块输出通道顺序1寄存器中指定的通道;当进行多通道模数转换时,由循环计数器和通道计数器一同计算出需要进行模数转换的通道。

进一步的,通道计数器用来记录单次多通道模数转换中模数转换的次数;循环计数器用来记录多通道模数转换的循环次数;转换开始控制器用来产生模数转换开始信号,依据配置信息,产生标志模数转换开始的电平信号或者脉冲信号,直至所有的数模转换全部完成。

进一步的,当一次模数转换完成之后,若使能校正功能,模数转换数据首先进入到数据处理模块中的校正模块,按顺序做减法、乘法和移位;校正的公式如下:

其中,y为校正后的数据,x为校正前的数据,b为校正偏移量,a为校正系数,n为移位系数;a,b和n均为寄存器模块提供的配置信息,若没有使能校正功能,则校正数据等于转换数据,校正数据会进入寄存器模块,可以被CPU读取。

若使能看门狗功能,校正数据会与对应通道的阈值上限和阈值下限进行对比;如果大于阈值上限或者小于阈值下限,则会产生超出阈值范围标志,中断控制器会据此产生对应中断,用以通知CPU;

若使能了求和功能,累加器会把来自同一通道的校正数据进行累加,并将累加结果(转换数据求和值)送入寄存器模块,使之可以被CPU读取。

若使能求平均值功能,移位器会把累加器的结果进行右移操作,来做除数为2的整数次幂的除法求平均值。

进一步的,单通道有限次模数转换,校正功能使能,看门狗功能使能,求和功能使能,求平均值功能使能如下:

1) CPU配置如下:通道1进行16次模数转换,校正偏移量1,校正系数2,移位系数1,通道1阈值上限为128,通道1阈值下限为10,使能求和功能,使能求平均值功能;

2) CPU配置模数转换开始;

3) 控制时序产生模块中,通道选择输出为1,转换开始控制器产生转换开始信号;模数转换器,在接收到转换开始信号之后,开始对通道1进行模数转换;

4) 模数转换完成之后,模数转换器产生有效的转换结束信号;转换数据进入数据处理模块中的校正模块;首先经过减法器,减去1;得到的差进入乘法器,乘以2;得到的积进入移位器,向右移1位;校正后的数据进入寄存器模块,可以被CPU读取;校正后的数据还进入看门狗,与阈值上限和阈值下限进行比较,如果大于128或者小于10,则超出阈值范围标志有效,中断产生模块产生对应中断,以通知CPU;校正后的数据进入累加器,对本通道的数据进行累加;

5) 模数转换完成之后,模数转换器产生有效的转换结束信号。控制时序产生模块中,循环计数器加1;经过判断,尚未完成16次模数转换,转换开始控制器产生转换开始信号,开始下一次模数转换;

6) 重复4和5中的过程,直到完成全部16次模数转换。此时循环计数器计数到16,表示所有的模数转换已经完成,转换开始控制器不再产生转换开始信号,并通知中断产生模块,产生全部完成中断,以通知CPU;

7) 数据处理模块中的移位器,将累加器得到的累加结果向右移4位,得到平均值,提供给寄存器模块,以被CPU读取。

多通道有限次模数转换,校正功能使能,看门狗功能使能,求和功能使能,求平均值功能使能如下:

通道1、4、5进行16次循环模数转换;通道1校正偏移量1,校正系数2,移位系数1,通道1阈值上限为128,通道1阈值下限为10,使能求和功能,使能求平均值功能;通道4校正偏移量2,校正系数4,移位系数2,通道4阈值上限为256,通道4阈值下限为20,使能求和功能,使能求平均值功能;通道5校正偏移量3,校正系数3,移位系数2,通道5阈值上限为384,通道5阈值下限为30,使能求和功能,使能求平均值功能。

本发明的有益效果如下:

1) 支持单通道多次模数转换,多通道扫描多次模数转换。在很多应用场景中,需要对模数转换的结果进行求平均值操作。这就需要对某一通道或某几个通道进行多次模数扫描。在这个应用场景中,该发明使得CPU不需要频繁被中断,增强了系统的实时性。

2) 每个通道都支持求和、求平均值功能。在1)中所描述的应用场景中,使得CPU不需要频繁被中断,增强了系统的实时性。

3) 每个通道设置有各自的模拟看门狗阈值上限和阈值下限,使得整个电子系统可以在不影响系统实时性的情况下,同时监控几个不同的模拟电平值是否超过各自的上限和下限。

4) 支持数据校正功能。在很多应用场景中,对于模数转换器得到的数据需要进行线性校正。本发明使得CPU无需在用软件的方法,对模数转换器得到的数据进行校正,提高了整个电子系统的性能。

本发明独立完成求和、求平均值、门限值比较、数据校正、数据搬运、单通道有限次模数转换、单通道连续模数转换、多通道有限次模数转换以及多通道连续模数转换。上述功能均为电子系统中常用的功能,由于本模数转换器控制器可以独立完成这些功能,而不需要CPU参与;所以提高了CPU的运行效率和整个电子系统的实时性。

附图说明

图1是本发明应用的电子系统整体框图;

图2是本发明的模数转换器控制器装置图;

图3是控制时序产生模块框图;

图4是数据处理模块框图;

具体实施方式

下面结合附图对本发明作进一步说明。

本发明旨在提高通用系统芯片中需要用到的模数转换器控制器的控制效率和灵活度,减少CPU中断次数,提高整个电子系统的实时性。

如图1所示,本发明的用于通用系统芯片的适用范围广的模数转换器控制装置应用的电子系统结构。

模数转换器控制器的工作流程为:

1) 若需要DMA搬运模数转换数据,CPU需要首先配置DMA。在模数转换完成之后,模数转换器控制器向DMA发起搬运数据请求。DMA会把数据从模数转换器控制器中读出,再写入存储器中的指定地址。

2) CPU配置模数转换器控制器。配置信息包括:模数转换的类型(单通道单次转换等),模数转换器控制信息。

3) CPU使能模数转换器控制器。

4) 模数转换器控制器产生控制信号,控制模数转换器开始工作。每次转换完毕之后,对数据进行处理,并通知DMA搬运数据。

5) 全部模数转换都完成之后,模数转换器控制器产生中断(或把标志寄存器置位),通知CPU模数转换全部结束。

本发明的模数转换器控制器装置框图如图2所示。

CPU通过总线将全部控制信息写入寄存器模块。寄存器模块为模数转换器提供直接的配置信息,如是否为模拟电压是否为差分输入等。此外,寄存器模块为控制时序产生模块提供配置信息,如转换模式、模数转换通道等。控制时序产生模块,按照配置信息,产生相应的转换控制信号并连接到模数转换器。一个通道的模数转换结束后,控制时序发生模块判断下一次进行模数转换的通道,并产生转换控制信号;同时,依据配置信息产生转换结束标志。中断产生模块依据配置信息产生中断信号,用以通知CPU转换完毕。一次模数转换完成后,数据处理模块依据配置信息,对模数转换数据进行求和、求平均值、阈值上下限比较和校正等运算。此外,数据处理模块还会把运算结果送回寄存器模块。CPU可以通过总线接口模块将处理过后的数据读回。

当数据处理模块发现模数转换数据大于对应通道的阈值上限或者小于对应通道的阈值下限,会通知中断产生模块,来产生中断,告知CPU这一情况。

控制时序产生模块的框图如图3所示。

控制时序产生模块主要由循环计数器、通道计数器、转换开始控制器以及通道选择逻辑组成。当进行单通道模数转换时(包括单通道有限次模数转换和单通道连续模数转换),通道选择逻辑输出通道顺序1寄存器(来自寄存器模块的配置信息)中指定的通道。当进行多通道模数转换时(包括多通道有限次模数转换和多通道连续模数转换),由循环计数器和通道计数器一同计算出需要进行模数转换的通道。通道计数器用来记录单次多通道模数转换中模数转换的次数。循环计数器用来记录多通道模数转换的循环次数。转换开始控制器用来产生模数转换开始信号;该转换开始控制器依据配置信息,产生标志模数转换开始的电平信号或者脉冲信号,直至所有的数模转换全部完成。

数据处理模块的框图如图4所示。

当一次模数转换完成之后,若使能了校正功能,模数转换数据首先进入到数据处理模块中的教程模块,按顺序做减法、乘法和移位(替代除法)。校正的公式如下:

其中,y为校正后的数据,x为校正前的数据,b为校正偏移量,a为校正系数,n为移位系数;a,b和n均为寄存器模块提供的配置信息。如果没有使能校正功能,则校正数据等于转换数据。校正数据会进入寄存器模块,可以被CPU读取。

若使能了看门狗功能,校正数据会与对应通道的阈值上限和阈值下限进行对比;如果大于阈值上限或者小于阈值下限,则会产生超出阈值范围标志,中断控制器会据此产生对应中断,用以通知CPU。

若使能了求和功能,累加器会把来自同一通道的校正数据进行累加,并将累加结果(转换数据求和值)送入寄存器模块,使之可以被CPU读取。

若使能了求平均值功能,移位器会把累加器的结果进行右移操作,来做除法求平均值。需要注意的是,这种计算除法的方式,只能计算被除数是2的幂次方的情况。转换数据平均值会被送入寄存器模块,使之可以被CPU读取。

单通道有限次模数转换,校正功能使能,看门狗功能使能,求和功能使能,求平均值功能使能:

1) CPU配置如下:通道1进行16次模数转换,校正偏移量1,校正系数2,移位系数1,通道1阈值上限为128,通道1阈值下限为10,使能求和功能,使能求平均值功能。

2) CPU配置模数转换开始。

3) 控制时序产生模块中,通道选择输出为1,转换开始控制器产生转换开始信号。模数转换器,在接收到转换开始信号之后,开始对通道1进行模数转换。

4) 模数转换完成之后,模数转换器产生有效的转换结束信号。转换数据进入数据处理模块中的校正模块。首先经过减法器,减去1。得到的差进入乘法器,乘以2。得到的积进入移位器,向右移1位。校正后的数据进入寄存器模块,可以被CPU读取。校正后的数据还进入看门狗,与阈值上限(128)和阈值下限(10)进行比较,如果大于128或者小于10,则超出阈值范围标志有效,中断产生模块产生对应中断,以通知CPU。校正后的数据进入累加器,对本通道的数据进行累加。

5) 模数转换完成之后,模数转换器产生有效的转换结束信号。控制时序产生模块中,循环计数器加1。经过判断,尚未完成16次模数转换,转换开始控制器产生转换开始信号,开始下一次模数转换。

6) 重复4和5中的过程,直到完成全部16次模数转换。此时循环计数器计数到16,表示所有的模数转换已经完成,转换开始控制器不再产生转换开始信号,并通知中断产生模块,产生全部完成中断,以通知CPU。

7) 数据处理模块中的移位器,将累加器得到的累加结果向右移4位,得到平均值,提供给寄存器模块,以被CPU读取。

多通道有限次模数转换,校正功能使能,看门狗功能使能,求和功能使能,求平均值功能使能。

通道1、4、5进行16次循环模数转换。通道1校正偏移量1,校正系数2,移位系数1,通道1阈值上限为128,通道1阈值下限为10,使能求和功能,使能求平均值功能。通道4校正偏移量2,校正系数4,移位系数2,通道4阈值上限为256,通道4阈值下限为20,使能求和功能,使能求平均值功能。通道5校正偏移量3,校正系数3,移位系数2,通道5阈值上限为384,通道5阈值下限为30,使能求和功能,使能求平均值功能。这一实例与上述实例区别如下:

1) 第一次模数转换完成之后,模数转换器产生转换结束信号,通道计数器加1,选择下一个要进行模数转换的通道为4。再完成一次模数转换之后,通道计数器加1,选择下一个要进行模数转换的通道为5。再完成一次模数转换之后,通道计数器归零,循环计数器加1,选择下一个要进行模数转换的通道为1。按照这个过程,一直循环,最终循环计数器计满,并且通道计数器计满,所有的模数转换全部完成。

2) 在数据处理模块中,会根据当前转换的通道,选择对应通道的的校正偏移量,校正系数,移位系数,阈值上限,阈值下限,进行相应计算。

3) 累加器只会对同一个通道的校正后的数据进行累加。计算平均值所用的移位器,也只会对同一个通道的校正数据进行求平均值操作。

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