掌桥专利:专业的专利平台
掌桥专利
首页

用于模数转换器的数字接口电路

文献发布时间:2023-06-19 09:26:02


用于模数转换器的数字接口电路

技术领域

本发明总体上涉及模数(A/D)转换系统,并且在特定实施例中,涉及具有数字接口电路的A/D转换系统。

背景技术

模数转换器(ADC)被广泛用于电子系统中,以将诸如电压或电流的模拟信号转换为数字信号,以便在数字系统中进行处理。各种类型的ADC都可用,诸如直接转换ADC、逐次逼近ADC(SARADC)、Σ-ΔADC等。

模数(A/D)转换系统包括至少一个ADC,并且可以包括其他功能模块,诸如用于选择连接至ADC并由ADC转换的模拟信道的多路复用器。A/D转换系统附加地可以包括控制器(例如,处理器)以控制A/D转换系统的操作。控制器和ADC之间的有效通信是个挑战,因为在控制器和ADC之间传送控制命令和转换后的数字数据可能会消耗大量的控制器资源。在该领域中需要用于实现控制器与ADC之间的有效通信的模数转换系统。

发明内容

在一些实施例中,模数转换系统包括:模数转换器(ADC);多路复用器,其中该多路复用器具有被配置为耦合至多个模拟输入信号的多个输入信道,其中多路复用器的输出端子耦合至ADC的输入端子;以及数字接口电路,被配置为耦合在ADC和处理器之间,其中数字接口电路被配置为:从处理器接收命令序列,其中命令序列中的每个命令包括指示多路复用器的输入信道的信道号,其中命令序列中所包含的信道号定义信道序列;将命令序列存储在数字接口电路的命令先进先出(FIFO)缓冲区中;将命令FIFO缓冲区中所存储的命令序列第一次发送给ADC以控制ADC的操作,其中由信道序列指定的多路复用器的输入信道处的模拟输入信号第一次被按序转换为数字数据;将命令FIFO缓冲区中所存储的命令序列第二次发送给ADC,其中由信道序列指定的多路复用器的输入信道处的模拟输入信号第二次被按序转换为数字数据。

在一些实施例中,数字接口电路包括:队列块,该队列块被配置为耦合在模数转换器(ADC)和处理器的直接存储器访问(DMA)控制器之间,其中该队列块包括命令缓冲区并被配置为:从DMA控制器接收第一命令;将第一命令存储在命令缓冲区中;根据第一命令的第一控制位修改第一命令,以生成修改后的第一命令;并且将修改后的第一命令发送给ADC。

在一些实施例中,操作模数转换系统的方法包括:将命令序列从处理器发送给队列块,其中队列块耦合在处理器和模数转换器(ADC)之间,ADC耦合至多路复用器,并且多路复用器具有连接至多个模拟输入信号的多个输入信道,其中命令序列中的每个命令包括指示信道号、信道重复因子和信道延迟数的控制位;由队列块对每个命令的控制位进行解码以获得每个命令中的信道号、信道重复因子和信道延迟数;通过根据每个命令的控制位对每个命令进行修改,由队列块生成修改后的命令序列;以及由队列块将修改后的命令序列发送给ADC以控制ADC的操作。

附图说明

在附图和以下描述中阐述了本发明的一种或者多种实施例的细节。根据该描述和附图、以及权利要求,本发明的其他特征、目的、和优点将变得明显。在附图中,贯穿各种视图,相同的附图标记通常表示相同的组成部分,为了简洁起见,通常不对其进行重新描述。为了更完整地理解本发明,现在参考以下结合附图进行的描述,其中:

图1图示根据实施例的模数(A/D)转换系统的框图;

图2图示根据实施例的图1所示A/D转换系统的总线体系结构;

图3图示根据实施例的图1所示A/D转换系统的更详细的框图;

图4图示根据实施例的命令帧的结构;

图5A至5C图示根据一些实施例的图1所示A/D转换系统的不同扫描模式操作;

图6A和6B图示根据实施例的图1所示A/D转换系统的信道过采样操作;

图7A和7B图示根据实施例的图1所示A/D转换系统的可编程延迟操作;

图8A和8B图示根据另一实施例的图1所示A/D转换系统的可编程延迟操作;

图9图示根据实施例的图1所示A/D转换系统的直接存储器访问(DMA)操作;以及

图10图示根据实施例的操作A/D转换系统的方法流程图。

具体实施方式

下面将详细讨论当前优选实施例的制造和使用。然而,应当理解,本发明提供了许多可应用的发明构思,这些发明构思可以在各种各样的特定环境中实施。所讨论的特定实施例仅说明制造和使用本发明的特定方式,并且不限制本发明的范围。

将在特定的上下文中相对于示例性实施例描述本发明,即,在具有耦合在模数(A/D)转换系统的控制器与A/D转换系统的模数转换器(ADC)之间的数字接口电路的A/D转换系统的上下文中。

