Разработка блока АЦП

Техническая реализация


1. Селектор адреса

В процессе обмена с блоком АЦП используются разряды шины адреса SA0..SA9. В адресном пространстве ввода/вывода специально предусмотрен диапазон 300..31F для прототипных плат, поэтому адрес для блока АЦП выбран из этого диапазона. Селектор адреса выполнен на логических элементах. Чтобы выполнить его всего на 2х ИС (DD6 - многовходовый элемент И-НЕ К555ЛА12 и DD8 - инверторы К555ЛН1) выбраны адреса 1100011110  (31E) и 1100011111 (31F). DD8 инвертирует те разряды адреса, которые должны быть = "0". На выходе DD12 (сигнал "-адрес выбран") появляется "0" когда на шине адреса присутствует 1 из адресов блока и отсутствует сигнал AEN. Младший бит адреса служит для выбора канала. Сигналы -адерс_выбран и НОМЕР_КАНАЛА защелкиваются триггерами DD15 по спаду сигнала BALE.

2. АЦП

АЦП К572ПВ3 специально предназначен для работы в составе микропроцессорных систем, поэтому его сопряжение с шиной ISA не составляет труда. В режиме ROM при чтении данных с АЦП на -CS всегда подается низкий уровень, а преобразование запускается подачей на -RD импульса лог. "0".

АЦП и аналоговая часть гальванически развязаны от ЭВМ оптопарами. АЦП работает непрерывно, по окончании предыдущего преобразования запускается следующее, т.к. передача сигнала на запуск через оптопару - потеря времени и усложнение схемы. Во время преобразования на выходе -BUSY присутствует логический "0". По фронту -BUSY одновибратор DD9.1 вырабатывает сигнал -RD - импульс лог."0" длительностью t1 = tRAD*4 = 360нс (время, через которое на выходе АЦП появятся данные, умноженное на 4 для надежности), по спаду которого АЦП выдает данные, а по фронту - регистр DD14, являющийся частью кодера, защелкивает данные с АЦП и в последствии выдает их на схему опторазвязки в последовательном коде, а АЦП сбрасывается и начинает новый цикл преобразования. Время от фронта -BUSY до фронта -RD, задаваемое RC-цепью R10C2, должно быть не менее времени выборки данных tRAD = 180нс, для надежности t = 4tRAD = 360нс.
Тогда, при R10 = 2к, С2 = t/(0.45R10) = 400пф. Данные присутствуют на выходе АЦП минимум tRНD = 40нс после фронта -RD, так что регистр с его tздр = 18нс успеет их защелкнуть. Таким образом, данные текущей выборки передаются через опторазвязку во время следующего преобразования.
3. Кодер
Частотный код - это самосинхронизирующийся код с двумя состояниями, при котором в начале каждого бита происходит перепад, в середине нулевого бита перепада нет, в середине единичного бита перепад есть. Преимущество - относительная простота кодера и декодера.
Кодирование можно осуществить, сложив по модулю 2 два тактовых сигнала, сдвинутых на 90°, один из которых промодулирован информационным сигналом.
Кодер представляет собой 2 делителя частоты на 2 на D-триггерах DD16.1, DD16.2: на второй постоянно подается тактовый сигнал с генератора на DD4.1, DD4.2, C1, R8; а на первый - проинвертированный элементом DD10.4 тактовый сигнал только в моменты, когда входной сигнал - логическая единица. Выходы делителей подключены к элементу DD4.3 "исключающее ИЛИ". Входная информация поступает на вход элемента DD10.4 с выхода сдвигового регистра DD14, для этого на его тактовый вход подается последовательность из 8 импульсов, формируемая по импульсу запуска счетчиком DD6 и логическими элементами DD7.5, DD7.4. Импульс запуска, в свою очередь, формируется по фронту -RD логическими элементами DD7.1 - DD7.3, DD10.2.
Частота тактового генератора на DD4.1, DD4.2, C1, R8   f=5МГц, что соответствует скорости передачи данных через оптопару 2,5 Мбод (кодированных - 5Мбод). Это в 4 раза ниже максимально допустимой. Время передачи всего байта при этом 3,2мкс. Если принять R8=1k, то емкость С1:


4. Декодер
Алгоритм декодирования: если после перепада не позже времени t был второй перепад, то выдать на выход 1, если не было - 0, после чего ожидать следующего перепада, принимаемого за начало следующего бита. Оптимальное значение времени t = 3/4 длительности информационных битов.


Отсюда следуют основные функции декодера, позволяющие восстановить исходные данные  - определение границ информационных битов и наличия перепада между этими границами.
Формирователь коротких импульсов на DD19.1-DD19.3, C5 формирует короткие импульсы в моменты перепадов входного сигнала. Чтобы эти импульсы не оказались слишком короткими для запуска одновибратора DD17.2, использован конденсатор С5, емкость которого подбирается до четкого срабатывания одновибратора DD17.2. Элемент DD13.3 блокирует перезапуск одновибратора DD17.2 следующим перепадом (информационным). Триггер DD18.2 по фронту импульса с инвертирующего выхода одновибратора DD17.2 защелкивает текущее состояние входного сигнала. Одновременно запускается одновибратор DD17.1, по фронту импульса с инвертирующего выхода которого сдвиговый регистр DD21 запоминает очередной принятый бит, равный (выход DD18.2)Å(текущее состояние входного сигнала). Счетчик DD20 считает принятые биты, и после приема восьмого бита на его выходе появляется лог."1". Этот флаг готовности подается на разряд шины данных SD15 через буферный элемент DD1.1 с 3мя состояниями по сигналу -RD (чтение данных из регистра DD21), фронт которого сбрасывает счетчик DD20, тем самым устанавливая флаг готовности в "0". Таким образом, ЦП, считывая очередную выборку, получает информацию о том, произошло ли преобразование с момента последнего чтения.
При f=5МГц длительность импульсов соответственно должны быть равны: для DD17.2 0,05мкс; для DD17.1 0,1мкс. Номиналы и погрешности RC-цепей:

Из расчета видно, что при максимально допустимой погрешности временных задержек 50% максимально допустимая погрешность всех элементов RC-цепей составляет 64%, можно применить детали с отклонением 20%.
6. Опторазвязка
В качестве опторазвязки информационного сигнала использована быстродействующая цифровая оптопара 6N137N, допускающая скорость 10Мбод. Для сигнала выбора канала - не очень быстрая, но зато дешевая оптопара TLР621.
7. Аналоговая часть
В качестве предварительного усилителя использован сдвоенный ОУ DA1 К140УД20 в неинвертирующем включении. Защитные диоды VD1-VD2, VD3-VD5 защищают входы ОУ от воздействия чрезмерно высоких напряжений. С него сигналы 2х каналов подаются на коммутатор DD2 К561КТ3, управляемый сигналом "номер канала" через оптопару DA2. Сигнал "номер канала" формируется из разряда адреса А0, т.о. программное обеспечение выбирает канал, производя чтение по одному из соседних адресов (31E и 31F). Причем считываемая выборка - с того канала, который был выбран предыдущей операцией чтения.

Содержание раздела