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

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Содержание

Введение.......................................................................................................... 2

1. Анализ технического задания..................................................................... 3

2. Разработка структурной схемы.................................................................. 5

3. Разработка принципиальной схемы............................................................ 6

4. Разработка программного обеспечения..................................................... 8

5. Моделирование работы устройства......................................................... 10

Заключение.................................................................................................... 12

Приложение А – Листинг программы микроконтроллера.......................... 13

Приложение Б – Библиография.................................................................... 14


Введение

Функциональные генераторы – распространенный класс устройств, которые выдают на выходе периодический сигнал, который является некой не простейшей (не линейной в частности) функцией от времени, отсчитываемого с начала периода.

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

С развитием цифровой техники стало очевидным, что любой функциональный генератор можно выполнить на основе микропроцессора – путем вычисление функции через разложение в ряд Тейлора (при большом количестве точек, малой частоте генерации и большой вычислительной мощности процессора) или непосредственно по таблицам значений, хранящейся в ПЗУ (при небольшом количестве точек).

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


1. Анализ технического задания

Для создания функционального генератора на основе микропроцессора необходимо, чтобы требуемая функция была представлена в цифровом виде, для чего следует произвести ее оцифровку, которая включает в себя два этапа: квантование и дискретизацию.

График исходной функции, построенный в соответствии с заданием на курсовой проект, показан на рисунке 1.

Рисунок 1 – График целевой функции.

Из графика на рисунке 1 видно, что дискрет целевой функции равен 1/14 периода в 10 мс, следовательно, для точной дискретизации необходимо обеспечить такую частоту тактирования микроконтроллера, при которой одному дискрету будет соответствовать целое количество машинных циклов. Поскольку предполагается использование микроконтроллера фирмы Microchip, который выполняет 1 машинный цикл за 4 такта, то тактовая частота, соответствующая одному циклу на дискрет, составит

.

Эта частота очень мала, и ее невозможно обеспечить кварцевым резонатором, поскольку промышленные резонаторы имеют минимальную частоту 20 кГц. Использование распространенных мегагерцовых резонаторов также является нецелесообразным, поскольку это приведет к бесполезному увеличению потребляемого микроконтроллером тока, поэтому оптимальным будет выбор низкочастотного резонатора, при котором дискрет будет соответствовать пяти машинным циклам, т.е. имеющим частоту 28 кГц.

Квантование сигнала осуществляется по 7 уровням, причем каждый из них в 2 раза больше предыдущего, что позволяет закодировать все уровни точным цифровым кодом. Поскольку амплитуда сигнала равна 3 В, что составляет ровно ¼ часть от 12 В – напряжения питания операционных усилителей биполяризатора, то выходной сигнал будет полностью свободен от погрешностей оцифровки.

Таблица 1 – Кодирование уровней сигнала.

Уровень

Напряжение

Цифровой код

BIN

HEX

3 В

10100000

A0

+Е/2

1,5 В

10010000

90

+Е/4

0,75 В

10001000

88

0

0 В

10000000

80

-Е/4

-0,75 В

01111000

78

-Е/2

-1,5 В

01110000

70

-3 В

01100000

60

Из таблицы 1 видно, что для реализации генератора было бы достаточно 5-разрядного ЦАП (три младших бита всегда равны нулю), но поскольку ЦАП такой разрядности не выпускаются, то логично будет применить 8-разрядное кодирование, что соответствует разрядности стандартного порта микроконтроллера и упрощает реализацию генератора.

Что касается требований к микроконтроллеру, то он должен иметь как минимум 5 линий вывода и 2 вывода для подключения кварцевого резонатора, что автоматически исключает возможность применения микроконтроллеров семейств PIC10 и PIC12.


2. Разработка структурной схемы

Исходя из выводов, изложенных в пункте 1, следует вывод, что устройство должно содержать следующие структурные блоки:

Похожие материалы

Информация о работе

Предмет:
КТС
Тип:
Практика
Размер файла:
331 Kb
Скачали:
0

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.