МПСС. KursPrj. Разработка микропроцессорной системы управления некоторым объектом

Разработка микропроцессорной системы управления некоторым объектом.

ОГЛАВЛЕНИЕ

 

ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ. 3

СТРУКТУРНАЯ СХЕМА МПС.. 4

ОПИСАНИЕ МИКРОПРОЦЕССОРНОГО МОДУЛЯ СО СХЕМОЙ ЗАПУСКА МПС.. 4

ОПИСАНИЕ ПОДСИСТЕМЫ ПАМЯТИ.. 8

БЛОК ОЗУ.. 8

БЛОК ПЗУ.. 10

СОГЛАСОВАНИЕ ВРЕМЕННЫХ ДИАГРАММ ПРОЦЕССОРА И ЗАПОМИНАЮЩИХ УСТРОЙСТВ.. 11

ОПИСАНИЕ ПОДСИСТЕМЫ ВВОДА-ВЫВОДА ИНФОРМАЦИИ.. 12

Подсистема ввода информации. 12

Подсистемы вывода информации. 13

ОПИСАНИЕ ПУЛЬТА УПРАВЛЕНИЯ.. 14

ОПИСАНИЕ ОТЛАДОЧНОГО ПУЛЬТА.. 16

КАРТА РАСПРЕДЕЛЕНИЯ АДРЕСНОГО ПРОСТРАНСТВА МПС.. 18

БЛОК СХЕМЫ ЗАДАННЫХ АЛГОРИТМОВ И ПРОГРАММ ИХ РЕАЛИЗАЦИИ.. 18

Основная программа. 18

ОЦЕНКИ БЫСТРОДЕЙСТВИЯ И АППАРАТНЫХ ЗАТРАТ РАЗРАБОТАННОЙ МПС.. 20

 

 

 

 

ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ

Целью курсового проектирования является разработка микропроцессорной системы управления некоторым объектом.

разработка микропроцессорной системы управления некоторым объектом

Микропроцессорная система (МПС) принимает информацию об объекте управления (ОУ) от цифровых датчиков (Д), вырабатывает управляющие воздействия (У) в соответствии с законом управления и подает их на исполнительные механизмы (ИМ). Закон управления реализует в МПС, состоящей из микроконтроллера (МК) – управляющей микроЭВМ, и пульта управления (ПУ). С помощью ПУ оператор получает возможность управлять работой МПС: запускать ее и останавливать, выдавать значение некоторых установок (констант), снимать с индикаторов информацию о состоянии объекта и т.п. На этапе отладки программных средств, а также при контроле работоспособности МПС используется отладочный пульт (ОП).

С помощью последовательного канала (ПК) связи МПС может передавать обработанную информацию машине более высокого уровня по запросу ее от терминала.

В курсовом проекте разрабатываются структурная схема МПС, включая устройства связи с Д и ИМ, и программы, обеспечивающие выполнение заданного алгоритма обмена и выполнение директив монитора, осуществляется оценка характеристик МПС.

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

Исходными данными для проектирования микропроцессорной системы являются следующие:

из табл.1.1 из табл.1.2 Аварийная сигнализация Вариант I
функция

функция

время t1, мкс функция

функция

время t2,мкс время t2,мкс емк ПЗУ, байт тип БИС емк ПЗУ, байт тип БИС
 функция 20  функция 30 30 Звук 500Гц 16к КР568

РЕ2

256 К155

РУ7

 

 

СТРУКТУРНАЯ СХЕМА МПС

Структурную схему разрабатываемой МПС можно представить в следующем виде:

На рисунке использованы следующие обозначения:

V1, V2, V3 — аналоговые сигналы, поступающие через аналоговый мультиплексор МПР на вход АЦП;

X1,…, Xn — цифровые двоичные сигналы, формируемые соответственно датчиками Д1,…,Дn ;

y1, y2, y3 — одноразрядные управляющие сигналы , вырабатываемые МК и поступающие на исполнительные механизмы ИМ;

y4 — 8-разрядный код , преобразуемый в аналоговый сигнал ЦАП;

INT0 – INT4 — запросы на прерывание;

Д, ША, ШУ — шины данных, адреса и управления;

CS — выборка кристалла;

R/W – сигнал чтения и записи информации в ОЗУ.

ИУВВ, ИУВыв — интерфейс устройств ввода и вывода информации, для реализации которого используется параллельные периферийные адаптеры КП580ВВ55 (Intel 8255), осуществляющие связь с цифровыми датчиками, АЦП, ЦАП, исполнительными механизмами;

КП — контроллер прерываний для обслуживания запросов прерываний. В качестве КП в проекте используется БИС КР580ВН59/К1810ВН59А (Intel 8259А);

Т — таймер для формирования сигналов с частотой 2 или 500 Гц на аварийную сигнализацию Авост в соответствии с заданием. В качестве таймера в проекте используется БИС К580/К1810ВИ53/54 (Intel 8253/54).