图1图示根据实施例的模数(A/D)转换系统500的框图。A/D转换系统500包括模数转换器(ADC)100、多路复用器200、数字接口块300(也可以被称为数字接口电路或ADC队列块)和控制器400。在本文的描述中,在理解SARADC仅仅是ADC 100的非限制性示例的情况下,ADC 100可以被称为逐次逼近ADC(SARADC),并且其他任何合适类型的ADC也可以被用作ADC 100。

如图1所示,ADC 100包括模拟块101,该模拟块101将模拟块101的输入端子102处的模拟输入信号转换为数字数据(也被称为数字样本)。ADC 100还包括用于控制模拟块101的操作并用于与A/D转换系统500中的其他块(诸如控制器400和数字接口块300)进行通信的数字块103。数字块103包括:提供控制信号的控制逻辑105,该控制信号诸如是采样时钟信号、用于模拟块101的启用/禁用信号以及用于多路复用器200的信道选择信号。数字块103还包括各种接口,诸如用于与控制器400通信的总线接口107和用于与数字接口块300通信的自定义接口。多个触发信号121耦合至ADC 100,以用于诸如中断请求和触发的各种功能。图1还示出了ADC 100的功能模块之间、以及ADC 100与其他功能块之间的各种控制/数据路径(例如111、113、117、119、143和147)。控制/数据路径可以是双向或单向的,并且根据信号类型,可以是一位控制/数据路径或多位控制/数据路径。

仍参考图1,多路复用器200具有多个输入信道201(也被称为ADC信道),每个输入信道被配置为连接至模拟输入信号(例如,电压信号或电流信号)。根据来自控制路径111的控制信号,选择输入信道201中的一个信道并将其发送给多路复用器200的输出端子203。输出端子203连接至ADC 100的输入端子102。既然多路复用器200的输入信道处的信号被ADC100转换为数字数据,则认为多路复用器200的输入信道(也被称为ADC信道)也被ADC 100转换。

控制器400(也被称为处理器)可以是或包括中央处理单元(CPU)、数字信号处理器(DSP)、微控制器(μ-控制器)等。控制器400通过向ADC 100发送命令、和/或通过经由总线接口107或自定义接口109设置ADC 100的控制寄存器中的控制位,来控制ADC 100(和多路复用器200)的操作。例如,控制器400可以将ADC 100设置为单信道转换模式,其中选择多路复用器200的特定信道处的模拟信号并以特定采样频率将其转换为数字流。作为另一示例,控制器400可以将ADC 100设置为扫描模式,其中控制器选择多路复用器200的信道列表,并且按照信道在每次扫描时出现在信道列表中的顺序将这些信道处的模拟信号按序转换成数字数据。在一些实施例中,控制器400通过经由总线接口107设置ADC 100的控制寄存器、和/或将控制命令经由总线接口107发送给ADC 100,来控制ADC 100的扫描模式操作,然而,经由总线接口107控制的扫描模式操作可能具有有限的功能,例如,信道列表可能不灵活,并且信道列表中的信道号可能必须是例如递增的顺序。另外,可能难以经由总线接口107来实现诸如可编程信道延迟和信道过采样(在下文中更详细地描述)之类的增强特征。利用数字接口块300和自定义接口109,ADC 100的这些以及其他增强特征得到支持并容易被实现,其细节在下文中讨论。

图1进一步图示数字接口块300,其也被称为数字接口电路或ADC队列块。数字接口块300耦合在控制器400和ADC 100之间,并且起到提高控制器400和ADC 100之间的通信效率并支持ADC的各种增强特征的作用,诸如在信道列表中进行灵活信道排序、可编程信道延迟和信道过采样。在一些实施例中,数字接口块300从控制器400接受命令(也可以被称为测量命令),将命令存储在数字接口块300的缓冲区中。接下来,数字接口块300对命令中所嵌入的控制位进行解码,根据控制位生成修改后的命令,并将修改后的命令发送给ADC 100以控制ADC 100的操作。数字接口块300还从ADC 100接收并存储转换后的数字数据,并且,在所图示的实施例中,使用直接存储器访问(DMA)传送将数字数据发送给控制器400。数字接口块300经由数据/控制路径141与控制器400进行通信。下文将讨论数字接口块300的更多细节。

图2图示根据实施例的图1所示A/D转换系统500的总线体系结构。注意,为清楚起见,在图2中未图示A/D转换系统500的所有组件。

在图2的示例中,控制器400包括控制/逻辑单元(例如,算术逻辑单元(ALU)和控制单元(CU))、数据存储器、代码存储器和AIPS块。控制/逻辑单元经由AMBA高性能总线(AHB)211访问数据存储器、代码存储器和AIPS块,其中AMBA代表高级微控制器总线体系结构,它是一种开放标准的片上互连规范。AIPS块用作AHB 211与外围总线(诸如AMBA高级外围总线(APB)213)之间的桥梁(例如接口)。ADC 100和数字接口块300连接至AMBA APB 213。

