Последовательные интерфейсы в АЦП и ЦАП

01.08.2023 |

В статье рассмотрены особенности организации и принципы работы последовательных интерфейсов в АЦП и ЦАП.

Имон Нэш

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

Рассмотрим, чем отличается АЦП с последовательным интерфейсом от преобразователя с параллельным интерфейсом. На рис. 1 показано сопряжение 8-канального 12-разрядного АЦП AD7890 с последовательным портом цифрового сигнального процессора ADSP-2105. Кроме того, на этом же рисунке приведена временная диаграмма обмена данными между преобразователем и DSP. Результат преобразования в виде 12-разрядного кода передается по однопроводному каналу в сигнальный процессор. В передаваемом коде имеются три дополнительных бита, идентифицирующие код номера выбранного канала АЦП. Для синхронизации такой передачи используются тактовые импульсы SCLK, которые формируются, как правило, сигнальным процессором. В некоторых случаях тактовые импульсы могут формироваться непосредственно АЦП. Иногда DSP может формировать дополнительные сигналы, например, TFS/RFS начала преобразования или длительности цикла преобразования, как показано на рис. 1.

В приведенном на рис. 1 примере последовательный порт DSP используется для программирования внутреннего 5-разрядного регистра АЦП. Каждый из разрядов этого регистра отвечает за определенную функцию, например, за выбор номера канала, перевод в экономичный режим, запуск цикла преобразования и т.п. Это говорит о том, что последовательный интерфейс между АЦП и DSP должен быть двунаправленным.

АЦП с параллельным интерфейсом подключен непосредственно или через буфер к шине данных сигнального процессора. Организация такого интерфейса между АЦП AD7892 и сигнальным процессором ADSP-2101 показана на рис. 2.

В момент окончания цикла преобразования АЦП выставляет сигнал прерывания на линию прерывания DSP и по этому сигналу код преобразования записывается в память сигнального процессора. Ключевым отличием АЦП с последовательным интерфейсом от АЦП с параллельным интерфейсом является число линий связи преобразователя и DSP. Число выводов ИМС АЦП с последовательным интерфейсом минимально, что позволяет выполнить микросхему АЦП и ЦАП в корпусе с восьмью выводами в миниатюрном корпусе. Поэтому использование АЦП с последовательным интерфейсом за счет миниатюрного корпуса и минимального числа межсоединений на печатной плате позволяет в целом уменьшить размеры устройства, проектируемого на основе такого АЦП.

Рис. 1. Сопряжение АЦП AD7890 с последовательным портом сигнального процессора ADSP-2105: структурная схема (а) и временная диаграмма (б)

Рис. 2. Сопряжение АЦП AD7892 с сигнальным процессором ADSP-2101 через параллельный интерфейс: структурная схема (а) и временная диаграмма (б)

Как лучше спроектировать устройство, в составе которого использованы удаленные от процессора ЦАП?

Прежде всего, необходимо выбрать тип ЦАП с последовательным или параллельным интерфейсом. Если выбран ЦАП с параллельным интерфейсом, то все преобразователи должны быть подключены к шине, как это показано на рис. 3. Для записи кода в каждый ЦАП используется код адреса и сигнал Write, а также несколько управляющих сигналов. Недостатком такой структуры является параллельная шина с большим числом проводников, объединяющая распределенные в пространстве ЦАП. В то время как распределенные ЦАП с последовательным интерфейсом объединяются в систему с помощью двух или нескольких проводников, ЦАП с последовательным интерфейсом подключен к последовательному порту процессора, который выбирает нужный ЦАП с помощью сигнала Chip Select.

Если в системе используется несколько ЦАП, следует выбирать такие преобразователи, которые обеспечивают цепочечное подключение, как это показано на рис. 4. Каждый ЦАП в такой структуре имеет выход SDO (Serial Data Out), который подключен ко входу SDI (Serial Data In) последующего ЦАП. Сигналы LDAC и SCLK подключены параллельно ко всем удаленным ЦАП. Процессор обращается к каждому из ЦАП по одной линии связи, т.к. данные, поступившие на вход первого ЦАП, через N циклов появятся на его выходе и поступят на вход второго ЦАП и т.д. В такой системе нет необходимости использовать декодирующее устройство, однако, к ее недостаткам следует отнести большую длину кодового потока данных и существенные задержки в поступлении данных к объединенным в последовательную цепочку преобразователям. Для изменения состояния какого-либо ЦАП в такой системе используется кодовое слово максимальной длины.

Рис. 3. Схема подключения к системной шине удаленных ЦАП с параллельным интерфейсом

Рис. 4. Цепочечное подключение нескольких ЦАП с последовательным интерфейсом

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

