НАЗАД

3.2. ЦИФРО-АНАЛОГОВОЕ И АНАЛОГО-ЦИФРОВОЕ ПРЕОБРАЗОВАНИЕ СИГНАЛА

1. Цифро-аналоговый преобразователь. Компьютер может быть использован в качестве генератора сигналов заданной формы. Для этого к его параллельному LPT--порту следует подключить цифро--аналоговый преобразователь (ЦАП). Простейший ЦАП может быть собран из резисторов (рис. 1). Если в ячейку памяти 37816=88810 записать число x от 0 до 255, то на восьми выводах LPT--порта, соединенных с входами ЦАП, появляется комбинация лог. 0 и 1, соответствующая числу x в двоичном коде. Для этого в языке QBasic используется команда OUT {адрес}, {число} (например, OUT &H378, 25), а в языке Pascal --- port[{адрес}]:= {число} (например, port[888]:=134).

Схема цифро--аналогового преобразователя (рис. 1) такова, что вклад лог. 1, поданной на вход k+1 разряда, в 2 раза больше, чем вклад лог. 1, поданной на вход k-го разряда. В результате напряжение на выходе ЦАП прямо пропорционально величине x. В этом можно убедиться с помощью вольтметра или осциллографа. Для сглаживания ступенек, получающихся на выходе ЦАП, параллельно резистору R17 подключают конденсатор C1.

Рис. 1. Цифро-аналоговый преобразователь.

Рис. 1. Цифро-аналоговый преобразователь.

Чтобы получить на выходе ЦАП прямоугольные импульсы максимальной амплитуды, в параллельный порт следует через равные промежутки времени записывать следующие числа: 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255 ... Для получения пилообразного напряжения величина x должна в цикле равномерно увеличиваться от 0 до 255, затем обращаться в 0, после чего снова увеличиваться от 0 до 255 и т.д. Аналогичным образом формируются синусоидальные колебания и другие сигналы заданной формы. ЦАП используется в цифровых видеокамерах, MP3--плеерах и т.д.

Изучите работу ЦАП с помощью вольтметра. Загрузите среду программирования QBasic, наберите программу Пр--1. Подключите ЦАП к LPT--порту ПЭВМ, а к выходу ЦАП подсоедините вольтметр и запустите программу. На выходе ЦАП последовательно появляются различные напряжения, соответствующие 0, 127, 255, 0, 127, 255 и т.д. Измените частоту импульсов.

WHILE INKEY$ = ""                              'Пр - 1
OUT &H378, 255                                 'QBASIC
FOR i = 1 TO 500: PRINT "255": NEXT  
OUT &H378, 127 
FOR i = 1 TO 500: PRINT "127": NEXT
OUT &H378, 0 : FOR i = 1 TO 500: PRINT "0": NEXT
WEND

2. Опыты с цифро-аналоговым преобразователем. Напишите программу, генерирующую прямоугольные импульсы с периодом 0,1 - 1 c (Пр--2). Подключите к выходу ЦАП осциллограф, запустите программу. Зарисуйте осциллограмму импульсов.

WHILE INKEY$ = ""                              'Пр - 2
OUT &H378, 255                                 'QBASIC
FOR i = 1 TO 100: PRINT "255": NEXT     
OUT &H378, 0 
FOR i = 1 TO 200: PRINT "0": NEXT
WEND                   

На основе Пр--2 напишите программу, вырабатывающую пилообразные импульсы. Она должна содержать цикл, в котором в ячейку ОЗУ с адресом 378_{16}=888_{10} последовательно записывается 0, 1, 2, 3, ..., 255, затем снова 0, 1, 2, ... (см. программу Пр--3). Измените программу так, чтобы частота и амплитуда импульсов увеличилась или уменьшилась в 2-3 раза. Пронаблюдайте осциллограмму. С помощью осциллографа убедитесь в том, что формируемый сигнал является дискретным, то есть состоит из маленьких ступенек, которые могут быть сглажены конденсатором C1.

Запустите среду программирования Borland Pascal 7.0. Наберите программу Пр--3, генерирующую пилообразные импульсы. Запустите программу и получите осциллограмму импульсов. Измените амплитуду импульсов и частоту.