图3图示根据实施例的图1所示A/D转换系统500的更多细节的框图。注意,为清楚起见,在图3中未图示A/D转换系统500的所有组件。

参考图3,在虚线402上方图示控制器400的一些功能块。例如,图3示出控制器400的系统随机存取存储器(RAM),其可以是或包括图2中的代码存储器和/或数据存储器。在图3的示例中,系统RAM具有在两个应用缓冲区(例如Q0应用缓冲区和Q1应用缓冲区)中并行运行的两个应用。Q0应用缓冲区和Q1应用缓冲区彼此相似,因为它们是应用缓冲区的两个实例。每个应用缓冲区具有命令缓冲区401和数据缓冲区403,其中命令缓冲区401存储从控制器400发送给数字接口块300的命令,并且数据缓冲区403存储从数字接口块300发送给控制器400的数字数据(由ADC 100进行转换)。命令缓冲区401和数据缓冲区403可以是例如先进先出(FIFO)缓冲区。

在图3中,命令缓冲区401耦合至控制器400的DMA控制器405,并且数据缓冲区403耦合至控制器400的DMA控制器407。DMA控制器405和407被用于在控制器400和数字接口块300之间传送命令或数据。图3进一步图示控制器400的接口块409,控制器400可以使用该接口块409来设置数字接口块300的某些控制寄存器,诸如全局寄存器317。

仍然参考图3,数字接口块300包括一个或多个队列块301(例如301A和301B)。在一些实施例中,该一个或多个队列块301是相同硬件块(例如,队列块)的实例,因此具有相同或相似的结构。在图3的示例中,图示了两个队列块301A和301B,每个队列块耦合至控制器400中的相应应用缓冲区。图3所示的数字接口块300中的队列块的数目是说明性的而非限制性的,并且,如本领域技术人员容易理解的,可以在数字接口块300中实现任何合适数目的队列块。这些和其他变型完全旨在被包括在本公开的范围内。

在图3中,队列块301(例如301A或301B)包括命令队列305、数据队列309和可选的辅助数据队列315。队列块301还具有耦合在命令队列305和DMA控制器405之间的DMA命令寄存器303,并具有耦合在数据队列309和DMA控制器407之间的DMA数据寄存器307。DMA命令寄存器303和DMA数据寄存器307各自包括多个DMA寄存器以支持DMA突发模式传送。在队列块301包括辅助数据队列315的实施例中,队列块301进一步包括辅助数据队列接口313,用于在辅助数据队列315和处理来自ADC 100的数字样本的另一功能块(未图示)之间进行交互。在一些实施例中,命令队列305、数据队列309和辅助数据队列315被实现为FIFO缓冲区。

图3中的队列块301包括队列寄存器311,其可以被用于设置特定于队列块301的属性并控制队列块301的操作。图3进一步图示全局寄存器317,其可以被用于设置所有队列块301共有的属性并控制数字接口块300的操作。另外,数字接口块300包括仲裁和接口块319,该仲裁和接口块仲裁在队列块301之间的访问优先级,并用作ADC100和数字接口块300之间的接口。图3进一步图示ADC数字总线接口411,其可以是控制器400的一部分,并可以被控制器400使用以设置ADC 100的控制寄存器。

图4图示根据实施例的命令帧的结构。命令帧示出了从控制器400向数字接口块300所发送的命令的各种位字段。在图4中,第一行示出了位字段的名称、第二行示出了命令帧内的位位置、第三行示出了命令帧中该位的默认值。

在图4的示例中,每个命令帧具有32位,并且该32位被分划成具有不同定义的不同位字段。例如,命令的位0-7定义ADC_CH_NUM[7:0],其指示由命令控制的ADC信道号(例如,待由ADC 100进行转换的)。图4的命令帧可以支持高达256个ADC信道。位16-19定义CMD_DLY[3:0],并且位28定义DLY_CFG,其中CMD_DLY[3:0]和DL_CFG确定在由ADC_CH_NUM[7:0]指示的ADC信道被转换之前的可编程信道延迟的值。位20-22定义CMD_RPT[0:2],其指示信道过采样因子(也被称为信道重复因子)。位24-26定义SEQ_TYPE[2:0],其指示命令队列305中所存储的命令序列的序列类型。位31定义LAST_CMD,其指示当前命令是否是命令序列中的最后命令。命令中的某些位是保留位(被标记为RSVD)。在下文中讨论各种位字段的细节以及它们用于控制ADC 100操作的用途。本领域的技术人员将容易理解,图4所示的命令帧结构仅是非限制性示例,其他命令帧结构也是可以的,并且完全旨在被包括在本公开的范围内。