ПУ и ОП — пульт управления и отладочный пульт, представляющие собой наборы входных и выходных портов, реализованных на БИС параллельного интерфейса К580/К1810ВВ55 (Intel 8255) или на микросхемах буферных регистров К580/K1810ИР82 (Intel 8282), К580/K1810ИР83 (Intel 8283). При проектировании пульта управления и отладочного пульта с высокой эффективностью может быть использована БИС контроллера клавиатуры и индикации К580ВВ79 (Intel 8279).

ОПИСАНИЕ МИКРОПРОЦЕССОРНОГО МОДУЛЯ СО СХЕМОЙ ЗАПУСКА МПС

Интегральная схема К1810ВМ88 представляет собой 16-битный микропроцессор с 8-битовой внешней шиной данных. Подключение микропроцессора К1810МП88 со схемой запуска представлена на следующем рисунке:

Подключение микропроцессора К1810МП88 со схемой запуска К1810ГФ84 К1810ВМ88 К1810ВА86 К1810ИР82 К1810ВА86

Микропроцессор на приведённой схеме подключён в минимальном режиме. с длиной такта в 200 нс. старшие разряды AD8-AD15 не защёлкиваются в регистре адреса, поскольку процессор имеет 8-и битную шину данных и их защёлкивать не нужно.

Ко входу питанию нужно подать +5В (на схеме не показано) и заземлит выход GND.

Временные диаграммы процессора ВМ86:

Временные диаграммы процессора ВМ86

Временные диаграммы ВМ88 во многом похожи на диаграммы ВМ86, но нет сигнала ВНЕ и на линиях А8-А15 адрес присутствует всё время, так как шина данных 8-битная.

Временные диаграммы ВМ88

Алгоритм работы:

Цикл начинается с формирования в такте T1 сигнала сигнал M/IO, определяющего тип устройства (ЗУ или ВУ), к которому производится обращение для пересылки данных. Длительность сигнала равна длительности цикла шины, и он используется для селекции адреса устройства. В такте T1 и в начале такта T2 микропроцессор выставляет адрес ЗУ на линии А19-А16 и AD15-AD0 либо адес ВУ на линии AD15-AD0, а также вырабатывает. Одновременно с этим МП выдаёт строб адреса ALE, по спаду которого младшая часть адреса сохраняется в регистре защёлке. На выходе этого регистра адрес сохраняется в течение всего цикла шины (до записи нового значения).

В такте Т2 происходит переключение шин: на линии A19/S6 – A16/S3 поступают сигналы состояния S6-S3, которые сохраняются до конца такта Т4.

В цикле чтения в такте Т2 линии А15-А0 переводятся в третью состояние до появления данных от адресованного устройства. В тактах Т2-Т4 вырабатывается сигнал чтения сигнал RD=0 , который указывает этому устройству на необходимость выдачи данных. Для управления буферами данных, которые обычно подключаются к линиям А7-А0, в тактах Т2-Т4 формируются сигнал сигнал DE , разрешающий передачу данных. Направление передачи данных при чтении определяет сигнал сигнал DT/R = 0, действующий в течение всего цикла.

После выполнения чтения и установления сигнала сигнал RD = 1 микропроцессор заканчивает такт Т4 следующим образом: линии А15-А0 находятся в высокоомном состоянии, сигналы M/IO,DE,DT/R, S7-S3 неактивны, буферы данных отключены от канала.

В цикле записи в такте Т2 адрес на линиях А7-А0 заменяется данными, предназначенными для записи в адресуемое устройство. Данные остаются действительными до середины такта Т4 и сопровождаются сигналом WR = 0, который используется в качестве строба для записи данных в устройство. Сигнал сигнал DE = 0 появляется уже в такте Т1 и используется для подготовки буферов к передаче данных. Сигнал DT/R = 1переключающий буферы на передачу данных в направлении к МП, удерживается на протяжении всего цикла записи. После установления WR=1 такт Т4 заканчивается так же, как и при выполнении цикла чтения.

Далее к процессорному модулю необходимо подключить таймер (К1810ВИ54). Этот таймер непосредственно согласован с процессором.

У таймера используется режим 1 и режим 3. Которые имеют следующие временные диаграммы работы:

Временная диаграмма работа ПТ в режиме 1

Временная диаграмма работы ПТ в режиме 3

Описание режимов 1 и 3:

Режим 1 – программируемый ждущий мультивибратор – на выходе OUT формируется сигнал низкого уровня длительностью T=TCLKN, где TCLK – период тактовых импульсов; N – константа. На выходе OUT по положительному фронту сигнала GATA устанавливается нулевой сигнал, который изменяется после окончания счёта. Режим 1 является режимом с перезапуском. По каждому фронту сигнала на входе GATA регистр CE перезагружается содержимым CR. Это означает, что однажды записанная константа участвует в счёта каждый раз по фронту сигнала GATA, причём по фронту первого сигнала GATA флаг обновления устанавливается в нуль.