uses crt, dos;  var i: integer;                'Пр - 3
BEGIN                                          'PASCAL
Repeat 
  For i:=1 to 255 do            
    begin 
      port[888]:=i; write(i,' '); delay(10); 
    end; 
until KeyPressed;    
END.                                  

Наберите программу Пр--4, позволяющую получить на выходе ЦАП синусоидальные колебания. Получите их осциллограмму. Научитесь изменять их частоту и амплитуду.

uses crt, dos; 
var i: integer;                                'Пр - 4  
BEGIN                                          'PASCAL
Repeat                                         
  i:=i+1; port[888]:=round(127+127*sin(i/100));
until KeyPressed;
END.

Имеется сообщение s='101...11'. Напишите программу (Пр--5), генерирующую амплитудно--модулированный сигнал: единице соответствуют колебания с амплитудой A1, а нулю --- колебания с амплитудой A2.

uses crt, dos;                                 'Пр - 5  
var i: integer; x,s: string; A,k: integer;     'PASCAL
BEGIN clrscr;
s:='101010101011001101101010011101010101001010101110011';
For i:=1 to length(s) do
  begin
    x:=copy(s,i,1);
    If x='1' then A:=127 else A:=30;
    writeln(x); k:=0;
    repeat inc(k);
      port[888]:=round(127+A*sin(k/10));
    until (k>1000)or(keypressed);
  end;
END.

Допустим, имеется сообщение s='101...11'. Напишите программу (Пр--6), генерирующую частотно--модулированный сигнал: единице соответствуют колебания с частотой ω1, а нулю --- колебания с частотой ω2.

uses crt, dos;                                 'Пр - 6
var i: integer; x,s: string;                   'PASCAL
    W,k: integer;
begin clrscr;
s:='101011110101010110101010011101010101001010101110011';
For i:=1 to length(s) do
  begin
    x:=copy(s,i,1);
    If x='1' then W:=1 else W:=2;
    writeln(x); k:=0;
    repeat inc(k);
      port[888]:=round(127+127*sin(W*k/30));
    until (k>10000)or(keypressed);
  end;
end.

3. Аналого-цифровой преобразователь на компараторе. Для ввода аналогового сигнала в ПЭВМ используется аналого--цифровой преобразователь (АЦП). Простейший АЦП состоит из генератора пилообразного напряжения, компаратора и персонального компьютера. Частота пилообразного напряжения fг в десятки раз превышает частоту fс входного сигнала. При этом на выходе АЦП возникает последовательность прямоугольных импульсов частотой fг, длительность которых зависит от входного напряжения. Эти импульсы подаются на 11 вывод LPT--порта ПЭВМ.

Рис. 2. Аналого-цифровой преобразователь.

Рис. 2. Аналого-цифровой преобразователь.

Принципиальная схема АЦП изображена на рис. 2. На тиристоре VD1, резисторе R4 и конденсаторе C1 собран релаксационный генератор, вырабатывающий пилообразные импульсы с частотой 2--4 Гц. Они поступают на неинвертирующий вход 3 компаратора DA1, используемого в качестве компаратора. На инвертирующий вход 2 подается плавно изменяющееся напряжение с датчика координаты. На выходе ОУ возникают прямоугольные импульсы, длительность которых пропорциональна входному напряжению.

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

uses crt, graph;                                           'Пр-7
var DV, MV, EC, u, uu, x, time: integer; F: text;        'PASCAL
Procedure GraphInit;
begin DV:=Detect; InitGraph(DV,MV,'c:\bp\bgi');
      EC:=GraphResult; if EC<>grOK then Halt(1); end;
BEGIN Assign(F,'c:\bp\data.txt'); Rewrite(F); GraphInit; 
  repeat x:=0; repeat uu:=u; u:=port[889]; delay(15);
   if u<>127 then x:=x+1;
   until (uu=127)and(u<>127); time:=time+1; 
   circle(3*time,400-x*1,1); circle(3*time,400-x*1,2); 
   WriteLn(F, x); if 3*time>640 then begin time:=0; cleardevice; 
   end; until Keypressed;  CloseGraph;Close(F);
End. 