图5A至5C图示根据一些实施例的图1所示A/D转换系统500的不同扫描模式操作。特别地,图5A、5B和5C分别图示触发扫描模式、触发一次扫描模式和非触发扫描模式。

参考图5A,控制器400将测量命令序列从命令缓冲区401(见图3)发送给相应队列块301的命令队列305,来使ADC 100在触发扫描模式下操作。将测量命令序列从控制器400传送到命令队列305是由DMA控制器405完成的,其详细信息将在下面参考图9进行讨论。在扫描模式下,测量命令序列可以被执行多次,也被称为在多次扫描中被执行。

在图5A的示例中,测量命令序列包括四个测量命令,诸如CMD0、CMD1、CMD2和CMD3。每个测量命令都包括位字段ADC_CH_NUM[7:0](参见图4),其指示该测量命令的ADC信道号。每个测量命令中的信道号定义信道序列(也被称为信道列表),其指示待被转换为数字数据的ADC信道以及ADC信道被转换的顺序。注意,每个测量命令中的信道号可以是任何有效的信道号,并且信道序列可以包括以任何顺序排列的信道号。例如,四个命令CDM0、CMD1、CMD2和CMD3中的信道号可以分别为1、10、3和2,这意味着ADC信道1、10、3和2处的模拟信号在扫描模式的每次扫描期间都以该顺序被按序转换为数字数据。

在一些实施例中,第一测量命令CMD0的位字段SEQ_TYPE[2:0]由数字接口块300(例如,由队列块301)检查以确定扫描模式,并且数字接口块300忽略命令序列中后续命令中的位字段SEQ_TYPE[2:0]。SEQ_TYPE[2:0]的三位可以定义高达八种不同的扫描模式。在所图示的实施例中,由SEQ_TYPE[2:0]定义至少三种扫描模式,例如,触发扫描模式、触发一次扫描模式和非触发扫描模式。在图5A的示例中,第一测量命令的位字段SEQ_TYPE[2:0]具有与触发扫描模式相对应的预定值。

在触发扫描模式下,数字接口块300(参见图3)在开始执行命令队列305中所存储的测量命令序列之前,等待触发信号。触发信号是硬件信号,在实施例中,例如是控制信号的上升沿或下降沿。在另一实施例中,触发信号是控制寄存器中的位,因此,通过将控制寄存器中的控制位设置为预定值(例如,将位值从0改变为1),控制器400可以触发队列块301。

一旦数字接口块300检测到触发信号,它就经由自定义接口109(参见图1)将测量命令序列按序发送给ADC 100。由于命令队列305是FIFO缓冲区,因此将命令队列305中所存储的测量命令序列以其被接收的顺序发送给ADC 100。在需要指示信道延迟或信道过采样的测量命令的实施例中,队列块301可以在将测量命令发送给ADC 100之前修改测量命令,其细节将在下文中参考图6A至6B、7A至7B和8A至8B进行讨论。为简单起见,图5A、5B和5C中所图示的示例假定测量命令未指示信道延迟和信道过采样。

在触发扫描模式下,在测量命令序列已被执行一次之后,数字接口块300等待下一个触发信号,并且测量命令序列仍被存储在队列块301中。当下一个触发信号到达时,数字接口块300通过将测量命令经由自定义接口109发送给ADC 100从而再次执行测量命令序列。例如,当通过设置数字接口块300的控制寄存器(例如,图3中的311)的控制位,将STOP扫描命令从控制器400发送给数字接口块300时,触发扫描模式结束。一旦STOP SCAN命令被接收,当前测量命令序列继续被执行,直到最后一个命令(例如,由位字段LAST_CMD所指示的)被发送给ADC 100为止,然后命令队列305被重置,并且扫描模式被重置。

在一些实施例中,当自定义接口109接收到测量命令时,自定义接口109对该测量命令中的各种控制位进行解码(例如,解译),并且生成相应的控制信号以控制ADC 100的模拟块101的操作并控制多路复用器200的操作,使得信道号ADC_CH_NUM[7:0]所指示的多路复用器200的输入信道处的模拟信号被ADC 100转换为数字值。然后,转换后的数字值经由自定义接口109被发送回队列块301的数据队列309(参见图3)。自定义接口109是ADC 100与数字接口块300之间的私有接口,该私有接口确保ADC 100与数字接口块300之间的低时延数据传输,并确保测量命令的传输不受其他总线传送的影响。在一些实施例中,当控制器400通过数字接口块300控制ADC 100的操作时,数字接口300对来自控制器400的测量命令进行解码,修改测量命令并将修改后的测量命令经由自定义接口109发送至控制逻辑105。控制逻辑105根据修改后的测量命令生成控制信号,以控制模拟块101的操作和多路复用器200的操作。

图5图示根据实施例的图1所示A/D转换系统500的触发一次扫描模式操作。在图5B的示例中,测量命令序列中的第一测量命令的位字段SEQ_TYPE[2:0]具有与触发一次扫描模式相对应的值。触发一次扫描模式类似于图5A的触发扫描模式,但是在数字接口块300接收到第一触发信号之后,测量命令序列被执行,并且在不检查附加触发信号的情况下,测量命令序列被反复执行,直到数字接口块300接收到STOP SCAN命令为止。数字接口块300对STOP SCAN命令的响应与以上针对图5A讨论的响应相同,因此不再重复细节。

图5C图示根据实施例的图1所示A/D转换系统500的非触发扫描模式操作。在图5C的示例中,测量命令序列中的第一测量命令的SEQ_TYPE[2:0]具有与非触发扫描模式相对应的值。在非触发扫描模式下,数字接口块300不需要触发来执行测量命令序列。相反,一旦第一测量命令被加载(例如,写入)到命令队列305中,测量命令序列的执行便开始。测量命令序列被反复执行,直到数字接口块300接收到STOP SCAN命令为止。数字接口块300对STOPSCAN命令的响应与以上针对图5A讨论的响应相同,因此不再重复细节。

上述扫描模式操作的优点包括用于信道扫描的灵活信道列表,其允许任意数目的ADC信道以任意顺序被ADC 100转换。如果不具有数字接口块300,则这种灵活性可能不可用。另外,由于测量命令序列在每次扫描后仍保留在命令队列305中,因此控制器400仅需要将测量命令序列发送给命令队列305一次,并且,命令队列305中所存储的测量命令序列可以在扫描模式操作中被多次使用。这可以通过将命令队列305实现为FIFO缓冲区来达成,并且可以通过改变FIFO缓冲区的数据指针的地址而不改变(例如,丢失)FIFO缓冲区中所存储的内容来实现从FIFO缓冲区中读取命令。与针对每次扫描控制器400都需要将测量命令序列发送至ADC 100的参考方法相比,当前公开的A/D转换系统500为控制器400节省了大量资源,并且明显减少了A/D转换系统500的总线上的数据流量。例如,DMA控制器405(参见图3)仅将命令序列从控制器的命令缓冲区401传送给命令队列305一次,并且DMA控制器405在命令序列中的最后一个命令被存储到命令队列305中之后被停止。

图6A和6B图示根据实施例的图1所示A/D转换系统的信道过采样操作。在一些应用中,在扫描模式操作的每次扫描期间对ADC信道进行多次采样(例如,转换)可能是有利的。例如,可以对ADC信道进行多次采样,以在每次扫描中获得多个ADC样本(例如,多个数字数据),并且可以对多个ADC样本取平均,以获得噪声较小的ADC样本,从而提高了ADC输出的质量。

图6A图示包括三个命令的测量命令序列。第一命令的信道号为1,信道过采样因子为4;第二条命令的信道号为8,信道过采样因子为2;第三条命令的信道号为12,信道过采样因子为0。信道过采样因子由每个命令的位字段CMD_RPT[2:0](参见图4)定义,其定义从0到7的值。在一些实施例中,队列块301重复每个命令达CMD_RPT次,并且因此将每个命令发送给ADC 100的自定义接口109共计CMD_RPT+1次,其中CMD_RPT是位字段CMD_RPT[2:0]的值。重复的命令可以被称为原始命令的修改后的命令,并且以上操作可以被描述为:队列块301修改原始命令(例如,通过重复)以生成修改后的命令并将修改后的命令发送给ADC 100的自定义接口109。

现在参考图6B,该图示出了从队列块301向ADC 100的自定义接口109所发送的修改命令序列。对于图6A的示例,第一命令被发送给ADC 100达5(4+1=5)次,第二条命令被发送给ADC 100达3(2+1=3)次,第三条命令被发送给ADC 100达1(0+1=1)次,这使ADC信道1在每次扫描中被采样5次,ADC信道8在每次扫描中被采样3次,ADC信道12每次扫描被采样1次。作为示例,考虑针对ADC 100的采样频率为1MHz的A/D转换系统500。对于图6A所图示的命令序列,在每次扫描期间,ADC 100可以产生用于ADC信道1的五个连续的具有例如12位分辨率的数字采样,这五个数字样本可以彼此间隔1μs。另外,在每次扫描期间,ADC 100可以产生例如用于ADC信道8的三个12位数字样本,这三个数字样本彼此间隔1μs。此外,在每次扫描期间,ADC 100可以产生例如用于ADC信道12的一个12位数字样本。因此,在该示例中,图6A中的测量命令序列在9μs内执行,并产生9个数字样本。假设选择了触发频率为1KHz的触发扫描模式,则在产生前9个数字样本后约1ms,又产生另外9个数字样本。重复采样过程,直到接收到停止STOP SCAN为止。

