Описание работы МПС. Алгоритм работы МПС. Разработка микропроцессорной системы. Разработка схемы центрального процессора

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

Фрагмент текста работы

используется для вывода информации на пульт оператора:

порт А – для вывода N1 (РИ1);

порт В – для вывода  значения Y4 (РИ4);

порт С – для вывода X1-X4 (РИ2) и Y1-Y3 (РИ3).

ППА-3:

порт А – для ввода 8-разрядного кода уставки К, поступающего с тумблерного регистра пульта управления;

порт С – для ввода сигнала останова (младшая тетрада, одна линия) и запуска генератора аварийной световой сигнализации (старшая тетрада, одна линия).

3.3.4 Средства счета времени

Для выполнения различных временных функций в МПС используются два программируемых интервальных таймера КР580ВИ53.

Первый программируемый интервальный таймер КР580ВИ53 в данной системе решает задачу генерирования точных временных интервалов для вывода управляющих сигналов Y1-Y3 заданной длительности под программным контролем. В состав БИС входят три 16-разрядных вычитающих счетчика с частотой по входу CLK 2 МГц, каждый из которых программно настраивается и работает независимо от других.

Второй таймер используется для выработки сигналов тактирования приемника и передатчика ПСА, а также сигнала Y5.

3.3.5 Программируемый контроллер прерываний

Запросы на прерывание обслуживаются при помощи программируемого контроллера прерываний (ПКП) КР580ВН59. Возникающие прерывания вызывают соответствующие подпрограммы их обработки в соответствии с таблицей прерываний. Система обслуживает следующие четыре прерывания:

IRQ0 -  запрос на прерывание по сигналу отказа источника питания;

IRQ1 -  запрос на прерывание по сигналу аварийного датчика;

IRQ2 -  запрос на прерывание от терминала внешней ЭВМ;

IRQ3 -  запрос на прерывание от пульта управления .

Запрос на прерывание IRQ2 осуществляется при выработке сигнала RxRDY ПСА, сигнализирующего о приеме информации с внешней ЭВМ.

3.3.6 Карта памяти и дешифрация устройств ввода-вывода

В соответствии с заданием в программах МПС обращение к регистрам периферийных БИС производится по командам ввода/вывода (IN/OUT). Карта портов устройств ввода-вывода отражена в таблице 4.

Таблица 4. Карта портов устройств ввода.-вывода

Порт

Устройство

E0h – E3h

Периферийный параллельный адаптер 1 КР580ВВ55А

E4h – E7h

Периферийный параллельный адаптер 2  КР580ВВ55А

E8h – E9h

Программируемый связной адаптер КР580ВВ51А

ECh – EFh

Программируемый интервальный таймер 1 КР580ВИ53

F0h – F3h

Программируемый интервальный таймер 2 КР580ВИ53

F4h – F5h

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

        F6h – F9h

Периферийный параллельный адаптер 3  КР580ВВ55А

Дешифрацию адресов устройств ввода-вывода будем производить по линиям шины адреса ADR4, АDR3 и АDR2. При этом необходимо учитывать, что обращение к микросхеме должно проиcxодить при надлежащей комбинации сигналов на адресных линиях и активных сигналах   I/O R или I/O W, ADR15=1. Дешифрация будет происходить согласно таблице 5. Схема подключения дешифратора адресов устройств ввода-вывода изображена на рисунке 8.

Для дешифрации адресов будет использована микросхема дешифратора К155ИД7.

Таблица 5. Дешифрация устройств ввода-вывода

Входы микросхемы К155ИД7

Выбранная микросхема

A0

(ADR4)

A1

(ADR3)

A2

(ADR2)

__

E1

_____     ______  

(MEMRÚMEMW)

__

E2

E3

(ADR15)

0

0

0

0

0

1

ППА-1

0

0

1

0

0

1

ППА-2

0

1

0

0

0

1

ПСА

0

1

1

0

0

1

ПИТ-1

1

0

0

0

0

1

ПИТ-2

1

0

1

0

0

1

ПКП

1

1

0

0

0

1

ППА-3

Рисунок 8. Схема подключения дешифратора устройств ввода-вывода

