Декодер Шеннона: (намного) более быстрая альтернатива ШИМ ЦАП

Читателям хорошо знакомо имя Клода Элвуда Шеннона (Claude Elwood Shannon), который широко известен как «отец теории информации» и автор многих открытий и изобретений. Среди них – элегантная и новаторская (впервые опубликованная в 1948 году!) идея ЦАП под названием «декодер Шеннона» (Shannon Decoder, SD), показанного на Рисунке 1.

Выбор батареек для промышленных и бытовых устройств интернета вещей

Декодера Шеннона - ЦАП. (LSB - младший значащий бит, MSB - старший значащий бит).
Рисунок 1. Декодера Шеннона – ЦАП. (LSB – младший значащий бит,
MSB – старший значащий бит).

В процессе работы входящая последовательная строка битов (сначала младший бит) управляет переключателем S так, что бит 1 добавляет единицу заряда к конденсатору C, а бит 0 оставляет его без изменений. Биты (в этом простом примере всего четыре) поступают через временные интервалы T. Таким образом, через время 4T конечное напряжение V, накопленное на конденсаторе C, соответствует числовому содержанию строки. Восхитительно простой (благодаря гениальности Шеннона) трюк, который делает V пропорциональным двоичному числу N, представленному строкой, заключается в следующем:

Это приводит к тому, что ровно половина накопленного на конденсаторе C напряжения разряжается в течение каждого интервала T, обеспечивая веса двоичных разрядов, необходимые для правильного цифро-аналогового преобразования. Затем в момент времени 4T устройство выборки-хранения (УВХ) фиксирует окончательный результат на конденсаторе C. Вот и все. Мы завершили 4-разрядное цифро-аналоговое преобразование всего за четыре интервала передачи бита, используя только коммутатор, однокаскадную RC-цепочку и УВХ.

На Рисунке 2 показано, как может выглядеть 8-битный SD при использованием устройств, появившихся с 1948 года. Обратите внимание, что он очень похож на базовый ШИМ ЦАП, образованный только обычным выходом общего назначения D и однокаскадным RC-фильтром:

Член RON обеспечивает поправку на сопротивление выходного порта во включенном состоянии, величина которого обычно составляет от 20 до 200 Ом. Позже мы увидим, в чем значение RON. Например, пусть имеется 8-битная последовательная строка 10101011 = 171, T = 10 мкс, C = 0.0015 мкФ, RON = 120 Ом, R = 9.53 кОм и VREF равно напряжению питание логики 5 В. Тогда напряжение на аналоговом выходе (AO)

Требуемая функция УВХ реализуется бесплатно простым переключением выхода D в третье состояние после накопления аналогового выходного напряжения, что позволяет конденсатору C удерживать конечное напряжение и, таким образом, быть одновременно и устройством выборки-хранения.

Ранее я утверждал, что SD является более быстрой альтернативой ШИМ. Ну, так что же, это действительно так? 8-битная ШИМ имеет базовый период 256 тактов, и для подавления пульсаций до уровней LSB постоянная времени RC-фильтра должна быть равна примерно 64 периодам ШИМ; кроме того, потребуется ln(256) = 5.5 постоянных времени, чтобы установить значение 1 LSB. В сумме это дает общее время преобразования ШИМ ЦАП 256 × 64 × 5.5 = 90,112 периодов тактовых импульсов для преобразования, фильтрации и установления конечного 8-битного значения.

Между тем, 8-разрядный SD выполняет все это всего за 8T тактовых периодов, что, по-видимому, дает соотношение скоростей SD и ШИМ 90,112/8 = 11,264:1, достигнутое при тем же количестве компонентов, что и в базовой схеме на основе ШИМ!

Но действительно ли это честное сравнение? Ну, не совсем.

Прежде всего, что касается скорости, период тактовых импульсов ШИМ обычно формируется специальным аппаратным счетчиком-таймером на кристалле, в то время как сдвиг битов SD и окончательное установление третьего состояния выходного порта, вероятно, потребуют некоторого взаимодействия с программным обеспечением. Эта разница, скорее всего, сделает битовую скорость SD ниже, чем тактовая частота ШИМ. Возможно, в 10 раз ниже. Поэтому более реалистичная оценка соотношения скоростей SD и ШИМ, по-видимому, будет ближе к 1100:1, чем к 11000:1.

