Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Пристрій цифрового запису промови (цифровий диктофон)

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Підпрограма записи складається з установки АЦП і порожнього циклу, що триває поки натиснута кнопка «Запис». У цьому прикладі використовується висновок ADC0, котрій потрібно, щоб регістр вибору мультиплексора АЦП (ADMUX) було встановлено нуль. У регістрі управління і стан АЦП (ADCSR) дозволяється роботу з коефіцієнтом розподілу тактовою частоти 32, встановлюється режим одиночного перетворення… Читати ще >

Пристрій цифрового запису промови (цифровий диктофон) (реферат, курсова, диплом, контрольна)

Завдання.

Перелік умовних позначень.

Запровадження.

Аналіз вихідних даних.

Вибір структури устрою.

Вибір елементів.

Принцип дії.

Опис принципової схеми устрою.

Укладання.

Список літератури 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 представлений вихідний сигнал:

Мал.1. Вихідний сигнал.

Те для перетворення ми повинні його розділити на тимчасові отрезки.

Рис. 2. Дискретний сигнал.

Потім ми його мають квантировать за рівнями (рис.3).

Рис. 3. Квантированный сигнал.

Нарешті ми маємо очікувати кодові отсчеты сигналу (рис.4).

Рис. 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×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:

• I/O and Packages.

— 32 Programmable I/O Lines.

— 40-lead PDIP, 44-lead PLCC, 44-lead TQFP, and 44-pad MLF.

• Operating Voltages.

— VCC: 4.0 — 6.0V AT90S8535.

— VCC: 2.7 — 6.0V AT90LS8535.

• Speed Grades:

— 0 — 8 MHz for the AT90S8535.

— 0 — 4 MHz for the AT90LS8535.

Pin Descriptions.

VCC Digital supply voltage.

GND Digital ground.

Port A (PA7.PA0) Port A is an 8-bit bi-directional I/O port. Port pins can provide internal pull-up resistors (selected for each bit). The Port A output buffers can sink 20 mA and can drive LED displays directly. When pins PA0 to PA7 are used as inputs and are externally pulled low, they will source current if the internal pull-up resistors are activated. Port A also serves as the analog inputs to the A/D Converter. The Port A pins are tri-stated when a reset condition becomes active, even if the clock is.

not running.

Port B (PB7.PB0) Port B is an 8-bit bi-directional I/O port with internal pull-up resistors. The Port B output buffers can sink 20 mA. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. Port B also serves the functions of various special features of the AT90S8535 as listed on page 74. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running.

Port З (PC7.PC0) Port З is an 8-bit bi-directional I/O port with internal pull-up resistors. The Port З output buffers can sink 20 mA. As inputs, Port З pins that are externally pulled low will source current if the pull-up resistors are activated. Two Port З pins can alternatively be used as oscillator for Timer/Counter2. The Port З pins are tri-stated when a reset condition becomes active, even if the clock is not running.

Port D (PD7.PD0) Port D is an 8-bit bi-directional I/O port with internal pull-up resistors. The Port D output buffers can sink 20 mA. As inputs, Port D pins that are externally pulled low will source current if the pull-up resistors are activated. Port D also serves the functions of various special features of the AT90S8535 as listed on page 83. The Port D pins are tri-stated when a reset condition becomes active, even if the clock is not running.

RESET Reset input. An external reset is generated by a low level on the RESET pin. Reset pulses longer than 50 ns will generate a reset, even if the clock is not running. Shorter pulses are not guaranteed to generate a reset.

XTAL1 Input to the inverting oscillator amplifier and input to the internal clock operating circuit.

XTAL2 Output from the inverting oscillator amplifier.

AVCC AVCC is the supply voltage pin for Port A and the A/D Converter. If the ADC is not used, this pin must be connected to VCC. If the ADC is used, this pin must be connected to VCC via a low-pass filter. See page 65 for details on operation of the ADC.

AREF AREF is the analog reference input for the A/D Converter. For ADC operations, a voltage in the range 2V to AVCC must be applied to this pin.

AGND Analog ground. If the board has a separate analog ground plane, this pin should be connected to this ground plane. Otherwise, connect to GND.

AT45DB32 Description.

The AT45DB321 is a serial-interface Flash memory suitable for in-system reprogramming. Its 34,603,008 bits of memory are organized as 8192 pages of 528 bytes each. In addition to the main memory, the AT45DB321 also contains two SRAM data buffers of 528 bytes each. The buffers allow receiving of data while a page in the main memory is being reprogrammed.

Features.

• Serial-interface Architecture.

• Page Program Operation.