Рассмотренный выше АЦП позволяет провести целую серию экспериментов, требующих оцифровку и запись аналогового сигнала, изменяющегося в интервале 0--10 В, с частотой отсчетов $\approx$ 2--4 Гц. Например, довольно просто получить кривые заряда и разряда конденсатора. Для этого нами использовался электролитический конденсатор емкостью 500 мкФ, подключаемый через резистор 10--100 кОм к источнику постоянного напряжения. Параллельно конденсатору включают вольтметр и АЦП, соединенный с компьютером, и запускают программу.

2. Преобразователь напряжение - частота. Один из методов оцифровки сигнала состоит в использовании преобразователя напряжения в частоту (ПНЧ), вырабатывающего последовательность импульсов, частота которых пропорциональна напряжению. Эти импульсы можно подать на цифровой частотомер или завести в компьютер, который будет определять их частоту.

Рис. 3. Преобразователь напряжение - частота.

Рис. 3. Преобразователь напряжение - частота.

Принципиальная схема ПНЧ, собранного на базе компаратора LM393N, изображена на рис. 3. Входное напряжение Uвх подается на инвертирующий вход 2 компаратора DA1. На неинвертирующий вход 3 компаратора поступает напряжение с конденсатора C1, который заряжается через резистор R3. Когда потенциал входа 3 достигнет потенциала входа 2, на выходе 1 компаратора лог. 0 сменится лог. 1. Это вызовет открывание транзисторов VT1 и VT2, вследствие чего конденсатор C1 быстро разрядится через открытый VT2. Конденсаторы C2 и C3 создают временную задержку, необходимую для того, чтобы конденсатор C1 разрядился полностью. При появлении на выходе 1 DA1 лог. 0 транзисторы закрываются и конденсатор C1 снова начинает заряжаться через R3. В результате на выходе 1 компаратора DA1 возникает последовательность прямоугольных импульсов, частота которых обратно пропорциональна входному напряжению Uвх. Для согласования ПНЧ с LPT-портом компьютера используется транзистор VT3. Внешний вид устройства показан на рис. 4.

Рис. 4. Преобразователь напряжение - частота.

Рис. 4. Преобразователь напряжение - частота.

При изменении входного напряжения от 0,2 В до 9 В частота изменяется от 500 Гц до 33 Гц; зависимость практически линейная. Для получения цифрового вольтметра, а также построения графика зависимости напряжения от времени необходимо написать простую программу, которая периодически определяет частоту поступающих импульсов. При этом возможны следующие варианты:

1) Измерить длительность k=10 импульсов. Недостаток: частота измерений зависит от частоты импульсов, а значит и от входного напряжения.

2) Измерить количество k импульсов, пришедших за определенный промежуток времени Δt. Недостаток: высокая погрешность, обусловленная тем, что в интервале Δt не укладывается целое число импульсов.

3) Сосчитать число импульсов k за заданное время Δt, после чего подождать прихода последнего импульса, то есть измерить время k+1 импульса, которые придут за промежуток чуть больший Δt. Частота отсчетов постоянна, точность высокая (сомнительная цифра -- в 4 разряде).

uses crt, dos;
var i,j,x,xx,t: longint; k: integer;
begin clrscr;
repeat inc(t);
xx:=x; x:=port[889]; {delay(1);}
if (x=127)and(xx=63) then k:=k+1;
if (t>20000)and(x=127)and(xx=63) then
   begin writeln('vremya ',t/k); t:=0; k:=1; end;
until keypressed;
end.

4. Преобразователь напряжение - частота на основе таймера 555. Самый простой ПНЧ может быть собран на основе таймера 555. Принципиальная схема устройства приведена на рис. 5. Таймер работает в автоколебательном режиме, вырабатывая прямоугольные импульсы, частота которых сильно зависит от входного напряжения. При изменении напряжения от 0,5 до 5 В частота изменяется более чем в 10 раз.

Рис. 5. ПНЧ на основе таймера 555.

Рис. 5. ПНЧ на основе таймера 555.

Напряжение питания можно увеличить до 15 В, амплитуда выходных импульсов станет больше. В этом случае и входное напряжение может изменяться от 0 до 15 В.


ВВЕРХ

Hosted by uCoz