Скачиваний:
39
Добавлен:
21.02.2014
Размер:
169.47 Кб
Скачать

РАЗРАБОТКА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ

Пусть необходимо разработать принципиальную схему и программное обеспечение МПС управления широтно-импульсным стабилизатором напряжения с частотой = 1 кГц. Микропроцессорная система управления обеспечивает обработку сигнала обратной связи U с выхода АЦП по закону пропорционального регулятора:

,

где  - коэффициент заполнения импульсов широтно-импульсного стабилизатора, 20Н - код опорного сигнала.

Структурная схема МПС управления показана на рисунке 1.

Рисунок 1 - Структурная схема МПС управления

Сигнал обратной связи поступает на АЦП, который преобразует его в двоичный код. Этот код по системной шине поступает в ЦП, где по программе, записанной в ПЗУ, обрабатывается по закону пропорционального регулятора. Результатом вычисления является коэффициент заполнения импульсов ШИМ, который загружается в регистр таймера ПТ как константа. На выходе таймера образуются логические уровни импульсов управления ШИМ.

Функциональная схема МПС управления показана на рисунке 2.

При разработке функциональной схемы модуля центрального процессора возникает потребность в демультиплексировании шины адреса/данных, буферизации шин адреса (АВ) и шин данных (BD), а также в формировании системных управляющих сигналов памяти и внешних устройств. Демультиплексирование осуществляется с помощью двух БИС К580ИР82, которые выполняют функции защелки адреса и буфера шины АВ; буферизация шин данных создается с помощью двунаправленных шинных формирователей К580ВА86, усиливающих сигналы шины данных; формирование управляющих сигналов осуществляется с помощью комбинационных логических элементов. На выходе этих элементов формируются сигналы

Поскольку в разрабатываемой МПС не нужны режимы ПДП, прерываний и обмена по сигналу готовности, схема не содержит входов запросов прерываний, готовности, запроса ПДП и разрешения шин BUSEN. Поэтому на входы БИС генератора, ЦП, регистров-защелок и буферных регистров поданы постоянные логические уровни нуля или единицы. Отсутствуют также схемы оконечных каскадов, формирующих управляющие сигналы (в этой схеме нет потребности переводить управляющие сигнал в третье состояние).

Рисунок 2 - Функциональная схема МПС

Модуль ПЗУ выполнен на базе двух БИС КР556РТ5 емкостью 512 х 8 бит каждая. Память организована в виде двух банков памяти - младшего и старшего. Младший банк подключается к младшей половине шины данных D7-D0 и содержит только ячейки памяти с четными адресами; старший банк - к старшей половине шины данных D15-D8 и содержит только ячейки памяти с нечетными адресами. Считывание из ПЗУ происходит при выполнении цикла чтения памяти. При этом формируется сигнал =0, который и переводит выходы БИС ПЗУ в активное состояние. Из ПЗУ всегда считывается слово. Для данного примера начальный адрес ПЗУ определим при нулевых значениях А9-А1, А0, а конечный - при единичных.

Таким образом, начальный адрес ПЗУ - 00000Н, конечный адрес ПЗУ - 003FFH. Функциональная схема содержит также АЦП К572ПВ1, что представляет собой 12-разрядный преобразователь напряжения в двоичный код сравнительно низкого быстродействия. Поскольку АЦП имеет внутренний регистр со входом управления третьим состоянием, внешний порт ввода не нужен. Выход АЦП соединен с линиями D11-D0. С точки зрения процессора, АЦП представляет собой 16-разрядный порт. Адрес 16-разрядного порта должен быть четным. Как видно из рисунка 2, АЦП выбирается при A3 = 1. Таким образом, адрес АЦП может быть любым при A3 = 1, А0 = 0. Например, выберем адрес АЦП, равный 08Н.

Программируемый таймер К1810ВИ54 в данной схеме предназначен для генерации импульсов управления широтно-импульсным стабилизатором. Таймер содержит три независимых канала, каждый из которых может быть запрограммирован на работу в одном из шести режимов для двоичного и двоично-десятичного счета. В данном примере используют такие режимы работы каналов:

- канал 0 - программируемый мультивибратор;

- канал 1 - импульсный генератор частоты для запуска канала 0;

- канал 2 - импульсный генератор для задания частоты работы АЦП.