— Single Cycle Reprogram (Erase and Program).

— 8192 Pages (528 Bytes/Page) Main Memory.

• Optional Page and Block Erase Operations.

• Two 528-byte SRAM Data Buffers — Allows Receiving of Data while Reprogramming of Nonvolatile Memory.

• Internal Program and Control Timer.

• Fast Page Program Time — 7 ms Typical.

• 120 µs Typical Page to Buffer Transfer Time.

• Low-power Dissipation.

— 4 mA Active Read Current Typical.

— 3 µA CMOS Standby Current Typical.

• 13 MHz Max Clock Frequency.

• Hardware Data Protection Feature.

• Serial Peripheral Interface (SPI) Compatible — Modes 0 and 3.

• CMOS and TTL Compatible Inputs and Outputs.

• Commercial and Industrial Temperature Ranges.

Pin Name Function.

CS Chip Select.

SCK Serial Clock.

SI Serial Input.

SO Serial Output.

WP Hardware Page Write Protect Pin.

RESET Chip Reset.

RDY/BUSY Ready/Busy.

ПРИНЦИП ДЕЙСТВИЯ.

Пристрій складається з таких елементів: контролер з урахуванням мікропроцесора, виконує функцій управління пристроєм. До складу MC також входять АЦП і ЦАП, тому микроконтроллер також виконує функції оцифровывания аналогового сигналу і перетворення цифрових кодів в аналоговий сигнал. Підсилювачі U1 і U2 призначені посилення аналогових сигналів та обмеження верхніх граничних частот цих сигналів до запланованих 4 кГц. Мікрофон і динамік призначені відповідно для введення і відтворення голосової інформації. Генератор опорного напруги U3 формує опорне напруга для вбудованого АЦП микроконтроллера MC. Тактовий генератор G призначений для тактирования всіх внутрішніх схем микроконтроллера. Энергонезависимая пам’ять RAM варта зберігання всієї записываемой голосової інформації. Блок клавіатури KBD призначений керувати режимами устрою. Блок індикації LED призначений для індикації режимів роботи устройства.

Вхідний сигнал з мікрофона надходить на усилитель-фильтр U1, де зараз його посилюється до розмаху на кілька вольт і рибопродукції обмежується верхньої частотою до запланованих 4 кГц. З виходу усилителя-фильтра U1 сигнал надходить на вхід убудованого АЦП AD0. Оброблений сигнал програмно записується в RAM лініями, передбачених протоколом SPI (рис.5).

Див. Мал.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, за двома зарезервованими бітами (нулями), завантажується код операції 0×50, потім 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×32 = 448 циклов.

Коли перетворення закінчено, виникає переривання. Процедура переривання виконує цикл заповнення порожніх 62 циклів (510−448), до початку нового преобразования.

Результатом 10-разрядного перетворення є величина на вході АЦП, з’являється через 2 циклу від початку перетворення. Ці 10 біт перекривають діапазон від AGND до AREF (у цьому прикладі від 0 до 5В). Вихідний сигнал ланцюга мікрофона обмежений діапазоном 2.3В…3.5 В. Тому з результату 10-разрядного перетворення віднімається мінімальне вхідний напруга. Це 0x1D5 для 2.3 В. Частина даних, які мають сигнал величиною вище 3.5 В, прибирається шляхом видалення двох MSB. Це потрібно автоматично, коли результат перетворення передається в підпрограму «запис у флеш», тому що ці перемінні «flash_data» визначаються типом «char» (8-бит). Останні 8-бит даних мали бути зацікавленими записані в DataFlash перед наступним перериванням преобразования.

Малюнок 13. Запись.

Запис даних в DataFlash.

Малюнок 14. Запис в DataFlash.

Запис даних в DataFlash виробляється шляхом записи спочатку у буфер, а, коли цей буфер заповнить, його вміст запишеться до однієї сторінку головною памяти.

У подпрограмме «write_to_flash» змінна «j» відповідає номера байта в буфері, а змінна «k» номера сторінки, на якому буде записуватися вміст буфера. Якщо прапор нових даних показує, що DataFlash порожня, то обидва счётчика встановлюються в нуль.

Якщо пам’ять вже містить деякі дані, то перемінні показують таке вільне місце у пам’яті, і гарантують, нові дані додадуться до памяти.

Щоб захистити вміст цих змінних при двох викликах функцій, вони з’являються статичними переменными.

Для записи даних в буфер, лінія #CS перетворюється на низька стан й у DataFlash завантажується операційний код 0×84. Це слід за 14 які мають сенсу бітами 10-битовым адресою становища всередині буфера. Потім вводяться 8-бит данных.

