Устройство цифровой записи речи (цифровой диктофон)
Устройство цифровой записи речи (цифровой диктофон)
Балтийский Государственный технический университет
им. Д.Ф.Устинова (“Военмех”) | |
|Кафедра И4 |
|ПОЯСНИТЕЛЬНАЯ ЗАПИСКА |
|к курсовому проекту по дисциплине |
|Проектирование радиоэлектронных устройств |
| |
|“Устройство цифровой записи речи |
|(цифровой диктофон)” |
| | | |
| |Группа |И-4 |
| |Студент |С |
| |Проверил |П |
| |
|Санкт-Петербург |
|200 |
СОДЕРЖАНИЕ
Задание 3
Перечень условных обозначений 4
Введение 5
Анализ исходных данных 6
Выбор структуры устройства 8
Выбор элементов 10
Принцип действия 14
Описание принципиальной схемы устройства 18
Заключение 41
Список литературы 42
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
"Устройство цифровой записи речи"
Принцип действия
Происходит запись речевого сигнала в микросхемы памяти после
соответствующего аналого-цифрового преобразования.
Дополнительный сервис по усмотрению разработчика.
Исходные данные
1. Спектр сигнала 20 Гц – 4 кГц
2. Uпит = 5 ± 10% В
3. Время записи – 60 минут
4. Использование чувствительного микрофона
5. Устройство портативное
6. Воспроизведение через встроенный динамик
Перечень конструкторских документов.
Пояснительная записка, структурная схема, функциональная схема, схема
электрическая принципиальная, спецификация, перечень элементов.
Цель курсовой работы.
спроектировать устройство для записи человеческого голоса в течение 60
минут и последующего воспроизведения записанной информации.
Характеристики устройства: автономное устройство с батарейным питанием,
временем записи 60 минут. Обеспечивает долговременное хранение записанной
информации при выключении питания устройства. Имеется индикация режимов
работы цифрового диктофона, а также органы управления режимами устройства.
Отличительной особенностью цифрового диктофона является повышенная
надежность и удобство в эксплуатации.
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ
АЦП –аналого-цифровой преобразователь;
ЦАП –цифро-аналоговый преобразователь;
АТС – автоматическая телефонная станция;
МГц- мегагерцы;
CPU - Central Processor Unit (процессор);
TTL - транзисторно-транзисторная логика;
мкм - микроны;
мм - миллиметры;
мс — микросекунды;
ОЗУ- оперативное запоминающее устройство;
ПЗУ- постоянное запоминающее устройство;
ПП - печатная плата;
ВВЕДЕНИЕ
В настоящее время огромное значение придается различной информации, в
том числе и голосовой. Возникает проблема в удобных способах хранения этой
информации. Для этого применяют различные звукозаписывающие устройства.
Принцип построения этих устройств различен - от записи на восковой
носитель первого фонографа, до преобразования звуковой информации в
цифровой код, с последующим её хранением в виде цифровых кодов. Самым
удобным средством хранения звуковой информации является диктофон.
Профессий, для которых диктофон является необходимым устройством -
множество. Это и журналисты, телевизионщики, корреспонденты, органы охраны
правопорядка.
Одной из проблем, которая возникает перед отечественным пользователем
- это выбор лучшей по соотношению качество/цена модели. Неизбалованные
отечественные пользователи часто не придают особого значения устройству и
техническим характеристикам диктофонов. Мало кто сознает, насколько проще и
легче может стать работа с этим устройством, если серьезно отнестись к его
выбору. Диктофоны выпускаются многими компаниями. К числу наиболее
известных фирм-производителей относятся: Panasonic, I-River, Sony, LG и
многие другие.
Отличительной особенностью большинства моделей диктофонов является то,
что носителем информации является магнитная лента. А она, как известно,
подвержена старению, в результате чего после нескольких десятков
использований резко ухудшаются её качества. К тому же, велика вероятность
«потерять» записанную информацию вследствие влияния сильных магнитных
полей. Также отличительной особенностью диктофонов является наличие
сложного механизма со множеством движущихся частей, которые от интенсивного
использования быстро приходят в негодность.
sitednl.narod.ru/1.zip - база сотовых по Петербургу
Современные диктофоны в качестве носителей информации используют
цифровые модули памяти. Ресурс модулей памяти даже при самом интенсивном
использовании составит не менее нескольких лет. В таких моделях отсутствует
сложный лентопротяжный механизм.
Исходя из вышесказанного проектирование новых типов цифровых
диктофонов является важной задачей ввиду все более нарастающей потребности
удобства хранения звуковой информации.
АНАЛИЗ ИСХОДНЫХ ДАННЫХ
Необходимо разработать автономное устройство с батарейным питанием,
которое бы записывало голосовую информацию в течении 60 минут. Устройство
должно обеспечивать долговременное хранение записанной информации при
выключении питания устройства. Необходимо предусмотреть индикацию режимов
работы цифрового диктофона, а также органы управления режимами устройства.
Так как информация должна вводиться и преобразовываться для хранения в
цифровой вид, то необходимо применить АЦП и оцифровывать сигнал по методу
импульсно-кодовой модуляции, суть которой заключается в следующем. Если на
рис.1 представлен исходный сигнал:
[pic]
Рис.1. Исходный сигнал.
То для преобразования мы должны его разделить на временные отрезки
[pic]
Рис.2. Дискретный сигнал.
Затем мы его должны квантировать по уровням (рис.3).
[pic]
Рис.3. Квантированный сигнал.
Наконец мы можем получить кодовые отсчеты сигнала (рис.4).
[pic]
Рис.4. Оцифрованный сигнал.
Для определения длительности временных отрезков необходимо
воспользоваться теоремой Котельникова, по которой для точного
восстановления периодического сигнала необходимо взять минимум два отсчета
за период. Таким образом, при верхней частоте спектра человеческого голоса
- 4 кГц, частота дискретизации - 8 кГц.
Для квантования по уровню можно принять 256 уровней для обеспечения
хорошего качества – в современной аппаратуре для обработки и передачи
голосовой информации используются чаще всего именно 256 уровней.
Из этого следует, что для построения устройства необходимо
использовать восьмибитовый АЦП, работающий на частоте 8 кГц.
Так как хранение информации должно производиться при выключенном
питании, то в качестве устройства хранения нужно применить
энергонезависимую память.
Объем памяти рассчитывается следующим образом: Так как каждую секунду
записывается 8000 отсчетов по 8 бит, что составляет 8 кб, то в течение часа
нам необходимо будет записать 3600 Х 8 кб, что составит примерно 29 Мб.
Таким образом, применив память емкостью 32Мб, мы обеспечим нужное время
записи. При использовании алгоритмов архивации, объем записываемой
информации при необходимости можно увеличить.
ВЫБОР СТРУКТУРЫ УСТРОЙСТВА
Устройство работает с аналоговым сигналом, и, соответственно, чтобы
обеспечить сопряжение с цифровой частью устройства применяется блок АЦП и
блок входных цепей, которые обеспечивают усиление аналогового сигнала до
необходимого уровня.
Устройство производит вывод записанной информации посредством блока
ЦАП и блока выходных цепей, которые производят усиление выходного сигнала
до необходимого уровня.
Контроль за работой блока ЦАП и блока АЦП производится модулем
контроллера записи/чтения.
Индикацию режимов работы и управление ими диктофона выполняет блок
индикации и управления.
Хранение записанной информации происходит в энергонезависимой памяти.
Таким образом в устройстве можно выделить следующие блоки:
- входных цепей;
- выходных цепей;
- контроллер записи/чтения;
- блок питания;
- тактового генератора;
- энергонезависимой памяти;
- блок индикации и управления.
Блок входных цепей соединяется информационной связью с блоком АЦП,
который в свою очередь соединяется информационной связью с блоком
энергонезависимой памяти и управляющими связями с тактовым генератором и
блоком контроллера записи/чтения.
Блок выходных цепей соединяется информационной связью с блоком ЦАП,
который в свою очередь соединяется информационной связью с блоком
энергонезависимой памяти и управляющими связями с тактовым генератором и
блоком контроллера записи/чтения.
Контроллер записи/чтения соединяется управляющей связью с
энергонезависимой памятью.
Блок питания соединяется со всеми блоками.
Блок входных цепей обеспечивает усиление входного сигнала от микрофона
и ограничение верхней частоты входного сигнала до 4 кГц. Усиленный сигнал
поступает на АЦП где преобразуется по сигналам от тактового генератора в
кодовые отсчеты по уровню, представленные в двоичном коде. Кодовые отсчеты
поступают в энергонезависимую память, где посредством контроллера
записи/чтения происходит их запись. Контроллер записи/чтения формирует
необходимые сигналы для записи и чтения из энергонезависимой памяти. В свою
очередь, он получает управляющие сигналы от блока индикации и управления.
При воспроизведении голоса происходит выборка кодовых отсчетов из
энергонезависимой памяти и подача их на ЦАП, где и происходит их
преобразование в аналоговый сигнал.
Блок выходных цепей обеспечивает усиление выходного сигнала и
ограничение верхней частоты выходного сигнала до 4 кГц, для того чтобы
избавиться от высокочастотных гармоник в выходном сигнале, появляющихся при
квантовании.
Блок питания необходим для обеспечения питания всех блоков диктофона.
ВЫБОР ЭЛЕМЕНТОВ
В качестве устройства управления выбран микроконтроллер RISC-
архитектуры серии AVR фирмы Atmel AT90S8535. Он обладает встроенной памятью
программ объемом 4096 слов и памятью данных 512 байт. Любая его команда
выполняется за 1 такт процессора. Тактовая частота 8 МГц .
На выполнение процессором программного кода для обработки и записи
отсчетов, полученных от АЦП, потребуется до 20 мс, так что выбранный
процессор вполне удовлетворяет требованию скорости работы и успевает
обработать всю необходимую информацию.
Обеспечение протокола работы с памятью организуется тем же процессором
программно - аппаратными методами, так как в микроконтроллере имеется
аппаратная поддержка протокола SPI.
Для хранения записываемой информации выбрана FLASH ПЗУ AT45DB32 фирмы
Atmel, объемом 32Мб.
AT90S8535 Description
The AT90S8535 is a low-power CMOS 8-bit microcontroller based on the AVR
RISC architecture. By executing powerful instructions in a single clock
cycle, the AT90S8535 achieves throughputs approaching 1 MIPS per MHz
allowing the system designer to optimize power consumption versus
processing speed.
Features
• AVR® – High-performance and Low-power RISC Architecture
– 118 Powerful Instructions – Most Single Clock Cycle Execution
– 32 x 8 General-purpose Working Registers
– Up to 8 MIPS Throughput at 8 MHz
• Data and Nonvolatile Program Memories
– 8K Bytes of In-System Programmable Flash SPI Serial Interface for In-
System Programming Endurance: 1,000 Write/Erase Cycles
– 512 Bytes EEPROM Endurance: 100,000 Write/Erase Cycles
– 512 Bytes Internal SRAM
– Programming Lock for Software Security
• Peripheral Features
– 8-channel, 10-bit ADC
– Programmable UART
– Master/Slave SPI Serial Interface
– Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
– One 16-bit Timer/Counter with Separate Prescaler, Compare and Capture
Modes and Dual 8-, 9-, or 10-bit PWM
– Programmable Watchdog Timer with On-chip Oscillator
– On-chip Analog Comparator
• Special Microcontroller Features
– Power-on Reset Circuit
– Real-time Clock (RTC) with Separate Oscillator and Counter Mode
– External and Internal Interrupt Sources
– Three Sleep Modes: Idle, Power Save and Power-down
• Power Consumption at 4 MHz, 3V, 20°C
– Active: 6.4 mA
– Idle Mode: 1.9 mA
– Power-down Mode: >8); // не важно + первые два бита буфера
адреса
while (!(SPSR & temp)); // ожидание завершения передачи
SPDR = (char)buffer_counter; // буфер адреса (макс. 2^8 = 256
страниц)
while (!(SPSR & temp)); // ожидание завершения передачи
SPDR = flash_data; // запись данных в регистр данных SPI
while (!(SPSR & temp)); // ожидание завершения передачи
PORTB |= DF_CHIP_SELECT; // выключение DataFlash
buffer_counter++;
if (buffer_counter > 528) // если буфер заполнен, то его
содержимое записывается в страницу памяти
{
buffer_counter = 0;
if (page_counter < 4096) // если память не заполнена
SPDR = B1_TO_MM_PAGE_PROG_WITHOUT_ERASE; // записать
else
while (!(PIND & 8)); // ждать пока кнопка записи
}
}
void playback(void)
{
unsigned int page_counter = 0;
unsigned int buffer_counter = 0;
unsigned char active_buffer = 1; // активный буфер = буфер 1
unsigned char temp = 0x80;
TCCR1A = 0x21; // 8 бит ШИМ, используется COM1B
TCNT1 = 0x00; // обнуление счётчика 1
TIFR = 0x04; // сброс флага превышения счётчика 1
TIMSK = 0x04; // разрешение прерывания переполнения счётчика 1
TCCR1B = 0x01; // коэф. Пересчёта счётчика 1 = 1
OCR1B = 0x00; // обнуление выходного регистра сравнения B
// прерывания запрещены, порт SPI включён, «ведущий» режим, первый MSB, 3
режим SPI, Fcl/4
SPCR = 0x5C;
next_page_to_next_buffer (active_buffer, page_counter); // чтение страницы
0
в буфер 1
while (!(PINB & 0x02)); // ожидание завершения передачи данных из страницы
0
в буфер 1
while ((page_counter < 4095)&(!(PIND & 2))) // пока кнопка воспроизведения
(кнопка 1) нажата
{
page_counter++; // теперь берём следующую страницу
next_page_to_next_buffer (active_buffer, page_counter);
active_buffer_to_speaker (active_buffer);
if (active_buffer == 1) // если буфер 1 является активным буфером
{
active_buffer++; // то устанавливаем буфер 2 в качестве активного
}
else // иначе
{
active_buffer--; // устанавливаем буфер 1 в качестве активного
}
}
TIMSK = 0x00; // запрещаем все прерывания
TCCR1B = 0x00; // останавливаем счётчик 1
SPCR = 0x00; // отключаем SPI
}
void next_page_to_next_buffer (unsigned char active_buffer, unsigned int
page_counter)
{
unsigned char temp = 0x80;
while(!(PINB & 0x02)); // ждём, пока флэш не освободится
PORTB &= ~DF_CHIP_SELECT; // включаем DataFlash
if (active_buffer == 1) // если буфер 1 активный
{
SPDR = MM_PAGE_TO_B2_XFER; // то передаём следующую страницу в
буфер 2
}
else // иначе
{
SPDR = MM_PAGE_TO_B1_XFER; // передаём следующую страницу в
буфер 1
}
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = (char)(page_counter >> 6);
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = (char)(page_counter << 2);
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = 0x00; // записываем не имеющий значения байт
while (!(SPSR & temp)); // ожидаем завершения передачи
PORTB |= DF_CHIP_SELECT; // выключаем DataFlash и начинаем передачу
}
void interrupt[TIMER1_OVF1_vect] out_now(void)
{
wait = 0; // возникновение прерывания
}
void active_buffer_to_speaker (unsigned char active_buffer)
{
// пока активный буфер не очистится воспроизводим его содержимое на
динамике
unsigned int buffer_counter = 0;
unsigned char temp = 0x80;
PORTB &= ~DF_CHIP_SELECT; // включение DataFlash
if (active_buffer == 1) // если буфер 1 активный буфер
{
SPDR = BUFFER_1_READ; // то читаем из буфера 1
}
else // иначе
{
SPDR = BUFFER_2_READ; // читаем из буфера 2
}
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = 0x00; // запись не имеющего значения байта
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = 0x00; // запись не имеющего значения байта
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = 0x00; // начать с адреса 0 буфера
while (!(SPSR & temp)); // ожидаем завершения передачи
SPDR = 0x00; // запись не имеющего значения байта
while (!(SPSR & temp)); // ожидаем завершения передачи
while (buffer_counter < 528)
{
SPDR = 0xFF; // записываем фиктивное значение в начало
сдвигового регистра
while (!(SPSR & temp)); // ожидаем завершения передачи
while(wait); // ожидаем прерывание переполнения таймера 1
OCR1B = SPDR; // воспроизводим данные из сдвигового регистра
wait = 1; // сброс флага сигнала
buffer_counter++;
}
PORTB |= DF_CHIP_SELECT; // выключение DataFlash
}
void main(void)
{
setup();
for(;;)
{
if (!(PIND & 8)) // если кнопка записи нажата (кнопка 3)
{
PORTB &= 0xF7; // зажигаем LED
recording();
}
if (!(PIND & 4)) // если нажата кнопка очистки (кнопка 2)
{
PORTB &= 0xF7; // зажигаем LED
erasing();
while (!(PIND & 4)); // ждём пока кнопка очистки не
отпущена (кнопка 2)
}
if (!(PIND & 2)) //если нажата кнопка воспроизведения(кнопка 1)
{
PORTB &= 0xF7; // зажигаем LED
playback();
while (!(PIND & 2)); // ждём пока кнопка воспроизведения
не отпущена (кнопка 1)
}
PORTB |= 0x08; // гасим LED во время «холостой» работы
}
}
DataFlash.h
// изменён 19.04.1999
// для использования 8535
#include “ina90.h”
#pragma language=extended
// DataFlash вывод сброса порта (PB 0)
#define DF_RESET 0x01
// DataFlash вывод состояния порта готов/занят (PB 1)
#define DF_RDY_BUSY 0x02
// DataFlash защита от записи загрузочного сектора (PB 2)
#define DF_WRITE_PROTECT 0x04
// DataFlash вывод порта выбора микросхемы (PB 4)
#define DF_CHIP_SELECT 0x10
// буфер 1
#define BUFFER_1 0x00
// буфер 2
#define BUFFER_2 0x01
// определение всех кодов операций
// запись буфера 1
#define BUFFER_1_WRITE 0x84
// запись буфера 2
#define BUFFER_2_WRITE 0x87
// чтение буфера 1
#define BUFFER_1_READ 0x54
// чтение буфера 2
#define BUFFER_2_READ 0x56
// Буфер 1 в основную страницу памяти программы с встроенным стиранием
#define B1_TO_MM_PAGE_PROG_WITH_ERASE 0x83
// Буфер 2 в основную страницу памяти программы с встроенным стиранием
#define B2_TO_MM_PAGE_PROG_WITH_ERASE 0x86
// Буфер 1 в основную страницу памяти программы без встроенного стирания
#define B1_TO_MM_PAGE_PROG_WITHOUT_ERASE 0x88
// Буфер 2 в основную страницу памяти программы без встроенного стирания
#define B2_TO_MM_PAGE_PROG_WITHOUT_ERASE 0x89
// Основная страница памяти программы сквозь буфер 1
#define MM_PAGE_PROG_THROUGH_B1 0x82
// Основная страница памяти программы сквозь буфер 2
#define MM_PAGE_PROG_THROUGH_B2 0x85
// автоматическая перезапись страницы через буфер 1
#define AUTO_PAGE_REWRITE_THROUGH_B1 0x58
// автоматическая перезапись страницы через буфер 2
#define AUTO_PAGE_REWRITE_THROUGH_B2 0x59
// сравнение основной страницы памяти с буфером 1
#define MM_PAGE_TO_B1_COMP 0x60
// сравнение основной страницы памяти с буфером 2
#define MM_PAGE_TO_B2_COMP 0x61
// передача основной страницы памяти в буфер 1
#define MM_PAGE_TO_B1_XFER 0x53
// передача основной страницы памяти в буфер 2
#define MM_PAGE_TO_B2_XFER 0x55
// регистр состояния DataFlash для чтения плотности, сравнения состояний,
// и состояния готов/занят
#define STATUS_REGISTER 0x57
// чтение основной страницы памяти
#define MAIN_MEMORY_PAGE_READ 0x52
// очистка 528 байт страницы
#define PAGE_ERASE 0x81
// очистка 512 страниц
#define BLOCK_ERASE 0x50
#define TRUE 0xff
#define FALSE 0x00
РАСЧЕТ ВРЕМЕНИ НАРАБОТКИ НА ОТКАЗ
Интенсивность отказов устройства, содержащего разнотипные элементы,
определяется следующим соотношением:
[pic]
Среднее время наработки на отказ устройства составляет:
Tср = 1/?
|№ |Тип элемента |Число |? |Q*? |
| | |элементов Q | | |
|1 |К1401УД2 |2 |0.017*10-6 |0.034*10-6 |
| |AT90S8535-8PI |1 |0.017*10-6 |0.017*10-6 |
| |AT45DB32 |1 |0.017*10-6 |0.017*10-6 |
|2 |Паяные соединения |210 |10-9 |0.21*10-6 |
|3 |Конденсаторы |9 |0.004*10-6 |0.012*10-6 |
|4 |Резисторы МЛТ |15 |0.02*10-6 |0.30*10-6 |
|5 |Диод |4 |0.02*10-6 |0.08*10-6 |
|6 |Транзистор |1 |0.05*10-6 |0.05*10-6 |
|7 |Вилка разъема |1 |0.011*10-6 |0.011*10-6 |
|8 |Резонатор |1 |0.09*10-6 |0.09*10-6 |
|9 |Микрофон |1 |10-5 |10-5 |
|10 |Громкоговоритель |1 |10-5 |10-5 |
|11 |Переключатель |3 |0.01*10-5 |0.03*10-5 |
|Суммарная интенсивность отказов |2.851*10-6 |
Перечень комплектующих элементов устройства и значений интенсивности
их отказов:
Время наработки на отказ разработанного устройства при этом составит:
Тотк=106/1.691=350754 час
ОЦЕНКА КОЛИЧЕСТВА ОШИБОК В ПРОГРАММЕ
N=?ajZj
Z1- сложность условных операторов If
Z2 – общее число ветвей в программе
Z3 – число связей с прикладными программами
Z4 – число связей с системными программами
Z5 – число операций I/O
Z6 – число вычислительных операторов
Z7 – число операторов обработки данных
Z8 – число комментариев
|a1 |a2 |a3 |a4 |a5 |a6 |a7 |a8 |
|0.4 |0.02 |0.4 |0.07 |0.05 |0.03 |0.02 |-0.002 |
|Z1 |Z2 |Z3 |Z4 |Z5 |Z6 |Z7 |Z8 |
|8 |5 |4 |7 |28 |25 |30 |39 |
N=8.062
Т.о. при данной сложности ПО возможно проявление 9 ошибок
ЗАКЛЮЧЕНИЕ
В результате была разработана структурная и принципиальная схема
цифрового диктофона для записи голосовой информации в течение 1 часа.
Спроектированное устройство обладает следующими достоинствами: высокая
надежность хранения записанной информации, высокая надежность самого
устройства вследствие отсутствия движущихся механических деталей; звуковое
сопровождение «нажатий» клавиш; удобство работы с диктофоном.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Гук М. Аппаратные средства IBM PC. - С.-Петербург: Издательство «Питер
Ком» 999. -816с.
2. Аванесян Г. Р., Левшин В. П. Интегральные микросхемы ТТЛ, ТТЛШ:
Справочник. - М.: Машиностроение, 1993
3. Воробьёв Е. П., Сенин К. В. Интегральные микросхемы производства СССР и
их зарубежные аналоги - М.: 1990
4. www.atmel.ru
|