Как видно из рисунка 2, таймер выбирается при адресе с A3 = 0. Линии А1 и А2 выбирают один из трех каналов таймера или регистр управляющего слова. Таким образом, адресами таймера будут:

- адрес канала 0 - 00Н;

- адрес канала 1 - 02Н;

- адрес канала 2 - 04Н;

- адрес РУС - 06Н.

Преобразуем коэффициент заполнения широтно-импульсного стабилизатора gamma в константу загрузки таймера. Заметим, что выходная частота стабилизатора равняется 1 кГц, а частота тактовых импульсов = 5 МГц.

Канал 0. Согласно заданию коэффициент заполнения импульсов широтно-импульсного стабилизатора равняется

Определим период работы широтно-импульсного стабилизатора как

.

Тогда продолжительность импульса

.

Продолжительность счетных импульсов каналов (CLK) при частоте работы процессора 5 МГц

.

Код загрузки канала 0 таймера определим как отношение τi к ТCLK, т.е.

.

Канал 1. Коэффициент деления канала 1 определим как отношение продолжительности периода широтно-импульсного стабилизатора к продолжительности периода TCLK, т.е.

.

Канал 2. Коэффициент деления канала 2 определим как отношение продолжительности периода тактовых импульсов АЦП (170 кГц) к продолжительности периода TCLK, т.е.

Алгоритм управления широтно-импульсным стабилизатором показан на рисунке 3. Сначала в оба канала таймера загружаются управляющие слова. Управляющее слово для канала 0 равняется 00110010В и определяет режим 1 счетчика 0, загрузка сначала младшего, а потом старшего байта, счет - двоично-десятичный. Управляющее слово для каналов 1 и 2 определяет режим 1, загрузка сначала младшего, а потом старшего байтов, счет - двоично-десятичный. Управляющие слова равняются 01110100В и 10110100В соответственно. После загрузки управляющих слов программа загружает начальные значения в каналы 1 и 2 таймера. На этом инициализация заканчивается и начинается бесконечный цикл ввода кода напряжения обратной связи с АЦП, перерасчет его в код загрузки таймера и вывод его в канал 0.

Рисунок 3 - Алгоритм управления широтно-импульсным стабилизатором

После системного сброса регистры CS и IP МП приобретут значения 0FFFFH и 0000Н соответственно. Это приведет к тому, что в адресе первой ячейки ПЗУ, к которой после сброса обратится МП в первом машинном цикле ВЫБОРКА КОМАНДЫ, четыре младших разряда будут нулевыми, а все другие - единичными. Тогда этот адрес будет равняться 3F0H.

Программа имеет вид:

START:

L:

D:

ORG 3F0H

JMP START

ORG 100Н

MOV AL, 00110010B

OUT 06, AL

MOV AL, 01110100B

OUT 06, AL .

MOV AL,10110100B

OUT 06, AL

MOV AX, 5000

OUT 02H, AL

MOV AL, AH

OUT 02H, AL

MOV AL, 29

OUT 04H, AL

MOV AL, 00

OUT 04H, AL

IN AX, 08H

AND AX, OFFFH

SUB AX, 20H

MOV BL, 20

MUL BL

ADD AX, 2500

OUT 00H, AL

MOV AL, AH

OUT 00H, AL

MOV CX, 100

LOOP D

JMP L

END.

; Формирование в AL управляющего

; слова режима "1" канала 0

; Вывод управляющего слова в РУС

; Формирование в AL управляющего

; слова режима "2" канала 1

; Вывод управляющего слова в РУС

; Формирование в AL управляющего

; слова режима канала 2

; Вывод управляющего слова в РУС

; Задание частоты преобразования

; fвых = 1кГц

; Запись младшего байта кода

; предустановки в канал 1

; Запись старшего байта кода

; предустановки в канал 1

; Задание частоты АЦП fвых=170 кГц

; Запись кода предустановки в

; канал 2

; Ввод сигнала обратной связи U

; Выделение значащих цифр U

; Вычитание, результат - в АХ;

; Умножение на 20, результат - в АХ

; Сложение 2500+20(U-20H),

; результат в АХ

; Запись младшего байта кода

; предустановки в канал 0

; Запись старшего байта кода

; предустановки в канал 0

; Задержка на время, большее чем

; время преобразования АЦП

; t=16x100x200 (нc)

; Цикл