Спроектируйте и оцените ADC последовательного приближения Используя Stateflow

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

Последовательное приближение ADCs обычно имеет 12 - 16 битовых разрешений и их диапазон частот дискретизации от 10 kSamples/sec до 10 MSamples/sec. Они имеют тенденцию стоить меньше и потреблять меньше энергии, чем подрасположение ADCs.

Модель

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

model = 'MSADCSuccessiveApproximation';
open_system(model)

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

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

Модель верхнего уровня состоит ofa испытательный стенд и устройство под тестом. Испытательный стенд включает генераторы тестового сигнала и осциллографы области времени и спектр анализатор в целях измерения. Устройство под тестом, подсвеченным в синем в модели, содержит Дорожку, и Содержите: Компаратор, управляющая логика и заряд масштабировали DAC.

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

sim(model);

Задайте количество битов (NBits) и скорости преобразования ADC (Фс) в рабочей области MATLAB®. ADC, управляющий тактовой частотой, определяется из Nbits и Fs.

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

Управляющая логика последовательного приближения

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

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

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

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

Реализация уровня схемы 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 узлом выхода, тем больше это ослабляется. Затухание 8x на масштабирование конденсатора, который соответствует$2^{N_{caps}}$.

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

Испытательный стенд измерения

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

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

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

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

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

Ссылки

  1. Айде Коррамабади УК Беркли, Отдел Электротехники и Информатики, Лекции 15, страница 38 <http://inst.eecs.berkeley.edu / ~ ee247/fa06/lectures/L15_f06.pdf>

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

Смотрите также

| |

Похожие темы