- •1 Анализ проектируемой системы
- •2 Разработка аппаратной части мпс
- •2.1 Блок центрального процессора
- •2.1.2 Бис системного контроллера кр580вк38
- •2.1.3 Бис буферных регистров кр580ир82
- •2.1.4 Бис тактового генератора кр580гф24
- •2.2 Модуль памяти
- •2.2.1.1 Расчет модуля озу
- •2.2.1.4 Выбор имс для логической схемы выбора страниц озу
- •2.2.2 Модуль пзу
- •2.2.2.4 Выбор имс для логической схемы выбора страниц пзу
- •2.3 Интерфейсный модуль
- •2.3.1 Организация параллельного ввода-вывода информации
- •2.3.2 Организация режима прерываний
- •2.3.2 Организация режима прямого доступа к памяти
- •3 Разработка программных средств мпс
- •3.1 Постановка и формулировка задачи
- •3.3 Разработка программы инициализации на языке Assembler
3 Разработка программных средств мпс
3.1 Постановка и формулировка задачи
Перед работой все контроллеры необходимо запрограммировать, т.е. загрузить управляющие слова в регистры управляющего слова
В соответствии с заданием необходимо инициализировать БИС интерфейсного модуля на следующие режимы работы МПС.
- обеспечить параллельный ввод-вывод информации дисковода и 8светодиодов, 2х ключей ,с помощью БИС КР580ВВ55 (ППИ). Светодиоды подключены к КВ, поэтому настроим КВ на 0 режима работы; дисковод подключен к КА, который должен работать во 2 режиме.
Для обеспечения заданных режимов ППИ необходимо загрузить УС в РУС по адресу 4B;
- обеспечить передачу информации в режиме ПДП от УВВ, с помощью БИС КР580ВТ57 (КПДП). УВВ1 подключено к К2 и оно передаёт 5000 байт в ОЗУ на страницу,, начиная с первого адреса 32 страницы 8000h. УВВ2 подключено к К1 и передает 900 байт из памяти в УВВ с 36 страницы с адреса 9389h.
КПДП работает в режиме нормальной записи, с фиксированным приоритетом и без автозагрузки.
Для обеспечения заданного режима КПДП необходимо запрограммировать К1 и К0 т.е. загрузить информацию в регистры К1- РА1, РЦ1, РУ1 и в регистры К0 – РА0, РЦ0, РУ0, а также загрузить регистр режима (РР).
Обеспечить режим прерывания от 2 –х УВВ (1 УВВ, дисковод,8светодиодов,2ключа). Зададим область векторов прерываний на 32 странице ОЗУ с адреса 8000h, вектора располагаются через 4 байта
Для обеспечения режима прерываний необходимо загрузить УСИ1 и УСИ2 в ПКП.
Таблица 11 – Распределение адресного пространства ОЗУ
№стр |
Адрес памяти |
|
32 |
8000 83FF |
Ввод 5000 байт из УВВ1 в режиме ПДП
|
33 |
8400 87FF |
|
34 |
8800 8BFF |
|
35 |
8C00 8FFF |
|
36 |
9000 9388 9389 93FF |
|
Вывод 900 байт в УВВ1 |
Продолжение таблицы 11
№стр |
Адрес памяти |
|
37 |
9400 970C
970D 97FF |
Вывод 900 байт в УВВ1 |
Вектор прерываний
|
3.1.1 Инициализация ППИ
Нам необходимо подключить дисковод,8светодиодов и 2ключа.Дисковод работает в режиме - 2, светодиоды и ключи в режиме 0. Адрес ППИ в системе – Е0 Дисковод подключен к КА, светодиоды к КВ, ключи к КС
Определим адреса каналов:
Т.к. адрес ППИ в системе – 84, то
КА = Е0 h = 1 1 1 0 0 0 0 0 b
КВ = Е1h = 1 1 1 0 0 0 0 1 b
КС = Е2 h = 1 1 1 0 0 0 1 0 b
РУС = Е3 h = 1 1 1 0 0 0 1 1 b
Сформируем управляющее слово инициализации ППИ:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
1 |
1 |
0 |
0* |
1 |
0 |
0 |
0 |
=С0h |
УС= 1 1 0 0* 0 0 0 0 = С0 h;
D7 = 1 - признак управляющего слова;
D6,D5 =0 1 – кА работает в режиме 1
D4 = 0 – безразлично, т.к. КА настроен как на ввод, так и на вывод
D3 = 1 – Кс настроен на ввод
D2 = 0 - кВ работает в режиме 0
D1 = 1 - кВ настроен на вывод
D0 = 0 – т.к. кС работает в режиме 0
УСМБ 1
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
09h |
УС= 0 0 0 0 0 0 0 1 = 01h
D7=0, т.к. признак УСМБ
D6D5D4= ***, т.е. безразлично
D3D2D1=000, т.к. С0
D0=1, т.е. прерывание разрешено
УСМБ 2
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0Dh |
УС= 0 0 0 0 1 1 0 1 = 0Dh
D7=0, т.к. признак УСМБ
D6D5D4= ***, т.е. безразлично
D3D2D1=110, т.к. С6
D0=1, т.е. прерывание разрешено
УСМБ 3
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
05h |
УС= 0 0 0 0 1 1 0 1 = 05h
D7=0, т.к. признак УСМБ
D6D5D4= ***, т.е. безразлично
D3D2D1= 010, т.к. С2
D0=1, т.е. прерывание разрешено
Программа инициализации ППИ на языке Assembler
DI ;запрет прерывания
MVI A,С0 ; УС = С0h Ак.
OUT Е3 ; Ак. = УС= С0h ППИ(РУС)
MVI A, 09 ; УСМБ1 = 09h Ak
OUT 4B ; Ak =УСМБ1 = 09 РУС
MVI A, 09 ; УСМБ2 = 0Dh Ak
OUT 4B ; Ak =УСМБ2 = 0D РУС
MVI A, 05h ; УСМБ3 = 05h Ak
OUT 4B ; Ak = УСМБ3 = 05h РУС
EI ; разрешение прерываний
3.1.2 Инициализация КПДП
Перед работой КПДП необходимо его инициализировать, т.е. загрузить необходимые данные в следующие регистры каналов:
Согласно заданию к КПДП для организации режима ПДП подключаются 2 УВВ:
УВВ1 – к каналу 2, работает на ввод 5000 байт на 32 страницу памяти (адрес 8000h);
УВВ2 – к каналу 1, работает на вывод 900 байт из 36 страницы памяти (адрес 9389h);
Формирование сигналов для программирования каналов
УВВ1 подключено к каналу 2, работает на ввод 5000 байт на 32 страницу памяти (адрес 8000h);
РА0=8000h (32 страница ОЗУ)
РЦ0=500010-110=499910=1387h=0001 0011 1000 0111 2
РУ0=012 т.к ввод
(РУ+РЦ)0=0100 0001 0011 1000 0111 2=41387h
УВВ2 подключено к каналу 1, работает на вывод 900 байт из 36 страницы памяти (адрес 9389h););
РА1=9389h (36 страница ОЗУ)
РЦ1=9000-110=89910=383h=0000 0011 1000 0011 2
РУ1=102 т.к вывод
(РУ+РЦ)1=1000 0011 1000 00112=8383h
Сформируем содержимое регистра режима (РР):
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
=0Сh |
D0 = 0 - канал 0 - отключен;
D1 = 0- канал 1 - отключен;
D2 = 1 - канал 2 - включен;
D3 = 1 - канал 3 - включен;
D4=0 т.к приоритет фиксированный
D5=0 т.к режим нормальной записи/чтения
D6=0 т.к нет запрета на передачу по сигналу КС
D7=0 т.к автозагрузка отключена.
Адреса регистров КПДП (Адрес КПДП в системе = Е0)
РА0 |
Е0 |
(РУ+РЦ)0 |
Е1 |
РА1 |
Е2 |
(РУ+РЦ)1 |
Е3 |
РА2 |
Е4 |
(РУ+РЦ)2 |
Е5 |
РР |
Е8 |
Программа инициализации КПДП на языке Assembler
DI ;запрет прерывания
MVI A,00 ; мл. РА0 =00 h Ак.
OUT Е0 ; мл. РА0 КПДП(РА0)
MVI A,80 ; ст. РА0 =80h Ак.
OUT 30 ; ст. РА0 КПДП(РА0)
MVI A, 44; мл. (РУ+РЦ)0=44h Ак.
OUT 31; мл. (РУ+РЦ)0 КПДП((РУ+РЦ)0)
MVI A,АF; ст. (РУ+РЦ)0 =AFh Ак.
OUT 31 ; ст. (РУ+РЦ)0 КПДП((РУ+РЦ)0)
MVI A, 00; мл. РА1 = 00 h Ак.
OUT 32 ; мл. РА1 КПДП(РА1 )
MVI A,88 ; ст. РА1 =88 h Ак.
OUT 32 ; ст. РА1 КПДП(РА1 )
MVI A, 63 ; мл. (РУ+РЦ)1 =63h Ак.
OUT 33 ; мл. (РУ+РЦ)1 КПДП((РУ+РЦ)1)
MVI A, 80 ; ст. (РУ+РЦ)1 = 80 h Ак.
OUT 33 ; ст. (РУ+РЦ)1 КПДП((РУ+РЦ)1)
MVI A,03 ;РР=03h Ак.
OUT 38;Ак.=РР КПДП(РР)
EI ; разрешение прерываний
3.1.3 Инициализация ПКП
Необходимо реализовать режим прерываний с помощью ПКП.
Начальная область векторов прерывания для ведущего контроллера 97FF, в соответствии с заданием в МПС включен 1 ПКП. Вектора прерывания следует через 4 байтa.
97FFh=1001 0011 1111 1111 b
Формирование УСИ1
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
F6h |
D7, D6, D5 = А7, А6, А5 первого адреса области ВП
D4, D3 – «10» всегда
D2=1 – т.к вектора прерывания следуют через 4 байта.
D1 =1 – т.к количество ПКП в системе один
D0=0 – т.к. МП КР580ВМ80А
УСИ1= F6 h
Формирование УСИ2
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
HEX |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
93h |
D7,D6,D5,D4,D3,D2,D1,D0 = A15 – A8: Старший байт 1-го адреса области векторов прерывания.
УСИ2= 93 h
Программа инициализации ПКП на языке Assembler
DI ;запрет прерывания
MVI A,F6 ; УСИ1= F6h Ак.
OUT 82 ; УСИ1 ПКП
MVI A,93 ; УСИ2= 93 Ак.
OUT 83 ; УСИ2 ПКП
EI ; разрешение прерываний
3.2 Блок-схема алгоритма программы инициализации интерфейсного модуля