Режим 3 – генератора со скважностью два. На выходе OUT формируются импульсы с длительностью полупериодов, равной N/2*TCLK при чётных N; (N+1)/2*TCLK для положительных и (N-1)/2*TCLK для отрицательных полупериодов при нечётных N. Этот режим является режимом с автозагрузкой, т. е. перезагрузка CE константой из CR выполняется автоматически после окончания цикла счёта. Перезагрузка константы во время счёта не влияет на текущий счёт, новый счёт начинается после окончания предыдущего. Снятие сигнала GATA приостанавливает счёт, установка его продолжает цикл счёта. В этом режиме канал может работать только с константой больше трёх.

Схема подключения таймеров:

Схема подключения таймеров К1810ВИ4 155ИД1

Контроллер прерываний:

Контроллер прерываний К1810ВН59А

ОПИСАНИЕ ПОДСИСТЕМЫ ПАМЯТИ

По заданию нужно использовать ввод-вывод с отображение в память. То есть обращение к ПЗУ будет происходить по командам mov, как и ОЗУ.

БЛОК ОЗУ

Блок ОЗУ необходимо построить на К155РУ7. Он должен быть размером в 256 байт. Но элемент К155РУ7 имеет побитовый доступ и в одной микросхеме содержится 1К. Следовательно для получения 256-ого ОЗУ необходимо на старшие биты адреса подать нули.

Характеристики К155РУ7:

 

тип микросхемы емкость, бит t(зп/сч), нс Uпит, В Pпот, Вт тип выхода
К155РУ7 1К × 1 45 5 0.9 ТТЛ-ОК-3
-CS -W/R A DI DO режим работы
1  ×  ×  × Z хранение
0 0 A 1 Z запись 1
0 0 A 0 Z запись 0
0 1 A  × D считывание

 

Так как организация доступа побитовая, то необходимо 8 микросхем К155РУ7.

Блок ОЗУ имеет следующий вид:

Блок ОЗУ  К155РУ7

БЛОК ПЗУ

Блок ПЗУ строится на КР568РЕ2. Необходимый объём – 16 кб. В одном элементы КР568РЕ2 может храниться 8 кб. Следовательно понадобится 2 элемента. Выбор необходимого элемента будет осуществляться по А13. 5-ый бит ШУ – выбор кристалла ПЗУ.

Основные характеристики КР568РЕ2:

Тип микросхемы Емкость бит tсч нс Uпит В Pпот мВт Тип выхода
КР568РЕ2 8К*8 400 5; 12 600 ТТЛ-3

 

Микросхема КР568РЕ2 работает в режимах хранения и считывания. Для считывания информации необходимо подать код адреса и разрешающий сигнал управления. Сигналы управления подаются уровнем.

Блок ПЗУ:

Блок ПЗУ  К568РЕ2 155ИД1

СОГЛАСОВАНИЕ ВРЕМЕННЫХ ДИАГРАММ ПРОЦЕССОРА И ЗАПОМИНАЮЩИХ УСТРОЙСТВ

Время выборки К155РУ7 составляет 45 нс. Время одного состояния процессора 200 нс. Блок ОЗУ полностью совместим с процессором К1810ВМ88.

Время выборки данных КР568РЕ2 составляет 400 нс. Время одного состояние процессора 200 нс. Но так как перед выборкой адреса сигнал с шины адреса должен пройти ещё дешифраторы, то потребуется 1 такт ожидания.

Построим схему формирования сигнала READY.

За основу используем 155АГ1 – неперезапускаемый мультивибратор без входа сброса.

Его сигналы запуска:

G1 G2 G3
0 X  сигнал
X 0  сигнал
1  сигнал 1
 сигнал 1 1

Длительность T выходного сигнала Q = 1 задаётся внешней RC – цепью. T=0,7 *RC. при R=1,4…40 кОм и C=0…1000мкФ. Минимальная длительность импульса Q=1 составляет 30…40 нс. Внутри ИС между выводами RI и RC включён резистор Ri, сопротивление которого порядка 2 кОм. Внешний резистор можно не использовать, ели соединить выводы RI и Vcc.

155ГА1

Необходимо получить сигнал равный 0 в течение 400 нс с момента подачи сигнал выбора кристалла на ПЗУ =0.

T=0,7 *RC

T=400 нс=400*10-9

Используем внутренний резистор Ri=2 ком. тогда необходим конденсатор, ёмкость которого:

C=T/(0,7 * R)=400*10-9/(0,7*2000)≈0,29 пФ

Схема формирования сигнала READY:

Схема формирования сигнала READY 155ГА1

ОПИСАНИЕ ПОДСИСТЕМЫ ВВОДА-ВЫВОДА ИНФОРМАЦИИ

Интерфейс устройств ввода-вывода строится на параллельном порту КП580ВВ55:

Таблица истинности БИС КР580ВВ55

сигналы на входах вид передаваемой

информации

