ИСПОЛЬЗОВАНИЕ МИКРОКОНТРОЛЛЕРА В КАЧЕСТВЕ ДЕЛЬТА МОДУЛЯТОРА

Абрамов Сергей    г.Оренбург

При конструировании цифрового ревербератора или устройств записи речи в память а также при передаче по каналам связи необходимо устройство которое будет преобразовывать аналоговый сигнал от микрофона или другого источника в цифровой. Для этого необходим быстродействующий параллельный аналого-цифровой преобразователь, который будет с определенной дискретностью считывать аналоговый сигнал преобразовывать в параллельный цифровой код. Для передачи по линии связи параллельный код необходимо будет преобразовать в последовательный, а со стороны приемника проделать аналогичную операцию но в обратном порядке, преобразовать последовательный код в параллельный а затем его преобразовать при помощи цифро-аналогового преобразователя в аналоговый сигнал. Такая процедура на мой взгляд является достаточно дорогостоящей и излишней. Возможен и иной метод преобразования аналогового сигнала,  например при помощи линейного дельта модулятора. Его работа основана на сравнении аналогового сигнала при предыдущей дискретной выборке с сигналом последующих выборок и если амплитуда аналогового сигнала увеличивается то принимается за единичный логический уровень а если спадает то логический ноль, при инверсном выходе и наоборот при прямом. Этот метод легко реализуется при помощи компаратора и емкости которая хранит значение аналогового сигнала от предыдущей выборки.  Рассмотрим работу преобразования сигнала на примере изображенном на рис1. В начальный момент времени на инвертирующем
             Рис1.

триггере D2  установлен логический ноль, и напряжение на конденсаторе С равно нулю так как через резистор R емкость полностью разряжена. Допустим аналоговый сигнал на отрицательном входе компаратора D1 превышает напряжение на конденсаторе С тогда на выходе компаратора появляется логический ноль. Если в данный момент придет стробирующий импульс выборки на вход С микросхемы D2 то логический ноль перепишется на выход преобразователя, а на инверсном выходе данной микросхемы установится единичный уровень который через резистор R начнет заряжать емкость С. Если в дальнейшем входной аналоговый сигнал продолжит расти и будет превышать напряжение на емкости С и до следующей выборки на емкости будет уровень превышающий нулевой то на выходе компаратора сохранится нулевой логический уровень, а если будет ниже уровня чем на емкости С то на выходе компаратора установится логическая единица на выходе преобразователя установится единичный уровень, а емкость начнет разряжаться вследствии установившегося нуля на инверсном выходе триггера D2. То же самое повторится если продолжится снижение входного сигнала.
Таким образом на выходе устройства будут ШИМ импульсы являющиеся эквивалентом входного сигнала, которые в дальнейшем преобразовать в аналоговый сигнал не составит большого труда. Например при помощи интегрирующей цепочки состоящей из резистора и конденсатора.
   Рис2.

На рис2. изображена примерная осциллограмма аналогового входного сигнала (вверху), и ШИМ импульсы на инверсном выходе триггера D2 (внизу), на выходе преобразователя сигнал инверсный. Пока происходит нарастание аналогового сигнала формируются единичные импульсы, а когда спад уровень логического нуля. Чем чаще происходит опрос аналогового сигнала тем точнее будет цифровой. Частота опроса называется частотой дискретизации сигнала.
 На рис3 изображена практическая схема линейного дельта модулятора на основе микроконтроллера.  Данная конструкция была разработана с целью преобразования аналогового сигнала от микрофона в ШИМ импульсы. Сигнал с микрофона усиливается операционным усилителем D1.1 и подается на инвертирующий вход компаратора (18 ножка D2) входящего в состав микроконтроллера PIC16F628. Делитель состоящий из резисторов R4,R6 задает смещение на положительном входе операционного усилителя равного половине напряжения питания. Это необходимо чтобы на выход усилителя сигнал передавался без искажения. На неинвертирующий вход компаратора (1 ножка D2) подается сигнал через интегрирующую цепочку R10,C5 с выхода порта RA0.  Таймер TMR0 контроллера настроен на обработку прерывания с частотой 33 мкс. Таким образом частота дискретизации будет составлять 30,3кГц. Преобразование происходит следующим образом. Допустим входное напряжение на инвертирующем входе компаратора D2(18) превышает напряжение на конденсаторе C5, а значит и неинвертирующем входе компаратора D2(1). В этом случае на выходе компаратора появляется логический ноль. По приходу прерывания от таймера TMR0 на выход RB3 передается сигнал с выхода компаратора т.е. логический ноль, а на выход RA0 инверсный сигнал логическая единица. Конденсатор С5 начнет заряжаться через резистор R10. Если к моменту нового прерывания от таймера TMR0 напряжение на конденсаторе превысит входное с RA1, то выход компаратора установится в состояние логической единицы, которое будет передано на выход RB3 и инверсный сигнал логический ноль будет записан в порт RA0. Это приведет к разрядке конденсатора С5 через резистор R10 и уменьшению напряжения на нем. Таким образом напряжение на конденсаторе с некоторой погрешностью повторяет входной сигнал, а последовательность ШИМ импульсов на выходе RB3 является его эквивалентом. Качество сигнала в большой степени зависит от частоты дискретизации т.е. прерывания от таймера TMR0, и дает приемлемые результаты начиная с 20 кГц. Если цифровые данные подавать непосредственно на передатчик то будет необходима большая полоса пропускания, поэтому иногда пользуются устройствами сжатия и кодирования аудиоданных по методу ADPCM. В данной статье этот метод не рассматривается.
 
 
  Рис3.

ШИМ последовательность достаточно легко можно преобразовать в аналоговый сигнал при помощи все той же интегрирующей цепочки R13,C9 и подать на усилитель низкой частоты Рис4. В данном случае он собран на микросхеме D4 типа К174УН14. На микросхеме D5 собран стабилизатор напряжения 5 вольт для питания всей схемы.

  Рис4.

Если  частота дискретизации будет небольшой то для подавления несущей необходимо собрать активный фильтр четвертого или шестого порядка. На рис 5 приведена схема фильтра Буттерворта четвертого порядка с частотой ограничения 4 кГц.
В таблице 1 приведена программа на ассемблере, которая записывается в микроконтроллер.  В константу K_TMR0 записывают частоту дискретизации и при коде D’250’ она равна 33мкс, при D’181’ она равна 62,5мкс, при D’103’ она равна 125мкс.  В таблице 2 приведена программа в HEX коде. а здесь программа на ассемблере


 
           Рис5.

 Текст программы на ассемблере лежит здесь
 
 

Табл2. HEX КОД

:020000040000FA
:020000000E28C8
:08000800A600030EA7000B196E
:100010003828270E8300A60E260E0900831203132C
:100020008501860105309F00831603139F018130EF
:1000300081003E3085000330860000308B00831243
:100040000313A0143F30840080018403A0182428E7
:100050006400051E2C282828051283160313051298
:1000600083120313FA3081008B170B118B1637287C
:100070008B120B11FA3081008B169F1F42288615B8
:0A008000051009288611051409284F
:02400E00423F2F
:00000001FF
 

Литература:
А. Власкин, С. Годин. Цифровой ревербератор.  В помощь радио-любителю. Выпуск 95 стр.29