一种用于校正分段式模数转换器的增益失配的方法与流程

文档序号:17895626发布日期:2019-06-13 15:58阅读:263来源:国知局
一种用于校正分段式模数转换器的增益失配的方法与流程

本发明属于模拟集成电路技术领域,具体涉及一种用于校正分段式模数转换器的增益失配的算法。



背景技术:

模数转换器(adc)将前端电路采集到的模拟信号转换成可供数字处理器处理的数字信号,是连接模拟世界与数字世界的桥梁。在很多电气系统和仪器中,adc都是其中的关键模块。高速adc更是难以设计而且需求量巨大。

分段式结构是一种常见高速adc的结构。这种结构的adc用一个较快但是精度较低的“粗adc”转换高位的结果,剩余的结果则由一个精度较高但是速度较慢的“精adc”转换。“粗adc”可以采用flashadc或者高速逐次逼近(sar)adc。“精adc”一般是使用高精度的比较器的adc。为了保证adc的转换正确,必须消除两个adc之间的误差。这些误差包括不同比较器的失调电压的误差和两个adc增益的失配。失调电压的误差来自于器件制造时的失配,比较器的比较阈值并不相同,它会导致输入在各个阈值电压附近时转换发生错误,采用失调自校准的比较器以及添加冗余位可以有效的改善这个问题。

增益失配是指两个adc在量化同一信号时得到结果是按一定比例偏差。在输入信号最大时,较大的增益失配会导致两个adc之间信号传递出错,adc的码字不能收敛。在在“精量化器”的第一位之前添加冗余位,可以使分段式的结构可以容忍一定量的增益失配。这可以使制造出来的adc大部分正常工作,但仍有一部分adc因为制造时偏差较大,冗余位不能修正这么大增益失配。并且在adc在实际应用中,环境温度和供电电压的变化都会改变两个adc的增益,使失配超过可容忍的范围。比较简单现有的改善增益失配的方法一般会牺牲其他的性能或者提高设计难度。增大adc单位器件的面积,可有效减小增益失配随制造工艺,环境温度和供电电压变化(pvt)的波动。但这增加了adc的制造成本和功耗,同时也降低了adc的采样速度。在使用cdac的saradc中采用下级板采样基本可以消除增益失配。但是这种方案仅对使用cdac的saradc有效,并且会极大的增加设计难度。改变adc的增益很简单,但是要检测到增益失配并且判断哪一级adc的误差偏大或偏小是很困难的。



技术实现要素:

本发明针对难以检测分段式adc增益失配的问题提出了一种开销极小的校正算法。这种算法只需对adc的输出码字进行一些很少的逻辑运算便可以准确得到增益失配的具体方向,无需复杂的数字处理器,只会额为增加极小的面积和功耗。此算法是一种后台校正算法,可以一直跟踪pvt的变化,保证了adc在各种应用环境下都能正常工作。

本发明的技术方案为一种检测分段式adc增益失配的算法。这个算法对adc每一次的输出码字进行计算,得到增益失配的偏离方向。但仅仅根据某一次检测结果显示增益失配太大就进行调整的话,整个算法将是不收敛的。因为在比较器的亚稳态会误触发增益检测的条件,必须排除亚稳态的影响。

一种用于校正分段式模数转换器的增益失配的方法,该方法包括:

步骤1:如果“精adc”的输出码字全为“0”或“1”且“粗adc”和“精adc”的输出码字不同时全为“0”或“1”,此时adc可能存在需要校正的增益失配。如果“精adc”的输出码字不全为“0”或“1”,或者“精adc”和“粗adc”的输出码字同时全为“0”或“1”,这两种情况下不存在需要校正的增益失配。

步骤2:步骤1中如果判定可能存在增益失配,则比较“粗adc”的第一位码字和“精adc”的第一位码字是否相同。如果相同,则“精adc”的增益过大;如果不同,则“精adc”的增益过小。以此得到增益失配的方向。

步骤3:为了防止检测的误触发,需要对检测的结果计数。当检测到一次增益失配后,每一次adc转换结束开始计数。计数达到一定次数后,如果没有检测到一定次数的相同方向的误差或者检测到了相反方向的误差,说明检测是误触发;反之,如果检测到一定次数的相同方向的误差,则判定出增益失配的方向。

步骤4:从步骤3得到正确的增益失配方向后,增益失配检测模块将输出增益调整信号返回到“精adc”,调整其增益。

本发明的有益效果为:

本发明中的增益失配校正算法实现简单且准确。所有的逻辑运算和技术都可以通过规模较小的数字逻辑电路实现,无需复杂的数字信号处理器,因此实现简单,占用面积小,功耗小。另外算法排除了输入溢出和比较器亚稳态的误触发,能准确的检测到增益失配的方向,然后进行校准。