Ця послідовність передається «відомому» побайтно. Після кожного байта перевіряється регістр стану SPI (SPSR), поки прапор переривання SPI не покаже, що послідовна передача завершено. Після записи всієї послідовності лінія #CS перетворюється на високе состояние.

Якщо буфер заповнений і залишився порожні сторінки, то буфер копіюється для наступної сторінку DataFlash. Оскільки пам’ять була очищена раніше, то дані можуть бути записані без додаткового стирания.

Якщо пам’ять заповнена, то цикл виконується, поки натиснута кнопка «запис». Будь-які дані, записані той час, коли пам’ять вже заповнена, будуть потеряны.

Воспроизведение.

Процедури «відтворення», вміст DataFlash зчитується і модулюється як 8-разрядная ШИМ на частоті 15.686 гц. Досягнення більшої швидкості, дані не читаються прямо з основний пам’яті, а передаються одного з двох буферів і далі читаються з буфера. Саме тоді копіюється наступна сторінка пам’яті на другий буфер. Для ШИМ, 16-разрядный Таймер/Счётчик 1 використовується після виходу ШИМ на OC1B. Це описується в регістрі управління Таймера/Счётчика A і B (TCCRA/TCCRB). Для запуску ШИМ з можливою найбільшої частотою, дільник тактовою частоти ШИМ встановлюється в 1.

Коли установка завершено, перша сторінка копіюється в буфер 1, у вигляді перекладу лінії #CS в низька стан і передачею відповідних команд в DataFlash. Передача сторінки в буфер починається, коли лінія #CS перекладається знову у високе стан. Коли стан виведенні Ready/Busy змінюється пам’яттю DataFlash високу, це означатиме, що буфер 1 містить справжні дані. Потім починається передача наступній сторінки в буфер 2. Оскільки обидва буфера незалежні друг від друга, то дані можуть завжди читатися з буфера 1, поки DataFlash залишається зайнятою копіюванням даних із другий сторінки в буфер 2.

Для читання байта з буфера, в DataFlash має бути записаною фіктивна величина. Операція записи «ведучого» в SPI «відомого» призводить до того, що вміст його регістру даних SPI (SPDR) змінюватиметься. Після записи фіктивного байта в DataFlash, регістр SPDR микроконтроллера AVR містить вихідних даних з DataFlash.

Малюнок 15. Воспроизведение.

Коли значення ШИМ счётчика одно «0», Таймер 1 викликає переривання переповнення. Це переривання використовується для синхронізації вихідних даних із DataFlash частотою ШИМ. Коли значення з буфера зсувається в микроконтроллер AVR, цикл виконується до того часу, поки Таймер 1 не викликає переривання переповнення. Потім дані записуються в вихідний регістр порівняння Таймера/Счётчика 1 B (OCR1B), автоматично защёлкивая вихід ШИМ, коли лічильник ШИМ досягне максимального значення (255 для 8-разрядной ШИМ).

Коли вважається останнє значення з буфера, активний буфер переключится.

Якщо відтворено вся пам’ять, то ми все переривання відключено і Таймер/Счётчик 1 остановлен.

Малюнок 16. Наступна сторінка в наступний буфер

Малюнок 17. Активний буфер в динамик.

Зміна і оптимизация.

Сигнал із виходу мікрофона може змінюватися залежно від типу використовуваного мікрофона. Досягнення кращих результатів важливо вибрати такий коефіцієнт посилення мікрофонного підсилювача, що забезпечить максимальний сигнал, найближчий до AREF.

Дані, записані DataFlash, цілком відповідають даним, ліченим з АЦП. Що стосується запис у протягом великого проміжку часу, чи записи стерео сигналу може знадобитися упаковка цих данных.

У цьому вся прикладі наведено два способу застосування прапора состояния.

Перший спосіб — використання глобальної перемінної (тобто. змінна «wait» використовують у подпрограмме «playback»). Другий спосіб — використання незадействованного біта в регістрі. У подпрограмме «стирання», використовується біт ACIS1 (регістру управління і стан аналогового компаратора (ACSR))для відображення те, що такими етапом має бути збереження нових данных.

Частота вибірки рівна 15.686 гц (приблизно 510 циклів), генерується з допомогою переривання АЦП і циклу затримки. Вона то, можливо замінена незалежним таймером (Таймер/Счётчик 0 чи Таймер/Счётчик 2), якщо він використовується й інших целей.

Приклад програми мовою C.

