Описание
компьютера Орион-128
|
Журнал
РАДИО
|
«ОРИОН-128»: «Z80-CARD»
Судя по редакционной почте, многие читатели, собравшие по описанию в журнале любительский компьютер "Орион 128" хотели бы заменить примененный в нем микропроцессор КР5808М80А на более совершенный Z80. Сегодня мы выполняем их просьбу. В публикуемой ниже статье описана доработка компьютера, выполненная отделом электронной техники "Орион Сервис" ТОО "Гримакс". Статья подготовлена на основе "Документации № 659" выпущенной в свое время названным ТОО.
ЗАЧЕМ НУЖНА ЗАМЕНА КР580ВМ80 НА Z80
По сравнению с I8080 (KP580BM80 KP580BM80A далее для краткости — КР580ВМ80) восьмиразрядный микропроцессор Z80 имеет расширенную систему команд, большее число регистров встроенную систему обработки прерываний может работать при большей тактовой частоте [1]. Он совместим с I8080 на уровне команд, и считается более производительным микропроцессором.
Замена в "Орионе 128" микропроцессора KP580BM80 на Z80 позволяет реализовать ряд новых возможностей:
& расширить систему команд. Кроме всех команд I8080 Z80 имеет ряд дополнительных и расширенных команд, использование которых значительно повышает эффективность работы программ. В среде ОС СР/М имеется большое число мощных программ работающих только под управлением Z80 или самонастраивающихся на тип процессора (с Z80 они работают быстрее). Программы, написанные специально для "Ориона 128" и ориентированные на работу только с Z80 (с использованием команд отсутствующих у I8080) более рациональны, т. е. занимают меньший объем памяти и работают быстрее. На "Орионе 128 с Z80 процесс адаптации игр от "ZX Spectrum " значительно проще:
Немаловажно и то, что микропроцессор Z80 питается от однополярного источника и потребляет меньшую (по сравнению с КР580ВМ80) мощность.
Как известно расположение выводов микропроцессора Z80 и назначение некоторых из них иное, чем у КР580ВМ80, поэтому для установки Z80 необходима переходная плата, а также специальные узлы, преобразующие и формирующие некоторые сигналы и обеспечивающие работоспособность Z80 в "Орионе 128". Очень важно чтобы при установке Z80 изменения на плате компьютера были минимальны, а сама доработка обратимой. Обязательное условие—полная совместимость с "Орионом 128" на КР580ВМ80. В противном случае часть программ на переделанном компьютере работать не будет и, следовательно, у вас будет и не совсем "Орион 128" и не "ZX Spectrum" а нечто третье.
Описываемые ниже варианты переделки "Ориона 128" на Z80 обеспечивают 100%-ную совместимость с компьютером, описанным в [2], что обеспечивает нормальную работоспособность на нем всех программ написанных для базовой модели "Ориона 128".
СУЩЕСТВУЮЩИЕ ВЕРСИИ "Z80-CARD"
Название "Z80 Card" дословно переводится как "Карта Z80" или "Плата Z80". Вообще говоря, под "картой" ("платой") подразумевается законченное устройство, имеющее определенные входные и выходные параметры и выполняющее функции, смысл которых обычно отражен в названии. В нашем случае "карта" выполняет функции микропроцессора '>Z80 и имеет входные и выходные сигналы максимально приближенные к сигналам микропроцессора I8080 (КР580ВМ80).
Существуют две разновидности "Z80 Card" вариант V3.1 (V3.10 V3.11) - не турбированный с тактовой частотой 2,5 МГц и вариант V3.2 (V3.20 V3.21) - Турбированный с тактовой частотой 5 МГц. В схемотехническом отношении оба варианта практически одинаковы (V3.1 легко модифицируется в " Z80 Card' V3.2 введением одной дополнительной микросхемы). Все сказанное далее о "Z80 Card" V3.1 в равной степени откосится и к "Z80 Card" V3.2.
Обе описываемые версии "Z80 Card" обратимы. Каждую из них выполняют на отдельной плате устанавливаемой в панель (розетку) вместо микропроцессора KP580BM80. Для обеспечения нормальной работы Z80 необходимо на основной плате компьютера выполнить небольшие доработки, которые никак не скажутся на работе "Ориона 128" с микропроцессором КР580ВМ80. Все соединения на плате доработанного компьютера сохраняются и KP580BM80 можно установить обратно, изъяв из панели плату "Z80 Card ".
Обе версии полностью совместимы с базовой моделью компьютера на аппаратном уровне. В "Z80 Card" производится эмуляция выхода INTE, которого не имеет микропроцессор Z80, а в "Орионе 128" этот выход используется для формирования звукового сигнала. Обращения к системным портам производятся так же, как это делает микропроцессор КР580ВМ80, благодаря чему с "Z80 Card" нормально работают все программы, написанные для "Ориона 128" с KP580BM80.
Устройства не содержат дефицитных деталей и благодаря отсутствию аналоговых времязадающих цепей практически не требуют наладки.
"Z80-CARD" V3.1
Принципиальная схема устройства при ведена на рис 1. Как видно выполнено оно на семи микросхемах (включая и Z80). Для обеспечения одинаковой (с КР580ВМ80) работы команд обращения к портам использованы мультиплексоры DD2 и DD3. При обращении к внешним устройствам Z80 выдает на шину 16 битный адрес, который формируется различными способами (в зависимости от типа команды) a KP580BM80—только восемь бит (старшая половина адреса совпадает с младшей). Мультиплексоры подменяют старшие адреса младшими при появлении на выходе процессора сигнала IORQ, указывающего на обращение к внешним устройствам. Поскольку в Z80 сигналы IORQ и WR появляются почти одновременно, необходимо принять меры, чтобы запись в порты производилась только по спаду сигнала WR (см далее).
Сигнал синхронизации SYNC формируемый микропроцессором КР580ВМ80 используется в "Орионе 128" для осуществления режима "прозрачного" ОЗУ (напомним, что появление этого сигнала указывает на "намерение" микропроцессора произвести в следующем такте операцию чтения или записи данных). Микропроцессор Z80 такого сигнала не формирует, поэтому в "Z80 Card" применен специальный формирователь на элементах DD4.1 DD5.1 DD5.2. Сигнал синхронизации снимается с выхода DD51. Он становится активным (с высоким уровнем) по фронту любого из сигналов MREQ (обращение к памяти) или IORQ (обращение к устройствам ввода—вывода), что происходит примерно в середине такта и сбрасывается фронтом сигнала Ф2 в начала следующего такта.
Для эмуляции отсутствующего у микропроцессора Z80 сигнала INTE в "Z80 Card " используется формирователь на элементах DD4.2 DD4.3 DD7.4 DD6.1 DD 6.2 (этот узел появился только из-за требования полной совместимости с "Орионом 128" в части генерации звуковых колебаний). Работа формирователя заключается в "вылавливании" кодов команд EI и DI в циклах M1 микропроцессора (чтение кода операции) и установке INTE в соответствующее состояние Команды EI (11111011В) и DI (11110011B) различаются только на один бит D3, его значение "защелкивается" триггером DD6.2. Остальные детали устройства дешифрируют код команды и осуществляют привязку к спаду сигнала М1.
Элемента DD7.1—DD7.3 выполняют необходимые преобразования сигналов для работы микропроцессора Z80. Элементы VD1, R2 необходимы для приведения уровня сигнала Ф2, поступающего в " Z80-Саrd" через контакт 15 панели микропроцессора DD19, к уровню ТТЛ.
НЕМНОГО О ТУРБИРОВАНИИ
Говоря о турбировании (увеличении тактовой частоты с целью повышения быстродействия компьютера), необходимо отметить одну особенность. При работе микропроцессор выполняет в основном внутренние операции и обмен информацией по шине данных с другими устройствами (извлечение кодов операций из памяти, чтение и запись данных в память) занимает не более 20...30% времени. Поэтому чаще всего при турбировании "убыстряют" только процессор, а скорость работы всех остальных устройств оставляют прежней. При этом в компьютер вводят устройство, которое формирует в необходимых случаях такты ожидания для микропроцессора, приостанавливая его работу и синхронизируя его с другими устройствами. При таком подходе требования к временным характеристикам всех устройств, кроме микропроцессора, не изменяются, что, в принципе, гарантирует нормальную работу компьютера в турборежиме без дополнительной наладки. Иными словами, не придется заменять микросхемы ОЗУ и буферных элементов на более быстродействующие или подбирать микросхемы портов ввода—вывода. Не придется вносить какие-либо существенные изменения и в схему компьютера. При описанном ниже способе турбирования быстродействие может повыситься не более чем на 50. .80% от коэффициента увеличения тактовой частоты, однако этого вполне достаточно, особенно если принять во внимание простоту реализации способа.
"Z80-CARD" V3.2
Основное отличие этой версии от V3.1 в том, что микропроцессор работает с увеличенной тактовой частотой — 5 МГц. " Z80-Card" V3.1 легко модифицируется в V3.2 введением микросхемы DD8 и резистора R4, как показано на рис. 2 (новые соединения выделены утолщенными линиями, а соединения, которые необходимо удалить, обозначены крестиками).
Колебания с тактовой частотой 5 МГц поступают на микропроцессор Z80 по отдельному проводу с вывода 8 элемента DD11.4 компьютера. На микросхеме DD8 выполнен формирователь сигнала ожидания для микропроцессора. Идея его работы состоит в том, что при появлении высокого уровня на выводе 9 триггера DD5.1, указывающего на "намерение" микропроцессора обратиться к памяти раньше, чем диспетчер ОЗУ (DD13.2 на плате компьютера) позволит это сделать, микропроцессор будет переведен в состояние ожидания, низким уровнем сигнала WAIT. Кроме того, при каждом обращении к ОЗУ микропроцессор "тормозится" на один такт, чтобы растянуть сигналы RD и WR (это необходимо для обеспечения нормального взаимодействия микропроцессора с ОЗУ). Таким образом, микропроцессор может находиться в состоянии ожидания от одного до трех тактов. Повышение тактовой частоты процессора до 5 МГц— не предел. Если вы уже запустили "Z80-Card " V3.2 и ваш компьютер вполне работоспособен, то есть смысл провести эксперимент, подав на Z80 тактовые импульсы с частотой следования 10 МГц (их можно снять с вывода 8 элемента DD1.5 на плате компьютера). Для того чтобы 'Z80-Card' работал с такой тактовой частотой, на плате "Ориона-128" необходимо произвести одно небольшое изменение (которое никак не повлияет на его работу с КР5808М80 и Z80 при тактовой частоте 2,5 и 5 МГц): перерезать печатный проводник, идущий к выводу 4 триггера DD18.2, и соединить этот вывод с выводом 8 DD1.5. Вполне возможно, что эксперимент пройдет успешно и, включив компьютер, вы по достоинству оцените все возможности имеющихся, а вашем распоряжении игровых программ.
Однако не исключено, что компьютер при тактовой частоте 10 МГц не заработает. Одна из возможных причин этого — в самом микропроцессоре, имеющийся экземпляр просто не может работать с такой высокой тактовой частотой. При этом компьютер либо вообще не будет подавать признаков работоспособности процессора либо будет "зависать" через непродолжительное время после нажатия на кнопку "Сброс".
Другая возможная причине неработоспособности компьютера при таком значении тактовой частоты — недостаточное быстродействие портов ввода—вывода KP580BB55. Неисправность проявляется в отсутствии загрузки ORDOS из ROM диска при нажатии на кнопку "Сброс" (иногда загрузка может работать только в течение нескольких секунд после включения питания), неработоспособности части клавиш на клавиатуре. При этом тест программа обычно показывает исправность портов. Выход из положения— подбор работоспособных при такой тактовой частоте микросхем KP580BB55.
Таблица 1.
|
Число микросхем |
|||
проверенных |
Работающих, при тактовой частоте, МГц |
|||
2,5 |
5 |
10 |
||
KP 1858 BМ1 |
5 |
5 |
5 |
3 |
КМ1858ВМ1 |
3 |
3 |
3 |
2 |
Т34ВИ1 |
2 |
2 |
2 |
0 |
Z80 СPU Zilog |
2 |
2 |
2 |
0 |
Z80A CPU Zilog |
2 |
2 |
2 |
1 |
Z80A CPU SGS |
2 |
2 |
2 |
1 |
Z80A CPU GS |
1 |
1 |
1 |
1 |
Z80B CPU GS |
2 |
2 |
2 |
2 |
Z80 CPU Mostek |
1 |
1 |
1 |
0 |
Z80A С '>PU NME |
2 |
2 |
2 |
0 |
Z80H CPU ST |
1 |
1 |
1 |
1 |
Еще одна причина — непригодность микросхем ОЗУ (такой диагноз обычен для К565РУ5Д) Кроме того, компьютер может вообще не работать при тактовой частоте 10 МГц из-за недостаточного быстродействия микросхем некоторых узлов компьютера. В подобном случае вряд ли есть смысл продолжать поиск причин неисправности и пытаться запустить процессор при этой тактовой частоте.
Как известно, существуют несколько модификаций микропроцессора Z80 различающихся предельными значениями тактовой частоты Z80 (2,5 МГц) Z80A (4 МГц) Z80В(6МГц) Z80Н(8МГц). Чтобы выявить возможность использования этих микропроцессоров (и некоторых других имеющихся в распоряжении) при более высоких (чем указано в скобках) тактовых частотах, были проведены соответствующие испытания, результаты которых сведены в табл. 1 (из-за относительно небольшого числа проверенных микросхем делать какие либо серьезные выводы не следует).
ИЗГОТОВЛЕНИЕ И НАЛАДКА "Z80-CARD"
" Z80-Card" собирают на отдельной печатной плате с таким расчетом, чтобы ее можно было с помощью разъемного соединителя вставить в панель вместо микропроцессора DD19 на плате компьютера. Компоновка деталей на платах "Z80-Card" V3.1 и V3.2 показана на рис 3 (штрих-пунктирной линией обозначена граница платы версии V3.1)
Ответную часть разъема ХР1 можно изготовить из вилки СНП134-90 или СНШ34-135, распилив ее по линии контактов среднего ряда (предварительно удалив их) пополам. В результате получится четыре "гребенки" по 20 контактов в каждой, которые прекрасно вставляются в любые 40-контактные панели. Две такие "гребенки" устанавливают на плате "Z80 Card".
В "Z80 Card" можно применить микросхемы серий К155, К555, К1533. Возможна замена К555КП11 (DD 2 DD3) на К555КП16. Если предпочтение отдано версии V3.2 необходимо выполнить условие, быстродействие микросхемы DD5 должно быть меньше чем DD8. Для этого на место первой из них следует установить микросхему серии К155 (К155ТМ2) а на место второй - К555 или К1533 (К555ЛАЗ или К1533ЛАЗ). При отсутствии таких микросхем можно между выводом 5 DD5 и общим проводом включить конденсатор емкостью 30-200 пф. Для обеспечения минимального падения напряжения диод VD1 должен быть импульсным, рассчитанным на прямой ток не менее 100 мА, например типа КД522А. Часто применяемые в цифровой технике диоды серий КД503, Д9 в данном случае использовать нельзя.
Поскольку временные параметры микропроцессора Z80 отличаются от таковых KP580ВM80, для нормальной работы "Z80 Card", плату компьютера необходимо доработать (еще раз отметим, что эти доработки никак не скажутся на его работе с КР580ВМ80). Необходимо исключить инвертор DD11-5(К155ЛН1), для чего следует перерезать печатные проводники идущие к выводам 10 и 11 DD11, и соединить отрезком провода вывод 9 DD27 (К155ИД4) с выводом 9 DD30 (К155ТМ2). Вообще говоря, эту доработку можно и не делать, но лучше всего сделать во всех "Орионах-128" (т. е. и в компьютерах с КР580ВМ80), так как данные должны записываться в DD30 не по фронту, а по спаду сигнала WR.
Прежде чем запускать "Z80-Card", и проводить какие либо эксперименты с компьютером необходимо убедиться в том, что он полностью исправен и нормально работает с КР580ВМ80, а в монтаже "Z80 Card" нет ошибок. Для проведения экспериментов установите в панель DD22 тест ОЗУ, описанный в [2] или другой аналогичный тест проверяющий ОЗУ. Затем вставьте в панель микропроцессора " Z80 Card" (если встраивается V3.2, то придется еще припаять отдельный провод для подводки тактовых импульсов с частотой следования 5 МГц) и включайте питание.
Вполне возможно, что все заработает нормально и тест покажет исправность всех микросхем ОЗУ. Если это действительно так, выполните, описанную ниже доработку № 3 и этого будет достаточно, чтобы компьютер работал нормально. Однако, скорее всего во втором и третьем разрядах микросхемы ОЗУ будут показаны как неисправные. В этом случае следует выполнить доработку №4. Но обо всем по порядку.
Дело в том, что микропроцессор Z80 при чтении данных из памяти формирует сигнал RD на 200 нс длиннее (при тактовой частоте 5 МГц — на 100 нc) чем при чтении кода операции (КР580ВМ80 в обоих случаях работает одинаково). Таким образом, Z80 считывает данные из ОЗУ в момент, когда буферы DD49, DD50 (КР580ВА86) уже закрыты и шина данных переведена в высокоимпедансное состояние. Из-за наличия паразитной емкости шины данные сохраняются на ней еще некоторое время, и Z80 может нормально их прочитать. Наиболее нагружены линии D0 и D1 чуть меньше — D2 (к ним подключены входы системных портов), поэтому-то тест ОЗУ, скорее всего, и покажет неисправность двух или трек младших разрядов ОЗУ.
Если в качестве DD18 DD28 и DD30 применены микросхемы серии К555 или К1533 и микропроцессор Z80 работает при тактовой частоте 5 МГц неисправность, скорее всего не зафиксируется. При желании поэкспериментировать, можно подключить между линиями шины данных (только на неисправных разрядах) и общим проводом конденсаторы емкостью 100-300 пф или резисторы сопротивлением 1-1,5 кОм (доработка № 1) и посмотреть, как это повлияет на восстановление нормального чтения из ОЗУ.
Следует отметить что "висящая" шина данных является хорошей "антенной" для помех, поэтому при использовании ее паразитной емкости для запоминания данных компьютер может работать ненадежно. Повысить надежность временного хранения информации можно, если использовать для этого шину данных ОЗУ, которая значительно короче и, главное не нагружена дополнительными входами микросхем. Достигается это более поздним закрытием указанных выше буферов DD49, DD50.
Доработка № 2 сводится к включению между выводами 9 и 10 этих микросхем конденсаторов емкостью 2500-2700 пФ (если используются четыре страницы ОЗУ, то такие конденсаторы следует впаять и между выводами дополнительных буферов). Доработка проста, но имеет недостаток, выходы микросхемы DD29 (К155ИД4) перегружаются (при использовании дешифратора К555ИД4 компьютер может не работать вообще).
Доработка № 3 по принципу работы аналогична предыдущей, но лишена указанного недостатка. Выполняют ее на плате компьютера в соответствии со схемой, показанной на рис 4. Здесь дополнительные диоды выполняют функцию элемента И, что позволяет держать буферы КР58ОВА86 открытыми при каждом чтении информации из ОЗУ, до окончания сигнала RD. Если установлен микропроцессор КР580ВМ80, это изменение ни на что не влияет.
Доработка № 3 дает хорошие результаты и может с успехом использоваться в большинстве компьютеров "Орион-128". "Погоняйте" тест, а потом поработайте на компьютере один-два дня. Если он будет работать ненадежно и описанные далее рекомендации окажутся неэффективными, следует выполнить доработку № 4.
Доработка № 4. Из сказанного ранее ясно, что в тот момент, когда Z80 "хочет" прочитать данные из ОЗУ, их уже нигде нет, а значит, данные нужно где-то запоминать. Для запоминания можно использовать восьмиразрядный регистр, установленный на шине данных. Принципиальная схема этой доработки показана на рис 5, а реализация ее на плате компьютера — на рис 6 (как и описанная выше доработка № 3, она никак не влияет на работу "Ориона-128" с КР580ВМ80). Дополнительный регистр DD17' устанавливают сверху на формирователь DD17 и подключают параллельно ему выводы 1—8 и 12—19 DD17 соединяют соответственно с выводами 12—19 и 1—8 DD17, на выводы 10 и 20 подают напряжение питания (общий и +5 В), а выводы 9 и 11 используют для управления. Микросхему DD1 устройства управления можно смонтировать сверху над любой микросхемой "Ориона-128" (например над DD13), соединив вместе выводы питания.
РЕКОМЕНДАЦИИ ПО УЛУЧШЕНИЮ РАБОТЫ КОМПЬЮТЕРА C Z80
" Z80-Card" дополнительно нагружает шины питания "Ориона-128" и может стать источником дополнительных помех на них. Чтобы это не послужило причиной неустойчивой работы компьютера, напряжение +5В рекомендуется подать на плату в места с наибольшей нагрузкой, а именно к микросхемам DD51, DD52 (К155ИР13) и к системному разъему. В отдельных случаях может оказаться полезным соединение платы " Z80-Card" с источником питания отдельными проводами.
По указанным причинам в компьютере с "Z80-Card" снижается стабильность работы видео формирователя (DD47, DD48, DD51, DD52, DD56, DD57), в результате чего на экране могут появиться белые мерцающие точки ("снег"). Устранить их можно включением между выводом 11 DD47 или DD48 и общим проводом конденсатора емкостью 100-360 пФ.
Немного о быстродействии
Как уже говорилось, хотя тактовая частота в "Z80-Card" V3.2 увеличена (по сравнению с V3.1) с 2,5 до 5 МГц, быстродействие V3.2 выше не в 2,0, а в 1,4-1,5 раза. Следует также отметить, что некоторые команды Z80 выполняет быстрее, чем КР580ВМ80, поэтому при одинаковой тактовой частоте скорость работы программ с этим микропроцессором больше. Кроме того, при использовании турбированного Z80 относительное увеличение скорости работы вычислительных программ выше, чем программ пересылки данных.
Для оценки быстродействия "Ориона-128" во всех вариантах можно воспользоваться тестовыми программами, исходные тексты которых приведены в табл. 2 (программа SMIT1.BS) и 3 ( SMIT2$, адрес "посадки" — 0000), а данные об их работе — в табл. 4. Следует помнить, что стандартным для "Ориона-128" является вариант "Z80-Card" V3.2, работающий при тактовой частоте 5 МГц, поэтому при разработке программ реального времени необходимо ориентироваться именно на него.
НЕМНОГО О ПРОГРАММИРОВАНИИ
Принято считать, что микропроцессоры I8080 (КР580ВМ80) и Z80 имеют одинаковую систему команд, т. е. совместимы снизу вверх. Однако это не совсем так. Действительно, все команды набора КР580ВМ80 есть и у Z80 и работают одинаково. Исключение составляют несколько команд арифметических операций, которые в Z80 выполняются более корректно, а точнее говоря, в микропроцессоре Z80 флаг D2 (бит паритета Р) используется еще и для указания переполнения. Это оказывается полезным при работе с числами со знаком. Например, при сложении двух положительных чисел может возникнуть перенос в разряд D7, а флаг D0 (бит переноса С) не установится, и число будет отрицательным, что является ошибкой. Поскольку флаг D0 используется в программах крайне редко, такое различие микропроцессоров себя не проявляет.
Второе различие состоит в выполнении команды DAA (десятичной коррекции). Дело в том, что в KP580BM80 после выполнения операции вычитания, команда десятичной коррекции выполняется неправильно. В Z80 этот недостаток устранен, из-за чего с ним некоторые программы, встречающиеся, правда, довольно редко, не работают. Примерам может служить широко известная программа BASIC V1.1.
Для автоматического определения типа микропроцессора в программах можно применять традиционный алгоритм. Фрагмент такой программы приведен в табл. 5.
Литература
1 Бун М. Specirum совместимый компьютер Микропроцессор Z80 — Радио 1995 N1 2 с 15-19
Описание
компьютера Орион-128
|
Журнал
РАДИО
|