Принципиальная схема подсистемы ввода-вывода изображена на рисунке 9. Здесь входные разъемы ХТ1 соответствуют выходным разъемам блока центрального процессора, разъемы ХТ2,XT3 – соответствуют входам пульта управления (цифровые значения Х1-Х4, аналоговые сигналы V1-V3,  разряды кода уставки К0 – К7 (Р5)),ХТ4 – разъемы канала связи с внешней ЭВМ, ХТ5 – выходы на три регистра пульта управления для вывода разрядов сигналов N1 (РИ1) и Y4 (РИ4) , битов Y1-Y3 (РИ3), Х1-Х4 (РИ2). Выходные разъемы ХТ6 – для вывода сигналов управления на ОУ (Y1-Y3, V4, Y5). ХТ7 – разъемы соответствующих прерываний. Выходные разъемы ХТ8 предусмотрены для выработки сигналов готовности последовательного канала DTR и RTS и для анализа сигналов готовности терминала к связи DSR, CTS.

.

Спецификация выполнена в таблице 6.

Таблица 6.  Спецификация подсистемы ввода-вывода

Обозначение

Тип

Кол-во

Примечание

Резисторы

R3

МЛТ-0,25-430Ом ±10%

1

R1,R2,R4

МЛТ-0,25-1кОм ±10%

3

Конденсаторы

C1

К10-17-1Б-М47-20пФ

1

C2

К10-7В-0,47мкФ±10%

1

C3

К50-6 20мкФ ±20%

1

Микросхемы

DD1,DD6,DD13

КР580ВВ55А

3

ППА

DD2

К1108ПА1А

1

ЦАП

DD3

К140УД23

1

ОУ

DD4,DD8

КР580ВИ53

2

ПИТ

DD5

КР580ВВ51А

1

ПСА

DD7

К155ИД7

1

Дешифратор

DD9

КР580ВН59

1

ПКП

DD10

КР564ПУ6

1

Преобр. уровня

DD11

КР590КН6

1

Коммутатор

DD12

К1108ПВ1

1

АЦП

DD14,DD16

К155ЛИ1

1

4 элемента 2-И

DD15

К155ЛН1

1

6 элементов НЕ


Рисунок 9.Схема подсистемы ввода-вывода


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

Адрес Код        Метка   Мнемокод           Комментарий

      E0                 PPI1

      E4                 PPP2

      E8                 PCI

      EC                 PIT1

      F0                 PIT2

      F4                 PIC

      F8                 PPI3

0000  F3         INIT:   DI                 ; запрет прерываний

0001  31 00 0C           LXI SP,0C00H       ; инициализация стека

0004  3E 98              MVI A,10011000B    ; ППА1:А-ввод,В-вывод(0реж.)

0006  D3 E3              OUT PPI1+3         ; СL-ввод,СН-вывод

0008  3E 80              MVI A,10000000B    ; ППА2:А,В,С-вывод в режиме 0

000A  D3 E7              OUT PPI2+3         ;

000C  3E 98              MVI A,10011000B    ; ППА3:А-ввод(0реж),CL-ввод,

000E  D3 FB              OUT PPI3+3         ; СН-вывод

0010  3E 9E              MVI A,10011110B    ; ПСА:MI-асинхр.реж.,1:16,

0012  D3 E9              OUT PCI+1          ; стоп-бит 1,5,слово 8 бит

0014  3E 05              MVI A,00000101B    ; CI-разрешение передачи и 0016  D3 E9              OUT PCI+1          ; приема

0018  3E 16              MVI A,00010110b    ; ПКП:ICW1-4 байтный формат

001A  D3 F4              OUT PIC            ; адреса

001C  3E 10              MVI A,10H          ; OSW1-разрешение первых

001E  D3 F5              OUT PIC+1          ; 4-хпрерываний

                                            ;

0020  3E 56              MVI A,01010110B    ; канал 1 ПИТ2 в режим 3

0022  D3 F3              OUT PIT2+3         ;

0024  3E 38              MVI A,38H          ; константа 60

0026  D3 F1              OUT PIT2+1         ;

         ;Ввод и обработка цифровой информации      

0028  DB E2      MAIN:   IN PPI1+2          ; чтение порта С ППА1

002A  E6 0F              ANI 00001111B      ; выделение значений Х1-Х4

002C  D3 E6              OUT PPI2+2         ;

002E  32 00 08           STA 0800H          ; сохранение Х1-Х4 в ОЗУ

