Как превратить персональный компьютер в измерительный комплекс
Шрифт:
Подключение нескольких АЦП к параллельным и последовательным портам позволяет оснастить ПК несколькими аналоговыми входами, не используя при этом дорогие АЦП с мультиплексными входами. Возможны любые сочетания, как в плане аппаратных, так и программных средств.
Самый распространенный случай — это создание двухлучевого виртуального осциллографа, но можно принять в расчет и задачи, требующие режима работы «Х-Y», а также просто запись в файл более или менее взаимосвязанных последовательностей данных.
Допускается огромное множество различных комбинаций — все их даже не перечислить. Скажем,
5 REM — BICOURBE —
10 REM — MAXIM12 —
20 KEY OFF: CLS
30 B=&H3F8: REM COM1:
40 N=12: REM число разрядов
50 OUT B+4,1
60 FOR T=0 TO 100:NEXT T
70 OUT B+3,64
80 FOR T=0 TO 500: NEXT T
84 GOSUB 1000
85 GOSUB 300
90 GOTO 200
100 OUT B+4,0: D=0: REM ACQUISITION
105 OUT B+4,2: OUT B+4,0
110 FOR F=0 TO N-1
120 OUT B+4,2
130 E=INP(B+6) AND 16
140 OUT B+4,0
150 IF E=16 THEN D=D+2^(N-1-F)
160 NEXT F
170 D=5*D/(2^N-1)
180 OUT B+4,1: RETURN
200 REM — VDIRECT —
210 GOSUB 100: GOSUB 1090
220 FOR G=1 TO 639
230 GOSUB 100
240 Y=D: GOSUB 500
241 GOSUB 1090
242 Y=Q: GOSUB 600
250 FOR T=0 TO 2000: NEXT T: REM развертка
260 NEXT G
270 END
300 REM — VGA —
310 SCREEN 9
320 KEY OFF: CLS
330 LINE(0,0)-(0,349),2
340 TOR Y=0 TO 349 STEP 35
350 LINE(0,Y)-(639,Y),2,&HCCCC
360 NEXT Y
370 FOR X=0 TO 639 STEP 32
380 LINE(X,0)-(X,349),2,&HCCCC
390 NEXT X
400 LINE(639,0)-(639,349),2
410 LINE(0,349)-(639,349),2,&HCCCC
415 X=0: RETURN
500 Y=349-INT(Y*349/5)
502 PSET(X,V)
505 V=Y
510 LINE-(X,V),12
520 X=X+1
530 RETURN
600 Y=349-INT(Y*349/5)
602 PSET(X,W)
605 W=Y
610 LINE-(X,W),14
630 RETURN
1000 REM 12BITS
1010 KEY OFF: CLS
1020 C=&H2F8: REM COM2:
1030 M=12: REM число разрядов
1040 OUT C+4,1
1050 FOR T=0 TO 100:NEXT T
1060 OUT C+3,64
1070 FOR T=0 TO 500:NEXT T
1080 RETURN
1090 OUT C+4,0: Q=0: REM ACQUISITION
1100 OUT C+4,2: OUT C+4,0
1110 OUT C+4,2: OUT C+4,0
1120 OUT C+4,2: OUT C+4,0
1130 FOR F=0 TO M-1
1140 OUT C+4,2
1150 E=INP(C+6) AND 16
1160 OUT C+4,0
1170 IF E=16 THEN Q=Q+2^(M-1-F)
1180 NEXT F
1190 Q=5*Q/(2^M-1)
1200 OUT C+4,1: RETURN
1210 REM (c) 1997 Patrick GUEULLE
Программа BICOURBE.BAS не должна рассматриваться только как иллюстрация того, что можно получить при комбинировании программных модулей, приведенных в данной книге. Это образец подхода, называемого англоговорящими программистами quick and dirty («быстро и грязно»), т. е. здесь отсутствует всякое стремление к структурированию и четкости. Программа работает, и это главное!
В частности, неоднократно применялась функция RENUM языка BASIC для переопределения в разных местах той или другой подпрограммы.
В том виде, в каком она приведена, программа управляет сразу двумя 12-разрядными АЦП — одним на базе МАХ 1241 и другим на базе LTC 1286. Для каждого из них определен один из каналов двухлучевого осциллографа (рис 5.14), в котором разные цвета лучей позволяют без проблем отличать один АЦП от другого.
Действительно, язык BASIC легко позволяет задавать атрибуты, определяющие цвет того или иного графического элемента, лишь бы его поддерживал графический экран. Ниже приведены коды цветов.
0 черный
1 синий
2
3 голубой
4 красный
5 пурпурный
6 коричневый
7 белый (цвет по умолчанию)
8 серый
9 светло-синий
10 светло-зеленый
11 светло-голубой
12 светло-красный
13 светло-пурпурный
14 желтый
15 ярко-белый
Рис. 5.14. Пример работы виртуального двухлучевого осциллографа
6. ДАТЧИКИ И ПРИНАДЛЕЖНОСТИ
Аналого-цифровые преобразователи, которые рассматриваются на страницах этой книги, способны обработать любое напряжение в диапазоне от 0 до +5 В, но они рассчитаны и на более широкое использование, так как могут работать с датчиками или устройствами нормирования сигналов, зачастую самыми простыми. При этом с их помощью можно измерять большинство основных физических величин, даже такие напряжения и токи, которые никак не соответствуют рабочему диапазону АЦП.
ВХОДНОЙ УСИЛИТЕЛЬ
При помощи небольшого устройства, которое будет описано ниже, могут быть легко сняты два основных ограничения, присущих простейшим АЦП: входной диапазон от 0 до +5 В и неспособность работать с переменными напряжениями без постоянной составляющей.
Например, устройство смещения нуля и усилитель с переключаемыми коэффициентами усиления 1, 10 и даже 100 сильно расширят область применения АЦП ADC 10 и того мощного программного обеспечения, которое к нему прилагается. Этот АЦП можно будет использовать даже для оцифровки звука!
Следует учесть, что подача переменного напряжения с нулевым средним значением (иными словами, без постоянной составляющей) на вход аналого- цифрового преобразователя с входным диапазоном 0–5 В приводит к эффекту однополупериодного выпрямления. Результаты измерений, выполненных без учета этого обстоятельства, конечно, окажутся неверными. Данная ситуация аналогична той, когда луч обычного осциллографа расположен у нижнего края экрана, а не в середине, или когда перо регистратора установлено на один из краев бумаги.
В обоих случаях регулировка положения луча или установки нуля позволяет решить проблему путем добавления регулируемого постоянного напряжения смещения к входному сигналу.
Хотя входной диапазон 0–5 В и подходит для решения многих задач, при измерениях с помощью 8-разрядного АЦП все же желательно использовать максимально возможное количество из 256 уровней, т. е. необходимо уложиться в последнюю треть шкалы.
К примеру, входное напряжение, изменяющееся в пределах от 0 до 500 мВ, при преобразовании займет всего 25 уровней, что соответствует точности 4 %, тогда как АЦП наверняка имеет точность не ниже 1 %!
12-разрядные АЦП решают эту проблему, однако же не снимают проблему обработки сигналов переменного тока. Входное сопротивление большинства микросхем АЦП значительно меньше 1 МОм, и из-за этого обычный делитель 1/10 будет слишком сильно подавлять сигналы, амплитуда которых лишь немногим больше уровня 5 В.
Предварительный усилитель с коэффициентом усиления 10 позволит измерять напряжения с уровнем до 500 мВ с такой же точностью, с которой сам АЦП оцифровывает напряжения с уровнем до 5 В. При входном сопротивлении 1 МОм предусилитель с единичным усилением позволит работать на пределе измерения «50 В» с использованием обычного делителя 1/10.