/* Очищення всіх сторінок на разі потреби. Запис даних в буфер 1. Якщо буфер заполнен,.

його вміст записується в сторінку пам’яті. Читання DataFlash через буфер 1 і буфер 2 в.

регістр данных.

*/.

#include «io8535.h».

#include.

#include «stdlib.h».

#include «dataflash.h».

// прототипы.

void setup (void);

void erasing (void);

void recording (void);

void interrupt[ADC_vect] sample_ready (void);

void write_to_flash (unsigned char ad_data);

void playback (void);

void next_page_to_next_buffer (unsigned char active_buffer, unsigned int page_counter);

void interrupt[TIMER1_OVF1_vect] out_now (void);

void active_buffer_to_speaker (unsigned char active_buffer);

// глобальні переменные.

volatile unsigned char wait = 0;

void setup (void).

{.

DDRB = 0xBD; // Ініціалізація порту SPI.

// SCK, MISO, MOSI, CS, LED, WP, RDYBSY, RST.

// PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.

// O I O O O O I O.

// 1 0 1 1 1 1 0 1.

PORTB = 0xFF; // все виходи в високому стані, на входах.

нагрузочные резисторы (LED погашен).

DDRA = 0×00; // Port A окреслюється вход.

PORTA = 0×00;

DDRD = 0×10; // Port D окреслюється вхід (D4: выход).

_SEI (); // переривання разрешены.

}.

void erasing (void).