0031  47                 MOV B,A            ;  вычисление функции

0032  2F                 CMA                ;  Х1×Х2ÚХ3×Х4

0033  4F                 MOV C,A            ;

0034  17                 RAL                ;

0035  A1                 ANA C              ;

0036  4F                 MOV C,A            ;

0037  78                 MOV A,B            ;

0038  17                 RAL                ;

0039  A0                 ANA B              ;

003A  17                 RAL                ;

003B  17                 RAL                ;

003C  B1                 ORA С              ;

003D  17                 RAL                ;

003E  E6 10              ANI 10H            ; выделение в 4-м бите У1

0040  32 01 08           STA 0801H          ; сохранение У1 в ОЗУ

0043  C2 52 00           JNZ INF_AN         ; если У1=0,то переход

0046  3E 30      OUT_Y1: MVI A,00110000B    ; ПИТ1:0-й канал в режиме 0

0048  D3 EF              OUT PIT1+3         ; константа 400

004A  3E 90              MVI A,90H          ;

004C  D3 EC              OUT PIT1           ;

004E  3E 01              MVI A,01H          ;

0050  D3 EC              OUT PIT1           ;

       ;Ввод и обработка аналоговой информации

0052  3E 00      INF_AN: MVI A,00000000B    ; коммутация V1

0054  CD C3 00           CALL OBRAB         ; аналогово-цифровое

                                            ; преобразование

0057  32 02 08           STA 0802H          ; сохранение N1 в ОЗУ

005A  47                 MOV B,A            ; сохранение N1 в регистре В

005B  3E 20              MVI A,00100000B    ; коммутация V2

005D  CD C3 00           CALL OBRAB         ;

0060  4F                 MOV C,A            ; сохранение N2 в регистре С

0061  DB F8              IN PPI3            ; чтение кода К с пульта

                                            ; оператора

0063  80                 ADD B              ; К+N1

0064  DA 72 00           JC OUT_Y3          ; если переполнение,то N>Q

0067  81                 ADD C              ; K+N1+N2

0068  DA 72 00           JC OUT_Y3          ; если переполнение,то N>Q

006B  21 00 06           LXI H,0600H        ; чтение из ПЗУ Q

006E  BE                 CMP M              ;

006F  DA 7F 00           JC OUT_Y2          ; если переполнение,то N<Q

0072  3E D0      OUT_Y3: MVI A,11010000B    ; ПИТ1:канал 3,0режим

0074  D3 EF              OUT PIT1+3         ;

0076  3E 28              MVI A,28H          ; константа 40

0078  D3 EE              OUT PIT1+2         ;

007A  3E 40              MVI A,01000000B    ; сохранение У3,У2 в ОЗУ

007C  32 03 0B           STA 0B03H          ; в виде 0У3У200000

007F  3E 90      OUT_Y2: MVI A,10010000B    ; ПИТ1:канал 2,0режим

0081  D3 EF              OUT PIT1+3         ;

0083  3E 28              MVI A,28H          ; константа 40

0085  D3 ED              OUT PIT1+1         ;

0087  3E 20              MVI A,00100000B    ; сохранение У3,У2 в ОЗУ

0089  32 03 08           STA 0803H          ; в виде 0У3У200000

008C  3E 30      OUT_Y4: MVI A,00110000B    ; коммутация V3

008E  CD C3 00           CALL OBRAB         ;

0091  4F                 MOV C,A            ; сохранение N3 в регистре С

0092  3A 01 06           LDA 0601H          ; чтение а1 из ПЗУ

0095  47                 MOV B,A            ; сохранение а1 в регистре В

0096  CD A9 01           CALL MULT          ; а1×N3

0099  7C                 MOV A,H            ;

009A  21 02 06           LXI H,0602H        ;

009D  86                 ADD M              ; а0+а1×N3

009E  47                 MOV B,A            ; сохранение У4 в регистре В

009F  32 04 08           STA 0804H          ; сохранение У4 в ОЗУ

00A2  D3 E1              OUT PPI1+1         ; вывод У4 в порт В ППА1(ЦАП)

00A4  3A 02 08   PULT:   LDA 0802H          ; индикация N1 на РИ1

00A7  D3 E4              OUT PPI2           ;

