ПРОСТОЙ АЦП - ПРИСТАВКА К ПК
Ю. КИРИЛЛОВ, Д. СИТАНОВ, г. Иванове
В настоящее время аналого-цифровые преобразователи (АЦП) находят все большее применение в радиолюбительских конструкциях. Это связано с появлением доступных микросхем АЦП и с преимуществами, которые дает цифровая обработка аналоговых сигналов. С помощью АЦП можно легко превратить персональный компьютер (ПК) в любой виртуальный измерительный прибор. Причем электронная часть такого прибора может быть очень простой, а вся обработка сигнала будет производиться программно.
Описываемое в статье устройство предназначено для преобразования аналогового сигнала в цифровой шестиразрядный код и может служить приставкой к ПК. Области ее применения самые разнообразные - от виртуальных измерительных приборов до различных систем записи звука.
На страницах журнала "Радио" неоднократно публиковались конструкции на базе АЦП. Однако в них в основном использовались микросхемы с двоично-десятичным выходным кодом или кодом для семиэлементных индикаторов [1]. Данный подход не удобен для ввода информации в ПК.
В предлагаемом вниманию читателей устройстве использована микросхема КР1107ПВ1, представляющая собой быстродействующий параллельный шестиразрядный АЦП [2]. Она предназначена для преобразования напряжения в интервале -2...О В в один из потенциальных кодов параллельного считывания: двоичный код (прямой и обратный) и код с дополнением до двух (прямой и обратный). Эта микросхема выбрана потому, что, во-первых, она доступна широкому кругу радиолюбителей и стоит относительно недорого, а во-вторых, имеет высокое быстродействие (максимальная частота преобразования - 20 МГц, время одного преобразования - не более 100 нc).
Рис. 1Принципиальная схема устройства приведена на рис. 1. За основу взята рекомендуемая схема включения КР1107ПВ1А [2], которая существенно упрощена без заметного ухудшения точности преобразования. Преобразуемый аналоговый сигнал через гнездо 1 розетки XS1 и резистор R4 поступает на инвертирующий вход ОУ DA1. Подобное включение использовано потому, что чаще приходится оцифровывать напряжение положительной полярности, а микросхема АЦП преобразует напряжение в интервале от 0 до -2 В. С движка подстроечного резистора R1 снимается напряжение смещения нуля. Резисторы R5 и R4 определяют требуемый коэффициент усиления ОУ. Усиленный аналоговый сигнал поступает через резисторы R7- R9 на выводы 10, 13, 15 АЦП.
Работой АЦП DA2 управляют тактовые импульсы, поступающие из ПК (через контакт 8 розетки XS2) на вывод 4. Кодирование производится после прохождения среза тактового импульса, а результат, полученный в процессе преобразования, передается в выходной регистр одновременно с фронтом очередного тактового импульса. Это позволяет фронтам тактового импульса производить следующую выборку, т. е. в тот момент, когда на выходе DA2 присутствует результат n-й выборки, на входе производится (п+2)-я выборка. Цифровой код снимается с выходов D1-D6 и выводится на розетку XS2.
Необходимо обратить внимание, что обозначение выходов микросхемы противоположно их весу: выход D1 соответствует старшему разряду, а D6 - младшему. Вид кода (прямой, инверсный, дополнительный) на выходах микросхемы определяется уровнями сигналов на входах С1 и С2 микросхемы. Их подключение к шине +5 В соответствует подаче высокого уровня, а к общему проводу - низкого. Требуемый вид кода на выходе микросхемы задают комбинацией уровней сигналов на входах С1 и С2 в соответствии с табл.1.
Таблица 1
Номер ступеньки характеристики АЦП
Напряжение на входе АЦП
С1 =1 С2=1 Двоичный прямой код
С1 =0 С2=0 Двоичный обратный код
С1 =1 С2=0 Дополняющий прямой код
С1=0 С2=1 Дополняющий обратный код
00
о
000000
111111
100000
011111
01
-0,0078
000001
111110
100001
011110
31
-0,9961
011111
100000
111111
000000
32
-1,0039
100000
011111
000000
111111
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
62
-1,9922
111110
000001
011110
100001
63
-2,0000
111111
000000
011111
100000
АЦП КР1107ПВ1А требует двуполярного питания напряжениями +5 и -6 В. Кроме того, необходимы два образцовых напряжения. Они определяют диапазон оцифровываемых напряжений. В данном случае одно из этих напряжений (Uo6pi) принято равным нулю (вывод 16 микросхемы соединен с общим проводом), а второе (Uoбp2) - равным -2 В, что в соответствии с [2] определяет диапазон входных напряжений АЦП 0...-2 В. Образцовое напряжение -2 В снимается с движка подстроечного резистора R6, включенного в цепь напряжения питания отрицательной полярности. Конденсаторы С1-С5 служат для устранения помех.
При сборке устройства используют резисторы МЛТ, ОМЛТ, оксидные и керамические конденсаторы любого типа. Подстроечный резистор R1 - также любого типа, R6 - желательно проволочный многооборотный, например, СП5-1В, СП5-14, СП5-15, СП5-2 и т. п. ОУ DA1 - практически любой, способный работать при пониженных напряжениях питания, например,КР140УД7. Для расширения частотного диапазона можно применить операционный усилитель К574УДЗ, у которого частота единичного усиления равна 10 МГц.
Питают устройство от двуполярного стабилизированного источника, обеспечивающего выходные напряжения +5 В при токе 35...40 мА и -6 В при токе 200 мА.
Перед первым включением АЦП движок резистора R6 устанавливают в среднее положение. Включив питание, измеряют образцовое напряжение на выводе 9 микросхемы DA2 и возможно точнее устанавливают его равным -2 В. Требуемого смещения нуля добиваются подстроечным резистором R1. Контролировать положение нуля можно по выходному цифровому коду или постоянному напряжению на аналоговых входах АЦП (выводы 10, 13, 15 DA2). На этом настройку можно считать законченной.
К ПК АЦП подключают через интерфейс (рис. 2) устанавливаемый в свободный ISA разъем системной платы.
На плате интерфейса собраны четыре порта ввода/вывода с адресами 3E0H- 3E3H. Элементы DD1.1-DD1.3 и DD2 образуют дешифратор адреса. На их входы поступают сигналы с шины адреса ПК, и если на ней появляется комбинация 3E0H-3E3H, на выходе DD2 формируется разрешающее напряжение низкого уровня. Сигналы, определяющие номер порта в адресном пространстве портов, соответствуют двум младшим битам шины адреса и подаются на дешифратор DD4. На него же поступают разрешающие сигналы по шине AEN (это означает, что в данном цикле отсутствует прямой доступ к памяти) и сигналы IOW, IOR, что соответствует записи во внешнее устройство и чтению из него. Сигнал с вывода 15 дешифратора поступает на вход Е шинного формирователя DD7 и разрешает передачу данных из АЦП на шину данных.
Рис.2
Сигнал, появляющийся на выводе 14 дешифратора DD4, служит для тактирования АЦП DA2, на выводе 13 - для сброса триггера DD6.1, а на выводе 12 - для разрешения подачи информации с него на шину данных. Триггер предназначен для синхронизации АЦП с внешним устройством, которое может вырабатывать синхроимпульсы или сигнал о готовности. Синхросигнал от внешнего устройства поступает через контакт 1 розетки XS2 на тактовый вход триггера. Состояние последнего считывается программой. Если обнаруживается высокий уровень на выводе 5 DD6.1, то это значит, что от внешнего устройства поступил импульс синхронизации. Как только состояние триггера прочитано, его необходимо сбросить, чтобы подготовиться к приему следующего тактового импульса.
Несколько слов о назначении портов. Порт с адресом 3E0H предназначен для чтения данных из АЦП (в битах DO-D5 содержится значение оцифрованного сигнала), с адресом 3Е1Н - для подачи тактового импульса на АЦП (при записи в этот порт любого байта происходит запуск преобразования аналогового сигнала в цифровой). Порт 3Е2Н служит для сброса триггера синхронизации DD6.1 после прочтения его состояния. Сброс происходит при записи любого байта в этот порт. Наконец, порт 3Е3Н предназначен для чтения состояния триггера, которое отражается битом 5 байта, прочитанного из этого порта. Триггер нужен для того, чтобы зафиксировать синхроимпульсы малой длительности. Если при чтении из порта 3Е3Н обнаружен высокий логический уровень на прямом выходе триггера (бит D5=1), то программа возвращает его в исходное состояние, записав в порт ЗЕ2Н любой байт.
Программа для чтения данных из АЦП, написанная на Паскале, приведена в табл.2.
Таблица 2
Const ADCDelay:Word=1000; {задержка при чтении АЦП, определяет частоту квантования} Function ReadADC:Byte; {чтение АЦП, значение 255 - метка времени} Var i:Word; Begin if (Port[$3e3] And 32)=32 Then Begin {читать состояние триггера} ReadADC:=255; {если триггер установлен, записать метку времени} Port[$3е2]:=0; {сбросить триггер} Exit; {выборка - метка времени, выход} End; Port[$3el]:=0; {послать синхроимпульс в АЦП} i:=ADCDeiay; {подготовиться к выполнению задержки, ADCDelay - задержка} While i<>0 Do Dec(i); {выполнить задержку пустыми циклами} ReadADC:=Port[$3e0] And 63; {прочитать данные из АЦП и выделить биты} End; Begin Repeat Writein(ReadADC); {чтение ДЦП и печать значения на экран} Until False; End.В качестве основы конструкции удобно использовать неисправную плату расширения для ISA слота. С нее удаляют все "высокие" элементы (конденсаторы, разъемы) и перерезают печатные проводники, идущие к контактным площадкам части, вставляемой в слот (вилка ХР1 на рис. 2). Детали монтируют на небольшой печатной плате, которую закрепляют с помощью стоек на плате расширения. Выводы устройства соединяют с контактами вилки ХР1 короткими отрезками монтажного провода. Назначение контактов ISA слота можно найти в [3].
В заключение отметим, что в большинстве случаев шести разрядов для представления аналогового сигнала вполне достаточно. Если АЦП с интервалом входных напряжений О...2 В используется для измерения напряжения 2 В, погрешность не превысит 0,03 В (или 1,5 %). При измерении напряжения 0,2 В погрешность возрастет до 15 %. Для повышения точности
измерений можно использовать АЦП большей разрядности или усилить измеряемое напряжение до значения, близкого к верхнему пределу интервала (например, изменить соотношение сопротивлений резисторов R5 и R4). При номиналах, указанных на схеме (см. рис. 1), устройство оцифровывает входные напряжения в интервале 0...0,5 В и способно работать с бытовым микрофоном.
Если же из соображений точности "оцифровки" слабых сигналов необходима более высокая разрядность, микросхему КР1107ПВ1А можно заменить восьмиразрядным преобразователем К1107ПВ2 (естественно, с учетом различий в"цоколевке" и энергопотреблении).
ЛИТЕРАТУРА
1. Бирюков С. Термометр "Дом - улица". - Радио,2000,№ 3,с.32,33.
2. Новаченко И. В., Петухов В. М., Блудов И. П., Юровский А. В. Микросхемы для бытовой радиоаппаратуры. Справочник. -М.: КУбК,1995.
3. Данилин Н. С., Улитенко В. П., Крипак А. А. Руководство по поиску неисправностей и ремонту компьютеров IBM PC. - М.: Издательство стандартов, 1992.
Радио 4/2002 с.17-19.