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

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

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

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

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

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

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

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

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

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

порт А – для вывода 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

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

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

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

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

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

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

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

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

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