00A9  3A 04 08           LDA 0804H          ; индикация У4 на РИ4

00AC  D3 E5              OUT PPI2+1         ;

00AE  3A 00 08           LDA 0800H          ;

00B1  21 03 08           LXI H,0803H        ;

00B4  86                 ADD M              ;

00B5  21 03 08           LXI H,0803H        ; индикация Х1-Х4 и У1-У3 на

00B8  86                 ADD M              ; РИ2 и РИ3 в виде

00B9  D3 E6              OUT PPI2+2         ; 0 У3 У2 У1 Х4 Х3 Х2 Х1

                                            ;

00BB  DB FA              IN PPI3+2          ; проверка останова

00BD  E6 01              ANI 01H            ;

00BF  CA 28 00           JZ MAIN            ; зацикливание

00C2  76                 HLT                ; останов

      ;аналогово-цифровое преобразование

00C3  D3 E2      OBRAB:  OUT PPI1+2         ;

00C5  3E 20              MVI A,00100000B    ; запуск АЦП

00C7  D3 E2              OUT PPI1+2         ;

00C9  DB E0              IN PPI1            ; сохранение кода в

00CB  C9                 RET                ; аккумуляторе

                 ;таблица векторов прерываний                          

0100             ORG 0100H                  ;

0100  C3 0F 01           JMP IRQ0           ;

0103  00                 DB 00H             ;

0104  C3 2B 01           JMP IRQ1           ;

0107  00                 DB 00H             ;

0108  C3 3A 01           JMP IRQ2           ;

010B  00                 DB 00H             ;

010C  C3 6D 01           JMP IRQ3           ;

010F  DB E9      IRQ0:   IN PCI+1           ; проверка готовности

0111  1F                 RAR                ; передатчика:С=1,если

0112  D2 19 01           JNC OUT_Y5         ; TxRDY=1,то

0115  3E 21              MVI A,'!'          ; вывод ‘!’

0117  D3 E8              OUT PCI            ;

0119  3E 16      OUT_Y5: MVI A,00010110B    ; ПИТ2:0 канал в 3-й режим

011B  D3 F3              OUT PIT2+3         ;

011D  3E 78              MVI A,78H          ; константа 60

011F  D3 F0              OUT PIT2           ;

0121  06 09              MVI B,09H          ;

0123  05         MEANDR: DCR B              ; програмная остановка таймера

0124  00                 NOP                ; через 90 мкс

0125  C2 23 01           JNZ MEANDR         ;

0128  3E 12              MVI A,00010010B    ;

012A  76                 HLT                ; останов

012B  3E 80      IRQ1:   MVI A,80H          ; запуск световой сигнализации

012D  D3 E2              OUT PPI1+2         ;

012F  3A 02 08           LDA 0802H          ; вывод на РИ1 значение N1

0132  D3 E4              OUT PPI2           ;

0134  3A 00 08           LDA 0800H          ;

0137  D3 E6              OUT PPI2+2         ; вывод сигналов Х1-Х4

0139  76                 HLT                ; останов

013A  F5         IRQ2:   PUSH PSW           ; сохранение аккумулятора и

                                            ; флагов в стеке

013B  DB E9              IN PCI+1           ; чтение слова состояния

013D  E6 00              ANI 00011000H      ; проверка ошибки кадра и

013F  C2 A2 01           JNZ REPEAT         ; переполнения

0142  DB E8              IN PCI             ; чтение пришедшего символа

0144  F5                 PUSH PSW           ; сохранение его в стеке

0145  FE 44              CPI 'D'            ; сравнение символа с ‘D’

0147  C2 55 01           JNZ GO_A           ; если нет,топереход

014A  DB E9      READY1: IN PCI+1           ; проверка готовности

014C  1F                 RAR                ; передатчика:C=1,если TxRDY=1

014D  D2 4A 01           JNC READY1         ;

0150  3A 01 08           LDA 0801H          ; выдача значения У1

0153  D3 E8              OUT PCI            ;

0155  F1         GO_A:   POP PSW            ; восстановление принятого

0156  FE 41              CPI 'A'            ; символа

0158  C2 66 01           JNZ GO_OUT         ; если не ‘A’,то переход

015B  DB E9      READY2: IN PCI+1           ; проверка готовности

015D  1F                 RAR                ; передатчика:C=1,если TxRDY=1

