Устройство цифровой записи речи (цифровой диктофон)

Рис.5. Запись в память.

 

После окончания записи сигнал может быть прочитан из памяти микроконтроллером (рис.6).

Рис.6. Чтение из памяти.

 

Микропроцессор MС выдает через встроенный ЦАП сигналы на усилитель-фильтр U2, где они усиливаются и ограничиваются по верхней частоте до 4 кГц. В качестве ЦАП в микроконтроллере работает встроенный широтно-импульсный модулятор, который с помощью дифференцирующих сигналов и интегрирующей цепи может восстановить форму исходного сигнала.

Рис.7. Восстановление сигнала при помощи широтно-импульсной модуляции.

 

Отображение режимов работы устройства производят светоизлучающие диоды LED при высоком уровне сигнала на соответствующем выходе микроконтроллера.


В этом примере окончательный сигнал состоит из 8 бит. Теперь он может быть сохранён в DataFlash. DataFlash не требует отдельного цикла стирания перед программированием. При использовании команд «Буфер в основную страницу памяти программы с встроенным стиранием» и «Основная страница памяти программы сквозь буфер», DataFlash будет автоматически стирать определённую страницу в массиве памяти перед программированием действительных данных. Если система требует большую программную пропускную способность (больше 200K bps), то области массива основной памяти могут быть предварительно очищены, для уменьшения суммарного программного времени. При предварительной очистке части главного массива памяти, для уменьшения общего времени, может использоваться команда «Буфер в основную страницу памяти программы без встроенного стирания».

После очистки памяти данные могут записываться до тех пор, пока не заполнятся все страницы.

Для записи в DataFlash используется буфер 1. Когда этот буфер заполнится (528 выборками), он записывается в память во время 529 преобразования. Данные записываются до тех пор, пока нажата кнопка «Запись» или память не заполнилась. Если вся память заполнена, то новые данные не могут быть записаны, пока не очищена DataFlash. Если память заполнена лишь частично, то при повторном нажатии кнопки «Запись» новые данные будут добавлены сразу за уже записанными данными.

Воспроизведение звука всегда начинается с начала DataFlash. Оно прекращается, если все записанные данные воспроизведены или когда кнопка «Воспроизведение» отпущена.

DataFlash позволяет проигрывать данные либо напрямую из основной страницы памяти, либо путём копирования страницы в один из двух буферов и последующим чтением из буфера. Метод прямого доступа не подходит для этого примера, так как это метод двухадресный (один адрес для страницы, другой для позиции байта), и, следовательно, в DataFlash должна быть отправлена длинная загрузочная последовательность для каждого отдельного байта. Это занимает больше одного цикла ШИМ, который длится 510 тактовых импульсов для 8-битного ШИМ сигнала.

Поэтому, одна страница памяти копируется в один из двух буферов. Пока данные читаются из этого буфера, следующая страница памяти копируется в другой буфер. Когда все данные считаны из первого буфера, чтение продолжается из другого буфера, в это время первый буфер перезагружается. Чтение данных из буфера DataFlash синхронизируется частотой ШИМ.

Выходной фильтр сглаживает выходной сигнал и удаляет высокочастотную несущую ШИМ сигнала. Результирующий выходной сигнал для сигнала из примера похож на тот, что изображён на рисунке 8. Если исключить ошибку квантования и отсутствующее усиление, то сигнал полностью похож на входной аналоговый сигнал (Рисунок 1).


Рис 8. Выходной ШИМ сигнал


Пользователь может управлять устройством через три кнопки: «Очистка», «Запись» и «Воспроизведение». Если кнопки не нажаты, то внутренний нагрузочный резистор обеспечивает VCC на PС4…PС6. Нажатие кнопки переключает входную линию на GND.

В качестве обратной связи для пользователя выступает светодиод, отображающий состояние системы. 

Кварцевый резонатор с двумя развязывающими конденсаторами (22 пФ) генерирует системные тактовые импульсы.


Микрофонный усилитель является простым инвертирующим усилителем. Коэффициент усиления устанавливается через R1 и R9 (коэффициент усиления = R1/R9). R4 предназначен для питания микрофона, а C1 блокирует любые DC составляющие на входе усилителя. R2 и R3 устанавливают смещение. R5 и С8 формируют простой фильтр нижних частот первого порядка. Также R5 защищает усилитель от любых повреждений, если выходная цепь закорочена.

C3 блокирует любую DC составляющую на входе динамика.

Настройка

Когда программа запущена, порты должны быть настроены. Это делается в подпрограмме «setup» (установка).

Протокол SPI определяет одно устройство как «ведущее», а другие устройства, подключенные к «ведущему», как «ведомые». В данном примере, микроконтроллер AVR выступает в роли «ведущего», а DataFlash в роли «ведомого».