图7A和7B图示根据实施例的图1所示A/D转换系统500的可编程延迟操作。在一些应用中,在信道序列中的两个相邻ADC信道之间增加一些间隔(例如,时间延迟),这可能是有利的。该间隔可能需要针对不同的应用是可编程的。如果没有本公开的情况下,则这种要求难以适应A/D转换系统。在没有本公开的情况下,非理想解决方案可能需要在测量命令之间发送伪命令(例如,花费时间来执行但什么都不做的命令)。但是,这种非理想的解决方案增加了命令缓冲区401(参见图3)和命令队列305两者中的存储器占用空间,并且需要更多的DMA请求和更多的总线周期用于传送伪命令。本文所描述的可编程延迟操作以明显减少的存储器使用、更少的DMA请求和更少的总线周期来满足以上要求。

图7A示出了具有三个命令的示例测量命令序列。第一测量命令的信道号为1,信道延迟值为3(由位字段CMD_DLY[3:0]定义);第二测量命令的信道号为8,信道延迟值为0;第三测量命令的信道号为12,信道延迟值为5。在图7A和7B的示例中,命令中的DLY_CFG位被设置为指示线性延迟的值(例如“1”),这意味着添加的延迟量为CMD_DLY×ΔT,其中CMD_DLY是由位字段CMD_DLY[3:0]表示的值,而ΔT是预定时间段。

图7B示出了从队列块301向ADC 100的自定义接口109所发送的修改后的命令。如图7B所图示的,队列块301通过在每个命令的前面添加由信道延迟值指定的可变延迟来修改每个命令。这可以通过以下方式来实现:使用数字接口块300内的硬件延迟块(未单独示出),将每个命令延迟指定的信道延迟(例如CMD_DLY×ΔT),然后将延迟的命令发送给ADC100的自定义接口109。换言之,数字接口块300通过改变命令之间的间隔(例如,通过添加不同的时间延迟),或者通过在每个命令之前添加可变的时间延迟,来修改命令序列,并且将修改后的命令发送给ADC 100的自定义接口109。

图8A和8B图示根据另一实施例的图1所示A/D转换系统的可编程延迟操作。图8A和8B中的示例与图7A和7B中的示例相似,但是命令中的DLY_CFG位被设置为指示指数延迟的值(例如“0”),这意味着添加的延迟量是2

图8A示出了测量命令序列,并且图8B示出了被发送给ADC 100的自定义接口109的修改后的命令序列,其中修改后的命令序列具有在每个测量命令的前面所添加的可变延迟。注意,如技术人员容易理解的,图6A至6B、7A至7B和8A至8B所图示的信道过采样操作和信道延迟操作可以与图5A至5C所示的扫描操作结合。

图9图示根据实施例的图1所示A/D转换系统的直接存储器访问(DMA)操作。特别地,图9图示了被用于在控制器400和队列块301之间进行DMA传送的队列块301的FIFO缓冲区和DMA寄存器。注意,DMA传送可以被用于将命令从控制器400传送给命令队列305(参见图3),或可以被用于将ADC数字样本从数据队列309传送给控制器400。如下文所讨论的,图9被用于图示两种类型的DMA传送。

例如,对于从控制器400到命令队列305的DMA传送,图9左侧所示的FIFO缓冲区是命令队列305,图9右侧所示的寄存器是DMA命令寄存器303。作为非限制性示例,在图9中图示了四个DMA命令寄存器,并且可以使用任何合适数目的DMA寄存器。为了将命令从控制器400传输到命令队列305,数字接口块300检查命令队列305中的空闲条目(例如,未占用的条目)的数目。作为示例,命令队列305中的条目可以是32位或64位存储器单元。命令队列305中的空闲条目的数目可以由被称为水印水平的指示符来追踪。当命令队列305中的空闲条目的数目等于或大于DMA命令寄存器的数目(例如,四个)时,队列块301向DMA控制器405发送DMA请求。作为响应,DMA控制器405开始突发模式DMA传送以将例如四个命令传送到DMA命令寄存器303中,然后该四个命令被存储在命令队列305中。注意,多于一个的DMA命令寄存器303允许进行突发模式DMA传送,这不仅提高了DMA传送的效率(例如,更少的DMA请求、更少的总线周期),而且还允许传输多个测量命令(例如,四个)而不会被另一个具有更高优先级的DMA传送中断。

对于从数据队列309到控制器400的DMA传送,图9左侧所示的FIFO缓冲区是数据队列309,图9右侧所示的寄存器是DMA数据寄存器307。与以上讨论类似,由于多于一个的DMA数据寄存器307可用,因此支持突发模式DMA传送,这允许将多个ADC样本(例如,四个)从数据队列309传送至控制器400而不被另一个具有更高优先级的DMA传送中断。在一些实施例中,为了将ADC样本从数据队列309传送给控制器400,数字接口块300检查数据队列309中的新条目(例如,需要被发送给控制器400的新的或未发送的ADC样本)的数目。当新条目的数目等于或大于DMA数据寄存器的数目(例如四个)时,队列块301将例如四个ADC样本加载到DMA数据寄存器307中并向DMA控制器407发送DMA请求。作为响应,DMA控制器407开始突发模式DMA传送,以将例如四个ADC样本传送给控制器400。

