1242 lines
68 KiB
Plaintext
1242 lines
68 KiB
Plaintext
********************************************************************************
|
||
** Этот документ пригоден для просмотра на ZX Spectrum в 80 символьном формате**
|
||
********************************************************************************
|
||
|
||
(c) Black_Cat 2011-2020 www.zx.clan.su
|
||
|
||
BC Info Guide #7.
|
||
|
||
|
||
Стандартизация ZXBus интерфейсов и шин.
|
||
|
||
|
||
Оглавление:
|
||
|
||
1. Шинный интерфейс ZXBus и шина NemoBus.
|
||
1.1 Терминология.
|
||
2. Шинный интерфейс ZXBus и его самые распространённые клоны.
|
||
3. Шина NemoBus.
|
||
3.1 Основные принципы ZXBus.
|
||
3.2 Базовые принципы шины NemoBus.
|
||
3.3 Габаритные размеры карт расширения шины NemoBus.
|
||
3.4 Назначение сигналов шины NemoBus.
|
||
3.4.1 Сигналы шины NemoBus v0.9.
|
||
3.4.2 Новые (характерные) и изменённые сигналы шины NemoBus v1.0.
|
||
3.4.3 Новые (характерные) сигналы шины NemoBus v1.1.
|
||
3.4.4 Новые (характерные) и изменённые сигналы шины NemoBus v1.2 (проект).
|
||
4. Проектирование устройств для шины NemoBus.
|
||
4.1 Требования и рекомендации к шине и архитектуре компьютера для соответствия
|
||
стандарту NemoBus.
|
||
4.2 Требования и рекомендации к интерфейсу периферийных устройств, подключаемых
|
||
к шине NemoBus.
|
||
4.3 Формирователь сигнала IORQGE для шины NemoBus.
|
||
4.4 Арбитр адреса портов ввода-вывода шины NemoBus.
|
||
4.5 Формирователь сигнала RDR/ для шины NemoBus.
|
||
4.6 Арбитр доступа к памяти в окне CPU0 шины NemoBus.
|
||
4.7 Формирователь маскируемых прерываний от устройств шины NemoBus.
|
||
4.8 Интерфейс динамического запроса ПДП для шины NemoBus v.1.2.
|
||
4.9 Управление памятью в окнах CPU0-CPU3 с шины NemoBus v.1.2.
|
||
|
||
|
||
1. Шинный интерфейс ZXBus и шина NemoBus.
|
||
|
||
ZXBus и NemoBus - это названия соответственно внешнего шинного интерфейса расши-
|
||
рения оригинальных моделей ZX Spectrum и компьютерной шины расширения оте-
|
||
чественного клона ZX Spectrum "KAY", разработанного Вячеславом Скутиным aka
|
||
Nemo. Широкое распространение шины NemoBus сделало её стандартом де-факто на
|
||
территории СССР для компьютеров разработанных в концепции десктопного конструк-
|
||
тива.
|
||
На сегодняшний день кроме компьютера KAY, шина NemoBus поддержана в компьютерах:
|
||
Pentagon-1024SL v.1.4 / v.2.2, Pentagon v.2.666 / v.2.666LE разработки Алексея
|
||
Жабина aka KoE, ZXM-Phoenix, ZXM-Phoenix 2, ZXM-Zephyr, Devboard Z80 разработки
|
||
Михаила Тарасова aka Mick, кроме того, Development Board "ZX Evolution", разра-
|
||
ботки группы NedoPC, также позволяет реализовать шину совместимую с NemoBus.
|
||
|
||
|
||
1.1 Терминология.
|
||
|
||
За время прошедшее с момента разработки ZX Spectrum, было выпущено множество его
|
||
клонов, большая часть из которых имела шинный интерфейс расширения, т.е. интер-
|
||
фейс для расширения внутренней шины компьютера. Интерфейсы этих клонов
|
||
ZX Spectrum имели разные конструкции, и отличались по составу используемых си-
|
||
гналов, их обозначению, при этом имея одно и то же наименование "ZXBus", что
|
||
вносило анархию и невозможность определить о какой модификации шинного интерфей-
|
||
са идёт речь. Дополнительную сумятицу вносило отсутствие чёткого разграничения
|
||
терминов "интерфейс", "шина" и "магистраль". Поэтому прежде чем перейти к описа-
|
||
нию различных стандартов следует уточнить применяемую терминологию.
|
||
|
||
Интерфейс - применительно к аппаратной части, это выделенный канал связи исполь-
|
||
зуемый в компьютере. Применяется для организации взаимодействия только
|
||
между двумя компонентами системы. Т.е. через конкретный аппаратный интерфейс мо-
|
||
гут одновременно взаимодействовать только два компонента системы. В компьютере,
|
||
как правило, реализовано несколько типов интерфейсов.
|
||
|
||
Шина — это общий канал связи, используемый в компьютере. Применяется для органи-
|
||
зации взаимодействия между двумя и более однородными компонентами системы. Т.е.
|
||
через конкретную шину могут одновременно взаимодействовать два или более компо-
|
||
нента системы. В компьютере, как правило, реализовано несколько типов шин.
|
||
|
||
Шинный интерфейс - внешний интерфейс внутренней шины компьютера.
|
||
|
||
Магистраль - совокупность шины данных, шины адреса, и шины управления компью-
|
||
тера.
|
||
|
||
В отношении используемых названий и определения интерфейса и шины впредь предла-
|
||
гается придерживаться следующих правил:
|
||
|
||
1) Используемые названия являются именами собственными, при этом написание их
|
||
обладает качеством повторяемости и неизменности формы написания присущих торго-
|
||
вым знакам. Под формой написания подразумевается чередование букв, пробелов,
|
||
знаков, а так же заглавных и прописных букв латинского или кириллического
|
||
алфавита.
|
||
2) Для обозначения интерфейсов и шин расширения использовать слитное обозначение
|
||
состоящее из двух частей: начальной - указывающей на название семейства компью-
|
||
теров использующих этот интерфейс или шину, и оконечной - "Bus":
|
||
|
||
ZXBus - шинный интерфейс расширения компьютеров ZX Spectrum;
|
||
ZX128Bus - шинный интерфейс расширения компьютеров ZX Spectrum 128/+2;
|
||
ZX+3Bus - шинный интерфейс расширения компьютеров ZX Spectrum +2a,b/+3;
|
||
ProfiBus - шина расширения компьютеров Profi+/2+;
|
||
Profi3Bus - шина расширения компьютеров Profi3+;
|
||
ScorpionBus - шина расширения компьютеров Scorpion;
|
||
NemoBus - шина расширения компьютеров KAY (авторское наименование);
|
||
|
||
3) Для обеспечения стандартизации развития шины NemoBus, используется обозначе-
|
||
ние её версии в виде: NemoBus v.X.X, где X.X - номер используемой версии. При
|
||
этом шина NemoBus компьютеров KAY-1024SL соответствует версии NemoBus v.1.0, а
|
||
шины более ранних моделей компьютеров KAY соответствуют версии NemoBus v.0.9.
|
||
Критерием, определяющим принадлежность к той или иной версии является наличие
|
||
характерных для неё изменений - всех, или только их части. Если при этом шина не
|
||
полностью соответствует спецификации стандарта из-за отсутствия каких-либо сиг-
|
||
налов, то к номеру версии добавляется бува "m", т.е. "modified".
|
||
|
||
Пример: шина ZXM-Phoenix содержит сигнал IODOS/, характерный для NemoBus v.1.1,
|
||
но в то же время не имеет сигнала TURBO, харатерного для NemoBus v.1.0,
|
||
но, т.к. стандарт v.1.0 является подмножеством стандарта v.1.1, то шина
|
||
идентифицируется как v.1.1, но с добавкой "m", указывающей на отсутствие
|
||
некоторых сигналов, т.е. у ZXM-Phoenix шина NemoBus v.1.1m.
|
||
|
||
4) Шинным интерфейсом, в отношении клонов ZXBus, называть стык, имеющий единст-
|
||
венный физический соединитель, непосредственно к которому возможно подключение
|
||
единственного устройства.
|
||
5) Шиной расширения, в отношении клонов ZXBus, называть стык, позволяющий под-
|
||
ключать параллельно несколько устройств имеющих однотипный интерфейс связи.
|
||
6) Шинным расширителем, в отношении клонов ZXBus, называть устройство, подключа-
|
||
емое к шинному интерфейсу клонов ZXBus, и предназначенное для организации стыка
|
||
типа шина.
|
||
|
||
|
||
2. Шинный интерфейс ZXBus и его самые распространённые клоны.
|
||
|
||
В Табл.1 дана цоколёвка шинного интерфейса ZXBus оригинального ZX Spectrum, а
|
||
также цоколёвка шинных интерфейсов и шин наиболее распространённых его клонов.
|
||
|
||
Тип интерфейса или шины (Bus type):
|
||
|
||
1 - ZXBus (ZX Spectrum)
|
||
2 - ZX128Bus (ZX Spectrum 128/+2)
|
||
3 - ZX+3Bus (ZX Spectrum +2a,b/+3)
|
||
4 - Quorum128Bus (Quorum 128)
|
||
5 - ScorpionBus (Scorpion ZS256 / Scorpion ZS256 Turbo+)
|
||
6 - NemoBus v.0.9-v.1.1(USSR ZX Spectrum expansion bus standard)
|
||
7 - NemoBus v.1.2(USSR ZX Spectrum expansion bus standard)
|
||
8 - TC2048Bus (Timex Computer 2048)
|
||
9 - TC2068Bus (Timex Computer 2068)
|
||
10 - ProfiBus/Profi3Bus (Profi+/Profi3+)
|
||
|
||
Тип соединителя (Connector type):
|
||
|
||
1 - печатный краевой разъём
|
||
2 - разъём ОНП-КС-23-Р
|
||
3 - разъём SL-62
|
||
4 - разъём СНП58-64/94*9Р
|
||
|
||
Табл.1
|
||
|
||
==========================================================+---------+===========
|
||
1 2 3 4 5 6 7 8 9 10 Bus type
|
||
==========================================================+---------+===========
|
||
1 1 1 1 2 3 3 1 1 4 Connector
|
||
type
|
||
2,54 2,54 2,54 2,5 2,5 2,54 2,54 2,54 2,54 2,5 Step,mm
|
||
==========================================================+---------+===========
|
||
UP(B) UP(B) UP(B) UP(A) A B B UP(B) UP(B) B Side
|
||
+===========
|
||
+---------+ TURBO 1
|
||
==========================================================+ 1 EXROM/ RIGHT 2
|
||
1 A15 A15 A15 A15 A15 A15 A15 A15 2 A15 ADR15 3
|
||
2 A13 A13 A13 A13 A13 A13 A13 A13 3 A13 ADR13 4
|
||
3 D7 D7 D7 D7 D7 D7 D7 D7 4 D7 DC7 5
|
||
4 NC NC ROM1 OE /RAMCS BLK BLK BLK NC 5 NC NC 6
|
||
5 Key Key Key Key NC **TURBO TURBO Key 6 Key NC 7
|
||
6 D0 D0 D0 D0 D0 D0 D0 D0 7 D0 DC0 8
|
||
7 D1 D1 D1 D1 D1 D1 D1 D1 8 D1 DC1 9
|
||
8 D2 D2 D2 D2 D2 D2 D2 D2 9 D2 DC2 10
|
||
9 D6 D6 D6 D6 D6 D6 D6 D6 10 D6 DC6 11
|
||
10 D5 D5 D5 D5 D5 D5 D5 D5 11 D5 DC5 12
|
||
11 D3 D3 D3 D3 D3 D3 D3 D3 12 D3 DC3 13
|
||
12 D4 D4 D4 D4 D4 D4 D4 D4 13 D4 DC4 14
|
||
13 INT INT INT /INT INT INT INT INT/ 14 INT/ INT 15
|
||
14 NMI NMI NMI /NMI NMI NMI NMI NMI/ 15 NMI/ NMI 16
|
||
15 HALT HALT HALT /HLT HLT HLT EOP\HLT HALT/ 16 HALT/ HALT 17
|
||
16 MREQ MREQ MREQ /MREQ MREQ MREQ MREQ MREQ/ 17 MREQ/ MREQ 18
|
||
17 IORQ IORQ IORQ /IORQ IORQ IORQ IORQ IORQ/ 18 IORQ/ IORQ 19
|
||
18 RD RD RD /RD RD- RD RD RD/ 19 RD/ RD 20
|
||
19 WR WR WR /WR WR- WR WR WR/ 20 WR/ WR 21
|
||
20 -5V -5V NC RA14 NC ***IODOS/ IODOS/ NC 21 NC #12MHz 22
|
||
21 WAIT WAIT WAIT /WAIT WAIT WAIT WAIT WAIT/ 22 WAIT/ READY 23
|
||
22 +12V +12V +12V NC +12V NC A15' +12V 23 NC +12V 24
|
||
23 12VAC 12VAC -12V /TRDOS NC NC A17' 12VAC 24 NC #TIMER 25
|
||
24 M1 M1 M1 /M1 M1 M1 M1 M1/ 25 M1/ M1 26
|
||
25 RFSH RFSH RFSH /RFSH RFSH RFSH ER\RFSH RFSH/ 26 RFSH/ REF 27
|
||
26 A8 A8 A8 A8 A8 A8 A8 A8 27 A8 ADR8 28
|
||
27 A10 A10 A10 A10 A10 A10 A10 A10 28 A10 ADR10 29
|
||
28 NC NC RESET NC NC +5V +5V NC 29 NC CP/M 30
|
||
29 - - - - NC +12V +12V - 30 RED TR_DOS 31
|
||
30 - - - - GND GND A21' - 31 GREEN BLOK 32
|
||
31 - - - - - NC A19' - 32 BLUE +===========
|
||
==========================================================+---------+
|
||
|
||
==========================================================+---------+===========
|
||
DOWN(A)DOWN(A)DOWN(A)DOWN(B) B A A DOWN(A) DOWN(A) A Side
|
||
+===========
|
||
+---------+ NC 1
|
||
==========================================================+ 1 BE/ LEFT 2
|
||
1 A14 A14 A14 A14 A14 A14 A14 A14 2 A14 ADR14 3
|
||
2 A12 A12 A12 A12 A12 A12 A12 A12 3 A12 ADR12 4
|
||
3 +5V +5V +5V +5V +5V +5V +5V +5V 4 +5V +5V 5
|
||
4 +9V +9V NC NC DOS/ DOS/ DOS/ +9V 5 +9V NC 6
|
||
5 Key Key Key Key NC F F Key 6 Key NC 7
|
||
6 GND GND GND GND GND GND GND GND 7 GND GND 8
|
||
7 GND GND GND GND GND GND GND GND 8 GND GND 9
|
||
8 CLK CLK CLK CLK CLK CLK CLK CLK 9 CLK CLCAY 10
|
||
9 A0 A0 A0 A0 A0 A0 A0 A0 10 A0 ADR0 11
|
||
10 A1 A1 A1 A1 A1 A1 A1 A1 11 A1 ADR1 12
|
||
11 A2 A2 A2 A2 A2 A2 A2 A2 12 A2 ADR2 13
|
||
12 A3 A3 A3 A3 A3 A3 A3 A3 13 A3 ADR3 14
|
||
13 IORQGE NC NC /IORQGE IORQGE IORQGE IORQGE **** 14 NC OUTIORQ 15
|
||
14 GND GND GND GND GND GND GND GND 15 GND GND 16
|
||
15 Video *Video ROM2 OE NC RDR/ RDR/ RDR/ NC 16 Video #-5V 17
|
||
16 Y *Y Disk RD NC NC RS EXTA\RS R 17 NC NC 18
|
||
17 V *V Disk WR NC NC NC A14' G 18 NC NC 19
|
||
18 U *U MotorON NC NC NC A16' B 19 NC NC 20
|
||
19 BUSRQ BUSRQ BUSRQ /BUSRQ BRQ BRQ BRQ BUSRQ/ 20 BUSRQ/ BUSRQ 21
|
||
20 RESET RESET RESET /RES RES RES RES RESET/ 21 RESET/ RESET 22
|
||
21 A7 A7 A7 A7 A7 A7 A7 A7 22 A7 ADR7 23
|
||
22 A6 A6 A6 A6 A6 A6 A6 A6 23 A6 ADR6 24
|
||
23 A5 A5 A5 A5 A5 A5 A5 A5 24 A5 ADR5 25
|
||
24 A4 A4 A4 A4 A4 A4 A4 A4 25 A4 ADR4 26
|
||
25 ROMCS ROMCS NC /ROMCS CSR/ CSR/ CSR/ ROMCS/ 26 ROMCS/ ROMCS 27
|
||
26 BUSAK BUSAK BUSAK /BUSAK BAK BAK EA\BAK BUSAK/ 27 BUSAK/ BUSAK 28
|
||
27 A9 A9 A9 A9 A9 A9 A9 A9 28 A9 ADR9 29
|
||
28 A11 A11 A11 A11 A11 A11 A11 A11 29 A11 ADR11 30
|
||
29 - - - - NC +5V +5V - 30 CSYNC ROM14 31
|
||
30 - - - - GND GND A20' - 31 BRIGHT SOUND 32
|
||
31 - - - - - NC A18' - 32 GND +===========
|
||
==========================================================+---------+
|
||
* - NC для ZX Spectrum +2
|
||
** - NC для NemoBus младше v.1.0
|
||
*** - NC для NemoBus младше v.1.1
|
||
**** - NC для Issue 03 и младше, IORQ/ для Issue 04 и старше
|
||
# - NC для Profi+
|
||
|
||
3. Шина NemoBus.
|
||
|
||
Впервые эта шина появилась как опциональное расширение для компьютера
|
||
"Composite-128K AY" ("KAY-128"). Впоследствии шина получила развитие и утверди-
|
||
лась в линейке компьютеров "KAY". Из всех клонов ZXBus, только в NemoBus были
|
||
правильно поняты идеи, заложенные в ZXBus Ричардом Альтвассером, что позволяло
|
||
преодолевать ограничения упрощённой дешифрации присущей ZX Spectrum. Именно эта
|
||
особенность шины NemoBus позволила ей стать де-факто региональным стандартом на
|
||
территории СССР.
|
||
|
||
|
||
3.1 Основные принципы ZXBus.
|
||
|
||
Существует два основных альтвассеровских принципа, лежащих в основе интерфейса
|
||
ZXBus и его развития - шины NemoBus:
|
||
|
||
1) Первый альтвассеровский принцип, или "сигнальный принцип" - сигнал IORQGE в
|
||
обязательном порядке включает в себя адресные сигналы и сигнал M1/, и не вклю-
|
||
чает сигнал IORQ/.
|
||
2) Второй альтвассеровский принцип, или "принцип приоритета" - системные порты
|
||
материнской платы имеют самый низкий приоритет доступа.
|
||
|
||
Следствия:
|
||
|
||
1) Наиболее низкий приоритет системных портов материнской платы позволяет ис-
|
||
пользовать для них максимально упрощённую дешифрацию.
|
||
|
||
2) Шины и интерфейсы периферийных устройств, не соответствующие основным альт-
|
||
вассеровским принципам некорректно называть "ZXBus", правильно им давать собст-
|
||
венное название. В частности, например клоны ZX Spectrum 128/+2/+3, Scorpion,
|
||
Profi не соответствуют основным альтвассеровским принципам. Поэтому, корректно
|
||
называть интерфейсы и шины этих клонов соответственно ZX128Bus, ZX+3Bus,
|
||
ScorpionBus, ProfiBus и т.д. Так же рекомендуется применять собственное название
|
||
в случае отличий в сигналах шины или интерфейса, например ZXBus и NemoBus имеют
|
||
разные названия, хотя соответствуют основным альтвассеровским принципам.
|
||
|
||
Объяснение основных принципов шины ZXBus.
|
||
|
||
Принцип разделения адресного пространства портов ввода-вывода (ВВ) базируется на
|
||
особенностях таймингов процессора Z80, в частности, на опережающем выставлении
|
||
процессором адреса относительно сигнала IORQ/, что позволяет произвести его де-
|
||
шифрацию и арбитрирование ещё до прихода IORQ/, и таким образом исключить гонки
|
||
вызванные различиями в схемотехнике дешифраторов устройств. Т.е. ещё до прихода
|
||
IORQ/ сигналы IORQGE на всех периферийных устройствах уже будут выставлены. Это
|
||
накладывает ограничения на использование клонов Z80 других производителей или
|
||
FPGA ядер, которые так же обязаны иметь упреждающее выставление адреса относи-
|
||
тельно IORQ/. Разделение адреса происходит путём его дешифрации при единичном
|
||
значении сигнала M1/, и в случае его совпадения - выработке блокирующего сигна-
|
||
ла IORQGE для остальных устройств. Учитывать сигнал M1/ при арбитрировании не-
|
||
обходимо, чтобы исключить блокирование арбитром сигнала IORQ/ в цикле чтения
|
||
вектора прерывания.
|
||
|
||
|
||
3.2 Базовые принципы шины NemoBus.
|
||
|
||
1) Шина NemoBus основана на разделении адресного пространства портов ВВ между
|
||
установленными в слоты периферийными устройствами и материнской платой компью-
|
||
тера. Разделение происходит путём захвата адресного пространства портов ВВ уст-
|
||
ройствами в слотах шины NemoBus, и выражается в прекращении распространения сиг-
|
||
нала IORQ/ на слоты с низшим приоритетом. Разделение производится с помощью ар-
|
||
битра IORQ/. Такой способ разделения адресного пространства является базовым
|
||
принципом арбитрирования устройств шины NemoBus.
|
||
|
||
2) Слоты шины NemoBus имеют убывающий приоритет захвата адресного пространства
|
||
портов ВВ, и по этому признаку делятся на master-слот и slave-слоты с убывающим
|
||
приоритетом. Наивысший приоритет имеет master-слот, на который непосредственно
|
||
подаётся сигнал IORQ/ от CPU. Наинизший приоритет имеют порты материнской платы
|
||
компьютера.
|
||
|
||
3) Только устройство в master-слоте может выступать задатчиком шины при её за-
|
||
хвате.
|
||
|
||
4) Возможно арбитрирование только в циклах записи или чтения. Для арбитрирования
|
||
в цикле чтения в дешифрацию включается сигнал WR/=1, а в цикле записи - сигнал
|
||
RD/=1. Такое арбитрирование приводит к укорачиванию сигнала IORQ/ в противопо-
|
||
ложных арбитрируемым циклах - циклах чтения при арбитрировании в цикле записи, и
|
||
наоборот.
|
||
|
||
5) Кроме функции разделения адресного пространства портов ВВ, арбитр IORQ/ так
|
||
же может выполнять функцию арбитрирования источника вектора маскируемого преры-
|
||
вания. Наивысший приоритет в выставлении на шину вектора прерывания имеет
|
||
устройство в master-слоте, а наинизший - материнская плата.
|
||
|
||
Следствия базовых принципов шины NemoBus:
|
||
|
||
1) Запрещается буферирование сигналов шины адреса, а так же сигналов M1/, RD/,
|
||
WR/, IORQ/, идущих от процессора к шине NemoBus, т.к. это приведёт к увеличению
|
||
задержки времени арбитрирования, следствием чего могут стать гонки при дешифра-
|
||
ции устройств и их некорректная работа. Допускается буферирование любых сигналов
|
||
для устройств интегрированных на материнскую плату, имеющих низший приоритет
|
||
доступа по сравнению с устройствами NemoBus.
|
||
|
||
2) Устройства в слотах рекомендуется располагать в зависимости от полноты деши-
|
||
фрации их сигнала IORQGE, а так же в зависимости от наличия арбитрирования толь-
|
||
ко в цикле чтения или записи. Устройства с наиболее полной дешифрацией ре-
|
||
комендуется устанавливать в слоты с более высоким приоритетом, а устройства с
|
||
наименее полной дешифрацией в слоты с наинизшим приоритетом. Это минимизирует
|
||
диапазон адресов портов подвергающихся блокировке сигналом IORQGE вследствие не-
|
||
полноты его дешифрации. Устройство с арбитрированием только в цикле чтения или
|
||
записи рекомендуется устанавливать в слот с наинизшим приоритетом.
|
||
|
||
3) Возможно включение в арбитрирование периферийных устройств интегрированных на
|
||
материнской плате, но только с приоритетом либо ниже чем у master-слота, либо
|
||
равным ему. Иначе, для внешних устройств, предназначенных для установки в
|
||
master-слот, будет недоступна возможность полноценного захвата шины с генераци-
|
||
ей собственного IORQ/. Т.е. вместо слота, или параллельно ему может быть подклю-
|
||
чено интегрированное на материнскую плату периферийное устройство. Такое подклю-
|
||
чение накладывает ограничение - в запараллеленный слот нельзя вставлять устрой-
|
||
ства, конфликтующие по дешифрации портов с включенным параллельно ему интегриро-
|
||
ванным устройством.
|
||
|
||
|
||
3.3 Габаритные размеры карт расширения шины NemoBus.
|
||
|
||
Шина NemoBus изначально была рассчитана на возможность работы с картами перифе-
|
||
рийных устройств двух формфакторов: A и B, различающихся между собой максималь-
|
||
ным расстоянием h от середины первого контакта интерфейса краевого разъёма до
|
||
левого края платы, выходящего на тыльную сторону компьютера, и соответственно
|
||
максимальным расстоянием H от середины 31 контакта интерфейса краевого разъёма
|
||
до правого края платы, выходящего внутрь системного блока компьютера.
|
||
|
||
NemoBus card
|
||
+------------------ ....... -------------------------------+ ---
|
||
|<--- rear computer Component side inside computer --->| ^
|
||
| | |
|
||
| PLD connector | 2,54 mm| | L = max 95,5 mm
|
||
| 1B+++++++++ ....... +++++++++31B v | |
|
||
| 1A+++++++++ ....... +++++++++31A ----+- | v
|
||
+--------+ +------------+--------+ -+-
|
||
1B | Edge connector side B | 31B ^ | 7,62 mm
|
||
+UUUUUUUUU ....... UUUUUUUUU+ | -+-
|
||
| | 81 mm ^
|
||
-->+---------------------------+<----- |
|
||
h 1B 31B H
|
||
|<------->| |<-------------------->|
|
||
Рис.1
|
||
Табл.2
|
||
+------------+-----+-----+
|
||
| Формфактор | A | B |
|
||
|------------|-----|-----|
|
||
| h(max), мм | 50 | 25,4|
|
||
|------------|-----|-----|
|
||
| H(max), мм |212,2|236,8|
|
||
+------------+-----+-----+
|
||
|
||
Формфактор B полностью соответствует размерной сетке ISA8 карт, но компоненты в
|
||
устройствах NemoBus размещены на противоположной стороне относительно ISA карт.
|
||
Предельные размеры H, h, L даны для полноразмерного PC AT/ATX корпуса. Для
|
||
малогабаритных корпусов предельные размеры H и L могут быть меньше. Для карт
|
||
предназначенных для работы во всех существующих клонах, не рекомендуется исполь-
|
||
зовать размер H более 25,4 мм, а так же размещать разъёмы, ответные части кото-
|
||
рых выходят за этот габарит. Такое ограничение связано с некорректным размещени-
|
||
ем слотов шины NemoBus в компьютерах Pentagon-1024 v.2.2/v.2.666.
|
||
Формфактор A рекомендуется для несистемного периферийного оборудования, такого
|
||
как дополнительные опциональные звуковые и видео карты, программаторы, комму-
|
||
никационное оборудование.
|
||
Формфактор B рекомендуется для системного периферийного оборудования, такого как
|
||
муьтикарты или отдельные контроллеры клавиатуры, мыши, джойстика, HDD, FDD, SD,
|
||
контроллеры ПДП и прерываний, внешние менеджеры ОЗУ и ПЗУ, скандаблеры и
|
||
контроллеры палитры.
|
||
|
||
|
||
3.4 Назначение сигналов шины NemoBus.
|
||
|
||
Начиная с момента своего возникновения, шина NemoBus продолжает эволюционно раз-
|
||
виваться, и претерпела определённые изменения. Дальнейшее развитие ZX Spectrum
|
||
требует решения целого ряда новых задач, которые в свою очередь предполагают со-
|
||
ответствующее развитие шины NemoBus. Целью развития шины NemoBus является созда-
|
||
ние законченной, аппаратно полноценной, открытой компьютерной архитектуры, при-
|
||
годной для интеграции компьютера в современные вычислительные системы. Ниже при-
|
||
ведены описания назначения сигналов для существующих версий шины NemoBus, а
|
||
также для перспективной версии, предполагающей следующие дополнительные функции
|
||
сверх имеющихся в предыдущих версиях шины:
|
||
|
||
NemoBus v.1.2 :
|
||
– возможность работы через шину NemoBus v.1.2 с внешним контроллером DMA, кото-
|
||
рому доступна вся внутренняя память компьютера;
|
||
- возможность адресации через шину NemoBus v.1.2 до 4Мб внутреннего ОЗУ компью-
|
||
тера без мультиплексирования адресных линий, и до 256Мб с помощью мультиплек-
|
||
сирования;
|
||
- возможность подмены внутреннего менеджера памяти компьютера на внешний, для
|
||
управления извне через шину NemoBus v.1.2 внутренней памятью компьютера;
|
||
- возможность в любом окне подмены внутренней памяти компьютера на внешнюю,
|
||
управляемую внешним менеджером памяти;
|
||
- возможность использования дополнительного адресного пространства портов ввода-
|
||
вывода, позволяющего адресовать до 256 дополнительных портов;
|
||
- возможность запуска до 256 изолированных спектрумовских программ в ОЗУ компью-
|
||
тера, без необходимости их переделки, и возможностью мгновенного между ними
|
||
переключения пользователем, в особом защищённом режиме аппаратной многозадач-
|
||
ности - режиме Аппаратных Виртуальных Машин (АВМ);
|
||
|
||
|
||
Версии шины NemoBus некоторых компьютеров:
|
||
|
||
1. KAY-256 v.1.1-v.1.3 - NemoBus v.0.9
|
||
2. KAY-256 v.1.4, KAY-1024SL3, KAY-2010 - NemoBus v.1.0
|
||
3. Pentagon-1024SL v.1.3-v.1.4 - NemoBus v.0.9m
|
||
4. Pentagon-1024SL v.2.2 - NemoBus v.1.0m
|
||
5. Pentagon v.2.666/LE - NemoBus v.1.0m
|
||
6. ZXM-Phoenix rev.00-rev.07 - NemoBus v.1.1m
|
||
7. ZXM-Phoenix 2 rev.0 - NemoBus v.1.1m
|
||
8. ZX Evolution (devboard) rev.A-rev.C - NemoBus v.0.9m
|
||
9. Devboard Z80 rev.0 - NemoBus v.0.9m
|
||
10. ZXM-Zephyr rev.0 - NemoBus v.1.1m
|
||
|
||
|
||
3.4.1 Сигналы шины NemoBus v0.9.
|
||
|
||
Принятые обозначения для колонок таблицы:
|
||
|
||
1. Наименование сигнала.
|
||
2. Направление передачи сигнала относительно компьютера:
|
||
|
||
IO - двунаправленная линия, источник сигнала либо внутренний, либо внешний;
|
||
I/O - однонаправленная линия, источник сигнала либо внутренний, либо внешний;
|
||
I&O - однонаправленная линия, источником сигнала могут быть одновременно и
|
||
внутренний и внешний сигналы;
|
||
I - однонаправленная линия, источник сигнала внешний;
|
||
O - однонаправленная линия, источник сигнала внутренний;
|
||
|
||
3. Уровень активного сигнала:
|
||
|
||
L - Low, активный уровень сигнала - низкий;
|
||
H - High, активный уровень сигнала - высокий;
|
||
- - оба уровня сигнала являются активными;
|
||
|
||
4. Тип выхода сигнала:
|
||
|
||
OK - открытый коллектор;
|
||
TTL - транзистор-транзисторная логика;
|
||
3 - сигнал с третьим состоянием;
|
||
R - сигнал с резистивной развязкой;
|
||
|
||
5. Номер контакта.
|
||
|
||
Табл.3
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
1 | 2 |3| 4 | 5 |
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
D0 |I O|-| 3 | 6B|шина данных
|
||
D1 |I O|-| 3 | 7B|
|
||
D2 |I O|-| 3 | 8B|
|
||
D3 |I O|-| 3 |11B|
|
||
D4 |I O|-| 3 |12B|
|
||
D5 |I O|-| 3 |10B|
|
||
D6 |I O|-| 3 | 9B|
|
||
D7 |I O|-| 3 | 3B|
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
A0 |I/O|-| 3 | 9A|адресная шина процессора
|
||
A1 |I/O|-| 3 |10A|
|
||
A2 |I/O|-| 3 |11A|
|
||
A3 |I/O|-| 3 |12A|
|
||
A4 |I/O|-| 3 |24A|
|
||
A5 |I/O|-| 3 |23A|
|
||
A6 |I/O|-| 3 |22A|
|
||
A7 |I/O|-| 3 |21A|
|
||
A8 |I/O|-| 3 |26B|
|
||
A9 |I/O|-| 3 |27A|
|
||
A10 |I/O|-| 3 |27B|
|
||
A11 |I/O|-| 3 |28A|
|
||
A12 |I/O|-| 3 | 2A|
|
||
A13 |I/O|-| 3 | 2B|
|
||
A14 |I/O|-| 3 | 1A|
|
||
A15 |I/O|-| 3 | 1B|
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
BLK |I&O|H|3 R| 4B|сигнал установки в окно CPU0 страницы ОЗУ, wr D0=1 #1FFD
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
INT/ |I&O|L|OK |13B|сигнал маскируемого прерывания
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
NMI/ |I&O|L|OK |14B|сигнал немаскируемого прерывания
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
HALT/ | O|L|TTL|15B|сигнал, сообщающий об остановке CPU до прихода прерывания
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
MREQ/ |I/O|L| 3 |16B|сигнал обращения к памяти
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
IORQ/ |I/O|L| 3 |17B|сигнал обращения к портам ввода-вывода, арбитрируется
|
||
| | | | |сигналом IORQGE
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
RD/ |I/O|L| 3 |18B|сигнал чтения из портов или памяти
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
WR/ |I/O|L| 3 |19B|сигнал записи в порты или память
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
WAIT/ |I&O|L|OK |21B|сигнал запроса цикла ожидания
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
M1/ |I/O|L| 3 |24B|машинный цикл 1
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
RFSH/ |I/O|L|TTL|25B|сигнал регенерации памяти процессором
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
DOS/ |I/O|L|TTL| 4A|сигнал активации режима TR-DOS, вырабатывается BDI,
|
||
| | | | |при RES/=0 сигнал DOS/=1
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
F | O|-|TTL| 5A|14MHz, сигнал синфазный задающему генератору
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
CLK | O|-|TTL| 8A|3,5MHz сигнал, противофазный тактовой частоте CPU
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
IORQGE |I |H| 3 |13A|Сигнал захвата адреса порта внешним устройством.
|
||
| | | | |В цикле чтения вектора прерывания, используется для
|
||
| | | | |захвата вектора прерывания.
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
RDR/ |I |H|3 R|15A|READ ROM - сигнал захвата окна CPU0 и блокировки ПЗУ
|
||
| | | | |внешним устройством
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
RS |I&O|-|3 R|16A|ROM SELECT, адресная линия A14" ROM, управляется D4 #7FFD
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
BUSRQ/ |I&O|L|OK |19A|сигнал запроса на захват шины, синхронизируется задат-
|
||
| | | | |чиком по спаду CLK
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
RES/ |I&O|L|OK |20A|сигнал системного сброса
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
CSR/ | O|L|TTL|25A|CS ROM - сигнал, разрешающий захват окна CPU0, арбитри-
|
||
| | | | |руется сигналом RDR/
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
BUSAK/ | O|L|TTL|26A|сигнал подтверждения запроса на захват шины
|
||
========+=======================================================================
|
||
+5V |3A,29A,28B
|
||
--------+-----------------------------------------------------------------------
|
||
+12V |29B
|
||
--------+-----------------------------------------------------------------------
|
||
GND |6A,7A,14A,30A,30B
|
||
========+=======================================================================
|
||
|
||
|
||
3.4.2 Новые (характерные) и изменённые сигналы шины NemoBus v1.0.
|
||
|
||
Табл.4 Новые (характерные) сигналы шины NemoBus v1.0.
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
1 | 2 |3| 4 | 5 |
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
TURBO |I&O|H|OK | 5B|сигнал индицирует работу в турбо режиме, может отключать-
|
||
| | | | |ся внешним устройством
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
|
||
Табл.5 Изменённые сигналы шины NemoBus v1.0.
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
1 | 2 |3| 4 | 5 |
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
CLK | O|-|TTL| 8A|сигнал тактовой частоты CPU, синфазен сигналу F
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
|
||
|
||
3.4.3 Новые (характерные) сигналы шины NemoBus v1.1.
|
||
|
||
Табл.6
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
1 | 2 |3| 4 | 5 |
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
IODOS/ |I/O|L|TTL|20B|соответствует инверсному значению D7=1 #EFF7,
|
||
| | | | |в цикле IORQ/ активирует все теневые порты
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
|
||
|
||
3.4.4 Новые (характерные) и изменённые сигналы шины NemoBus v1.2 (проект).
|
||
|
||
Табл.7 Новые (характерные) сигналы шины NemoBus v1.2.
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
1 | 2 |3| 4 | 5 |
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
A14/A22'|I&O|-| 3 |17A|мультиплексируемая шина старших адресов ОЗУ, позволяет
|
||
A15/A23'|I&O|-| 3 |22B|адресовать до 256Mb ОЗУ. Данные достоверны при MREQ/=0, и
|
||
A16/A24'|I&O|-| 3 |18A|CSR/=1. По сигналу EXTA\RS=0 передаются адреса A22'-A27',
|
||
A17/A25'|I&O|-| 3 |23B|при EXTA\RS=1 передаются адреса A14'-A19'
|
||
A18/A26'|I&O|-| 3 |31A|
|
||
A19/A27'|I&O|-| 3 |31B|
|
||
--------+---+-+---+---+---------------------------------------------------------
|
||
|
||
Табл.8 Изменённые сигналы шины NemoBus v1.2.
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
1 | 2 | 3 | 4 | 5 |(сигнал при BUSAK/=1)\(сигнал при BUSAK/=0)
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
DOS/ |I/O| L |OK | 4A|сигнал активации режима TR-DOS, вырабатывается BDI,
|
||
| | | | |при RES/=0 сигнал DOS/=1, совокупность сигналов
|
||
| | | | |DOS/=0, IODOS/=0 индицирует работу компьютера в режи-
|
||
| | | | |ме KERNEL, изменён тип выхода
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
BLK |I&O| H |3 R| 4B|CPU0:BLK=1, при RDR/=1 - сигнал установки в окно CPU0
|
||
| | | | |страницы внутреннего ОЗУ, по wr D0=1 #1FFD
|
||
| | | | |CPU0:BLK=1, при RDR/=0 - сигналы внешнего устройства
|
||
| | | | |на отключение внутреннего ОЗУ и ПЗУ в окне CPU0
|
||
| | | | |CPU1-CPU3:BLK=1 сигнал внешнего устройства на отключе-
|
||
| | | | |ние внутреннего ОЗУ в окне CPU1-CPU3
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
CLK |I&O| - |OK | 8A|сигнал тактовой частоты CPU, синфазен сигналу F, изме-
|
||
| | | | |нён тип выхода
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
RDR/ |I | H |3 R|15A|RDR/(CSR/=0) - READ ROM, внешний сигнал захвата окна
|
||
| | | | |CPU0 и блокировки ПЗУ внешним устройством
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
EOP\HLT/ |I/O| L |3 R|15B|HALT/(BUSAK/=1) - сигнал, сообщающий об остановке CPU
|
||
| | | | |до прихода прерывания
|
||
| | | | |EOP/(BUSAK/=0) - END OPERATION, сигнал контроллера
|
||
| | | | |ПДП, сообщает об окончании счёта
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
EXTA\RS |I&O| - |3 R|16A|RS(CSR/=0, MREQ/=0) - ROM SELECT, активен при обраще-
|
||
| | | | |нии к ПЗУ в окне CPU0, отображает состояние адресной
|
||
| | | | |линии A14 ПЗУ компьютера, управляется D4 #7FFD.
|
||
| | | | |EXTA(CSR/=1, MREQ/=0) - EXTENDED ADRESS, активен при
|
||
| | | | |обращении к внутреннему ОЗУ компьютера. При EXTA=0, по
|
||
| | | | |6-ти разрядной мультиплексируемй шине старших адресов,
|
||
| | | | |передаются сначала адреса A22'-A27', а потом, по
|
||
| | | | |EXTA=1 - адреса A14'-A19'
|
||
| | | | |EXTA(MREQ/=1) - EXTENDED ADRESS, активен при обращении
|
||
| | | | |к портам, и выполняет роль старшего разряда адреса вы-
|
||
| | | | |бора портов A16.
|
||
| | | | |EXTA=1 при использовании команд IN/OUT(nn),A , при
|
||
| | | | |этом адресуются дополнительные 256 портов сверх 65536
|
||
| | | | |доступных процессору, в остальных случаях EXTA=0.
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
IODOS/ |I&O| L |OK |20B|соответствует инверсному значению D7=1 #EFF7, в цикле
|
||
| | | | |IORQ/ активирует все теневые порты, совокупность си-
|
||
| | | | |гналов DOS/=0, IODOS/=0 индицирует работу компьютера в
|
||
| | | | |режиме KERNEL, изменён тип выхода
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
ER\RFSH/ |I/O| L |3 R|25B|RFSH/(BUSAK/=1) - сигнал регенерации памяти процессо-
|
||
| | | | |ром
|
||
| | | | |ER/(BUSAK/=0) - END REQUEST, сигнал завершения запроса
|
||
| | | | |ПДП, по заднему фронту сигнала внешнее устройство фик-
|
||
| | | | |сирует подтверждённый канал ПДП, и освобождает шину
|
||
| | | | |данных
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
EA\BUSAK/| O| L |TTL|26A|BUSAK/ - для SLAVE слотов - сигнал подтверждения за-
|
||
| | | | |проса на захват шины.
|
||
|I&O| L |OK | |BUSAK/ - для MASTER слота - сигнал подтверждения за-
|
||
| | | | |проса на захват шины и подмены внутреннего менеджера
|
||
| | | | |памяти компьютера на внешний в цикле ПДП
|
||
| | | | |EA/ - EXTERNAL ADRESS, сигнал подмены внутреннего ме-
|
||
| | | | |неджера памяти компьютера на внешний, снимается по
|
||
| | | | |второму фронту CLK после BUSRQ/=0
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
A20' |I&O| - |OK |30A|не мультиплексируемая шина старших адресов ОЗУ, изме-
|
||
A21' |I&O| - |OK |30B|нено назначение вывода
|
||
---------+---+---+---+---+------------------------------------------------------
|
||
|
||
|
||
4. Проектирование устройств для шины NemoBus.
|
||
|
||
Возможность арбитрирования доступа к диапазону портов была присуща оригинальному
|
||
ZX Spectrum изначально, но стала использоваться по назначению и получила разви-
|
||
тие только в шине NemoBus. Шина NemoBus предполагает использование трёх типов
|
||
арбитрирования: арбитрирования доступа к портам ввода-вывода, арбитрирования ис-
|
||
точника вектора прерывания, и арбитрирования доступа к памяти в окне CPU0.
|
||
Последнее в оригинальном ZX Spectrum не было предусмотрено, и является характер-
|
||
ной особенностью только шины NemoBus, хотя на практике до сих пор в ней это и не
|
||
применялось ввиду отсутствия устройств требующих такого арбитрирования.
|
||
Схемотехническая поддержка арбитрирования доступа к памяти в окне CPU0 предпола-
|
||
галась для шины NemoBus v.1.2.
|
||
|
||
|
||
4.1 Требования и рекомендации к шине и архитектуре компьютера для соответствия
|
||
стандарту NemoBus.
|
||
|
||
1) Соответствие базовым принципам шины NemoBus.
|
||
2) При размещении компьютера в ПЛИС, для устройств внутри ПЛИС наиболее критич-
|
||
ных к быстродействию, эмулируется их установка в master-слот. Такие устройства
|
||
должны иметь полную дешифрацию для сигнала IORQGE, также возможно их запаралле-
|
||
ливание с реальным master-слотом с объединением сигналов IORQGE по "ИЛИ". В этом
|
||
случае на пользователя ложится ответственность за то, чтобы внешнее устройство в
|
||
master-слоте не конфликтовало по диапазону используемых портов с параллельным
|
||
устройством в ПЛИС. Для устройства в ПЛИС, афиллированного с master-слотом воз-
|
||
можно использование системных портов #FE и #7FFD только в цикле записи без гене-
|
||
рирования при их выборке IORQGE. Для компьютера в ПЛИС, как и для любого клона
|
||
ZX Spectrum, чтение порта #FE возможнот только с наинизшим приоритетом.
|
||
3) При использовании т.н. "порта атрибутов" #FF, не рекомендуется выполнять его
|
||
выборку прямой дешифрацией, а только по отсутствию сигналов блокировки IORQGE от
|
||
всех устройств компьютера при активном сигнале бордюра.
|
||
|
||
|
||
4.2 Требования и рекомендации к интерфейсу периферийных устройств, подключаемых
|
||
к шине NemoBus.
|
||
|
||
1) Если предусмотрено чтение из портов устройства, то обязательно наличие форми-
|
||
рователя сигнала IORQGE, посредством которого происходит захват адреса порта
|
||
ввода-вывода.
|
||
2) Если периферийной платой предусмотрена возможность подмены ПЗУ компьютера в
|
||
окне CPU0, то обязательно наличие формирователя сигнала RDR/, посредством кото-
|
||
рого происходит блокировка ПЗУ компьютера. Использование нескольких периферийных
|
||
плат имеющих возможность подмены ПЗУ компьютера предполагает наличие арбитра
|
||
доступа к памяти в окне CPU0.
|
||
3) Необходимо предусмотреть максимальное снижение нагрузки на выходные сигналы
|
||
шины. Для этого, при проектировании, необходимо использовать правило: "одно уст-
|
||
ройство - один вход на каждый используемый выходной сигнал шины". Так же, по
|
||
возможности, рекомендуется применение серий микросхем с минимальной нагрузкой на
|
||
шину по их входу.
|
||
4) Периферийное устройство, устанавливаемое в слот NemoBus может содержать дуб-
|
||
лирующий шину двухрядный игольчатый интерфейсный коннектор типа PLD для подклю-
|
||
чения дочерней платы. Стандарт соответствия контактов такого разъёма, сигналам
|
||
шины NemoBus приведён на Рис.1.
|
||
Дочерняя плата оборудуется ответным коннектором типа PBD. Возможно наличие на
|
||
дочерней плате одновременно и PLD и PBD коннекторов с её противоположных сторон.
|
||
|
||
|
||
4.3 Формирователь сигнала IORQGE для шины NemoBus.
|
||
|
||
В режиме арбитрирования захвата адресов портов, сигнал IORQGE периферийной карты
|
||
формируется из сигнала шины NemoBus M1/,и сигнала адресного дешифратора карты.
|
||
Сигнал M1/ определяет выбор режима арбитрирования шины NemoBus. При M1/=0 вклю-
|
||
чается режим арбитрирования векторов прерываний устройств, а при M1/=1 - режим
|
||
арбитрирования захвата адресов портов.
|
||
В некоторых случаях, когда один и тот же адрес порта на чтение и запись исполь-
|
||
зуется различными периферийными устройствами, в формирователь могут включаться
|
||
сигналы RD/, WR/ (сигналы не должны быть буферированы). В формирователе сигнала
|
||
адресного дешифратора карты рекомендуется использовать максимально полную деши-
|
||
фрацию адреса порта.
|
||
К каждому слоту шины NemoBus допускается подключение нескольких периферийных
|
||
карт, соединяемых между собою параллельно через дочерний игольчатый разъём, поэ-
|
||
тому выходы IORQGE каждой карты при таком подключении обязаны быть тристабильны-
|
||
ми. При параллельном подключении нескольких карт к одному слоту, пользователь
|
||
предварительно обязан самостоятельно убедиться в отсутствии конфликтов дешифра-
|
||
ции их портов ВВ.
|
||
При проектировании карт расширения предусматривающих возможность параллельного
|
||
подключения к одному слоту нескольких устройств генерирующих IORQGE, не ре-
|
||
комендуется использовать формирователь представленный на рис.4, он пригоден
|
||
только при использовании единственного устройства в слоте.
|
||
Для корректной работы карт использующих неполную дешифрацию, рекомендуется всег-
|
||
да устанавливать их в слоты с более низким приоритетом относительно карт с пол-
|
||
ной дешифрацией, это уменьшит вероятность конфликтов по диапазону захватываемых
|
||
адресов.
|
||
|
||
Ниже представлены разные схемотехнические решения для формирования сигнала
|
||
IORQGE периферийными устройствами:
|
||
|
||
- Рис.2 - с помощью бистабильного логического элемента и диода;
|
||
- Рис.3 - с помощью тристабильного буфера;
|
||
- Рис.4 - с помощью PNP транзистора;
|
||
- Рис.5 - с помощью NPN транзистора;
|
||
- Рис.6 - формирование сигнала IORQGE только в цикле чтения;
|
||
- Рис.7 - формирование сигнала IORQGE только в цикле записи.
|
||
_____
|
||
+5V | BF >|
|
||
__ VD1 __---| |--- IORQGE
|
||
ADR/----------|1 | ADR/----------|1 | |--+ |
|
||
| o--[>|-- IORQGE | |--oOE| |
|
||
__ +--|__| __ +--|__| |__|__|
|
||
|1 | | |1 | |
|
||
M1/ -| o--+ M1/ -| o--+
|
||
|__| Рис.2 |__| Рис.3
|
||
|
||
+5V_____ VT1 ___ IORQGE
|
||
| \ /
|
||
R1 П V___/ __
|
||
Ц | ADR/----------|1 |
|
||
| | | o--+
|
||
+-----+---+ __ +--|__| |
|
||
| | |1 | | _|_
|
||
R2 П === C M1/ -| o--+ / \
|
||
__ Ц | |__| __/ V___
|
||
ADR/----------|1 | | | +5V VT1 IORQGE
|
||
| |--+---+
|
||
__ +--|__| Рис.5
|
||
|1 | |
|
||
M1/ -| o--+
|
||
|__| Рис.4
|
||
|
||
_____ _____
|
||
+5V | BF >| +5V | BF >|
|
||
__---| |--- IORQGE __---| |--- IORQGE
|
||
ADR/----------|1 | |--+ | ADR/----------|1 | |--+ |
|
||
| |--oOE| | | |--oOE| |
|
||
__ +--|__| |__|__| __ +--|__| |__|__|
|
||
WR/ -|& | | RD/ -|& | |
|
||
| o--+ | o--+
|
||
M1/ -|__| Рис.6 M1/ -|__| Рис.7
|
||
|
||
В формирователе сигнала IORQGE рекомендуется использовать микросхемы с минималь-
|
||
ными задержками времени распространения сигнала, и составные транзисторы.
|
||
|
||
|
||
4.4 Арбитр адреса портов ввода-вывода шины NemoBus.
|
||
|
||
Принцип действия арбитра адреса основан на разном уровне приоритета устройств
|
||
ввода-вывода (УВВ) компьютера, использующего шину NemoBus. Для компьютеров с
|
||
шиной NemoBus приоритет УВВ распределяется следующим образом:
|
||
|
||
1) MASTER SLOT (SLOT 0) - УВВ имеют наивысший приоритет и предполагают полную
|
||
дешифрацию портов ВВ, кроме того, устройство в этом слоте может быть задатчиком
|
||
в цикле захвата шины. Адресные сигналы слота шины NemoBus v.1.2 позволяют адре-
|
||
совать всё адресное пространство. ОЗУ компьютера.
|
||
|
||
2) SLAVE SLOT 1 - SLAVE SLOT n (слоты от 1 до n)) - УВВ имеют более низкий
|
||
приоритет, понижающийся по мере увеличения номера слота.
|
||
|
||
3) УВВ компьютера имеют наинизший приоритет, и могут быть активны только в том
|
||
случае, если не активно ни одно УВВ на шине NemoBus.
|
||
|
||
Такое архитетурное построение шины обеспечивает безконфликтное подключение УВВ
|
||
имеющих неполную дешифрацию адреса, что традиционно для УВВ ZX Spectrum, а так
|
||
же позволяет применять для УВВ новые свободные диапазоны адресов портов без
|
||
необходимости переделки схемотехники компьютера.
|
||
Архитектурным исключением может быть случай использования в качестве CPU одно-
|
||
кристальной микро-ЭВМ eZ80, содержащей встроенные УВВ, имеющие более высокий
|
||
приоритет по сравнению со всеми остальными УВВ.
|
||
|
||
На Рис.8 приведена типовая схема последовательного арбитра шины для компьютера
|
||
с тремя слотами NemoBus:
|
||
|
||
IORQ/ SLOT0
|
||
^ IORQ/ SLOT1
|
||
| ^ IORQ/ SLOT2
|
||
| __ | ^
|
||
CPU IORQ/ ->-+-|1 | | __ |
|
||
| |---------+-|1 | | __
|
||
IORQGE0 ->-+-|__| | |---------+-|1 |
|
||
SLOT0 | IORQGE1-+-|__| | |---> IORQG/ to MAINBOARD
|
||
П R1 SLOT1 | IORQGE2-+-|__|
|
||
Ц 680 П R2 SLOT2 |
|
||
| Ц 680 П R3
|
||
--- | Ц 680
|
||
--- |
|
||
Рис.8 ---
|
||
|
||
IORQ/ SLOT0
|
||
^
|
||
| IORQ/ SLOT1
|
||
| __ ^ IORQ/ SLOT2
|
||
CPU IORQ/->---+--+-|1 | | __ ^
|
||
| | |-+ +-------------|1 | |
|
||
IORQGE0 ->-+-|--+-|__| | | |-+
|
||
SLOT0 | | | +-|-------------| | __
|
||
| | П R1 | | | | +--------------|1 |
|
||
| | Ц 680 | |IORQGE1-+--+-|__| | | |
|
||
| | | | | SLOT1 | | | +------------| |
|
||
| | --- | | | П R2 | | | |---> IORQG/ to
|
||
| | | | | Ц 680 | | +----------| | MAINBOARD
|
||
| | | | | | | | | | |
|
||
| | | | | --- | | |IORQGE2-+-|__|
|
||
| +---------|-+--------|---------+ | | SLOT2 |
|
||
| | +-----------+ | П R3
|
||
+-----------+------------------------+ Ц 680
|
||
Рис.9 |
|
||
---
|
||
|
||
Где IORQGE0-2 - сигналы со слотов 0-2, а IORQG/ - результирующий сигнал, подава-
|
||
емый в схему компьютера.
|
||
Недостатком схемы на Рис.8 является значительная задержка сигнала IORQG/ относи-
|
||
тельно заднего фронта сигнала IORQ/, что может приводить при записи или чтении
|
||
по его заднему фронту к некорректному результату. Это устраняется использованием
|
||
схемы параллельного арбитра шины представленного на Рис.9. Так же в схемах выби-
|
||
раемых только в цикле записиили возможно использование дешифрации по переднему
|
||
фронта IORQG/.
|
||
В арбитре шины представленном на Рис.8 рекомендуется использовать микросхемы с
|
||
минимальными задержками времени распространения сигнала. Арбитр шины представ-
|
||
ленный на Рис.9 рекомендуется к реализации в ПЛИС.
|
||
|
||
|
||
4.5 Формирователь сигнала RDR/ для шины NemoBus.
|
||
|
||
Сигнал RDR/ периферийной карты предназначен для блокирования внутреннего ПЗУ
|
||
компьютера этой картой, а так же для формирования сигнала CSR/ для следующего
|
||
внешнего устройства с более низким приоритетом. По своей сути сигнал RDR/ выпол-
|
||
няет ту же функцию, что и IORQGE при захвате диапазона адресов портов, а сигнал
|
||
CSR/, ту же функцию, что и IORQ/.
|
||
Сигнал RDR/ периферийной карты формируется из сигнала включения режима подмены
|
||
ПЗУ CS/, формируемого портом внешнего устройства,и из формируемого внешним
|
||
устройством сигнала выборки диапазона подменяемых адресов.
|
||
В каждый слот шины NemoBus v.1.2 и выше допускается установка только одной
|
||
периферийной карты использующей подмену ПЗУ компьютера в окне CPU0. В компьюте-
|
||
рах с более ранними версиями шины NemoBus, не имеющих арбитра доступа к памяти в
|
||
окне CPU0, допускается одновременная установка только одной периферийной карты
|
||
использующей подмену ПЗУ компьютера в окне CPU0. Эта карта может быть установле-
|
||
на в любой слот.
|
||
|
||
На Рис.10-13 представлены возможные схемы формирования сигнала RDR/ периферийны-
|
||
ми устройствами:
|
||
_____
|
||
+5V | BF >|
|
||
__ VD1 __---| |--- RDR/
|
||
CS/ ---|1 | CS/ ---|1 | |--+ |
|
||
| o--[>|-- RDR/ | |--oOE| |
|
||
ADR/---|__| ADR/---|__| |__|__|
|
||
|
||
Рис.10 Рис.11
|
||
|
||
+5V_____ VT1 ___ RDR/
|
||
| \ /
|
||
R1 П V___/ __
|
||
Ц | ADR/----|1 |
|
||
| | | o--+
|
||
+-----+---+ CS/ ----|__| |
|
||
| | _|_
|
||
R2 П === C / \
|
||
__ Ц | __/ V___
|
||
ADR/----|1 | | | +5V VT1 RDR/
|
||
| |--+---+
|
||
CS/ ----|__| Рис.13
|
||
|
||
Рис.12
|
||
|
||
В формирователе сигнала RDR/ рекомендуется использовать микросхемы с минималь-
|
||
ными задержками времени распространения сигнала, и составные транзисторы.
|
||
|
||
|
||
4.6 Арбитр доступа к памяти в окне CPU0 шины NemoBus.
|
||
|
||
Арбитр доступа к памяти в окне CPU0, применяется при необходимости обеспечения
|
||
доступа к этому окну несколькими периферийными устройствами. Принцип арбитриро-
|
||
вания доступа к памяти в окне CPU0 основан на разном уровне приоритета слотов
|
||
шины NemoBus. Для компьютеров с шиной NemoBus v.1.2 приоритет доступа к памяти в
|
||
окне CPU0 распределяется следующим образом:
|
||
|
||
1) Компьютер имеет наинизший приоритет при установке в окно CPU0 страницы ОЗУ.
|
||
|
||
2) SLOT 0(или MASTER SLOT) - SLAVE SLOT n (слоты от 1 до n) - имеют более низкий
|
||
приоритет, понижающийся по мере увеличения номера слота.
|
||
|
||
На Рис.14 приведена типовая схема последовательного арбитра доступа к памяти в
|
||
окне CPU0 для компьютера с тремя слотами NemoBus:
|
||
|
||
CSR/ SLOT0
|
||
^ CSR/ SLOT1
|
||
| ^ CSR/ SLOT2
|
||
| __ | ^
|
||
MB CSR/ ->-+-|1 | | __ |
|
||
| |---------+-|1 | | __
|
||
RDR/ SLOT0->-+-|__| | |---------+-|1 |
|
||
| RDR/ ->-+-|__| | |---> RDR/ to MAINBOARD
|
||
П R1 SLOT1 | RDR/ ->-+-|__|
|
||
Ц 680 П R2 SLOT2 |
|
||
| Ц 680 П R3
|
||
--- | Ц 680
|
||
--- |
|
||
Рис.14 ---
|
||
|
||
CSR/ SLOT0
|
||
^
|
||
| CSR/ SLOT1
|
||
| __ ^ CSR/ SLOT2
|
||
MB CSR/ ->---+--+-|1 | | __ ^
|
||
| | |-+ +-------------|1 | |
|
||
RDR/ SLOT0->-+-|--+-|__| | | |-+
|
||
| | | +-|-------------| | __
|
||
| | П R1 | | | | +--------------|1 |
|
||
| | Ц 680 | | RDR/->-+--+-|__| | | |
|
||
| | | | | SLOT1 | | | +------------| |
|
||
| | --- | | | П R2 | | | |---> RDR/ to
|
||
| | | | | Ц 680 | | +----------| | MAINBOARD
|
||
| | | | | | | | | | |
|
||
| | | | | --- | | | RDR/->-+-|__|
|
||
| +---------|-+--------|---------+ | | SLOT2 |
|
||
| | +-----------+ | П R3
|
||
+-----------+------------------------+ Ц 680
|
||
Рис.15 |
|
||
---
|
||
Недостатком схемы на Рис.14 является значительная задержка сигнала RDR/ по срав-
|
||
нению с CSR/ после его возврата в неактивное состояние. Это устраняется исполь-
|
||
зованием схемы параллельного арбитра представленной на Рис.15, в которой задний
|
||
фронт RDR/ выравнивается по CSR/.
|
||
В арбитре шины представленном на Рис.14 рекомендуется использовать микросхемы с
|
||
минимальными задержками времени распространения сигнала. Арбитр шины представ-
|
||
ленный на Рис.15 рекомендуется к реализации в ПЛИС.
|
||
|
||
|
||
4.7 Формирователь маскируемых прерываний от устройств шины NemoBus.
|
||
|
||
Возможность работы одновременно с несколькими источниками маскируемых прерыва-
|
||
ний, а так же арбитрирования их запросов существовала для шины NemoBus изначаль-
|
||
но, и доступна во всех её версиях. Шина NemoBus предоставляет возможность неза-
|
||
висимого и неарбитрируемого выставления запросов маскируемого прерывания устрой-
|
||
ствами, а так же выставления ими арбитрируемого приоритетного вектора прерыва-
|
||
ния. Т.к. для шины NemoBus арбитрирование вектора маскируемого прерывания
|
||
производится тем же арбитром что и арбитрирование захвата диапазона адресов пор-
|
||
тов ввода-вывода, то приоритеты векторов прерывания устройств соответствуют при-
|
||
оритетам слотов в которые они утановлены: наивысший приоритет у устройства в
|
||
master-слоте, наинизший - у материнской платы, при этом режим арбитрирования
|
||
векторов прерывания задаётся значением сигнала M1/=0. При активации этого сигна-
|
||
ла, все периферийные устройства выставившие запросы на маскируемое прерывание,
|
||
активируют свои сигналы IORQGE, тем самым блокируя выставление векторов прерыва-
|
||
ния устройствами с более низким приоритетом.
|
||
Для работы с контроллерами прерываний, в ZX Spectrum используется режим IM2
|
||
обработки прерываний процессором. При генерации адресов вектора прерывания, мо-
|
||
гут быть задействованы разряды D1-D7 вектора прерывания, позволяющие определять
|
||
128 двухбайтовых адресов вектора прерывания. Разряд D0 вектора прерывания может
|
||
иметь любое требуемое значение, но необходимо иметь ввиду, что векторы прерыва-
|
||
ния свойственные ZX Spectrum - нечётные, в то время как векторы прерывания ис-
|
||
пользуемые ИС Zilog или Intel чётные.
|
||
Арбитрирование выставления вектора прерывания осуществляется аналогично арбитри-
|
||
рованию захвата диапазона портов ВВ с помощью сигнала IORQGE формируемого пери-
|
||
ферийным стройством.
|
||
На Рис.16 представлена типовая схема программируемого контроллера прерываний для
|
||
устройств шины NemoBus:
|
||
|
||
+-------------------------------+------|<]------> INT/
|
||
| +5V <--+ _____ | VD1
|
||
| __ | | |T | DD3.1 |
|
||
+--|& | +--oS/|Q/o--+ |
|
||
| o--+ | |--| | | |
|
||
IRQ/-----------------------|__| +-|-->C | | | |
|
||
__ DD2.1 +--|D | | | |
|
||
+-----|& | |--| | | __ |
|
||
DD6.1 _____ | | |-------------oR/|Q | +--|1 | |
|
||
| |T | | +--|__|DD1.1 |__|__| | | |--+
|
||
+5V--oS/|Q/o--|--|-------------+--------------|--|__| DD5.1 ________
|
||
|--| | +--|-------------|--------------|------------oOE/|BF >|
|
||
Dn --|D | | | | +----------|--------------+ |---| |
|
||
WCS/-->C | | | | | | __ +------------------|___|____|--> Dx
|
||
|--| | | | | _____ +--|1 | | DD4.1
|
||
RES/--oR/|Q | | | | | |T | | |--+
|
||
|__|__| | | +--oS/|Q/o----|__| | __ DD5.4
|
||
__ | | |--| | DD5.3 +--|1 | __ DD1.2
|
||
IORQ/----|1 | | |GND--|D | | | |-----|& | ________
|
||
| |--+--|----->C | | +-------|__| | |---oOE/|BF >|
|
||
+--|__| | |--| | | __ +--|__| |---| |
|
||
| DD5.2 +-----oR/|Q | | ADR--|& | | +5V--|___|____|--> IORQGE
|
||
| | |__|__| | | o--+ DD4.2
|
||
M1/--+-----------|-----------------+-------|__|
|
||
_____ | DD3.2 DD2.2
|
||
| |T | |
|
||
+5V--oS/|Q/o |
|
||
|--| | |
|
||
D7 --|D | | | Рис.16
|
||
WCS/-->C | | |
|
||
|--| | |
|
||
RES/--oR/|Q |-----+
|
||
|__|__| DD6.2
|
||
|
||
Прерывание от устройства фиксируется по отрицательному фронту сигнала IRQ/.
|
||
Триггер DD3.1 взводится прерыванием, запоминая факт запроса маскируемого преры-
|
||
вания устройством, и находится в таком состоянии до момента запроса процессором
|
||
вектора прерывания от устройства. Сигнал с выхода триггера DD3.1 взводит триггер
|
||
DD3.2, тем самым разрешая активацию сигнала IORQGE и одновременное выставление
|
||
вектора прерывания при его запросе процессором сигналами IORQ/ or M1/=0. Триггер
|
||
DD3.2 сохраняет взведённое состояние до окончания действия сигналов
|
||
IORQ/ or M1/=0. При этом сигнал IORQGE блокирует выставление вектора прерывания
|
||
всеми устройствами с более низким приоритетом.
|
||
Так же сигнал IORQGE может быть активирован при при обращении к портам устройст-
|
||
ва при активации сигнала дешифратора ADR=1, блокируя при этом обращение к портам
|
||
всех устройств с более низким приоритетом захвата адресного пространства портов.
|
||
При запросе процессором вектора прерывания, открывается буфер DD4.1, и на соот-
|
||
ветствующий разряд Dx шины данных выставляется ноль. Т.к. шина данных в клонах
|
||
использующих шину NemoBus должна быть стабильна, и по умолчанию подтянута резис-
|
||
торами к единичному логическому уровню, то ноль в одном из разрядов шины данных
|
||
формирует вектор прерывания отличный от стандартного для ZX Spectrum вектора ка-
|
||
дрового прерывания #FF.
|
||
Логический уровень разряда Dn триггера DD6.1, защёлкиваемый сигналом WCS/, опре-
|
||
деляет состояние маски, разрешающей прохождение сигнала прерывания от устройства
|
||
к процессору. По умолчанию, после сброса, прерывания от всех устройств кроме ка-
|
||
дрового прерывания компьютера, запрещены.
|
||
Для всех устройств шины NemoBus адрес порта маски вектора прерывания является
|
||
общим: WCS/ = wr #F777. На сегодняшний день разряды D0-D7 порта маски вектора
|
||
прерывания #F777 выделены следующим устройствам:
|
||
|
||
D0 - маска прерывания соответствующая сигналу окончанию счёта контроллером DMA
|
||
8237, соответствует разряду D4 вектора прерывания, по сбросу прерывание
|
||
запрещено;
|
||
D1 - маска для прерывания от первого таймера 8254, соответствует разряду D5 век-
|
||
тора прерывания, по сбросу прерывание запрещено;
|
||
D2 - маска для прерывания от второго таймера 8254, соответствует разряду D6 век-
|
||
тора прерывания, по сбросу прерывание запрещено;
|
||
D3 - маска для прерывания от ULA, соответствует разряду D7 вектора прерывания,
|
||
по сбросу прерывание разрешено (на схеме не показано);
|
||
D4-D6 - зарезервированы;
|
||
D7 - разрешение работы контроллера прерываний, по сбросу работа запрещена;
|
||
|
||
Разряды D0-D3, D7 порта #F777 маски вектора прерывания относятся к одному и тому
|
||
же контроллеру маскируемых прерываний. При наличии такого контроллера, он уста-
|
||
навливается в слот с наивысшим приоритетом. Остальные контроллеры маскируемых
|
||
прерываний используют разряды D4-D6, кроме того, разряды D3, D7 порта маски век-
|
||
тора прерывания используются всеми контроллерами маскируемых прерываний.
|
||
Порт маски вектора прерывания #F777 доступен на чтение (на схеме не показано),
|
||
поэтому он обязан запоминать байт маски полностью. Соответственно содержимое
|
||
этого порта доступно на чтение только из контроллера маскируемых прерываний с
|
||
наивысшим приоритетом. Чтение из остальных контроллеров маскируемых прерываний
|
||
должно блокироваться сигналом IORQGE контроллера маскируемых прерываний с наи-
|
||
высшим приоритетом.
|
||
На Рис.17 представлена диаграмма работы контроллера прерываний:
|
||
|
||
__ __________________________________________________________________
|
||
IRQ/ \__/
|
||
__ _________________________________________
|
||
INT/ \___________________________/
|
||
____________________ _________________
|
||
M1/ \_________________________________/
|
||
________________________________
|
||
IORQGE ---------------------/ \-----------------
|
||
_____________________________ __________________
|
||
IORQ/ \_______________________/
|
||
|
||
Dx ------------------------------<XXXXXXXXXXXXXXXXXXXXXXX>-----------------
|
||
|
||
Рис.17
|
||
|
||
На Рис.18 представлена схема упрощённого контроллера прерываний, без функции
|
||
маскирования прерываний:
|
||
|
||
+5V <--+ +----------------------+---------|<]----------> INT/
|
||
| | +5v <--+ _____ | VD1
|
||
П R1 | __ | | |T | |
|
||
Ц +--|& | +--oS/|Q/o--+
|
||
___ | | o--+ | |--| | |
|
||
IRQ/-----о о------+--------|__| +-|-->C | | |
|
||
JP1 __ DD2.1 +--|D | | |
|
||
+--|& | |--| | |
|
||
| | |-------------oR/|Q | |
|
||
RES/-----------+--|--|__| |__|__| |
|
||
| | DD1.1 DD3.1 | ________
|
||
| +----------------------------|---------oOE/|BF >|
|
||
| | +-------------------------+ |---| |
|
||
| | | _____ +-----------------------|___|____|---> Dx
|
||
| | | | |T | | __ DD4.1
|
||
| | +--oS/|Q/o--+-----|1 | __
|
||
__ | | |--| | | |-----|& |
|
||
IORQ/----|1 | | |GND--|D | | +-----|__| | |--+
|
||
| +--|--+----->C | | | DD5.2 +--|__| | ________
|
||
+--|__| | |--| | | | DD1.2 +--oOE/|BF >|
|
||
| DD5.1 +--------oR/|Q | | __ | |---| |
|
||
| |__|__| |ADR--|& | | +5V--|___|____|---> IORQGE
|
||
| DD3.2 | | o--+ DD4.2
|
||
M1/--+--------------------------+-----|__|
|
||
DD2.2
|
||
Рис.18
|
||
|
||
В упрощённом контроллере отключение прерываний возможно только в ручном режиме
|
||
с помощью перемычки JP1.
|
||
|
||
|
||
4.8 Интерфейс динамического запроса ПДП для шины NemoBus v.1.2.
|
||
|
||
В цикле запроса ПДП, внешнее устройство на шине NemoBus выставляет запрос захва-
|
||
та шины BUSRQ/, а после его подтверждения, по спаду BUSAK/ выставляет на одном
|
||
из разрядов D0-D6 шины данных запрос канала ПДП установкой его в ноль. После
|
||
прихода запроса ПДП, контроллер ПДП перехватывает сигнал BUSRQ/, и удерживает
|
||
его до завершения цикла ПДП. Далее контроллер ПДП сбрасывает разряд D7 шины дан-
|
||
ных в ноль, что означает подтверждение запроса ПДП, и в соответствии с приорите-
|
||
том запросов, выставляет подтверждение приоритетному каналу на одном из разрядов
|
||
D0-D6 шины данных, соответствующих разрядам запросов ПДП. Устройствам на шине
|
||
NemoBus доступны только 7 каналов ПДП, для каждого из которых выделен свой бит
|
||
на шине данных для выставления запроса канала ПДП. Тип выходов запросов канала
|
||
ПДП и его подтверждения - ОК.
|
||
После этого контроллер ПДП генерирует импульс на линии ER\RFSH/, индицирующий
|
||
завершение процедуры запроса ПДП устройством. По заднему фронту сигнала
|
||
ER\RFSH/, внешнее устройство чей запрос подтверждён, фиксирует у себя подтверж-
|
||
дение своего запроса. Кроме того, все устройства запрашивавшие одновременно ПДП,
|
||
освобождают шину данных, и снимают свои запросы BUSRQ/. После этого контроллер
|
||
ПДП выполняет цикл ПДП, по завершении которого выставляет в ноль сигнал
|
||
EOP\HALT/, сообщающий внешнему устройству о завершении запрашиваемого ПДП, а
|
||
также снимает запрос BUSRQ/, освобождая шину. После этого, внешние устройства,
|
||
чьи запросы ПДП не были удовлетворены, могут попытаться их повторить.
|
||
На Рис.19 представлена диаграмма цикла динамического запроса ПДП для шины
|
||
NemoBus v.1.2:
|
||
|
||
__ __ ________________
|
||
BUSRQ/ BUS \_________________________/
|
||
________ _________
|
||
BUSRQ/ DMA \______________________ ______/
|
||
__ _________
|
||
BUSRQ/ CPU \____________________________ ______/
|
||
____ _______
|
||
BUSAK/ \__________________________ //-- цикл ПДП --// ________/
|
||
___________________ ___ _____________
|
||
ER\RFSH/ XXXX/ \__/ \XX
|
||
__________________________ __ ____
|
||
EOP\HALT/ XXXX/ \__/ \XXXXX
|
||
|
||
D0-D6 XXXX>-<ЗАПРОС><ПОДТВЕРЖДЕНИЕ>-- -----------<XXXX
|
||
|
||
D7 XXXX>---------\_____________/-- -----------<XXXX
|
||
|
||
Рис.19
|
||
|
||
|
||
4.9 Управление памятью в окнах CPU0-CPU3 с шины NemoBus v.1.2.
|
||
|
||
С помощью комбинации сигналов RDR/ и BLK шины NemoBus v.1.2 можно задавать режи-
|
||
мы чтения-записи для внутреннего и внешнего ОЗУ и ПЗУ в окнах CPU0-CPU3. Эти си-
|
||
гналы шины NemoBus имеют более высокий приоритет по сравнению с управляющими си-
|
||
гналами от портов материнской платы. Комбинируя эти сигналы в циклах чтения и
|
||
записи для окна CPU0, внешнее устройство может получать совмещённые режимы, на-
|
||
пример rdROM/wrRAM, или только rdRAM с блокировкой записи, и т.д. В Табл.9 пред-
|
||
ставлены возможные режимы управления внутренней памятью компьютера в окне CPU0,
|
||
реализованные через D0 #1FFD и D3 #EDF7 для архитектуры SKAY, и соответствующие
|
||
им комбинации сигналов RDR/ и BLK на шине NemoBus.
|
||
|
||
Табл.9 Табл.10
|
||
-----+-----+-------------+-----+-----+--- -----+-----+---------+-----+---------
|
||
#EDF7|#1FFD| CPU0 Mode |RDR/ | BLK |r/w A15 | A14 | D0#1FFD | BLK | RAM/ROM
|
||
D3 | D0 | | | | -----+-----+---------+-----+---------
|
||
-----+-----+-------------+-----+-----+--- 0 | 0 | 0 | Z | INT ROM
|
||
| | | 1/0*| 0 |WR 0 | 0 | 1 | Z | INT RAM
|
||
0 | 0 | r/wROM |-----|-----|--- 0 | 1 | x | Z | INT RAM
|
||
| | | 0 | 0 |RD 1 | 0 | x | Z | INT RAM
|
||
-----+-----+-------------+-----+-----+--- 1 | 1 | x | Z | INT RAM
|
||
| | | 1 | 1 |WR 0 | 0 | x | 0 | INT ROM
|
||
0 | 1 | r/wRAM |-----|-----|--- 0 | 1 | x | 0 | EXT RAM
|
||
| | | 1 | 1 |RD 1 | 0 | x | 0 | EXT RAM
|
||
-----+-----+-------------+-----+-----+--- 1 | 1 | x | 0 | EXT RAM
|
||
| | | 1 | 1 |WR x | x | x | 1 | INT RAM
|
||
1 | 0 | rdROM/wrRAM |-----|-----|--- -----+-----+---------+-----+---------
|
||
| | | 0 | 0 |RD
|
||
-----+-----+-------------+-----+-----+---
|
||
| | |0*/1 | 0 |WR
|
||
1 | 1 | rdRAM/wrROM |-----|-----|---
|
||
| | | 1 | 1 |RD
|
||
-----+-----+-------------+-----+-----+---
|
||
* - возможность wrROM определяется схемотехникой компьютера, при отсутствии воз-
|
||
можности записи внутреннего ПЗУ, RDR=1.
|
||
|
||
Внешние устройства формирующие сигнал BLK, обязаны учитывать в каком окне он
|
||
действует, т.к. для шины NemoBus v.1.2 в окнах CPU1-CPU3 он управляет подменой
|
||
внутренней памяти компьютера на память внешнего устройства, управляемую внешним
|
||
менеджером памяти. В Табл.10 представлены возможные режимы управления памятью
|
||
в окнах CPU0-CPU3 в зависимости от состояния сигнала BLK.
|