{.

unsigned int block_counter = 0;

unsigned char temp = 0×80;

ACSR |= 0×02; // установка прапора, що демонструє, що следующим.

етапом мусить бути запис данных.

// переривання заборонені, порт SPI увімкнули, «провідний» режим, перший MSB, 3 режим SPI, Fcl/4.

SPCR = 0x5C;

while (block_counter < 512)>

{.

PORTB &= ~DF_CHIP_SELECT; // включення DataFlash.

SPDR = BLOCK_ERASE;

while (!(SPSR & temp)); // очікування завершення передачи.

SPDR = (char)(block_counter>>3);

while (!(SPSR & temp)); // очікування завершення передачи.

SPDR = (char)(block_counter.

ADCSR |= 0×40; // старт нового АЦ преобразования.

write_to_flash (ADC-0x1D5); // читання даних, перетворення 8 біт и.

збереження у флэш.

}.

void write_to_flash (unsigned char flash_data).

{.

static unsigned int buffer_counter;

static unsigned int page_counter;

unsigned char temp = 0×80;

if ((ACSR & 0×02)) // якщо прапор встановлено, нові дані повинні быть.

установлены.

{.

buffer_counter = 0;

page_counter = 0; // скидання счётчика якщо би мало бути записаны.

нові данные.

ACSR &= 0xFD; // очищення прапора сигнала.

}.

while (!(PINB & 0×02)); // перевірка зайнятості флэша.

PORTB &= ~DF_CHIP_SELECT; // включення DataFlash.

SPDR = BUFFER1_WRITE;

while (!(SPSR & temp)); // очікування завершення передачи.

SPDR = 0×00; // не важно.

while (!(SPSR & temp)); // очікування завершення передачи.

SPDR = (char)(buffer_counter>>8); // байдуже + перші двоє біта буфера.

адреса.

while (!(SPSR & temp)); // очікування завершення передачи.

SPDR = (char)buffer_counter; // буфер адреси (макр. 28 = 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) // якщо не заполнена>

{.

PORTB &= ~DF_CHIP_SELECT; // включити DataFlash.

SPDR = B1_TO_MM_PAGE_PROG_WITHOUT_ERASE; // записать.

дані з буфера 1 в страницу.

while (!(SPSR & temp)); // очікування завершения.

передачи.

SPDR = (char)(page_counter>>6);

while (!(SPSR & temp)); // очікування завершения.

передачи.

SPDR = (char)(page_counter.

(кнопка 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 = 0×00; // забороняємо все прерывания.

TCCR1B = 0×00; // зупиняємо лічильник 1.

SPCR = 0×00; // отключаем SPI.

}.

void next_page_to_next_buffer (unsigned char active_buffer, unsigned int page_counter).

{.

unsigned char temp = 0×80;

while (!(PINB & 0×02)); // чекаємо, поки флеш не освободится.

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.

while (!(SPSR & temp)); // очікуємо завершення передачи.

SPDR = 0×00; // записуємо яка має значення байт.

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 = 0×80;

PORTB &= ~DF_CHIP_SELECT; // включення DataFlash.

if (active_buffer == 1) // якщо буфер 1 активний буфер

{.

SPDR = BUFFER1_READ; // то читаємо з буфера 1.

}.

else // иначе.

{.

SPDR = BUFFER2_READ; // читаємо з буфера 2.

}.

while (!(SPSR & temp)); // очікуємо завершення передачи.

SPDR = 0×00; // запис котра має значення байта.

while (!(SPSR & temp)); // очікуємо завершення передачи.

SPDR = 0×00; // запис котра має значення байта.

while (!(SPSR & temp)); // очікуємо завершення передачи.

SPDR = 0×00; // розпочати з адреси 0 буфера.

while (!(SPSR & temp)); // очікуємо завершення передачи.

SPDR = 0×00; // запис котра має значення байта.

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 |= 0×08; // гасимо LED під час «холостий» работы.

}.

}.

DataFlash.h.

// изменён 19.04.1999.

// від використання 8535.

#include «ina90.h».

#pragma language=extended.

// DataFlash висновок скидання порту (PB 0).

#define DF_RESET 0×01.

// DataFlash висновок стану порту готов/занят (PB 1).

#define DF_RDY_BUSY 0×02.

// DataFlash захист від записи завантажувального сектора (PB 2).

#define DF_WRITE_PROTECT 0×04.

// DataFlash висновок порту вибору мікросхеми (PB 4).

#define DF_CHIP_SELECT 0×10.

// буфер 1.

#define BUFFER1 0×00.

// буфер 2.

#define BUFFER2 0×01.

// визначення всіх кодів операций.

// запис буфера 1.

#define BUFFER1_WRITE 0×84.

// запис буфера 2.

#define BUFFER2_WRITE 0×87.

// читання буфера 1.

#define BUFFER1_READ 0×54.

// читання буфера 2.

#define BUFFER2_READ 0×56.

// Буфер 1 в основну сторінку пам’яті програми з вбудованим стиранием.

#define B1_TO_MM_PAGE_PROG_WITH_ERASE 0×83.

// Буфер 2 в основну сторінку пам’яті програми з вбудованим стиранием.

#define B2_TO_MM_PAGE_PROG_WITH_ERASE 0×86.

// Буфер 1 в основну сторінку пам’яті програми без убудованого стирания.

#define B1_TO_MM_PAGE_PROG_WITHOUT_ERASE 0×88.

// Буфер 2 в основну сторінку пам’яті програми без убудованого стирания.

#define B2_TO_MM_PAGE_PROG_WITHOUT_ERASE 0×89.

// Основна сторінка пам’яті програми крізь буфер 1.

#define MM_PAGE_PROG_THROUGH_B1 0×82.

// Основна сторінка пам’яті програми крізь буфер 2.

#define MM_PAGE_PROG_THROUGH_B2 0×85.

// автоматична перезапис сторінки через буфер 1.

#define AUTO_PAGE_REWRITE_THROUGH_B1 0×58.

// автоматична перезапис сторінки через буфер 2.

#define AUTO_PAGE_REWRITE_THROUGH_B2 0×59.

// порівняння основний сторінки пам’яті з буфером 1.

#define MM_PAGE_TO_B1_COMP 0×60.

// порівняння основний сторінки пам’яті з буфером 2.

#define MM_PAGE_TO_B2_COMP 0×61.

// передача основний сторінки пам’яті в буфер 1.

#define MM_PAGE_TO_B1_XFER 0×53.

// передача основний сторінки пам’яті в буфер 2.

#define MM_PAGE_TO_B2_XFER 0×55.

// регістр стану DataFlash для читання щільності, порівняння состояний,.

// і стан готов/занят.

#define STATUS_REGISTER 0×57.

// читання основний сторінки памяти.

#define MAIN_MEMORY_PAGE_READ 0×52.

// очищення 528 байт страницы.

#define PAGE_ERASE 0×81.

// очищення 512 страниц.

#define BLOCK_ERASE 0×50.

#define TRUE 0xff.

#define FALSE 0×00.

РОЗРАХУНОК ЧАСУ НАПРАЦЮВАННЯ НА ОТКАЗ.

Інтенсивність відмов устрою, що містить різнотипні елементи, визначається наступним соотношением:

Середнє час напрацювання відмовитися устрою составляет:

Tср = 1/?

№ Тип елемента Кількість елементів Q? Q*?

1 К1401УД2 AT90S8535−8PI AT45DB32 2 1 1 0.017*10−6 0.017*10−6 0.017*10−6 0.034*10−6 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=350 754 час.

ОЦІНКА КІЛЬКОСТІ ПОМИЛОК У ПРОГРАММЕ.

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. internet.

internet.

Показати весь текст
Заповнити форму поточною роботою