Для устройств хранения используют и универсальные интерфейсы, первым конкурентом ATA является шина SCSI, как в параллельном варианте так и в последовательном (FCAL). Примерно при тех же скоростях обмена SCSI позволяет эффективно работать с несколькими устройствами на одной шине, которая во время выполнения команды с длительной фазой ожидания данных свободна для обмена с другими устройствами. В отличие от сугубо внутренней шины ATA, SCSI позволяет подключать и внешние устройства. Для внешних устройств хранения с успехом применяются и шины USB, реже Fire Wire, а также подключение к LPT-порту.
9.1. Интерфейс НГМД
Накопители на гибких магнитных дисках (НГМД) подключаются к контроллеру через специальный стандартный интерфейс. Основные функции по управлению НГМД, а также кодирование-декодирование данных выполняет контроллер, расположенный на большинстве современных системных плат. Раньше контроллер часто выносили на специальную карту расширения («в компании» с интерфейсом НЖМД). На плате электроники, установленной на корпусе НГМД, расположены только схемы приводов двигателей, усилители-формирователи сигналов записи и считывания и формирователи сигналов от датчиков.
9.1.1. Аппаратный интерфейс
Все сигналы интерфейса
НГМД являются логическими с уровнями ТТЛ, активный уровень — низкий. Формирователи выходных сигналов накопителя имеют выход типа «открытый коллектор». Интерфейс подразумевает наличие терминаторов — нагрузочных резисторов — для каждой сигнальной линии устройства. Теоретически их предполагалось включать только на последнем дисководе в шлейфе, практически же их никогда и не отключают. Современные трехдюймовые накопители используют «распределенный терминатор» — резисторы с относительно высоким сопротивлением (1–1,5 кОм), постоянно соединяющие входные линии интерфейса с шиной +5 В. Низкие частоты интерфейсных сигналов позволяют не задумываться о точности согласования импеданса шлейфа и сопротивления терминатора. Однако если на шлейфе стоят только старые 5"-накопители со снятыми терминаторами, они могут отказаться надежно работать (выходные линии с открытым коллектором останутся без нагрузки).
Логически интерфейс довольно прост. Для того чтобы заставить накопитель работать, его нужно выбрать сигналом
Drive Sel
и запустить мотор шпинделя сигналом
Motor On
. Для выборки накопитель имеет четыре сигнала
DS0
…
DS3
, но отзывается только на один из них, определенный установкой джамперов. Выбранный накопитель воспринимает управляющие сигналы от контроллера и передает контроллеру свои выходные сигналы. О том, что накопитель выбран, свидетельствует светодиодный индикатор на его лицевой панели.
Для перемещения головок на один шаг контроллер должен подать импульс
Step
; направление перемещения определяется уровнем сигнала
Direction
: при низком уровне (сигнал активен) перемещение происходит в сторону центра диска (номер трека увеличивается). Нулевой трек контроллер находит, перемещая головки от центра до появления сигнала
Track 00
. Выбор номера головки производится сигналом
Side 1
. Начало трека накопитель отмечает импульсом
Index
, который вырабатывается при прохождении индексного отверстия вращающейся дискеты мимо датчика. Считываемые данные в закодированном (MFM) виде (но усиленные и сформированные в ТТЛ-сигнал) поступают от накопителя по линии
Read Data
. Для включения режима записи служит сигнал
Write Gate
, закодированные данные в цифровом виде поступают от контроллера по линии
Write Data
. Если установлена дискета, защищенная от записи, накопитель сообщит об этом сигналом
Write Protect
. Для снижения тока записи, которое требуется при работе накопителей HD с дискетами DD и QD, предназначен сигнал
Reduce Write
, его иное название —
Low Current
или
FDHDIN
. Для переключения головок на «вертикальную запись» (для дискет 2,88 Мбайт) служит сигнал
FDEDIN
. Оба эти сигнала вырабатываются контроллером, но для самого дисковода они дублируются сигналами от датчиков типа дискеты (сигнал
FDEDIN
необязателен, дисковод сам переключится по сигналу от датчика). Некоторые модели дисководов позволяют изменить описанный способ работы датчиков типа дискеты, принятый для PC-совместимых ПК, — они могут быть отключены или выполнять информирование контроллера. Однако практически все контроллеры сами управляют линиями интерфейса, соответствующими сигналам от этих датчиков. В этом управлении учитывается тип дисковода, описанный в CMOS Setup, и заказанный формат дискеты. Сигнал
Reduce Write
(низкий уровень) формируется контроллером при любом обращении к дисководу, описанному в CMOS как HD (High Density — высокая плотность, емкость 1,2 или 1,44 Мбайт), для работы с дискетами DD или QD (360 или 720 Кбайт). В некоторых контроллерах этот сигнал формировался, только когда контроллер настроен на скорость 300 Кбит/с (дискета 360/720 Кбайт в дисководе на 1,2 Мбайт). Такой контроллер может надежно форматировать и записывать дискеты 720 Кбайт в приводе на 1,44 Мбайт только при наличии правильно сконфигурированного датчика HD, иначе он все 3,5" дискеты будет записывать с высоким током записи, недопустимым для дискет QD.
Накопители HD при смене дискеты устанавливают сигнал
Disk Changed
, который сбрасывается после обращения к этому накопителю. Этот сигнал заслуживает особого внимания. Он имеется только у дисководов HD и ED (Extra High Density, малораспространенные дисководы на 2,88 Мбайт), причем способ использования этого контакта может определяться джамперами дисковода. В PC соответствующий джампер устанавливается в положение
DC
(Disk Change). Альтернативное использование этой линии — сигнализация готовности устройства, что может обозначаться как
RY
,
RDY
или
SR
, — для PC непригодно.
Заметим, что в интерфейсе нет никаких сигналов, прямо информирующих контроллер о готовности — наличии установленной дискеты. Контроллер может определить готовность, лишь выбрав накопитель и запустив мотор. Тогда отсутствие импульсов Index будет означать неготовность — нет дискеты или она не зафиксирована на шпинделе, или же не подключен дисковод (интерфейс или питание). Наличие дисковода контроллер может определить с помощью команды рекалибровки (см. ниже) — при ее выполнении дисковод должен подать сигнал
Track00
.
Все НГМД, применяемые в PC, независимо от типа и размера имеют одинаковый интерфейс и унифицированные 34-контактные разъемы двух типов: с печатными двусторонними ламелями у устройств 5" и двухрядными штырьковыми контактами у устройств 3,5". Используемый в PC кабель-шлейф имеет перевернутый фрагмент из 7 проводов с номерами 10–16 (рис. 9.1). Этот поворот позволяет подключать к контроллеру одним шлейфом до двух НГМД, причем адрес накопителя определяется его положением на шлейфе: для привода А: фрагмент перевернут, для В: — нет. Универсальный
шлейф с пятью разъемами, изображенный на рисунке, позволяет подключать пару любых дисководов, которые должны располагаться в разных зонах шлейфа. Некоторые разъемы могут и отсутствовать, что сковывает свободу конфигурирования дисководов. В табл. 9.1 описан интерфейсный кабель с сигналами, приходящими на разные накопители. Направление сигналов (I/O — ввод-вывод) указано относительно контроллера.
Рис. 9.1. Кабель интерфейса НГМД
Таблица 9.1. Кабель интерфейса НГМД
Контроллер
Дисковод В:
Дисковод A:
Контакт¹
Сигнал
I/O
Контакт¹
Сигнал
Контакт¹
Сигнал
2
FDHDIN (Reduce Write)
О
2
Low Current
2
Low Current
4
Резерв
–
4
Резерв
4
Резерв
6
FDEDEIN
–
6
FDEDIN (DS3)
6
FDEDIN (DS3)
8
Index
I
8
Index
8
Index
10
Motor On A
O
10
DS0
16
Motor²
12
Drive Sel 1
O
12
DS11
14
DS2
14
Drive Sel 0
О
14
DS2
12
DS11
16
Motor On В
О
16
Motor²
10
DS0
18
Direction
О
18
Direction
18
Direction
20
Step
О
20
Step
20
Step
22
Write Data
О
22
WData
22
Wdata
24
Write Gate
О
24
WGate
24
Wgate
26
Track 00
I
26
TR 00
26
TR 00
28
Write Protect
I
28
WProt
28
WProt
30
Read Data
I
30
RData
30
Rdata
32
Side 1
O
32
Side 1
32
Side 1
34³
Disk Changed
I
34³
DC
34³
DC
¹ Нечетные контакты 1-33 — земля. Для дисководов 5" ключ между контактами 4–5 и 6–7.
² Пара сигналов, обеспечивающая выборку FDD (Motor On А и Drive Sel 0 для дисковода А: и Motor On В и Drive Sel 1 для дисковода В:).
³ Контакт 34 в XT не используется.
Контроллер НГМД и интерфейсный кабель, принятый в PC, позволяют адресоваться к одному из двух накопителей и включать мотор сигналами
Drive Sel 0
и
Motor On А
для накопителя
А:
и
Drive Sel 1
и
Motor On В
для накопителя
В:
. При этом на обоих накопителях джамперы устанавливаются так, что они отзываются на сигнал
DS 1
(контакт 12 разъема). Обычно джамперы на дисководе обозначаются
DS0
/
DS1
/
DS2
/
DS3
, и следует установить джампер
DS1
. Если джамперы обозначаются как
DS1
/
DS2
/
DS3
/
DS4
, что встречается нечасто, то следует установить
DS2
. Принятая система выборки позволяет все дисководы конфигурировать однотипно, а адрес задавать положением на шлейфе. В некоторых специфических клонах PC применяют иную систему выборки накопителей и «прямой» кабель-шлейф. При этом используется выборка устройства сигналом
DS0
, ко переключение выборки на эту линию некоторыми накопителями не поддерживается, в результате замена накопителей в этих «фирменных» машинах может стать хлопотным делом, особенно при отсутствии технической документации.