Орион-128/Радио 05,06-93/СР/М-80. Контроллер дисковода
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: Г. РОГОВ, М. БРИДЖИДИ |
Контроллер дисковода, являясь промежуточным звеном между НГМД и компьютером, решает задачи преобразования информации и управления процессом ее обмена. Применение специализированной БИС позволяет значительно упростить схему контроллера и свести к минимуму процесс его наладки. Наиболее часто в контроллерах дисководов применяют специализированную БИС КР1818ВГ93 [1]. Она представляет собой однокристальное программируемое устройство, предназначенное для управления дисководами, процессом обмена информацией и устройствами коррекции при записи данных на диск. Микросхема обеспечивает автоматический контроль считываемой информации, возможность изменения длины сектора и режимов поиска дорожки, что позволяет программно настраивать контроллер на формат записи. В контроллерах дисководов используют также устройства, дополняющие функциональные возможности БИС и служащие для связи с НГМД и компьютером, преобразования сигналов, выбора-дисковода и стороны диска.
Описываемый ниже контроллер дисковода для компьютера «Орион-128» построен на основе БИС КР1818ВГ93 и полностью удовлетворяет требованиям, изложенным в [2]. Он представляет собой улучшенный вариант получивших распространение контроллеров более ранних версий. Ему присвоен номер V 3.30.
Контроллер V3.30 имеет следующие основные характеристики:
- число одновременно подключаемых дисководов — от 1 до 4. Они могут быть сорока- и восьмидесятидорожечными, одно- и двусторонними. Возможно использование дисководов, не формирующих сигнала готовности, так как в контроллере предусмотрен специальный формирователь;
- плотность записи может быть как двойной, так и одинарной.
Рекомендуем применять дисководы отечественного производства МС5305, МС5311, МС5313, болгарские — ЕС5323 или аналогичные дисководы отечественного и зарубежного производства, позволяющие работать в следующем формате: 80 дорожек, 2 стороны, двойная плотность. При этом информационная емкость дискеты будет равна 720 Кбайтам.
Для работы с контроллером используется дисковая операционная система СР/М-80 [3,4] (далее — просто СР/М).
Электрическая принципиальная схема контроллера показана на рис. 1. Для взаимодействия процессора «Ориона-128» с контроллером служат программно доступные регистры микросхемы DD3 и регистр управления контроллера — микросхема DD8. Адреса, по которым следует обращаться к этим регистрам, операции, при которых они доступны, и названия регистров представлены в табл. 1. Адресный дешифратор построен на элементах DD15, DD6.2, DD1.3, DD4.2— DD4.4. При попадании адреса в диапазон 0F700H … 0F72FH на одном из выходов микросхемы DD15 и анодах диодов VD2 — VD4 установится напряжение низкого уровня, указывающее на обращение процессора к одному из регистров контроллера. При низких уровнях напряжения на адресных линиях А2, А5 на выходе элемента DD4.2 будет сформирован сигнал выбора микросхемы DD3, а при других сочетаниях, в случае проведения записи, данные будут задержаны в регистре DD8. Такая сложная, на первый взгляд, схема дешифрации применена с целью получения совместимости с программным обеспечением, рассчитанным на работу с контроллерами некоторых аналогичных вариантов.
Назначение битов данных, записываемых в регистр управления контроллера, показано на рис. 2. Состояние неиспользуемых разрядов D3 и D7 безразлично. Выход 0 микросхемы DD8 (на схеме не показан), соответствующий биту данных D5, зарезервирован и в рассматриваемом контроллере не использован.
Дешифратор DD12 формирует сигнал выбора одного из четырех дисководов в зависимости от состояния выходов 2 и 3 регистра DD8, соответствующих битам D1 и D0 шины данных. Выбор может быть запрещен высоким уровнем напряжения на выходе 4 регистра DD8 (бит D2) или низким уровнем сигнала «Загрузка головки», поступающего с выхода HLD микросхемы DD3.
Таблица 1.
Адрес | Операция | Регистр (микросхема) |
0F700H | Чтение | состояния (DD3) |
Запись | команд (DD3) | |
0F701H | Чтение и запись | дорожки (DD3) |
0F702H | Чтение и запись | сектора (DD3) |
0F703H | Чтение и запись | данных (DD3) |
0F720H | Запись | управления контроллером (DD3) |
Для работы с микропроцессором КР580ВМ80, тактовая частота которого превышает 2 МГц, быстродействие микросхемы КР1818ВГ93 оказывается недостаточным. Минимальная длительность сигналов записи (/WR) и чтения (/RD), при которых микросхема работает устойчиво, — 400 и 350 нс соответственно. На практике, при работе микропроцессора КР580ВМ80 с тактовой частотой 2,5 МГц, длительность этих сигналов (в зависимости от экземпляра) может быть 350 нс и менее. При этом работоспособными оказываются только 25—30 % исправных микросхем КР1818ВГ93.
Увеличить длительность формируемых микропроцессором сигналов записи и чтения можно двумя способами: формировать их по слову состояния микропроцессора или ввести один такт ожидания при его обращении к микросхеме КР1818ВГ93. Первый способ требует установки в компьютер системного контроллера (микросхемы КР580ВК38 или специального формирователя, выполняющего те же функции) и имеет существенный недостаток: системный контроллер может работать только с микропроцессором КР580ВМ80. Второй способ, который применен в описываемом контроллере, реализовать гораздо проще, и он не имеет указанного недостатка.
Формирователь, построенный на элементах DD5.3, DD5.4, DD14.1, позволяет задержать работу микропроцессора на один такт при обращении к микросхеме КР1818ВГ93. Сигнал DSYN , поступающий с системной платы «Ориона-128», — задержанный на один такт сигнал синхронизации микропроцессора. При наличии напряжения низкого уровня на выходе элемента DD4.2 и активизации сигнала DSYN микропроцессор будет переведен в состояние ожидания низким уровнем сигнала READY. Буферный элемент с открытым коллектором DD14.1 позволяет объединять выходы нескольких устройств расширения по схеме «монтажного ИЛИ» для низких уровней сигнала. Цепь /DRDY , выведенная на контакт В28 разъема Х1, зарезервирована для дальнейшего расширения компьютера.
Генератор тактовой частоты собран на элементах DD1.1, DD1.2 и кварцевом резонаторе ZQ1. Счетчик DD2 формирует последовательности импульсов частотой 4 МГц и 2 МГц для синхронизации устройств коррекции сигналов данных (DD7, DD9, DD10) и частотой 1 МГц для тактирования микросхемы DD3.
Устройство предкомпенсации записи представляет собой сдвигающий регистр (DD9), тактируемый частотой 4 МГц и осуществляющий задержку информации. Время задержки определяется состоянием выходов SR и SL микросхемы DD3. Сигнал данных с выхода WD микросхемы DD3 поступает на вход регистра, а с его выхода через инвертор DD13.1 — в дисковод. Напряжение высокого уровня на выходе WSTB микросхемы DD3 разрешает запись информации на дискету. Сигнал от датчика защиты записи НГМД поступает на вход /WPRT микросхемы DD3. Низкий уровень сигнала запрещает запись данных на дискету.
При чтении информации с диска смесь данных и синхроимпульсов через инвертор DD1.6 поступает на тактовый вход триггера DD7.1. На его выходе при каждом положительном перепаде уровня сигнала RDDATE устанавливается напряжение высокого уровня, после чего на инверсном выходе триггера DD7.2 синхронно с тактовой частотой формируется импульс длительностью 250 нс, поступающий на вход данных /RAWR микросхемы DD3. Для выделения синхроимпульсов из сигнала данных служит счетчик DD10, тактируемый частотой 2 МГц при одинарной плотности записи и 4 МГц — при двойной. Плотность записи определяется состоянием выхода 5 регистра управления контроллера (DD3). Выделенные синхроимпульсы поступают на вход S микросхемы DD3.
Направление перемещения головки дисковода определяется уровнем напряжения на выходе DIRC микросхемы DD3: высокий — к центру, низкий — от центра. Появление импульса положительной полярности на выходе STEP этой микросхемы приводит к перемещению головки дисковода, выбранного одним из сигналов SD0 — SD3, на один шаг в направлении, заданном сигналом DIRC. Запуск двигателя дисковода происходит при высоком уровне сигнала на выходе HLD микросхемы DD3. Буферные элементы с открытым коллектором DD13.1 — DD13.5 и DD14.2 — DD14.6 защищают выходы микросхем контроллера и увеличивают мощность его выходных сигналов. Элементы DD11.1 — DD11.3 служат для защиты входных целей микросхемы DD3.
На элементах DD1.4, DD1.5, DD6.3, DD6.4 выполнен аппаратный формирователь сигнала готовности НГМД (READY) по сигналу выбора накопителя (SD0 — SD3). Каждому из сигналов SD0 — SD3 соответствует одна из перемычек S1 — S4. При наличии какой-либо из перемычек и появлении сигнала выбора соответствующего ей накопителя на вход CPRDY микросхемы DD3 будет подано напряжение высокого уровня, указывающее, что накопитель готов. Для накопителей, рекомендованных в первой части этой статьи, формирователь не требуется и перемычки устанавливать не надо. Перед подключением дисководов других типов необходимо проверить наличие на их разъемах цели указанного сигнала. В случае ее отсутствия следует установить соответствующую перемычку. Так, например, если дисковод, подключенный к контроллеру и выбираемый как «А», не формирует сигнала готовности, должна быть установлена перемычка S1. Заметим, что поскольку сигнал READY указывает контроллеру на готовность накопителя к выполнению операций записи/считывания (шпиндель раскручен и головки установлены в рабочее положение), использование формирователя для дисководов, самостоятельно формирующих этот сигнал, недопустимо, так как может привести к порче дискет.
Для подключения дисководов к контроллеру служит разъем Х2. Нумерация его контактов на схеме контроллера (рис. 1) соответствует разъему типа СНП34С-30.
Накопители МС5305, МС5311, МС5313, а также большинство накопителей зарубежного производства (в их числе и болгарские — ЕС5323, ЕС5323.01) имеют стандартные интерфейсные разъемы. Для подключения их к контроллеру можно использовать 34-проводный ленточный кабель и 34-контактные разъемы типа ОНП-НГ-79-34-Р (ОНП-НГ-79-Р). Контакты, имеющие четные номера, следует соединять с сигнальными цепями, нечетные — с общим проводом. Некоторые НГМД, например ЕС5321 (40 дорожек, 2 стороны), имеют нестандартные разъемы и не формируют сигнал готовности, однако обычно сигналы их интерфейсов совпадают со стандартными. В табл. 2 представлены названия сигналов интерфейсов дисководов, их обозначения на схеме контроллера (см. Х2 на рис. 1), номера контактов разъема Х2 контроллера и интерфейсных разъемов наиболее известных дисководов.
Подключение контроллера к компьютеру осуществляется через системный разъем. Используемые контакты разъема Х1 следует соединить с одноименными контактами разъема Х2 платы «Ориона-128», на которой, в соответствии с информацией, данной в [2], необходимо выполнить следующую доработку: контакт С1 разъема Х2 соединить с выводом 1 микросхемы DD 30, а контакт СS2 — с выводом 9 микросхемы DD13. Для обеспечения возможности подключения к компьютеру других устройств расширения, целесообразно изготовить кросс-плату, содержащую несколько разъемов, соединенных параллельно с системным.
В качестве разъема Х1 контроллера (на плате контроллера должна быть установлена вилка) можно применить СНП59-96 (трехрядный, 96-контактный) или СНП59-64 (двухрядный, 64-контактный).
Для питания контроллера необходимы два источника напряжения: +5 В и +12 В. Последний нужен только для микросхемы КР1818ВГ93 и должен быть рассчитан на ток не менее 20 мА. Здесь можно использовать преобразователь напряжения, имеющийся на плате «Ориона-128». Диад VD1 служит для защиты микросхемы DD3 при отсутствии напряжения +12 В.
Для питания дисководов также необходимы два источника: +5 В и +12 В. Следует иметь в виду, что в различных режимах работы дисководы могут потреблять разные токи. Так, например, дисковод ЕС5323.01 от источников+5 В и +12 В в состоянии покоя потребляет 0,6 А и 0,45 А, а в момент запуска — 0,9 А и 1,0 А соответственно. Чтобы это не послужило причиной сбоев компьютера, блок питания должен быть рассчитан с запасом мощности. Наиболее предпочтительным вариантом можно считать применение раздельных источников для дисководов и компьютера.
В контроллере можно применить микросхемы серий 155, 555, 1533, 1531. В качестве буферных элементов DD13, DD14 желательно использовать микросхемы серии 155, имеющие наибольшую нагрузочную способность. К155ЛНЗ (DD13) можно заменить на К155ЛН5 или К155ЛН2, К555ЛЛ1 (DD11)- на К555ЛИ1. В качестве диодов VD1 — VD8 применимы КД521, КД522, КД503 и другие кремниевые. Кварцевый резонатор (ZQ1) может быть на частоту 8 МГц. В этом случае необходимо разорвать связь между выводами 1 и 12 счетчика DD2 и соединить его вывод 1 с выводом 6 микросхемы DD1.
Как показала практика, отдельные экземпляры НГМД могут формировать импульсы индекс-сектора недостаточной для нормального восприятия микросхемой КР1818ВГ93 длительности, что вызывает снижение надежности выполнения операций записи/считывания. В этом случае можно попробовать немного «растянуть» индексные импульсы, например, путем следующей доработки: в разрыв связи между выводом 6 микросхемы DD11 и выводом 35 микросхемы DD 3 включить резистор сопротивлением 300—360 Ом и установить конденсатор емкостью 0,1—0,33 мкФ между выводом 35 микросхемы DD3 и общим проводом.
Наладку контроллера целесообразно начать с проверки качества монтажа, соответствия топологии печатной платы схеме и правильности соединения контроллера с компьютером и дисководами. Не рекомендуем сразу пытаться загрузить операционную систему, так как в случае неисправности контроллера или дисковода, информация на дискете может быть испорчена.
Первый этап наладки — проверка возможности программного доступа к регистрам контроллера. Для этого необходимо любым редактором памяти, например «EDМЕМ$» [5] или «М128$» [6], записать произвольные байты по адресам 0F701Н и 0F702H . Информация должна сохраниться и при чтении соответствовать записанной. То же должно происходить и при записи байтов по адресам 0F711H , 0F712H . Регистр управления контроллера (DD8) работает только на запись, поэтому информация, считываемая из ячеек с адресами 0F704H , 0F714H , 0F720H будет произвольной. При записи байтов по этим адресам на выходах регистра DD8 должны устанавливаться соответствующие логические уровни. Причинами неисправностей могут быть неправильная работа дешифратора адреса (DD15, DD6.2, DD1.3, DD4.2 — DD4.4), формирователя сигнала ожидания процессора (DD5.3, DD5.4, DD14.1), неисправность микросхемы DD3 или отсутствие тактового сигнала на ее входе CLC .
Следующий этап наладки — проверка работоспособности контроллера с подключенными дисководами. Для этого с помощью программы «М128$» необходимо записать по адресу DF720H код 00Н, соответствующий выбору дисковода «А», а в регистр команд микросхемы DD3 по адресу 0F700H —код 08Н (команда «Восстановление»). При этом на дисководе, выбираемом как «А» должен засветиться светодиод «Выбор», начать вращаться привод шпинделя и головка должна установиться на нулевую дорожку.
При записи в регистр команд кодов 58Н («Шаг вперед») и 78Н («Шаг назад») головка дисковода должна перемещаться соответственно к центру и от центра диска. То же можно проделать и с дисководами «В», «С» и D, записывая в регистр управления контроллера (адрес 0F720Н) коды 01Н, 02Н и 03Н соответственно. Причиной невыполнения контроллером описываемых команд может быть, например, неисправность микросхем DD3, DD8, DD11, DD12, DD13, DD14 или самого дисковода. Для устойчивой передачи сигналов между контроллером и дисководом, необходимо наличие в последнем, матрицы резисторов, сопротивлением 150—330 Ом, соединяющих сигнальные линии интерфейса с источником питания +5 В. В случае подключения нескольких дисководов резисторная матрица должна быть установлена в одном из них, находящемся на конце интерфейсного кабеля.
Если проведенная проверка показала, что контроллер исправен, можно приступать к заключительному этапу— загрузке с дискеты и запуску операционной системы СР/М.
Существуют два основных способа использования ОС СР/М на «Орионе».
Первый из них предполагает установку СР/М ради использования самой СР/М. В этом случае пользователь полностью отказывается от ORDOS и разработанных под нее программ и использует только те возможности, которые предоставляет ему ОС СР/М. Загрузчик системы помещается в МОНИТОР или, чтобы не переделывать МОНИТОР, в ROM — диск вместо ORDOS и при включении питания или нажатии клавиши «Сброс» производит считывание СР/М с дискеты и передачу управления непосредственно системе.
Второй путь предполагает совместное использование ОС СР/М и ORDOS на «Орионе». В этом случае загрузчик СР/М существует в виде файла ORDOS и запускается из ORDOS . Второй путь не исключает возможность применения ранее наработанных под ОС ORDOS программных средств. Кроме того, с помощью специальных программ (об одной из них мы расскажем в следующих номерах журнала) осуществляется связь между ОС СР/М и ORDOS , что позволяет пользователю отказаться от наиболее рутинной и утомительной процедуры записи и загрузки файлов с магнитной ленты.
Какой из описанных путей выберете вы, зависит от задач, которые вы перед собой ставите. По нашему мнению, второй путь является наиболее приемлемым для всех категорий пользователей. Поэтому дальнейшее описание будет относиться именно к нему.
Для загрузки ОС СР/М используется файл «ВООТ$», коды которого с построчными контрольными суммами приведены в табл. 3. Для создания файла удобнее воспользоваться редактором памяти « EDMEM$». Коды программы набирают с нулевого адреса. С помощью директивы «S» ORDOS или программы «NC$» [7] участок памяти с адреса 0000Н по адрес 013FH записывают на диск В: ORDOS под именем «BOOT$». Затем с помощью команды «FILE ADDRESS» инструментального монитора «М128$» стартовый адрес файла «BOOT$» меняют на 0В400Н.
Для удобства и оперативности работы файл « BOOT$» необходимо записать в ROM — диск.
Прежде чем запустить файл « BOOT$» и попытаться считать систему, заклейте прорезь защиты от записи дискеты. Это убережет ее от случайной порчи из-за неисправности контроллера или ошибок при создании файла « BOOT$», однако, отметим, не может гарантировать сохранность записанной информации в случае неисправности дисковода. После запуска программа « BOOT$» пытается считать основной загрузчик системы, находящийся на нулевой дорожке в первом секторе, Если операция не удалась, на экран будет выдано следующее сообщение:
NON-SYSTEM DISK OR DISK ERROR REPLACE AND s ANY KEY
(Несистемный диск или ошибка чтения диска. Вставьте другой и нажмите любую клавишу)
При успешной загрузке программа «ВООТ$» передает управление основному загрузчику операционной системы, а он уже, в свою очередь, зная как размешена система на диске и в какую область памяти ее следует поместить, считывает и запускает СР/М. Такая гибкая структура загрузки позволяет считывать разные версии систем с помощью одного и того же загрузчика, а также создавать дискеты, защищенные от копирования стандартными средствами ОС.
Признаком безошибочного выполнения операции загрузки системы является появление сообщения о ее версии, информация об авторском праве и, наконец, Промпта ОС СР/М:
А>
Далее рассмотрим вопрос о возможности использования ОС СР/М описываемой версии на других контроллерах дисковода для «Ориона-128». В принципе это возможно на любом контроллере, построенном на основе микросхемы КР1818ВГ93. Как отмечалось выше, необходимым условием совместимости является соответствие адресов регистров микросхемы и адреса и формата регистра управления контроллера, представленных в табл. 1 и на рис. 2.
Контроллеры дисковода, разработанные в ПМП «Орион-Сервис» и предшествующие описанному в этой статье, полностью совместимы с ним и не требуют никаких доработок. Несовместимость большинства других известных контроллеров можно легко устранить их несложной доработкой. Ее можно выполнить, сохранив совместимость с непеределанным контроллером, что позволит без ограничений использовать на переделанном контроллере уже имеющиеся программы.
Рассмотрим способы доработки двух известных вариантов контроллеров.
На рис. 3 и 4 цепи, которые необходимо разорвать, отмечены знаком «X», а вводимые— утолщенными линиями. Дополнительные элементы отмечены строчной буквой «д» в позиционном обозначении. Материал по доработке контроллера, описанного в [8], подготовлен его автором М. Короткиным. Ее выполнение позволит работать на контроллере как с операционной системой SPDOS, так и с СР/М. В последнем случае будут иметь место несущественные ограничения, связанные со схемотехническими особенностями контроллера, в частности, возможность работы не более чем с двумя накопителями и использование только двойной плотности записи.
Из описания контроллера видно, что регистры микросхемы КР1818ВГ93 выбираются по стандартным адресам 0F700H — 0F703H , а несогласования имеются в адресе и формате регистра выбора стороны диска и накопителя. Доработку контроллера иллюстрирует фрагмент схемы, показанный на рис. 3.
Сигнал /SEL1 снимают с вывода 3 микросхемы К155ИДЗ, введение которой в контроллер в качестве дополнительного адресного дешифратора предложено в [8]. Этот сигнал становится активным при попадании адреса в диапазон 0F720H — 0F72FH. Диоды VD1d и VD2d образуют функцию «ИЛИ» для сигналов выбора активного (низкого) уровня. Таким образом, регистр DD10 становится доступным не только по адресу 0F708H (SPDOS), но и по адресу 0F720H(CP/ M). Мультиплексор DD1d переопределяет назначение битов регистра DD10 при обращении по адресу 0F720H .
Доработку контроллера дисковода варианта «Orion-Soft». Сугоняко, В. Сафронов иллюстрирует фрагмент схемы, показанный на рис. 4. Позиционные обозначения и типы микросхем, указанных на ней, соответствуют документации на контроллер, имеющейся у авторов этой статьи.
Формат регистра управления совпадает с показанным на рис. 2, поэтому доработка сводится к изменению схемы адресного дешифратора контроллера. Необходимые сигналы выбора регистров по адресам 0F700H и 0F720H снимают соответственно с выводов 9 , и 11 микросхемы DD14. Диоды VD1д — VD4д образуют функцию «ИЛИ» для сигналов низкого уровня, благодаря чему к регистрам микросхемы КР1818ВГ93 можно обращаться по адресам 0F700H — 0F703H и 0F710H — 0F713H , а к регистру управления — по адресам 0F704H , 0F714H и 0F720H.
Кроме показанной доработки адресного дешифратора, полезно изменить схему формирования сигнала START для дисковода (см. рис. 4), что повысит надежность работы контроллера. При этом одновибратор DD13.1 становится ненужным, и, следовательно, относящиеся к нему элементы из схемы контроллера можно исключить.
Г. РОГОВ, М. БРИДЖИДИ
г. Москва
ЛИТЕРАТУРА
- Коваленко В. А., Олейник А. В., Пархоменко Л. П., Солдатенко Л. М. БИС контроллера КР1818ВГ93 для накопителя на гибком диске. — Микропроцессорные средства и системы, 1986, № 3, с. 3 — 8
- Рогов Г., Бриджиди М. «Орион-128»—настоящее и будущее. — Радио, 1993, № 4, с. 18—22.
- Увит М., Ангермейер Дж. Операционная система СР/М. — М.: Радио и связь, 1986.
- Ахманов С., Рой Н., Скурихин А. Пользователям о «Корвете». Операционная система и программное обеспечение. — Радио, 1989, № 10, с. 39—42; № 12, с. 33-36.
- Сугоняко В., Сафронов В. Программное обеспечение ПРК «Орион». Бейсик "ORION ". — Радио, 1991, № 4, 32-39.
- Сугоняко В., Сафронов В. Инструментальный МОНИТОР для «Ориона-128». — Радио, 1990, № 10, с. 44-46.
- Сугоняко В., Сафронов В. Операционная оболочка «ORDOS». — Радио, 1991, № 11, с. 28-32.
- Короткий М. Контроллер НГМД для «Ориона-128». — Радио, 1992, № 12, с. 13-15, 31.