Основным недостатком последовательного интерфейса является невысокое быстродействие. Для записи данных в ЦАП с параллельным интерфейсом необходим один импульс, в то время как для записи тех же данных в ЦАП с последовательным интерфейсом необходимо как минимум N импульсов, где N – разрядность ЦАП. Процессору требуется много времени для обмена данными с ЦАП через последовательный интерфейс. Производительность такого канала, как правило, не превышает 500 тысяч выборок в секунду.

 

Если в 8-разрядном процессоре отсутствует последовательный порт, можно ли подключить к нему 12-разрядный АЦП с последовательным интерфейсом типа AD7893?

Для этого достаточно использовать внешний сдвиговый регистр, который загружается последовательно и асинхронно, принимая данные из АЦП, а затем параллельно записывает их в процессор. Однако, если такое решение окажется избыточным, подключить многоразрядный АЦП с последовательным интерфейсом через параллельный порт DSP можно как одноразрядный АЦП с параллельным интерфейсом. В этом случае выход АЦП SDATA подключается к одной из линий (например, линии DO) параллельного порта процессора, как показано на рис. 5. С помощью некоторой декодирующей логики данные вводятся в память процессора. Для этого используется 12 команд чтения (по числу разрядов поразрядного АЦП) и все разряды в процессоре образуют одно 12-разрядное слово. Это малоэффективное сопряжение АЦП и процессора, однако, если процессор быстрый, а АЦП медленный, такое сопряжение может быть использовано.

Рис. 5. Схема подключения к системной шине микропроцессора АЦП с последовательным интерфейсом

В последнем примере (рис. 5) запуск цикла преобразования АЦП осуществляется по сигналу процессора Write. Насколько это правильное решение?

Такое решение можно использовать при единичных преобразованиях, однако, если запуск нужно повторять периодически, то сигнал Write использовать не следует из-за достаточно большого фазового дрожания такого сигнала. Так, например, при фазовом дрожании сигнала запуска АЦП 1 нс отношение сигнал/шум 12-разрядного АЦП на частоте входного сигнала 100 кГц составит всего 60 дБ (т.е. эквивалентно 10 эффективным разрядам).

Когда следует применять АЦП с асинхронным последовательным интерфейсом?

Асинхронный обмен данными между устройствами не требует синхроимпульсов. Каждый из таких приборов имеет свой формат данных, включая скорость передачи. Для обозначения начала и конца передачи данных используются биты start и stop. В кодовой посылке для выявления сбоев и ошибок могут содержаться биты для проверки четности. На рис. 6 показано сопряжение аналого-цифрового интерфейса AD1В60 с асинхронным СОМ-портом ПК. Это трехпроводный двунаправленный интерфейс (линия “земли” не показана). Асинхронная связь удобна в случае, если обмен данными происходит спорадически. При этом биты start и stop включены в каждую кодовую посылку и любой прибор в любое время может инициировать обмен данными. Преимуществом такого сопряжения является минимизация служебных сигналов обмена данными.

Рис. 6. Схема сопряжения аналого-цифрового интерфейса AD1B60 c COM-портом ПК

Почему в некоторых технических описаниях АЦП с последовательным интерфейсом рекомендуется использовать синхронизирующие последовательности импульсов с прерыванием?

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

Как обеспечивается совместимость АЦП с интерфейсами SPI и MICROWIRE?

Интерфейсы SPI (Serial Peripheral Interface) и MICROWIRE – это стандартные последовательные интерфейсы разработки фирм Motorola и National Semiconductor соответственно. Большинство АЦП с синхронным последовательным интерфейсом легко сопрягаются с интерфейсами SPI и MICROWIRE. Однако в ряде случаев необходимо использовать дополнительные логические ИМС, рекомендации по организации таких сопряжений содержатся в технических описаниях (data sheet).

Как можно объяснить следующее: при изменении входного сигнала АЦП микроконтроллер считывает одно и то же число FFF?

Есть множество причин такой неисправности. Начать надо с проверки временной диаграммы обмена данными между АЦП и контроллером. Для этого следует воспользоваться логическим анализатором или многоканальным осциллографом. Диаграмма обмена данными приведена на рис. 7. Прежде всего, нужно убедиться в наличии команды CONVST (Start Conversion command – команды начала преобразования).

Часто ошибочно изменяют полярность этой команды. Кроме того, длительность этой команды должна быть не менее 50 нс. Этим же требованиям должны отвечать команды процессора Write и Read. Если процессор вырабатывает более короткие команды, необходимо программным путем увеличить их длительность. Нужно убедиться, что цикл преобразования окончен, прежде чем переходить к считыванию данных. Как правило, преобразователь вырабатывает команду EOC (End of Conversion – конец преобразования). Эта команда поступает на линию прерывания процессора и необходимо убедиться, что она имеет необходимую полярность и длительность. Если процессор не реагирует на команду прерывания, необходимо проверить программу обработки прерываний. Также необходимо проверить наличие синхроимпульсов SCLK.

