Проектирование и оценка последовательного приближения АЦП с использованием Stateflow

Этот пример показывает 12 бит последовательный регистр Приближения (РСА) АЦП с моделью DAC уровня схемы.

АЦП последовательного приближения обычно имеют 12-16 битовое разрешение, и их частоты дискретизации варьируются от 10 кСэмпл/с до 10 МСамплес/с. Они, как правило, стоят меньше и потребляют меньше мощности, чем перераспределение АЦП.

Модель

Откройте системный MSADCSuccessiveApproximation.

model = 'MSADCSuccessiveApproximation';
open_system(model)

Установите переключатели в их положения по умолчанию, выбрав двухтональный источник и идеальную модель DAC.

set_param([model '/Source'],'sw','1');
set_param([model '/DAC'],'sw','0');

Модель верхнего уровня состоит из теста ofa и тестируемого устройства. Testbench включает генераторы тестовых сигналов и возможности во временном интервале и анализатор спектра для целей измерения. Тестируемое устройство, выделенное синим цветом в модели, содержит Track and Hold:, Comparator, логику управления и масштабированный DAC с зарядкой.

Тестовый сигнал является либо двухтональной синусоидой, либо постоянным входом уровня постоянного тока. Этот тестовый сигнал дискретизируется и удерживается на скорости выходного слова АЦП 10 МГц. Выход дискретизатора служит одним входом для компаратора. Второй вход компаратора является выходом DAC, который является пошаговым эталонным уровнем. Если выход дискретизатора больше или равен выходу DAC, то компаратор выводит логический 1. Когда это происходит, соответствующий бит выхода устанавливается на логический 1. В противном случае компаратор выводит логический 0, который не увеличивает выход слова АЦП. Этот один компаратор является только местом в последовательном аппроксимационном преобразователе, где аналоговый преобразован в цифровой.

sim(model);

Задайте количество битов (NBits) и скорость преобразования АЦП (Fs) в рабочей области MATLAB ®. Скорость рабочего тактового сигнала АЦП определяется из Nbits и Fs.

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

Последовательная логика управления приближением

Эта модель использует Stateflow, чтобы смоделировать последовательную логику управления приближением. Конечный автомат служит секвенсором, который начинается с вывода счетчика, соответствующего среднему шкалу, который в этом случае составляет 0 вольт. Конечный автомат затем выполняет двоичный поиск по одному битовому положению за раз, чтобы найти количество, соответствующее ближайшему приближению к дискретизированному входному сигналу в пределах 12 бит разрешения.

open_system([model '/Successive Approximation Logic'],'force')

На конкретном бите, если компаратор выводит 1, то этот бит устанавливается. В противном случае положение бита удаляется. Поскольку существует 12 биты, для завершения преобразования для заданной входной выборки требуется 12 тактовых импульсов в тактовом синхроимпульсе битовой скорости.

В этой модели часы битовой скорости, обозначенные блоком ADC Internal Clock, запускаются на 140 МГц. Эти часы в 14 раз быстрее, чем часы частоты дискретизации, обозначенные блоком, обозначенным в верхнем левом углу модели. После логических последовательностей управления от бита 11 до бита 0 линия в конце преобразования (EOC) идет высоко, предлагая схеме DAC сбросить.

Реализация уровня схемы DAC

ЦАП уровня схемы использует многостадийный масштабированный по заряду массив конденсаторов в формате разделенной решётки. Эта архитектура обеспечивает несколько преимуществ, включая уменьшение площади или количества частей, встроенную выборку и удержание, рассеивание малой степени и относительно небольшая область значений значений емкости, которые потребовались бы без разделенной матрицы.

В этой модели существует две версии цифроаналогового преобразователя (DAC), одна на уровне схемы и вторая, представляющая идеальное поведение DAC. Идеальный блок DAC принимает число входов и умножает его на

$$\frac{V_{ref}}{2^{N_{bits}}} = \frac{2\sqrt{2}}{2^{12}} \left[\frac{Volts}{Count}\right]$$

чтобы сгенерировать выходное напряжение сравнения [1].

Установите переключатель, чтобы включить модель DAC уровня схемы. Запустите модель.

set_param([model '/DAC'],'sw','1');
sim(model);

Этот конкретный масштабированный по заряду массив использует$N_{caps} = 3$ конденсаторы с двоичным весом на каскад с общим количеством$K = 4$ каскадов, обеспечивающих общее количество$N_{caps} * K = 12$ бит разрешения DAC. Конденсаторы с двоичным весом на каскад имеют значение, $1 C$и$2 C$. Чем $4 C$больше емкость, тем выше положение бита на конкретном этапе. Для примера установка низкой стороны$4 C$ конденсатора высокой имеет в 4 раза больше выход воздействия напряжения относительно установки низкой стороны$1 C$ конденсатора высокой.

Если вы измените значение переменной Nbits, физическое количество бит конвертера, необходимо изменить реализацию уровня схемы DAC. Идеальная реализация DAC и логика управления параметризованы относительно количества бит.

open_system([model '/Circuit Level 12 Bit DAC'],'force')

Каждый каскад разделяется масштабирующим конденсатором со значением. $\frac{8}{7}C$Измеряющий конденсатор служит цели уменьшить выходное напряжение выходного напряжения каждой стадии. Чем дальше каскад от выходного узла DAC, тем больше он ослабляется. Ослабление составляет 8 раз на масштабирующий конденсатор, что соответствует.$2^{N_{caps}}$

Три MSB находятся ближе всего к выходу, биты 0, 1 и 2, в то время как LSB, биты 10, 11 и 12 находятся дальше всего. В любой момент времени DAC находится в одном из двух режимов. Это либо генерирует выход напряжение на основе определенного количества входа, либо сбрасывается, когда линия EOC становится высокой. Когда EOC становится высоким, низкая сторона каждого конденсатора в DAC переключается на землю, а не на данные, таким образом дренируя конденсаторы заряда в процессе подготовки к следующему приближению. Это эффективно истощает емкостную сеть заряда, подготавливая ее для следующей входной выборки.

Тестирование измерений

Блок ADC Testbench из Mixed-Signal Blockset™ может обеспечить анализ эффективности ADC.

В режиме постоянного тока ADC Testbench проверяет линейность ADC. Результат теста используется для генерации измерений смещения и ошибки усиления, которые отображаются на маске блока. Полные результаты тестирования доступны для экспорта или визуализации с помощью кнопок на маске блока ADC Testbench.

bdclose(model);
model = 'MSADCSAR_DC';
open_system(model);
sim(model);

Режим переменного тока ADC Testbench обеспечивает представление о частотной эффективности ADC, включая такие измерения, как ENoB (Эффективное количество бит), максимальная измеренная задержка преобразования и шумовой пол конвертера. Эти измерения отображаются на значке блока после симуляции и доступны для экспорта с помощью кнопки на маске блока.

model = 'MSADCSAR_AC';
open_system(model);
set_param([model '/DAC'],'sw','1');

Ссылки

  1. Haideh Khorramabadi UC Berkeley, кафедра электротехники и компьютерных наук, лекция 15, страница 38 < http ://inst.eecs.berkeley.edu/ ~ ee247/fa06/lectures/L15 _ f06.pdf >

Копирайт 2019-2020 The MathWorks, Inc. Все права защищены.

См. также

| |

Похожие темы