SPI интерфейс AT90S8535 определён как альтернативная функция PortB (PB0…PB4). В данном примере, управляющие сигналы для DataFlash являются также настроечными на PortB (PB0…PB2 и PB4). Для установок «ведущего», сигналы Serial Clock(SCK), Master Out/Slave In(MOSI), Chip Select(#CS), Write Protect(#WP) и Reset(#RST) являются выходами, тогда как Master In/Slave Out(MISO) и Ready/Busy(RDY/#BSY) являются входами. Состоянием по умолчанию PortB является: всех выходы в высоком состоянии, а на всех входах - внутренние нагрузочные резисторы.

АЦП AT90S8535 подключено к PortA. Поэтому PortA определён как вход в высокоимпедансном состоянии.

PortС служит в качестве входа для кнопок.

.


ОПИСАНИЕ ПРИНЦИПИАЛЬНОЙ СХЕМЫ

УСТРОЙСТВА

Микропроцессор MCU (AT90S8535) управляет через порт В работой FLASH - памяти DD1 Так как в процессоре имеется аппаратная поддержка SPI протокола, то микросхема памяти, работающая по этому протоколу непосредственно подключается к выводам микроконтроллера DD2 miso, mosi, sck.

В режиме хранения информации микроконтроллер и микросхема памяти переключаются в спящий режим - микроконтроллер путем выполнения специальной команды, а микросхема памяти путем удержания микроконтроллером сигнала #cs в высоком уровне.

Микросхема памяти и микропроцессор выполнены по КМОП - технологии, что позволяет их непосредственно питать от аккумуляторных батарей небольшой емкости, которые подключаются через разъем Х1.

Для обеспечения работы процессора на частоте 8 МГц примене­ны элементы BQ1 - кварцевый резонатор и конденсаторы С8 и С9.

Опорное напряжение для АЦП берется напрямую с шины питания. Изменение его значения не приведет к структурному искажению сигнала, а только к его масштабированию.

Сигнал от микрофона усиливается микросхемой DA1 и подается на вход АЦП. Усилитель DA1 также охвачен частотно- зависимой отрицательной обратной связью, для того чтобы ограничить верхнюю частотную границу входного сигнала до 4 кГц.

К порту С микроконтроллера подключаются кнопки управления и светодиоды для индикации режимов работы устройства.

К разъему Х1 подключается аккумуляторная батарея для питания устройства. Конденсаторы С1 и С2 служат для сглаживания пульсаций по цепи питания, которые могут возникнуть при протекании динамических процессов внутри микросхем.


Главный цикл

В главном цикле, отслеживается состояние всех трёх кнопок. Если одна из них нажата, то LED загорается и показывает, что система занята, и вызывается соответствующая подпрограмма.

Дополнительный цикл выполняется до тех пор, пока кнопка нажата, в качестве программной противодребезговой защиты для функций «Очистка» и «Воспроизведение».

Во время главного цикла, LED погашен, это значит, что система работает в холостом режиме.


Рисунок 11. Главный цикл

Очистка

Data Flash может быть предварительно очищена.


Рисунок 12. Очистка

При вызове подпрограммы «erase» (очистка), устанавливается флаг, который показывает, что в следующем цикле записи новые данные могут быть сохранены в начале DataFlash.

SPI должен быть установлен для доступа к DataFlash. Здесь не используются прерывания. Порядок данных для DataFlash следующий: MIB является первым, а AT90S8535 - «ведущим».

DataFlash принимает либо сигнал SCK, который находится в низком состоянии, когда #CS переключается из высокого в низкое состояние (SPI режим 0), либо сигнал SCK, который находится в высоком состоянии, когда #CS переключается из низкого в высокое состояние (SPI режим 3), во время положительной фазы тактовых импульсов. В данном примере SPI установлен в режим 3. Для того чтобы получить наибольшую скорость передачи данных, выбирается наименьшее деление тактовой частоты, шина SPI запускается на частоте 2 МГц, если используется кварцевый генератор с частотой 8 МГц.

Для выполнения очистки блока, линия #CS переводится в низкое состояние и в DataFlash, следом за двумя зарезервированными битами (нулями), загружается код операции 0x50, затем 9-разрядный адрес блока и 13 не имеющих значения бит. Эта последовательность передаётся побайтно «ведомому». После каждого байта, регистр состояния SPI (SPSR) проверяется до тех пор, пока флаг прерываний SPI не покажет, что передача завершена. После записи всей последовательности, сразу после перевода линии #CS в высокое состояние, начинается очистка блока. Вывод Ready/Busy переводится памятью DataFlash в низкое состояние, до тех пор, пока блок не очиститься. Затем следующий блок будет очищен тем же самым способом, что и текущий. Очистка будет продолжаться, пока все 512 блоков не очистятся. Очищенные зоны читаются как 0xFF.

Запись

Подпрограмма записи состоит из установки АЦП и пустого цикла, который продолжается пока нажата кнопка «Запись». В данном примере используется вывод ADC0, для которого требуется, чтобы регистр выбора мультиплексора АЦП (ADMUX) был установлен в нуль. В регистре управления и состояния АЦП (ADCSR) разрешается работа с коэффициентом деления тактовой частоты 32, устанавливается режим одиночного преобразования, разрешаются прерывания, а также сбрасываются флаги прерываний. Аналого-цифровое преобразование начинается сразу. Первое преобразование занимает больше времени, чем последующие преобразования (832 тактовых импульса вместо 448). После этого времени, возникает прерывание АЦП, показывающее, что преобразование закончено, и результат может быть прочитан из регистра данных АЦП.

Аналоговый сигнал из цепи микрофона выбирается на частоте 15.686 Гц. Это та же самая частота, что и выходная (ШИМ) частота.

Для достижения частоты выборки 15.686 Гц, выборка должна происходить каждые 510 циклов (15.686 Гц x 510 = 8 МГц). Для получения одного результата АЦП, нужно каждые 510 циклов запускать АЦП в режиме одиночного преобразования с коэффициентом деления частоты 32. Одиночное преобразование занимает 14 циклов АЦП. Поэтому преобразование будет готово после 14 x 32 = 448 циклов.

Страницы: 1, 2, 3, 4, 5



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать