主要内容

使用状态流设计和评估逐次逼近ADC

这个例子展示了一个12位逐次逼近寄存器(SAR) ADC和一个电路级DAC模型。

逐次逼近adc通常具有12至16位分辨率,其采样速率范围为10 kSamples/秒至10 MSamples/秒。与次级adc相比,它们往往成本更低,功耗更低。

模型

打开系统MSADCSuccessiveApproximation

模型=“MSADCSuccessiveApproximation”;open_system(模型)

将开关设置为默认位置,选择双音源和理想的DAC模型。

set_param([模型“/源”),“西南”' 1 ');set_param([模型' / DAC '),“西南”' 0 ');

顶层模型由测试台和被测设备组成。测试台包括测试信号发生器和用于测量的时域范围和频谱分析仪。在模型中以蓝色突出显示的测试设备包含一个跟踪和保持:、一个比较器、控制逻辑和电荷缩放DAC。

测试信号是双音正弦波或恒定直流电平输入。这个测试信号被采样并保持在ADC的输出字速率为10 MHz。采样器的输出作为比较器的一个输入。第二个比较器输入是DAC输出,它是一个增量步进的参考电平。如果采样器的输出大于或等于DAC输出,那么比较器输出逻辑1。当这种情况发生时,输出的相应位被设置为逻辑1。否则,比较器输出逻辑0,不增加ADC输出字。这个单独的比较器只存在于逐次逼近转换器中,在这里模拟转换为数字。

sim(模型);

定义比特数(NBits)及ADC转换率(Fs)在MATLAB®工作空间。ADC工作时钟速率由Nbits而且Fs

Nbits = 12;Fs = 1e7;ADC_clock = Fs*(Nbits+2);

逐次逼近控制逻辑

该模型使用statflow对逐次逼近控制逻辑进行建模。状态机作为一个排序器,首先输出一个与中频对应的计数,在本例中为0伏。然后状态机每次执行一个位位置的二进制搜索,以找到在12位分辨率内与采样输入信号最接近的近似值对应的计数。

open_system([模型“/逐次逼近逻辑”),“力”

在一个特定的位上,如果比较器输出1,则该位被设置。否则,该位位将被清除。因为有12位,所以在比特率时钟上需要12个时钟周期来完成给定输入样本的转换。

在这个模型中,比特率时钟由标记为ADC内部时钟的块表示140MHz。该时钟比模型左上角标记为Conversion clock的块表示的采样速率时钟快14倍。在控制逻辑序列从第11位到第0位之后,转换结束(EOC)线变高,告诉DAC电路重置。

DAC电路级实现

电路级DAC使用分段阵列格式的多级电荷缩放电容器阵列。这种架构提供了几个优点,包括减少面积或零件数量,内置采样和保持,低功耗,以及相对较小的电容值范围,而不需要分裂阵列。

在这个模型中有两个版本的数模转换器(DAC),一个在电路级,另一个代表理想的DAC行为。理想的DAC块接受输入计数并乘以它

$ $ \压裂{V_ {ref}} {2 ^ {N_{位}}}= \压裂{2 \√{2}}{2 ^{12}}左\[\压裂{伏}{数}\右)$ $

产生输出比较电压[1]。

设置开关使能电路级DAC模型。运行模型。

set_param([模型' / DAC '),“西南”' 1 ');sim(模型);

这个特殊的电荷缩放阵列使用$N_{caps} = 3$二值加权电容器每级共有$ k = 4$阶段共提供$N_{caps} * K = 12$位的DAC分辨率。每级的二元加权电容器的值为1美元加元2美元加元,4美元加元.电容越大,在特定级内对应的位位置越高。例如,设置低侧4美元加元电容器高有4倍的输出电压冲击,相对于设定的低侧1美元加元电容器高。

如果你改变变量的值Nbits,转换器的物理位数,则需要修改DAC的电路级实现。理想的DAC实现和控制逻辑是根据比特数进行参数化的。

open_system([模型'/电路级12位DAC'),“力”

每个级由一个有值的伸缩电容器隔开美元\压裂{8}{7}加元.所述缩放电容的作用是衰减每级输出电压的输出电压。级离DAC输出节点越远,衰减越严重。衰减是8倍每缩放电容器对应2美元^ {N_{帽}}$

三个msb离输出最近,位0、1和2,而lsb,位10、11和12离输出最远。在任何给定的时间,DAC都处于两种模式之一。它要么根据特定的输入计数产生输出电压,要么在EOC线变高时被重置。当EOC变高时,DAC中每个电容器的低侧被切换到地面而不是数据,从而耗尽电容器的电荷,为下一次近似做准备。这有效地耗尽了电容网络的电荷,为下一个输入样本做准备。

测量Testbench

来自Mixed-Signal Blockset™的ADC测试台模块可以提供ADC的性能分析。

在DC模式下,ADC测试台测试ADC的线性度。测试结果用于产生偏移和增益误差测量,显示在块掩码上。完整的测试结果可通过ADC Testbench块掩码上的按钮导出或可视化。

bdclose(模型);模型=“MSADCSAR_DC”;open_system(模型);sim(模型);

ADC测试台的AC模式提供了对ADC频率性能的深入了解,包括诸如ENoB(有效比特数)、最大测量转换延迟和转换器的噪声底限等测量。模拟后,这些测量结果显示在块图标上,并可通过块掩码上的按钮导出。

模型=“MSADCSAR_AC”;open_system(模型);set_param([模型' / DAC '),“西南”' 1 ');

参考文献

  1. Haideh Khorramabadi加州大学伯克利分校,电气工程和计算机科学系,第15讲,第38页< http://inst.eecs.berkeley.edu/ ~ ee247 / fa06 /讲座/ L15_f06.pdf>

版权所有The MathWorks, Inc.版权所有。

另请参阅

||

相关的话题