Рис. 7. Диаграмма обмена данными между АЦП и микроконтроллером

Почему формат данных на выходе АЦП не всегда соответствует требуемому значению?

Этому есть много объяснений. Во-первых, выходные данные могут быть представлены прямым или дополнительным кодом. Если процессор не работает с дополнительными кодами, необходимо предварительно их преобразовать в прямой двоичный код. Во-вторых, данные считываются из АЦП по переднему фронту тактового импульса. Необходимо убедиться, что в таком же режиме работает и АЦП. Ошибка в половину шкалы свидетельствует о том, что старший бит не был считан. Такие же ошибки встречаются при записи кода в ЦАП через последовательный интерфейс. В этом случае из-за ошибки в записи максимальному коду соответствует напряжение, равное половине максимального значения. В-третьих, цифровые сигналы, передаваемые АЦП, должны быть незашумленными. Разного рода перерегулирования могут привести к ошибке считывания. Такой синхросигнал с перерегулированием на входе АЦП с одним источником питания показан на рис. 8. Этот сигнал, как правило, управляет pnp-транзистором, причем подложка p-типа этого транзистора подключена (внутри кристалла) к земляному потенциалу. Наличие отрицательного выброса может привести к разрушению этого транзистора из-за проникания выброса через паразитный диод (рис. 8) на положительную подложку. Однако, если даже не произойдет разрушения транзистора драйвера, перерегулирование может привести к появлению вместо одного нескольких тактовых им- пульсов. Такое дрожание может привести к ложному считыванию данных.

Рис. 8. Форма цифрового синхросигнала с перерегулированием (а) и структура входного pnp-транзистора драйвера (б)

Схема уменьшения влияния перерегулирования, представляющая собой фильтр нижних частот на пути следования цифровых сигналов на управляющие входы АЦП, приведена на рис. 9. Величина сопротивления резистора составляет, как правило, 50 Ом, а емкость конденсатора – 10 пФ.

Рис. 9. Схема внешнего НЧ-фильтра в цепи следования цифрового сигнала

Каким образом параметры интерфейса влияют на отношение сигнал/шум?

В связи с тем, что на входы АЦП поступают как аналоговые, так и цифровые сигналы, необходимо тщательно организовать заземление АЦП. Цифровая и аналоговая “земляные” шины должны быть разделены. Их объединение допускается в одной точке на печатной плате вблизи источника питания. Для случая, когда к земляной шине нужно подключить несколько ИМС на печатной плате и в то же время избежать появления контура земляной шины, можно предложить решение, представленное на рис. 10. Прежде всего, к шине “аналоговая земля” должны быть подключены земляные выводы преобразователя (АЦП или ЦАП). Подключение к “аналоговой земле” земляного вывода цифровых узлов ИМС является меньшим злом, чем его подключение к “цифровой земле”, которая зашумлена, что может привести к прониканию этих шумов в ИМС преобразователя. На рис. 10, кроме того, показан буферный регистр, который изолирует выводы последовательного интерфейса АПЦ от внешней последовательной шины, уровень шумов в которой может быть достаточно высок. Если преобразователь находится в непосредственной близости от процессора, то буферный регистр можно не использовать. В случае, если в АЦП используется один источник питания для аналоговых и цифровых узлов, организация шины питания может быть выполнена в соответствии с рис. 10, причем изоляция аналоговой шины питания от цифровой выполнена с помощью дросселя. Кроме того, каждая шина имеет собственный развязывающий конденсатор.

Емкость конденсатора составляет, как правило, 0.1 мкФ. Если позволяют размеры печатной платы, необходимо к шине питания подключить еще электролитический конденсатор емкостью не менее 10 мкФ (один конденсатор на ИМС преобразователя).

Рис. 10. Развязка шины питания и шин аналоговой и цифровой “земли”

Рис. 11. Включение гальванической опторазвязки в цепь сопряжения АЦП и микроконтроллера

Каким образом можно использовать оптоизолятор между АЦП с последовательным интерфейсом и процессором?

Сопряжение АЦП AD7714 и микроконтроллера 68HC11 через три оптопары показано на рис. 11. Недостаткам такого включения является невысокая скорость нарастания фронтов импульсных сигналов на выходе оптопар. Для повышения крутизны фронтов на выходе оптопар могут быть использованы триггеры Шмита.

В заключение отметим, что в настоящей статье были подробно рассмотрены особенности сопряжения преобразователей данных с последовательным интерфейсом и процессоров (контроллеров или DSP). Указаны основные ошибки, встречающиеся при организации такого сопряжения, приведены рекомендации по развязке цепей питания и “земляной” шины.