направление передачи информации
A0 A1 -WR -RD -CS
0 0 1 0 0 данные PA→ШД[0 -7]
1 0 1 0 0 данные PB→ШД[0 -7]
0 1 1 0 0 данные PC→ШД[0 -7]
0 0 0 1 0 данные ШД[0 -7] →PA
1 0 0 1 0 данные ШД[0 -7] →PB
0 1 0 1 0 данные ШД[0 -7] →PC
1 1 0 1 0 управляющее слово ШД[0 -7]→регистр управляющего слова
 ×  ×  ×  × 1 нет передачи

Параллельный порт настроен таким образом, что работает в режиме 0 (простой ввод-вывод информации). При этом режиме информация, поступающая на КР580ВВ55 с ШД, запоминается в буферном регистре соответствующего канала и сразу же передается на его выходы. При вводе информации данные с каналов записываются в буферные регистры этих каналов и далее при поступлении сигнала -RD передаются на ШД.

Микросхема КР580ВВ55.

A1A0 Адресуемый регистр
00 Порт А
01 Порт B
10 Порт C
11 Регистр управляющего слова

Подсистема ввода информации

подсистема ввода информации КР590КН1 К572ПВ1

Параметры микросхемы КР590КН1:

R0, Ом макс (тип.) tвкл, нс макс. (тип.) tут, нА макс. (тип.) Uвх, В

(Iвх, мА)

Uп, В (выводы)
200

(140)

1000

(700)

50

(тип.)

±5

(±10)

+5; -15

(8) (16)

Параметры микросхемы К572ПВ1:

 

Число рарзядов Время преобразования (мкс) Нелинейность квантов Дифференциальная нелинейность квантов Напряжение питания, В Потребляемая мощность, мВт
12 110 4 2 +5В…15;

-15

30

Алгоритм работы с аналоговым мультиплексором. На входы A1, A0 подаётся адреса аналогового сигнала. Через 1000 нс на выходе будет необходимый аналоговый сигнал.

Алгоритм работы с АЦП К572ПВ1 следующий. Запуск АЦП производится положительным импульсом, подаваемым на вход ST (старт). Весь цикл преобразования длится 28 периодов тактовых импульсов: 2 периода —сброс, 24 периода — реализация программы последовательного приближения и 2 периода — формирование положительного импульса на выходе DR (готовность данных). Цикл преобразования АЦП может быть закончен досрочно, путём подачи повторного импульса запуска на вход ST.

АЦП обеспечивает преобразования напряжения от 0 до –UR. UR в этом АЦП может изменяться от -15 В до +15 В. Напряжение входа аналогового мультиплексора КР590КН1 ±5 В. Тогда пусть опорное напряжение UR будет равно -5 В. Тогда АЦП будет преобразовывать сигналы от 0 до +5 В.

Схема подсистемы ввода информации:

Схема подсистемы ввода информации КР590КН1 К572ПВ1 КП580ВВ55

Подсистемы вывода информации

Схема подсистемы вывода информации.

Параметры К572ПА2:

N Iвых, мА Tуст мкс Ur, В Uп В (Iп, мА) Зарубежный аналог
12 0,8 15 -15..15 +5 (2)

+15(2)

AD7545

 

Алгоритм работы с этим ЦАП:

по E1=1 данные записываются во внутренний регистр

по E2=1 данные из внутреннего регистра записываются в выходной и преобразуются в аналоговый сигнал

 

Подсистема вывода информации 155ЛН1 КП580ВВ55 572ПА2

ОПИСАНИЕ ПУЛЬТА УПРАВЛЕНИЯ

Пульт управления содержит следующие элементы:

  1. Регистр со светодиодами индикации значения Nv1, РИ1;
  2. Регистр со светодиодами индикации значений (X1,…, Xn), РИ2;
  3. Регистр со светодиодами индикации значений y1, y2, y3, РИ3;
  4. Регистр со светодиодами индикации кода y4, РИ4;
  5. Входной 8-разрядный регистр Р5 для приема с тумблеров с пульта кода К (для вариантов, в которых используется, см. табл. 1.2);
  6. Зуммер, на которые с таймера МПС подается меандр частотой 500 Гц,;
  7. Кнопку «СБРОС», при нажатии на которую производится начальная установка МПС (уже присутствует в блоке процессора);
  8. Тумблер «ОСТАНОВ», опрашиваемый в конце каждого цикла выполнения программы

Схема пульта управления:

Схема пульта управления КП580ВВ55 155ИД1

ОПИСАНИЕ ОТЛАДОЧНОГО ПУЛЬТА

Отладочный пульт подключается к системе для определения работоспособности ее программных и аппаратных средств. Он позволяет выполнить ряд команд МОНИТОРА, позволяющих оперативно определять неисправные аппаратные средства и ошибки рабочей программы.

Отладочный пульт содержит:

  1. Клавишный регистр команд монитора КРК.
  2. Клавишный регистр адреса КРА.
  3. Клавишный регистр данных КРД.
  4. Регистр индикации шин адреса и данных РИШ.

 

В отладочном пульте содержится 3 схемы КП580ВВ55. Выбор между ними осуществляется с помощью дешифратора по следующей таблице:

A3 A2 Блок (номер)
0 0 1 блок
0 1 2 блок
1 0 3 блок

 

Схема отладочного пульта:

Схема отладочного пульта КП580ВВ55 155ИД1

КАРТА РАСПРЕДЕЛЕНИЯ АДРЕСНОГО ПРОСТРАНСТВА МПС

Распределение адресного пространства происходит в соответствии со следующей таблицей:

A14A13A12A11 блок
0000 ОЗУ (256 байт) А7А0 — 00h-ffh
0001 Таймер
0010 Контроллер прерываний
0011 Пульт управления
0100 Отладочный пульт
0101 ИУвв
0110 ИУвыв
0111 УСАПП
1xxx ПЗУ

Карта памяти:

ОЗУ

0000h-00FFh

Устройства ввода-вывода

0100h-3FFFh

ПЗУ:

4000h-7FFFh;

По адресу 7FFFh команда jmp 4000h; (переход на начало программы)

Дешифрацию адресов в соответствии с вышеприведёнными данными осуществляет дешифратор адресов:

Дешифратор адресов 155ИД1

Назначение битов шины управления:

0  RD
1  WR
2 INTR
3 CLK
4 INTA
5 ПЗУ
6 ОЗУ
7 Таймер
8 Контроллер прерываний
9 ПУ
10 ОП
11 ИУвв
12 ИУвыв
13 УСАПП
14 IRQ0
15 IRQ1
16 IRQ2
17 IRQ3 От терминала внешней ЭВМ
18 IRQ4 От пульта управления
19 RESET
20 PCLK
21 OUT1 Таймера 1 ( 250 кГц)
22 OUT2 Таймера 1   (зуммер 500 Гц)
23 OUT3 Таймера 1   (y5)
24 OUT1 Таймера 2   (y1)
25 OUT2 Таймера 2   (y2)
26 OUT3 Таймера 2   (y3)
27 G1 Таймера 1
28 G2 Таймера 1
29 G3 Таймера 1
30 G1 Таймера 2
31 G2 Таймера 2
32 G3 Таймера 2
33 RDY1 (Сигнал готовности от ПЗУ)

 

 

БЛОК СХЕМЫ ЗАДАННЫХ АЛГОРИТМОВ И ПРОГРАММ ИХ РЕАЛИЗАЦИИ

Основная программа

В данной части программы происходит инициализация всех устройств (таймер, контроллер прерываний…). Затем вводится информация с цифровых датчиков и происходит её обработка, после чего вводится информация с аналоговых датчиков и происходит её обработка в МП.

Алгоритм работы следующий:

  1. Запрет всех прерываний
  2. Инициализация ИУвв
  3. Инициализация ИУвыв
  4. Начальная установка последовательного канала
  5. Инициализация пульта управления
  6. Инициализация отладочного пульта
  7. Инициализация таймера (настройка выходов OUT1 и OUT2…)
  8. Инициализация контроллера прерываний (настройка прерываний IRQ0-IRQ4 и разрешение прерываний)
  9. Ввод информации с цифровых датчиков и её обработка
  10. Ввод информации с аналоговых датчиков и её обработка
  11. Если ОСТАНОВ нажата, то 12, иначе 9

 

Ввод информации с цифровых датчиков и её обработка:

  1. Опрос цифровых датчиков
  2. Вычисление функции функция
  3. Если y1=1, то инициализация таймера, настроенного на время t1=20 мкс

Ввод информации с аналоговых датчиков и её обработка:

  1. Преобразовать сигналы V1 и V2 в цифровую форму в АЦП.
  2. Считать величину К с тумблера регистра управления
  3. Вычислить функциюфункция
  4. Если Nv>Q то выработка сигнала y2=1 в течение времени t2=30 мкс, иначе выработка сигнала y3=1 в течение времени t3=30 мкс
  5. Вычисление 8-битного управляющего воздействия y4 по формуле y4= a0 + a1 Nv3, где а0 и а1 – восьми разрядные коэффициенты, хранящиеся в ПЗУ. Причём при вычислении y4 используется только старший байт произведения. Выдача y4 на ЦАП.

Обработка запроса на прерывание по сигналу отказа источника питания INT0:

  1. Выработка сигнала y5, представляющего собой два прямоугольных импульса длительностью 30 мкс, следующие с интервалом в 30 мкс
  2. Передача в последовательный канал связи код символа “!”
  3. Завершение аппаратного прерывания
  4. Остановка системы

 

Обработка запроса на прерывание по сигналу аварийного датчика INT1:

  1. Выдача аварийного сигнала
  2. Выдача сигналов от двоичных датчиков и цифрового кода Nv1, поступающего с АЦП.
  3. Остановка системы

 

Обработка запроса на прерывание от отладочного пульта INT2:

  1. Передача управления конкретной подпрограмме, реализующей данную директиву монитора

 