附图说明

图1是带增益失配校正模块的分段式adc的原理图;

图2是判定是否存在增益失配的原理图;

图3是判定增益失配方向的原理图;

图4是增益失配校正算法的流程图;

具体实施方式

下面结合附图对本发明的具体实施方式进行描述:

图1描绘了带增益失配校正模块的分段式adc。n位的“精adc”需要n+1次量化。前m次量化由m位的“粗adc”量化,并将对应的d1-dm传递至“精adc”。剩余的dm+1-dn+1由“精adc”量化。第m+1位为冗余位,它可以让分段式adc容忍一定程度的增益失配。adc的输出d1-dn+1被输入到增益失配检测模块进行检测。如果检测到增益失配,增益失配检测模块将控制“精adc”调整增益来减小增益失配。

图2是判定是否存在增益失配的原理图。左侧的示例图显示:当“精adc”的结果dm+1-dn+1不全为1或0时,说明增益失配较小;中间的示例图显示:当adc的结果d1-dn+1全为1或0时,输入溢出,无法判定是否有增益失配;右边的示例图显示:当不存在输入溢出时,如果“精adc”的结果dm+1-dn+1全为1或0,adc可能存在较大的增益失配。

图3是判定增益失配方向的原理图。左边的示例图显示:如果d1=dm+1,说明“精adc”的增益比“粗adc”的增益偏小,按照“粗adc”的增益量化,“精adc”的增益还需要更大才能结果在增益失配容忍范围之内;如果d1≠dm+1,按照相同的分析,可知“精adc”的增益比“粗adc”的增益偏大。

图4是增益失配校正算法的流程图。结合图2和图3的描述,先根据图2判定是否存在增益失配,即dm+1-dn+1是否全为0或全为1,如果不是则未检测到失配增益;如果是则判断d1-dn+1是否全为0或全为1,如果是则输入溢出,未检测到增益失配;如果不是则继续判断是否d1=dm+1,如果是则“精adc”增益偏小;如果不是则“精adc”增益偏大。

如上所示检测到存在增益失配后,并不能直接调整adc的增益,因为比较器的亚稳态有可能会误触发这个检测。为了防止亚稳态的干扰,需要对增益失配检测的结果进行计数。在第一次检测到增益失配后,每当adc输出一个结果就计数一次并且对增益失配结果进行计数。有以下三种情况:

1.当adc输出x次结果后,增益失配达到y次,则判定确实存在增益失配。

2.当adc输出计数没有到达x次时,增益失配检测出另一个方向的失配,则说明检测结果有误,需要以最近的检测结果重新计数。

3.当adc输出计数达到x次时,增益失配没有达到y次,则说明检测结果可能是误触发,需要在下一次检测到增益失配时重新开始计数。

x和y的具体值由adc的亚稳态率和adc输入信号决定。亚稳态率越高则x需要越小,adc输入信号出现大信号的概率较大时,y越大。一般adc的亚稳态率为10-5-10-10。设x=64,y=4,则亚稳态导致失配检测误触发的概率为6.35×10-15。并且亚稳态不一定会导致误触发一次增益失配,故实际情况中这个概率会更低。

下面以几个实例来说明本发明,假设有一个10位的分段式adc,它的“粗adc”为5位,“精adc”为6(1+5)位。关于检测增益失配有以下几个实例:

1.adc输出结果为“01011111011”,d6-d11不全为1,不存在增益失配。

2.adc输出结果为“11111111111”,虽然d6-d11全为1,不在增益失配容忍范围之内,但是所有码字也都是1,说明此时可能是输入溢出,并不一定存在增益失配。

3.adc输出结果为“00000111111”,d6-d11全为1,而且所有码字不全为1,所以存在增益失配。又因为d1=0,d6=1,所以检测到“精adc”增益偏大。

4.adc输出结果为“0101000000”,d6-d11全为0,而且所有码字不全为0,所以存在增益失配。又因为d1=0,d6=0,所以检测到“精adc”增益偏小。

关于亚稳态误触发有以下几个实例:

1.检测到“精adc”偏小后开始计数,在64次计数内,检测到1次“精adc”偏大,则从这次偏大开始重新计数。

2.检测到“精adc”偏小后开始计数,在64次计数内,只检测到2次“精adc”偏小,则这两次检测有可能是亚稳态引起的误触发。在下一次检测到误触发后重新开始计数。

3.检测到“精adc”偏小后开始计数,在64次计数内,检测到6次“精adc”偏小,则认为“精adc”增益偏小,在64次计数结束后增大“精adc的增益”。

从以上的描述中可以知道,检测增益失配的数字电路规模很小。

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