图10图示根据实施例的操作A/D转换系统的方法流程图。应当理解,图10所示的实施例方法仅仅是许多可能的实施例方法的示例。本领域普通技术人员将认识到许多变化、替代和修改。例如,可以添加、移除、替换、重新布置和重复如图10所示的各个步骤。

参考图10,在步骤1010中,将命令序列从处理器发送给队列块,其中该队列块耦合在处理器和模数转换器(ADC)之间,该ADC耦合至多路复用器,并且多路复用器具有连接至多个模拟输入信号的多个输入信道,其中命令序列中的每个命令包括指示信道号、信道重复因子和信道延迟数的控制位。在步骤1020中,队列块对每个命令的控制位进行解码以获得每个命令中的信道号、信道重复因子和信道延迟数。在步骤1030中,队列块通过根据每个命令的控制位修改每个命令,来生成修改后的命令序列。在步骤1040中,队列块将修改后的命令序列发送给ADC以控制ADC的操作。

实施例可以实现优点。例如,各种扫描模式允许将任意数目的ADC信道以任何顺序转换为数字数据。每个ADC信道可以在每次扫描期间被多次采样,并且可以在每个ADC信道被转换之前插入可编程延迟。这些增强的功能(以前可能不可用)可以在不增加存储器占用空间或不增加总线周期的情况下来实现。例如,数字接口块中的队列块对测量命令的控制位进行解码,并根据控制位所指示的信道延迟值和信道过采样因子来修改每个测量命令。然后将修改后的命令发送给ADC以控制ADC的操作。由于所公开的A/D转换系统的结构,仅需要将命令序列从控制器传送给队列块一次,这减少了DMA请求的数目和用于DMA传送的总线周期。作为另一示例,数字接口块的队列块具有多于一个的DMA寄存器(例如DMA命令寄存器或DMA数据寄存器)以支持突发模式DMA传送,这提高了DMA传送的效率并确保了测量命令(或ADC数据)在每次突发模式传送中被传送而不会被其他更高优先级的DMA传送中断。

这里总结了本发明的示例实施例。根据本文的整个说明书和权利要求还可以理解其他实施例。

示例1:在实施例中,模数转换系统包括:模数转换器(ADC);多路复用器,其中该多路复用器具有被配置为耦合至多个模拟输入信号的多个输入信道,其中多路复用器的输出端子耦合至ADC的输入端子;以及数字接口电路,其被配置为耦合在ADC和处理器之间,其中数字接口电路被配置为:从处理器接收命令序列,其中命令序列中的每个命令包括指示多路复用器的输入信道的信道号,其中命令序列中所包含的信道号定义信道序列;将命令序列存储在数字接口电路的命令先进先出(FIFO)缓冲区中;将命令FIFO缓冲区中所存储的命令序列第一次发送给ADC以控制ADC的操作,其中由信道序列指定的多路复用器的输入信道处的模拟输入信号第一次被按序转换为数字数据;将命令FIFO缓冲区中所存储的命令序列第二次发送给ADC,其中信道序列所指定的多路复用器的输入信道处的模拟输入信号第二次被按序转换为数字数据。

示例2:根据示例1的模数转换系统,其中将命令FIFO缓冲区中所存储的命令序列第一次发送给ADC包括:由数字接口电路接收第一触发信号;以及响应于接收到第一触发信号,由数字接口电路将命令FIFO缓冲区中所存储的命令序列第一次发送给ADC。

示例3:根据示例2的模数转换系统,其中将命令FIFO缓冲区中所存储的命令序列第二次发送给ADC包括:由数字接口电路接收第二触发信号;以及响应于接收到第二触发信号,由数字接口电路将命令FIFO缓冲区中所存储的命令序列第二次发送给ADC。

示例4:根据示例2的模数转换系统,其中将命令FIFO缓冲区中所存储的命令序列第二次发送给ADC包括:在将命令FIFO缓冲区中所存储的命令序列第一次发送给ADC之后,由数字接口电路将命令FIFO缓冲区中所存储的命令序列第二次发送给ADC,而无需等待另一触发信号。

示例5:根据示例4的模数转换系统,其中数字接口电路进一步被配置为:检查数字接口电路的控制寄存器的状态位;以及响应于检测到控制寄存器的状态位被设置为预定值,停止将命令FIFO缓冲区中所存储的命令序列发送给ADC。

示例6:根据示例1的模数转换系统,其中数字接口电路被配置为在将命令序列的第一命令存储在命令FIFO缓冲区中之后立即开始将命令FIFO缓冲区中所存储的命令发送给ADC,而无需检查触发信号。

