proto-ZXBUS/docs/BC IG #7 Стандартизация ZX BUS интерфейсов и шин_R20200527.txt
2025-01-25 22:33:57 +03:00

1242 lines
68 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

********************************************************************************
** Этот документ пригоден для просмотра на 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.