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

·  микроконтроллер;

·  цифро-аналоговый преобразователь, поскольку выходной сигнал должен выдаваться в аналоговой форме;

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

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

Рисунок 2 – структурная схема генератора.


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

Для разработки принципиальной схемы в первую очередь необходимо определиться с микроконтроллером. Поскольку микроконтроллеры семейств PIC10 и PIC12 не удовлетворяют минимальным системным требованиям, то было решено использовать наиболее распространенный контроллер семейства PIC16 – PIC16F84A.

Рисунок 3 – УГО микроконтроллера PIC16F84A.

Порт RA использовать нецелесообразно, поскольку линия RA4 является выходом с открытым коллектором, и для ее задействования необходим дополнительный подтягивающий резистор.  Порт RB старшими пятью линиями подключается к ЦАП и конфигурируется на выход. Схемы сброса и подключения кварцевого резонатора частотой 28 кГц – стандартные для данного микроконтроллера.

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

Рисунок 4 – Схема подключения биполяризатора к ЦАП.

В схеме на рисунке 4 сопротивления резисторов соотносятся как R3=R4=2R2, типовые значения R2=10 кОм, R3=R4=20 кОм. Допуски этих резисторов не должны превышать ±0,1%. Конденсатор С4 емкостью 100 пФ фильтрует высокочастотные помехи, возникающие при переключении разрядов ЦАП.


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

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

Рисунок 5 – Алгоритм работы программы.

При расчете количества инструкций задержки NOP необходимо учесть, что два машинных цикла занимает выдача константы в порт и еще два цикла – безусловный переход на начала цикла алгоритма. Для уменьшения размера программы было решено ввести подпрограмму DELAY, состоящую из единственной инструкции RETURN, обращение к которой заменяет 4 инструкции NOP (две – на вход в подпрограмму и две – на выход из подпрограммы).

Листинг программы для микроконтроллера представлен в Приложении А к пояснительной записке.


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

Для разработки и тестирования генератора была использована САПР Proteus 7.8, обладающая широкими возможностями отладки устройств на микроконтроллерах. Proteus имеет встроенный ассемблер MPASM, поэтому программы на ассемблере можно писать в обычном «блокноте», и они будут автоматически ассемблированы и запущены на симуляцию.

Для моделирования была собрана принципиальная схема генератора и установлена тактовая частота микроконтроллера 28 кГц.

Рисунок 6 – Схема генератора в Proteus.

К выходу генератора подключен осциллограф, и после запуска моделирования была получена осциллограмма, изображенная на рисунке 7.

Рисунок 7 – Осциллограмма сигнала на выходе генератора.

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


Заключение

В ходе выполнения курсового проекта был разработан функциональный генератор на микроконтроллере PIC16F84A, выдающий ступенчатую функцию амплитудой 3 В и периодом 10 мс. Разработанное программно-схемотехническое решение, по-видимому является оптимальным, поскольку не удалось найти более дешевых микроконтроллеров, имеющих необходимое количество выводов. Использование микроконтроллеров со встроенным ЦАП является нецелесообразным, поскольку они являются униполярными.


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

list p=16f84

#include p16f84.inc

CLRF PORTB       ; Инициализация PORTB

BSF STATUS, RP0

CLRF TRISB

BCF STATUS, RP0

LOOP             ; Основной бесконечный цикл

MOVLW 0x88       ; Установка +Е/4

MOVWF PORTB

NOP

NOP

NOP

MOVLW 0x90       ; Установка +Е/2

MOVWF PORTB

CALL DELAY

CALL DELAY

MOVLW 0xA0       ; Установка +Е

MOVWF PORTB

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

NOP

NOP

MOVLW 0x78       ; Установка -Е/4

MOVWF PORTB

NOP

NOP

NOP

MOVLW 0x70       ; Установка -Е/4

MOVWF PORTB

CALL DELAY

CALL DELAY

MOVLW 0x60       ; Установка -Е

MOVWF PORTB

CALL DELAY

CALL DELAY

CALL DELAY

CALL DELAY

GOTO LOOP

DELAY            ; Подпрограмма задержки

RETURN

END


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

          1. Мячин Ю.А. 180 аналоговых микросхем: Справочник. - М: Патриот, 1993. - 152 с.: ил.

2. Справочник по микропроцессорным устройствам/ Молчанов А.А., Корнейчук В.И., Тарасенко В.П., Россошинский Д.А. - К.: Технiка, 1987. – 288 с.: ил.

3. Федорков Б.Г. Микросхемы ЦАП и АЦП: функционирование, параметры, применение. - М.: Энергоатомиздат, 1990. - 320 с.: ил.

4. Цифровые и аналоговые интегральные микросхемы: Справочник/ Под ред. Якубовского С.В. - М.: Радио и связь, 1990. - 496 с.: ил.