Обработка запроса на прерывание от терминала внешней ЭВМ INT3:

  1. Разрешение прерываний
    Чтение регистра состояния прерываний последовательного канала
  2. Если имеются запросы не обслуженного прерывания, то переход к 4 иначе к 13
  3. Если прерывание вызвано ошибкой/обрывом линии то к 9, иначе к 5
  4. Если прерывание вызвано приемом символа то к 6, иначе к 11
  5. Если поступил запрос на передачу данных(символ «d») то к 7, иначе к 2
  6. Выдача в канал текущего значения
  7. Переход к 2
  8. Выдача в канал запроса повторения данных (символ «r»)
  9. Переход к 2
  10. Сброс запроса не обслуженного прерывания
  11. Переход к 2
  12. Завершение аппаратного прерывания
  13. Разрешение прерываний

 

Обработка запросов на прерывание от пульта управления (прерывание оператора) INT4:

  1. Разрешение прерываний
  2. Выдать последнее значение вычисленной функции f на регистр индикации
  3. Выдать значение выражения Х1234 на регистр индикации
  4. Выдать значение выражения Х1vX2vX3vX4 на регистр индикации
  5. Выдать на регистр индикации значение сохраняемой в ПЗУ константы Q
  6. Завершение аппаратного прерывания
  7. Переход к началу программы обработки данных

 

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

Таблица для подсчёта аппаратных затрат:

————————————————————————

Число выводов

корпуса               16   18     20     24     28     40     48

 

Коэффициент           1     1,2   1,4   2,8   3,2   4,5   7,5

ввода

———————————————————————

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

Аппаратные затраты:

Наименование Число корпусов Число выводов корпуса Итоговые аппаратные затраты
К1810ВМ88 1 40 4,5
К1810ГФ84 1 17 1,2
К1810ВА86 2 20 2,8
К1810ИР82 1 20 1,4
155ИД1 5 16 5
К1810ВН59А 1 25 2,8
К155РУ7 8 22 22,4
КП580ВВ55 7 40 31,5
155ГА1 1 14 1
К1810ВИ54 2 24 5,6
К1810ВВ50 1 40 4,5
КР568РЕ2 2 25 5,6
155ЛН1 1 14 1
89,3

 

 

Максимальное время реализации одного цикла управления:

Команда Количество Тактов
Push 11 11
Pop 11 8
Mov 56 15
Inc 5 2
Сдвиг 4 8
Loop 29 17
And 8 20
Cmp 8 15
Jmp 9 15
Or 2 20
mul 1 176
Итог: 307

Итоговое время: 307*200нс+АЦП*3=131*200нс+15мкс*3=0,0000712с=106,4 мкс

ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММЫ ПРОШИВКИ

 

 

 

ПРИЛОЖЕНИЕ 2. ПРОТОКОЛ ОТЛАДКИ

Адреса памяти приведены в шестнадцатеричной системе исчисления.

Протокол отладки ввода данных с цифровых датчиков:

Адрес памяти Команда Данные Комментарий
Enter_digital_value IUvvx1x2x3 0 x1 Макрос ввода данных с аналогового датчика x1
4139 Push ax Стек<-ax Сохранение регистров
413A Push bx Стек<-bx
413B Push cx Стек<-cx
413C Mov bx,IUvvx1x2x3 Bx=2801h Занесение адреса порта в регистр
413F Mov al,[bx] Al=5h Считываем с порта
4141 Mov cx,0 Cx=0 Обнуление CX
4144 Cmp cx,0 Проверка, нужно ли сдвигать для получения нужного бита
4147 Je not_shr
414D And al,00000001b AL=1 Получаем младший бит
414F Mov x1,a1 X1=1 Сохранение в ОХУ
4153 Pop cx Восстановление регистров
4154 Pop bx
4155 Pop ax
Enter_digital_value IUvvx1x2x3 1 x2 Макрос ввода данных с аналогового датчика x2
4156 Push ax Стек<-ax Сохранение регистров
4157 Push bx Стек<-bx
4158 Push cx Стек<-cx
4159 Mov bx,IUvvx1x2x3 Bx=2801h Занесение адреса порта в регистр
415C Mov al,[bx] Al=5h Считываем с порта
415E Mov cx,1 Cx=1 Обнуление CX
4161 Cmp cx,0 Проверка, нужно ли сдвигать для получения нужного бита
4164 Je not_shr
4166 LOOP_SHL:

Shr al,1

Al=00000010b;
4168 Loop loop_shl
416A And al,00000001b AL=0 Получаем младший бит
416C Mov x2,a1 X2=0 Сохранение в ОХУ
4170 Pop cx Восстановление регистров
4171 Pop bx
4172 Pop ax
Enter_digital_value IUvvx1x2x3 2 x3 Макрос ввода данных с аналогового датчика x3
4173 Push ax Стек<-ax Сохранение регистров
4174 Push bx Стек<-bx
4175 Push cx Стек<-cx
4176 Mov bx,IUvvx1x2x3 Bx=2801h Занесение адреса порта в регистр
4179 Mov al,[bx] Al=5h Считываем с порта
417B Mov cx,2 Cx=2 Обнуление CX
417E Cmp cx,0 Проверка, нужно ли сдвигать для получения нужного бита
4181 Je not_shr
4183 LOOP_SHL:

Shr al,1

Al=00000010b;
4185 Loop loop_shl
4183 Shr al,1 Al=0000001b;
4185 Loop loop_shl
4187 And al,00000001b AL=1 Получаем младший бит
4189 Mov x3,a1 X3=1 Сохранение в ОХУ
418D Pop cx Восстановление регистров
418E Pop bx
418F Pop ax

 

 

 

Протокол отладки обработки данных с цифровых датчиков:

(при x1=1,x2=0,x3=1)

Адрес памяти Команда Данные Комментарий
4190    mov al,x1; AL=1 Чтение x1
4194 And al,x2 AL=0 Поразрядное и c x2
4199 And al,x3 AL=0 Поразрядное и c x3
419E Mov y1,al Y1=0 Сохранение в ОЗУ
Print_digital_value IUvivGy1y2y3_y5 0 y1 Макрос выработки сигнала y1
41A2 Push ax Сохранение регистров
41A3 Push bx;
41A4 Push cx;
41A5 Mov bx,IUvivGy1y2y3_y5; BX=2001h Загрузка в регистр адреса порта вывода
41A8 Mov al,y1 AL=0 Загрузка в регистр передаваемого сигнала
41AC Mov cx,0 CX=0 Обнуление СХ
41AF Cmp cx,0 Если СХ=1, то сдвиг не нужен
41B2 Je not_shl
41B8 NOT_SHL:

Mov [BX],AL

Устанавливаем бит
41BA Xor al,al AL=0
41BC Mov [BX],al Снятие бита
41BE Pop cx Восстановление регистров
41BF Pop bx
41C0 Pop ax

41BF

41C0

Протокол отладки ввода данных с аналоговых датчиков:

Адрес памяти Команда Данные Комментарий
Enter_8bit_digital_value 0 0 Nv1 Макрос ввода Nv1 с аналоговых датчиков
41C1 Push ax Сохранение регистров
41C2 Push bx
41C3 Mov bx,IUvvK Bx=2803h Занесение в регистр адреса регистра команд порта ввода
41C6 Mov al,0 Al=0 Загрузка в AL адреса аналогового сигнала (A1)
41C8 Or al,00000100b Al=00000100b Создание команды
41CA Mov [bx],al; Установка бита А1 порта ввода
41CC Mov al,0; Al=0 Загрузка в AL адреса аналогового сигнала (А0)
41CE Or al,00000010b Al=00000010b Создание команды
41D0 Mov [bx],al Установка бита А0 порта ввода
41D2 Nop Ожидание 1000 нс.
41D3 Nop
41D4 Mov al,00000001b Al=1 Запуск АЦП
41D6 Mov [bx],al;
41D8 Mov al,00000000b Al=0
41DA Mov [bx],al
41DC Mov bx,IUvvx1x2x3 Bx=2801h
41DF M_wait_result:

Mov al,[bx];

Al=10000000b Проверка на окончание преобразования
41E1 And al,10000000b;
41E3 Jz m_wait_result
41E5 Mov bx,IUvvD; Bx=2800h Загрузка в регистр адреса порта ввода D
41E8 Mov al,[bx] Al=34h Считывание данных
41EA Mov Nv1,al; Nv1=34h; Сохранение в ОЗУ
41EE Pop bx Восстановление регистров
41EF Pop ax;
Enter_8bit_digital_value 0 1 Nv2 Макрос считывания данных Nv2
41F0 Push ax Сохранение регистров
41F1 Push bx
41F2 Mov bx,IUvvK Bx=2803h Занесение в регистр адреса регистра команд порта ввода
41F5 Mov al,0 Al=0 Загрузка в AL адреса аналогового сигнала (A1)
41F7 Or al,00000100b Al=00000100b Создание команды
41F9 Mov [bx],al; Установка бита А1 порта ввода
41FB Mov al,1; Al=1 Загрузка в AL адреса аналогового сигнала (А0)
41FD Or al,00000010b Al=00000011b Создание команды
41FF Mov [bx],al Установка бита А0 порта ввода
4201 Nop Ожидание 1000 нс.
4202 Nop
4203 Mov al,00000001b Al=1 Запуск АЦП
4205 Mov [bx],al;
4207 Mov al,00000000b Al=0
4209 Mov [bx],al
420B Mov bx,IUvvx1x2x3 Bx=2801h
420E M_wait_result:

Mov al,[bx];