015E  D2 5B 01           JNC READY2         ;

0161  3A 04 08           LDA 0804H          ; выдача значения У4

0164  D3 E8              OUT PCI            ;

0166  3E 20      GO_OUT: MVI A,20H          ; завершение прерывания и

0168  D3 F4              OUT PIC            ; возврат

016A  FB                 EI                 ;

016B  F1                 POP PSW            ;

016C  C9                 RET                ;

016D  F5         IRQ3:   PUSH PSW           ; сохранение аккумулятора,  016E  C5                 PUSH B             ; флагов,рег.пары ВС в стеке

016F  3A 00 08           LDA 0800H          ; чтение Х1-Х4 из ОЗУ

0172  47                 MOV B,A            ;

0173  1F                 RAR                ;

0174  B0                 ORA B              ;

0175  1F                 RAR                ;

0176  B0                 ORA B              ;

0177  1F                 RAR                ;

0178  B0                 ORA B              ; f1=Х1ÚХ2ÚХ3ÚХ4

0179  E6 01              ANI 01H            ; результат в 0-м бите

017B  4F                 MOV C,A            ;

017C  78                 MOV A,B            ;

017D  1F                 RAR                ;

017E  A0                 ANA B              ;

017F  1F                 RAR                ;

0180  A0                 ANA B              ;

0181  1F                 RAR                ;

0182  A0                 ANA B              ;

0183  17                 RAL                ; f2=Х1×Х2×Х3×Х4

0184  E6 02              ANI 02H            ; результат в 1-м бите

0186  B1                 ORA C              ;

0187  3A 03 08           LDA 0803H          ; чтение У3

018A  1F                 RAR                ; и сдвиг на 2-й бит

018B  1F                 RAR                ;

018C  1F                 RAR                ;

018D  1F                 RAR                ;

018E  B1                 ORA C              ;

018F  3A 01 08           LDA 0801H          ; чтение У1

0192  1F                 RAR                ; сдвиг на 3-й бит

0193  B1                 ORA C              ; вывод в РИ1 в виде

0194  D3 E4              OUT PPI2           ; 0 0 0 0 У1 У3 f2 f1

0196  3A 00 06           LDA 0600H          ; чтение из ПЗУ Q

0199  D3 E5              OUT PPI2+1         ; вывод в РИ4

019B  3E 20              MVI A,20H          ; завершение прерывания и

019D  D3 F4              OUT PIC            ; возврат

019F  C1                 POP B              ;

01A0  F1                 POP PSW            ;

01A1  C9                 RET                ;

01A2  3E 52      REPEAT: MVI A,'R'          ; вывод в последовательный

01A4  D3 E8              OUT PCI            ; канал связи символа

01A6  C3 66 01           JMP GO_OUT         ; повтора передачи

                                            ;

01A9-01D9         MULT:                      ; подпрограмма умножения

               ;константы ПЗУ                             ;

0600             ORG 0600H                  ;

0600  1B                 DB 1BH             ;Q

0601  85                 DB 85H             ;a1

0602  65                 DB 65H             ;a0

               ;данные ОЗУ

0800  00                 DB 00H             ;Х1-Х4

0801  00                 DB 00H             ;У1

0802  00                 DB 00H             ;N1

0803  00                 DB 00H             ;Y2,Y3

0804  00                 DB 00H             ;Y4

Затраты памяти. Для реализации заданного алгоритма требуется:

-  ПЗУ емкостью 476 байт (программа вместе с подпрограммами: 457 байт, таблица векторов прерываний: 16 байт, константы: 3 байта);

-  ОЗУ емкостью 9 байт (переменные – 5 байт, стек – 4 байта).

Затраты времени программы. При условии, что в течение выполнения программы не будут происходить прерывания, время выполнения одного цикла программы составляет 203*1,75=356мкс, где 203 байт – длина основного цикла программы, 1.75 мкс –средняя длительность выполнения одного байта программы (3,5 такта).

5 Оценка аппаратурных затрат

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

Таблица 7.  Сложности корпусов микросхем

Число выводов в корпусе

16

18

20

24

28

40

48

Коэффициент перевода

1

1,2

1,4

2,8

3,2

4,5

7,5

Рассчитанное число аппаратурных затрат содержится в таблица

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

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