Что же касается количества компонентов, то по этому поводу есть такие соображения. В то время как выходной сигнал ШИМ постоянно и автоматически обновляется, базовый SD, как показано на Рисунке 2, этого не делает. Каждые несколько миллисекунд в схеме на Рисунке 2 необходимо выполнять цикл преобразования, чтобы восстановить заряд конденсатора C, нейтрализовать падение напряжения и поддерживать стабильный уровень выходного сигнала. Конечно, во время этих преобразований сигнал на аналоговом выходе будет каким угодно, только не стабильным, создавая то, что нагрузка будет воспринимать как кратковременные импульсные помехи.

Современная реализация декодера Шеннона.
Рисунок 2. Современная реализация декодера Шеннона.

Некоторые нагрузки выдерживают эти периодические помехи, но многие нет. Избежать помех можно, но для этого необходимо увеличить количество компонентов. Одно из возможных решений показано на Рисунке 3.

Удерживающая ШИМ для предотвращения спада выходного напряжения в SD.
Рисунок 3. Удерживающая ШИМ для предотвращения спада
выходного напряжения в SD.

Оно основано на увеличении скорости SD с помощью «удерживающей» ШИМ, настроенной на то же выходное напряжение, что и SD, чтобы поддерживать тот же заряд конденсатора, который был первоначально (быстро) установлен основной схемой SD.

Это решение все еще далеко от совершенства, поскольку большое соотношение постоянных времени SD и ШИМ подразумевает такое же большое соотношение между R1 и R2, требуя большого сопротивления резистора R2, чтобы получить адекватное подавление пульсаций, и, следовательно, очень ограничивая нагрузочную способность аналогового выхода в установившемся режиме. И, конечно же, всякий раз, когда последовательность преобразования SD устанавливает новое выходное напряжение, на выходе возникает помеха.

На Рисунке 4 показано полное решение этих проблем путем реализации УВХ на двух конденсаторах преобразования/хранения, которые переключаются коммутатором U1c, так, что один обеспечивает функцию УВХ (C0/1 при выборе X/Y = 0/1) и постоянное выходное напряжение, а другой выполняет следующее цифро-аналоговое преобразование под управлением U1a и U1b. После чего они меняются ролями, и так далее, и тому подобное.

Дополнительной особенностью топологии, показанной на Рисунке 4, является ее способность использовать входы опорного напряжения (+VREF и –VREF), не зависящие от шин питания логики и земли. Это обеспечивает лучшую точность ЦАП, чем полагаться на стабильность логических источников питания (обычно ограниченную), и, если напряжение –VREF отрицательное, позволяет получить биполярный диапазон выходных сигналов (от –VREF до +VREF).

SD с коммутацией конденсаторов.
Рисунок 4. SD с коммутацией конденсаторов.

SD по своей сути имеет программируемое разрешение. Без какой-либо модификации схемы может использоваться битовая строка любой длины (6, 10, 12 и т. д.). Более того, поскольку время преобразования SD прямо пропорционально длине битовой строки n, а время преобразования ШИМ экспоненциально зависит от 2n, преимущество SD в скорости только увеличивается по мере увеличения длины строки.

Точность SD зависит от точности соответствия между постоянной времени RC и межбитовым интервалом T/ln(2). Различия между этими двумя числами приведут к тому, что веса битов будут отличаться от правильного значения 2.0, и, следовательно, ухудшатся монотонность и дифференциальная линейность. Поэтому рекомендуется использовать прецизионные металлопленочные резисторы и конденсаторы C0G или NPO с нулевым температурным коэффициентом, а также вводить поправку сопротивления R на значение RON коммутирующих элементов в сигнальных трактах SD, как упоминалось ранее.

На Рисунке 5 показано влияние ошибок постоянной времени RC на результат преобразования для значений от 0% (RC = 1.44269•T) до 10% (RC = 1.58696•T).

Влияние ошибок постоянной времени от 0% до 10%.
Рисунок 5. Влияние ошибок постоянной времени от 0% до 10%.
  1. Datasheet Texas Instruments CD74HC4053

ООО «Мегател», ИНН 3666086782, ОГРН 1033600037020

Добавить свое объявление

* заполните обязательные данные

Статистика eFaster:

посетило сегодня 364
сейчас смотрят 48
представлено поставщиков 1573
загружено
позиций
25 067 862