Al=10000000b Проверка на окончание преобразования
4210 And al,10000000b;
4212 Jz m_wait_result
4214 Mov bx,IUvvD; Bx=2800h Загрузка в регистр адреса порта ввода D
4217 Mov al,[bx] Al=70h Считывание данных
4219 Mov Nv2,al; Nv2=70h; Сохранение в ОЗУ
421D Pop bx Восстановление регистров
421E Pop ax;
Enter_8bit_digital_value 1 0 Nv3 Макрос считывания данных с Nv3
421F Push ax Сохранение регистров
4221 Push bx
4224 Mov bx,IUvvK Bx=2803h Занесение в регистр адреса регистра команд порта ввода
4226 Mov al,1 Al=1 Загрузка в AL адреса аналогового сигнала (A1)
4228 Or al,00000100b Al=00000101b Создание команды
422A Mov [bx],al; Установка бита А1 порта ввода
422C Mov al,0; Al=0 Загрузка в AL адреса аналогового сигнала (А0)
422E Or al,00000010b Al=00000010b Создание команды
4230 Mov [bx],al Установка бита А0 порта ввода
4231 Nop Ожидание 1000 нс.
4231 Nop
4232 Mov al,00000001b Al=1 Запуск АЦП
4234 Mov [bx],al;
4236 Mov al,00000000b Al=0
4238 Mov [bx],al
423A Mov bx,IUvvx1x2x3 Bx=2801h
423D M_wait_result:

Mov al,[bx];

Al=10000000b Проверка на окончание преобразования
423F And al,10000000b;
4241 Jz m_wait_result
4243 Mov bx,IUvvD; Bx=2800h Загрузка в регистр адреса порта ввода D
4246 Mov al,[bx] Al=1h Считывание данных
4248 Mov Nv3,al; Nv3=1h; Сохранение в ОЗУ
424C Pop bx Восстановление регистров
424D Pop ax;
424E Mov bx,CPK BX=1803h
4251 Mov al,[bx] Al=03h Считывание К
4253 Mov K,al K=03h

 

Протокол отладки обработки данных с аналоговых датчиков:

(Nv1=34h,Nv2=70h, Nv3=1,K=03h, Q=64h, a1=10h,a0=5h)

Адрес памяти Команда Данные Комментарий
4257 mov al,Nv2; AL=70h Запись в AL Nv2
425B    add al,K; AL=73h Прибавление K
4260    mov bl,Nv1; BL=34h
4265    cmp bl,al; Сравниваем Nv1 и Nv2+k
4267    jb NV_BL Переход на NV_BL
NV_BL:
4270    mov Nv,bl; Nv=34h Nv=min(Nv1;Nv2+K)
dalee1:
4275    mov al,Nv; AL=34h;
4279    cmp al,Q; Сравнение Q и Nv
427E    ja set_y3;
   print_digital_value

IUvivGy1y2y3_y5 1 1

Макрос выдачи сигнала y2
4280 Push ax Сохранение регистров
4281 Push bx
4282 Push cx
4283 Mov bx, IUvivGy1y2y3_y5 BX= 2001h Загрузка адреса порта вывода
4286 Mov al,1 Al=1
4288 Mov cx,1 CX=1
428B Cmp cx,0 Проверка нужно ли сдвигать
428E Je not_shl
4294 NOT_SHL:

Mov [bx],al

4296 Xor al,al; AL=0
4298 Mov [bx],al Выдача сигнала
429A Pop cx Восстановление регистров
429B Pop bx
429C Pop ax
429D    jmp dalee2;
dalee2:
42BD    mov al,a1 AL=10h Вычисление y4=a0+a1*Nv3
42C1    mul Nv3; AH=0, AL=10
42C6    add ah,a0; AH=5h
42CB mov y4,ah; Y4=5h Созранение y4 в ОЗУ
   print_8bit_digital_value y4; Макрос выдачи управляющего сигнала y4
42D0 Push ax Сохранение регистров
42D1 Push bx
42D2 Push dx
42D3 Mov bx,IUvivE1E1 BX=3002h Загрузка в регистр адреса порта вывода Е1Е2
42D6 Mov al,00000001b Установка Е1
42D8 Mov [bx],al
42DA Mov bx,IUvivy4 Bx=3000h
42DD Mov al,y4 Al=5h
42E1 Mov [bx],al Вывод у4 в порт
42E3 Mov bx,IUvivE1E2 BX=3002h
42E6 Mov al,00000011b Al=00000011b
42E8 Mov [bx],al Преобразование сигнала в аналоговый
42EA Mov al,0 Al=0
42EC Mov [bx],al Установка Е1Е2 в начальное состояние
42EE Pop dx Восстановление регистров
42EF Pop bx
42D0 Pop ax

 

 

 

ПРИЛОЖЕНИЕ 3. ОПИСАНИЕ ПРОГРАММЫ ОТЛАДКИ

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

В конце всех операций обработки в макросе проверки на ОСТАНОВ добавляется проверка на нажатие других клавиш, приводящим к эмуляции различных прерываний. В самих прерываниях весь ввод-вывод заменяется также вышеприведённым способом.

Также в программе отладки макрос останова системы заменяется на функцию MS-DOS завершения программы.

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

 

Скачать ZIP-архив с исходными кодами по курсовому проектированию МПСС

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *