ZX Железо: Спектрум 48K
Блок-схема Спектрума 48K
Электронные схемы Спектрума можно разделить на четыре большие части: микропроцессор, память, схемы связи с периферийными устройствами и блок питания. Память состоит из ПЗУ и двух блоков ОЗУ: 16K RAM и 32K RAM (32K RAM есть только в Спектруме с 48K RAM). Большое число схем для связи с периферийными устройствами объединено в одной микросхеме — ULA. Через неё микропроцессор взаимодействует с клавиатурой, экраном телевизора, динамиком и магнитофоном. Между основными частями имеются следующие соединения: шина данных, адресная шина и различные линии управления.
Основные части Спектрума 48K
Микропроцессор Z80A
Центральный процессор Спектрума — восьмиразрядный микропроцессор Z80A. Он разработан американской фирмой Zilog на основе микропроцессора 8080 фирмы Intel; число команд, которые он может выполнять, было увеличено до 158.
Все операции микропроцессора синхронизированы по времени тактовым сигналом. Это сигнал прямоугольной формы со стабильной частотой, задаваемой кварцевым резонатором. В Спектруме Z80A работает на частоте 3,5 МГц. Существуют и другие варианты этого микропроцессора:
предшественник Z80, работающий на частотах до 2,5 МГц, и более новый Z80B с верхним пределом частоты 6 МГц.
16K ROM
В ПЗУ (ROM — read-only memory, память только для чтения) данные записываются во время производства, и после этого их нельзя изменить. Они не стираются и при отключении питания. ПЗУ Спектрума — интегральная микросхема в корпусе с 28 выводами, ёмкостью 16 Кбайт. Производители — HITACHI или NEC. В неё записаны системные программы — те, которые обеспечивают использование компьютера: операционная система и интерпретатор Бейсика. ПЗУ занимает адреса от 0 до 16383, что очень удобно, поскольку Z80 после включения начинает выполнение программы с адреса 0.
32K RAM
В версии Спектрума с 48K RAM на 12 интегральных микросхем больше, чем в версии с 16K: восемь микросхем памяти и четыре логические микросхемы. Организация микросхем памяти — 32768×1 (ёмкость 32 килобита). Входная и выходная линии данных каждой микросхемы соединены между собой и подключены к одной линии шины данных. Все микросхемы вместе образуют блок объёмом 32 Кбайта (32K×8), адреса которого — от 32768 до 65535.
16K RAM
Этот блок состоит из десяти интегральных микросхем: восьми микросхем памяти и двух мультиплексоров. Ёмкость каждой микросхемы памяти — 16 килобит (16384×1). Линия данных каждой из них подключена к отдельной линии шины данных, так что вместе они образуют память объёмом 16 Кбайт (16384×8). Ячейки памяти организованы в 128 строк и 128 столбцов.
ULA
ULA (Uncommitted Logic Array — массив логических элементов, функции которого выбираются в соответствии с потребностями) — интегральная микросхема с 40 выводами, заменяющая большое число небольших логических микросхем. Она специально разработана для Спектрума. Производитель — фирма Ferranti. До сих пор в Спектрумы устанавливали несколько версий этой микросхемы.
Использование ULA позволило уменьшить стоимость и размеры компьютера.
Эта микросхема служит для связи с устройствами ввода-вывода. Устройства ввода — клавиатура и магнитофон, устройства вывода — экран телевизора, динамик и магнитофон.
Клавиатура
В Спектруме 40 клавиш, соединённых между собой проводниками. Восемь проводников соединяют по пять клавиш, расположенных в одном ряду, а пять проводников соединяют по восемь клавиш, расположенных в одном столбце. Один вывод каждой клавиши подключён к проводнику строки, а другой — к проводнику столбца. Каждый столбец через резистор подключён к +5 В, поэтому при неактивном состоянии — когда ни одна из подключённых к нему клавиш не нажата — на нём присутствует это напряжение.
Магнитофон
Магнитофон служит для записи данных на ленту и загрузки данных с ленты.
ZX Железо: ZX Spectrum 48K
О принципе работы и подключении к магнитофону — позже.
ДИНАМИК
У Spectrum нет классического динамика: вместо него используется электроакустический преобразователь в виде круглой пластинки. Он расположен на печатной плате справа внизу. Напряжение, подаваемое на преобразователь, приводит в движение его мембрану, благодаря чему электрические колебания преобразуются в звуковые.
Подобные преобразователи часто используются в часах и других электрических устройствах с сигнализацией.
ВИДЕОВЫХОД
Телевизионная ULA формирует три видеосигнала: Y — смесь сигнала яркости и импульсов синхронизации изображения; U — информация о разнице интенсивности синего и жёлтого цветов; V — информация о разнице интенсивности красного и жёлтого цветов.
Пятьдесят раз в секунду она считывает содержимое видеопамяти, адреса которой находятся в диапазоне от 16384 до 22527 (англ. display file), и на основании этих данных формирует сигналы, с помощью которых на экране появляется изображение. Такая частота позволяет благодаря инерции зрения избежать заметного мерцания.
Если микропроцессор пытается обратиться к видеопамяти во время обновления изображения, ULA останавливает его, отключая тактовый сигнал. На его работу это влияет лишь как очень короткая пауза.
АДРЕСНЫЕ МУЛЬТИПЛЕКСОРЫ (AD MU AD MU)
Адресные мультиплексоры служат для связи оперативной памяти объёмом 16 или 32 КБ с микропроцессором, ПЗУ и ULA посредством адресных шин. В оперативной памяти объёмом 16 и 32 КБ используется по два мультиплексора.
КОНТРОЛЬ ЧТЕНИЯ И ЗАПИСИ (KO ČI)
Контроль чтения и записи данных на ленте осуществляется также с помощью управляющих линий и контроллеров чтения и записи (IC23/24).
МИКРОПРОЦЕССОР Z80A
D0–D7 — двунаправленная шина данных; линии могут находиться в состоянии высокого импеданса. Через эти восемь выводов происходит обмен данными между микропроцессором и памятью или устройством ввода-вывода.
A0–A15 — выходная адресная шина; линии могут находиться в состоянии высокого импеданса. Через эти 16 выводов микропроцессор может адресовать 65536 (2¹⁶) ячеек памяти. При непосредственном обмене с устройствами ввода-вывода он использует только A0–A7, поэтому существует 256 различных адресов ввода-вывода.
MREQ (англ. memory request — запрос памяти) может находиться в состоянии высокого импеданса. Сигнал MREQ активен, когда микропроцессор обращается к памяти.
IORQ (англ. input-output request — запрос устройства ввода-вывода) — выход, который может находиться в состоянии высокого импеданса. Сигнал IORQ активен, когда микропроцессор обращается к устройству ввода-вывода.
HALT — выход. Активный уровень (логический ноль) указывает, что выполнена программная команда HALT. После этого центральный процессор останавливается и ожидает запроса на прерывание (interrupt) от другого устройства, после чего продолжает работу.
NMI (англ. non-maskable interrupt — немаскируемое прерывание) — вход. Этот запрос на прерывание всегда принимается, то есть его нельзя замаскировать, в отличие от INT. После завершения текущей команды микропроцессор начинает выполнять программу, расположенную по адресу 0066h.
INT (англ. interrupt — прерывание) — вход, запрос на прерывание. Когда на этом входе появляется логический ноль, микропроцессор прекращает выполнение текущей программы и переходит к выполнению другой, предназначенной для этой цели. Так обеспечивается максимально быстрая реакция микропроцессора на внешние сигналы, что особенно важно в некоторых применениях.
CLK — вход тактового сигнала от ULA; частота — 3,5 МГц.
RD (англ. read — чтение) — выход, который может находиться в состоянии высокого импеданса. Активный уровень (логический ноль) на этом выводе означает, что центральный процессор считывает данные из памяти или устройства ввода-вывода.
WR (англ. write — запись), выход с возможностью перехода в высокоимпедансное состояние. Активное состояние (логический ноль) на этом выводе означает, что центральный процессор записывает данные в память или устройство ввода-вывода.
BUSACK (англ. bus acknowledge — подтверждение запроса на захват шины), выход. Логическим нулём на этом выводе центральный процессор подтверждает запросившему устройству, что оно может перехватить управление системой.
WAIT, вход. Медленные устройства памяти и ввода-вывода логическим нулём на этом входе сообщают микропроцессору, что ему нужно подождать некоторое время. Когда на входе снова появляется логическая единица, микропроцессор продолжает работу.
BUSREQ (англ. bus request — запрос на захват шины), вход. Через этот вход другое устройство сигнализирует (логическим нулём), что хочет перехватить управление системой.
RESET, вход. Этот сигнал (активное состояние — логический ноль) переводит центральный процессор в исходное состояние.
M1 — первый машинный цикл, выход. Логический ноль на нём появляется, когда микропроцессор считывает из памяти код команды. Одновременная активация M1 и IORQ обозначает подтверждение запроса на прерывание (цикл подтверждения прерывания).
RFSH (англ. refresh — обновление), выход. Динамическая RAM, используемая в «Спектруме», должна обновляться не реже одного раза в 2 мс, чтобы её содержимое не стёрлось. Активным состоянием (логический ноль) этот вывод обозначает, что на младших семи битах адресной шины (A0–A6) находится адрес, необходимый для обновления памяти.
ROM, D0–D7 — восемь выходов шины данных. По ним данные из выбранной ячейки памяти поступают через шину данных в центральный процессор.
A0–A13 — 14 адресных входов. Через них микропроцессор адресует нужную ячейку памяти.
E (enable), вход, также служит для активации микросхемы. Он соединён с выходом MREQ процессора, который сигнализирует, что обмен данными происходит с памятью, а не с устройством ввода-вывода.
OE (output enable — разрешение выхода), вход. Он позволяет данным из выбранной ячейки поступить через микросхему на шину данных. Подключён к выводу RD процессора.
ROMCS ULA, вывод 34 R33, 680 Ω CE
CE (chip enable — разрешение работы микросхемы), вход для активации микросхемы. Он соединён через резистор сопротивлением 680 Ом с соответствующим выходом ULA, который активируется при чтении данных из ROM, то есть когда адресные линии A14 и A15 находятся в логическом нуле. Вывод CE соединён с контактом ROMCS (ROM chip select — выбор микросхемы ROM) на разъёме на задней панели «Спектрума». Если подключить его к +5 В, ULA больше не сможет активировать ROM. Резистор сопротивлением 680 Ом допускает такое подключение, поскольку предотвращает перегрузку выхода ULA при этом коротком замыкании. Таким образом можно подключить другую память — RAM, ROM или EPROM, — которая будет адресоваться в этом пространстве адресов.
32K RAM
74LS157 (IC26)
A0 A15 CAS RAS WR RD MREQ
IC23a IC23b WR
Адрес в этом случае также мультиплексирован, чтобы уменьшить число выводов.
Когда сигнал S (select — выбор) имеет логическую единицу, два мультиплексора 74LS157 подают на адресные линии адреса A0–A7, а когда он имеет логический ноль — адреса A8–A14.
ZX Железо: Spectrum 48K
В данном случае управляющие сигналы RAS и CAS формируются не ULA, а несколькими логическими элементами. Они размещены в двух микросхемах: в 74LS00 находятся четыре элемента И-НЕ (используются два), а в 74LS32 — четыре элемента ИЛИ. Сигнал RAS для микросхем памяти — это MREQ, немного задержанный элементом IC23a. Сигнал S мультиплексора формируется задержкой RAS с помощью резистора R71 и конденсатора C63. Элемент IC23c блокирует его формирование, если не активен ни WR, ни RD. Сигнал CAS активируется сигналом S, задержанным с помощью резистора R70 и конденсатора C64, и деактивируется вместе с RAS через элемент ИЛИ IC23b.
Когда активируется RAS (переходит в логический ноль), микросхемы памяти запоминают адрес A0–A7. Затем S переходит в логический ноль и подаёт на адресные входы A8–A14, которые запоминаются при активации сигнала CAS. Если одновременно с RAS и CAS активен и WR, микросхемы памяти записывают данные с шины данных в ячейку по указанному адресу. Если же RAS и CAS активны, а WR неактивен (на логической единице), микросхемы памяти воспринимают это как чтение и помещают данные из адресованной ячейки на шину данных.
Во время обновления памяти активируется только MREQ, то есть RAS, а остальные сигналы неактивны. На адресные входы микросхем подаются адреса A0–A6 (S находится на логической единице), необходимые для обновления памяти.
16K RAM
WR
CAS
RAS
RFSH
74LS157 (IC26)
A0 A13
D0 D7
DRAM A0
DRAM A6
Число выводов этой микросхемы уменьшено за счёт мультиплексирования адреса: сначала на неё подаётся одна часть адреса, затем — другая.
В данном случае семь адресных линий микросхем памяти соединены с выходами мультиплексора (74LS157), входы которого соединены с адресной шиной. Сигналы RAS (row address strobe — строб адреса строки) и CAS (column address strobe — строб адреса столбца), формируемые ULA, управляют подачей нужного адреса в память. При появлении RAS мультиплексор передаёт на микросхемы памяти адрес строки с линий A0–A6 адресной шины, а при появлении CAS — адрес столбца с линий A7–A13. Адресные входы микросхем памяти соединены с выходами мультиплексора через резисторы сопротивлением 330 Ом, а с адресными линиями, поступающими из ULA (DRAM A0–DRAM A6), — напрямую. Так обеспечивается приоритет ULA над микропроцессором, необходимый для обновления изображения на экране телевизора.
ULA D0–D7 — восемь входов-выходов шины данных.
DRAM A0–DRAM A6 — семь входов-выходов, соединённых с соответствующими адресными выводами первых 16 КБ RAM.
Через них ULA получает информацию об адресе, выбранном микропроцессором, а при обновлении изображения адресует участок памяти, где хранятся необходимые данные. В этот момент ULA имеет приоритет над микропроцессором, поскольку адрес от неё подаётся через резисторы сопротивлением 330 Ом.
KBD-9–KBD-13 — пять входов от клавиатуры.
U — выход цветового видеосигнала, разность между интенсивностями синего и жёлтого.
V — выход цветового видеосигнала, разность между интенсивностями красного и жёлтого.
Y — видеовыход: яркостный сигнал и синхронизация.
INT — выход, подключённый к соответствующему входу микропроцессора. ULA активирует его каждые 20 мс, вызывая прерывание выполняемой микропроцессором программы и переход к обработчику прерывания. Эта программа считывает состояние клавиатуры и увеличивает на единицу содержимое системной переменной FRAMES.
RD — вход, соединённый с соответствующим выходом микропроцессора. Активен, когда микропроцессор считывает данные из памяти или устройства ввода-вывода.
WR — вход, соединённый с соответствующим выходом микропроцессора. Когда он активен, микропроцессор записывает данные в память или устройство ввода-вывода.
XTAL, вход — к этому выводу подключён кварцевый резонатор, задающий частоту генератора 14 МГц, расположенного в ULA.
Делением этой частоты на два получают необходимые для формирования изображения 7 МГц, а делением ещё на два — сигнал частотой 3,5 МГц, используемый в качестве тактового сигнала микропроцессора.
MREQ, вход — соединён с соответствующим выходом микропроцессора. Активен, когда микропроцессор взаимодействует с памятью.
A14–A15, входы — линии адресной шины. По ним ULA определяет, с какой областью памяти идёт взаимодействие: ПЗУ (адреса от 0 до 16383), первые 16 КБ ОЗУ (16384–32767) или следующие 32 КБ ОЗУ.
RAS (строб адреса строки), выход — активен, когда первым 16 КБ ОЗУ необходимо принять адреса строк (A0–A6). Через резистор 330 Ом (R57) он соединён с выходом RFSH микропроцессора, благодаря чему тот может обновлять память во время импульса кадровой синхронизации изображения длительностью 5 мс. В остальное время эту память обновляет ULA, считывая данные изображения.
ROMCS, выход — соединён со входом CS ПЗУ через резистор 680 Ом (R33). ULA активирует его, когда A14 и A15 имеют логический ноль, то есть когда данные считываются из ПЗУ. CS соединён с контактом ROMCS разъёма на задней панели Спектрума. При подключении этого контакта к +5 В выборка (активация) ПЗУ блокируется, что позволяет подключить другую память в этом адресном пространстве.
IORQGE — IORQ — R27 680 Ом.
IORQGE, вход — соединён с выходом IORQ микропроцессора через резистор 680 Ом (R27) и подключён к контактам разъёма на задней панели Спектрума.
При подключении к +5 В микропроцессор не может взаимодействовать с устройствами ввода-вывода через ULA, что позволяет вместо этого подключить другие устройства ввода-вывода.
CLK, выход — выдаёт тактовый сигнал частотой 3,5 МГц для центрального процессора. На следующем рисунке показано расположение входа и выходов для магнитофона и динамика.
Поделитесь вашим мнением о статье