示例7:根据示例1的模数转换系统,其中命令序列中的每个命令进一步包括指示信道过采样因子N的控制位,其中数字接口电路被配置为将每个命令发送给ADC达N+1次,使得针对每个命令序列,每个命令的信道号所指示的输入信道处的模拟输入信号被转换为数字数据达N+1次。

示例8:根据示例1的模数转换系统,其中命令序列中的每个命令进一步包括指示预定延迟时段的控制位,其中数字接口电路被配置为:通过在每个命令之前插入预定延迟时段来修改命令序列;将修改后的命令序列发送给ADC,使得每个命令的信道号所指示的输入信道处的模拟输入信号的转换被延迟预定延迟时段。

示例9:根据示例1的模数转换系统,其中数字接口电路被配置为耦合在ADC与处理器的第一直接存储器访问(DMA)控制器之间。

示例10:根据示例9的模数转换系统,其中数字接口电路进一步包括耦合在第一DMA控制器和命令FIFO缓冲区之间的第一数目的DMA命令寄存器,其中数字接口电路被配置为:确定命令FIFO缓冲区中的空闲条目的数目是否等于或大于DMA命令寄存器的第一数目;以及响应于确定命令FIFO缓冲区中的空闲条目的数目等于或大于DMA命令寄存器的第一数目,向第一DMA控制器发送DMA请求,以在突发模式操作中将第一数目的命令传送给DMA命令寄存器。

示例11:根据示例10的模数转换系统,其中数字接口电路进一步包括:数据FIFO缓冲区,用于存储来自ADC的转换后的数字数据;以及第二数目的DMA数据寄存器,被配置为耦合在数据FIFO缓冲区和处理器的第二DMA控制器之间。

示例12:根据示例11的模数转换系统,其中数字接口电路被配置为:确定数据FIFO缓冲区中的新数据条目的数目是否等于或大于DMA数据寄存器的第二数目;以及响应于确定数据FIFO缓冲区中的新数据条目的数目等于或大于DMA数据寄存器的第二数目,向第二DMA控制器发送DMA请求,以在突发模式操作中将第二数目的新数据条目传送给处理器。

示例13:数字接口电路包括:队列块,被配置为耦合在模数转换器(ADC)和处理器的直接存储器访问(DMA)控制器之间,其中该队列块包括命令缓冲区并被配置为:从DMA控制器接收第一命令;将第一命令存储在命令缓冲区中;根据第一命令的第一控制位修改第一命令,以生成修改后的第一命令;以及将修改后的第一命令发送给ADC。

示例14:根据示例13的数字接口电路,其中第一命令的第一控制位包括过采样因子N,其中修改第一命令包括将第一命令重复N次。

示例15:根据示例13的数字接口电路,其中第一命令的第一控制位包括延迟T,其中修改第一命令包括在第一命令之前添加延迟T。

示例16:根据示例13的数字接口电路,其中队列块进一步包括被配置为耦合在DMA控制器和队列块之间的第一数目的DMA命令寄存器,其中队列块被配置为:确定命令缓冲区中的空闲条目的数目;以及响应于确定命令缓冲区中的空闲条目的数目等于或大于DMA命令寄存器的第一数目,向DMA控制器请求DMA传送,以在突发模式操作中传送第一数目的命令。

示例17:根据示例13的数字接口电路,其中队列块进一步包括数据缓冲区,其中队列块进一步被配置为:从ADC接收一个或多个数字样本;将一个或多个数字样本存储在数据缓冲区中;以及通过处理器的另一DMA控制器将一个或多个数字样本发送给处理器。

示例18:操作模数转换系统的方法包括:将命令序列从处理器发送给队列块,其中队列块耦合在处理器和模数转换器(ADC)之间,ADC耦合至多路复用器,并且多路复用器具有连接至多个模拟输入信号的多个输入信道,其中命令序列中的每个命令包括控制位,控制位指示信道号、信道重复因子和信道延迟数;由队列块对每个命令的控制位进行解码以获得每个命令中的信道号、信道重复因子和信道延迟数;通过根据每个命令的控制位修改每个命令,由队列块生成修改后的命令序列;以及由队列块将修改后的命令序列发送给ADC以控制ADC的操作。

示例19:根据示例18的方法,其中由队列块生成修改后的命令序列包括:根据信道延迟数向每个命令添加预定延迟时段,或者根据信道重复因子重复每个命令多次。

示例20:根据示例18的方法,进一步包括:通过,信道号所指示的多路复用器的输入信道处的模拟信号被ADC转换为数字值达第一数目次数,其中第一数目次数由信道重复因子指示,其中在模拟信号被转换之前插入由信道延迟数指示的延迟。

尽管已经参考说明性实施例描述了本发明,但是该描述不旨在以限制性的意义来解释。参考说明书,示例性实施例以及本发明的其他实施例的各种修改和组合对于本领域技术人员将是明显的。因此,所附权利要求意图涵盖任何这种修改或实施例。

技术分类

06120112161330