Сделай Сам Свою Работу на 5

Интерфейсы устройств хранения





Устройства хранения данных — накопители на магнитных дисках (гибких и жестких, фиксированных и сменяемых), оптические диски CD и DVD, ленточные и твердо­тельные — подключаются к компьютеру самыми разнообразными способами. Пер­вые устройства хранения в ПК — накопители на гибких магнитных дисках (НГМД) — подключались интерфейсным кабелем-шлейфом к контроллеру, отделенному от самих устройств. Этот специализированный интерфейс сохранился до сих пор, им подключают дисководы, требующие скорости передачи всего 500 Кбит/с (около 60 Кбайт/с). Скорость 1000 Кбит/с, требуемая для так и не распространившихся дис­ководов на 2,88 Мбайт, осталась невостребованной. К интерфейсу дисководов под­ключали и старые стриммеры (очень тихоходные). Аналогичный интерфейс понача­лу использовался и для подключения винчестеров (так называемых MFM и RLL), по нему передавались «сырые» данные записи чтения с головок диска, правда, уси­ленные. Позже накопители слегка «интеллектуализировали», и появился (ненадолго) интерфейс дисков ESDI, обеспечивающий скорость передачи данных аж 1 Мбайт/с. Однако вскоре контроллер полностью переселился на само устройство, да еще и с соб­ственной буферной памятью (сначала на один сектор, а потом объем стал стреми­тельно расти), и из внешнего интерфейса устройства хранения ушла вся специ­фика, связанная с магнитной записью и воспроизведением данных. Так появились устройства с интерфейсом AT А, начавшим свою историю в 1988 г. и ставшим в наши дни самым распространенным. Для устройств, логически отличающихся от жест­ких дисков — оптических, магнитооптических, ленточных и любых других, — в 1996 г. была принята спецификация AT API. Это пакетное расширение интер­фейса, которое позволяет передавать по шине АТА устройству блоки командной информации, структура которых была позаимствована из SCSI. Потолок скоро­сти АТА — 100 Мбайт/с (Ultra DMA Mode 5). Интерфейс АТА имеет уже вполне видимую границу по адресации около 137 Гбайт, в AT API используется принятая в SCSI 32-битная адресация, позволяющая адресовать до 2 Тбайт (при 512-байт-ном блоке). Дальнейшее развитие интерфейса — Serial ATA; здесь повышается скорость обмена с устройством, решается проблема одновременной работы с не­сколькими устройствами, значительно расширяются возможности адресации.





Для устройств хранения используют и универсальные интерфейсы, первым конку­рентом АТА является шина SCSI, как в парарельном варианте так и в последова­тельном (FCAL). Примерно при тех же скоростях обмена SCSI позволяет эффек-


9.1. Интерфейс НГМД 353

тивно работать с несколькими устройствами на одной шине, которая во время выполнения команды с длительной фазой ожидания данных свободна для обмена с другими устройствами. В отличие от сугубо внутренней шины AT A, SCSI позволя­ет подключать и внешние устройства. Для внешних устройств хранения с успехом применяются и шины USB, реже Fire Wire, а также подключение к LPT-порту.

Интерфейс НГМД

Накопители на гибких магнитных дисках (НГМД) подключаются к контроллеру через специальный стандартный интерфейс. Основные функции по управлению НГМД, а также кодирование-декодирование данных выполняет контроллер, рас­положенный на большинстве современных системных плат. Раньше контроллер часто выносили на специальную карту расширения («в компании» с интерфей­сом НЖМД). На плате электроники, установленной на корпусе НГМД, располо­жены только схемы приводов двигателей, усилители-формирователи сигналов записи и считывания и формирователи сигналов от датчиков.

Аппаратный интерфейс

Все сигналы интерфейса НГМД являются логическими с уровнями ТТЛ, актив­ный уровень — низкий. Формирователи выходных сигналов накопителя имеют выход типа «открытый коллектор». Интерфейс подразумевает наличие термина­торов — нагрузочных резисторов — для каждой сигнальной линии устройства. Теоретически их предполагалось включать только на последнем дисководе в шлей­фе, практически же их никогда и не отключают. Современные трехдюймовые на­копители используют «распределенный терминатор» — резисторы с относитель­но высоким сопротивлением (1-1,5 кОм), постоянно соединяющие входные линии интерфейса с шиной +5 В. Низкие частоты интерфейсных сигналов позво­ляют не задумываться о точности согласования импеданса шлейфа и сопротивле­ния терминатора. Однако если на шлейфе стоят только старые 5"-накопители со снятыми терминаторами, они могут отказаться надежно работать (выходные линии с открытым коллектором останутся без нагрузки).



Логически интерфейс довольно прост. Для того чтобы заставить накопитель ра­ботать, его нужно выбрать сигналом Drive Sel и запустить мотор шпинделя сигна­лом Motor On. Для выборки накопитель имеет четыре сигнала DSO...DS3, но отзы­вается только на один из них, определенный установкой джамперов. Выбранный накопитель воспринимает управляющие сигналы от контроллера и передает кон­троллеру свои выходные сигналы. О том, что накопитель выбран, свидетельству­ет светодиодный индикатор на его лицевой панели.

Для перемещения головок на один шаг контроллер должен подать импульс Step; направление перемещения определяется уровнем сигнала Direction: при низком уровне (сигнал активен) перемещение происходит в сторону центра диска (номер трека увеличивается). Нулевой трек контроллер находит, перемещая головки от центра до появления сигнала Track 00. Выбор номера головки производится сиг­налом Side 1. Начало трека накопитель отмечает импульсом Index, который выра­батывается при прохождении индексного отверстия вращающейся дискеты мимо


354 ____________________________ Глава 9. Интерфейсы устройств хранения

датчика. Считываемые данные в закодированном (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 будет означать неготовность — нет дискеты или она не зафиксирована на шпинделе, или же не подключен дисковод (интерфейс или питание). Нали­чие дисковода контроллер может определить с помощью команды рекалибровки (см. ниже) — при ее выполнении дисковод должен подать сигнал TrackOO. Все НГМД, применяемые в PC, независимо от типа и размера имеют одинаковый интерфейс и унифицированные 34-контактные разъемы двух типов: с печатными двусторонними ламелями у устройств 5" и двухрядными штырьковыми контак­тами у устройств 3,5". Используемый в PC кабель-шлейф имеет перевернутый фрагмент из 7 проводов с номерами 10-16 (рис. 9.1). Этот поворот позволяет под­ключать к контроллеру одним шлейфом до двух НГМД, причем адрес накопителя.


9.1. Интерфейс НГМД



определяется его положением на шлейфе: для привода А: фрагмент перевернут, для В: — нет. Универсальный шлейф с пятью разъемами, изображенный на рисун­ке, позволяет подключать пару любых дисководов, которые должны располагать­ся в разных зонах шлейфа. Некоторые разъемы могут и отсутствовать, что сковы­вает свободу конфигурирования дисководов. В табл. 9.1 описан интерфейсный кабель с сигналами, приходящими на разные накопители. Направление сигналов (I/O — ввод-вывод) указано относительно контроллера.


Рис.9.1. Кабель интерфейса НГМД

Таблица 9.1. Кабель интерфейса НГМД

 

Контроллер   ДисководВ: Дисковода:
Контакт1 Сигнал I/O Контакт1 Сигнал Контакт1 Сигнал
FDHDIN (Reduce Write) О Low Current Low Current
Резерв - Резерв Резерв
FDEDEIN - FDEDIN (DS3) FDEDIN (DS3)
Index I Index Index
Motor On A о DSO Motor2
Drive Sel 1 о DS11 DS2
Drive Sel 0 о DS2 DS11
Motor On В о Motor2 DSO
Direction о Direction Direction
Step о Step Step
Write Data о WData Wdata
Write Gate о WGate Wgate
Track 00 I ТВ 00 TROO
Write Protect WProt WProt
Read Data RData Rdata
Side l о Sidel Side l
343 Disk Changed 343 DC 34Э DC

1 Нечетные контакты 1 -33 — земля. Для дисководов 5" ключ между контактами 4-5 и 6-7.

2 Пара сигналов, обеспечивающая выборку FDD (Motor On А и Drive Sel 0 для дисковода А: и Motor On

В и Drive Sel 1 для дисковода В:). 3 Контакт 34 в XT не используется.


356______________________________________ Глава 9. Интерфейсы устройств хранения

Контроллер НГМД и интерфейсный кабель, принятый в PC, позволяют адресо­ваться к одному из двух накопителей и включать мотор сигналами Drive Sel 0 и Motor On А для накопителя А: и Drive Sel 1 и Motor On В для накопителя В:. При этом на обоих накопителях джамперы устанавливаются так, что они отзываются на сигнал DS 1 (контакт 12 разъема). Обычно джамперы на дисководе обозначаются DSO / DS1 / DS2 / DS3, и следует установить джампер DS1. Если джамперы обо­значаются как DS1 / DS2 / DS3 / DS4, что встречается нечасто, то следует устано­вить DS2. Принятая система выборки позволяет все дисководы конфигурировать однотипно, а адрес задавать положением на шлейфе. В некоторых специфических клонах PC применяют иную систему выборки накопителей и «прямой» кабель-шлейф. При этом используется выборка устройства сигналом DS0, ко переключение выборки на эту линию некоторыми накопителями не поддерживается, в результа­те замена накопителей в этих «фирменных» машинах может стать хлопотным де­лом, особенно при отсутствии технической документации.

Контроллер НГМД

Программное взаимодействие с НГМД производится через контроллер накопите­лей на гибких дисках FDC (Floppy Drive Controller), как правило, при участии контроллера DMA и прерываний. Программирование контроллера НГМД для вы­полнения операций с дискетами — довольно хлопотное занятие (см. [4,8,9]). Все функции, необходимые для использования НГМД в качестве устройств хранения данных, реализованы сервисами BIOS Int 13h (см. 12.8.1) и ОС. Игнорирование сервисов BIOS и даже ОС оправданно в основном лишь для нетривиальных задач типа работы с ключевыми дискетами и т. п.

Все контроллеры, применяемые в IBM PC, обеспечивают совместимость с «ис­торической» микросхемой контроллера NEC PD765, которая является аналогом i8272. Контроллер FDC А Т поддерживает два накопителя; он позволяет рабо­тать со скоростями передачи данных 250 Кбит/с (для работы с дискетами SD, DD и QD в старых дисководах 5"), 500 Кбит/с для плотности HD (1,2 и 1,44 Мбайт), а также 300 Кбит/с для работы с дискетами SD, DD и QD в приводах HD 5". Со­временные контроллеры, поддерживающие накопители ED (2,88 Мбайт), долж­ны обеспечивать и скорость 1000 Кбит/с. Режимы контроллеров, соответству­ющие скоростям 250/300,500 и 1000 Кбит/с, обозначаются соответственно 1М, 2М и 4М. В режиме 1М на одном треке умещается 9 секторов (по 512 байт); для этого при частоте вращения 300 об/мин требуется скорость 250 Кбит/с, а при 360 об/мин -300 Кбит/с. В режиме 2М при частоте вращения 300 об/мин (у дисководов HD 3,5") на одном треке умещается 18 секторов, а при частоте вращения 360 об/мин (у дис­ководов HD 5") — 15 секторов. Режим 4М, похоже, так и останется невостребован­ным. Выбор скорости задает частоту синхронизации при записи и форматирова­нии, а также настраивает цепи Ф АПЧ сепаратора данных контроллера. Сепаратор данных способен устойчиво выделять данные и синхросигнал из сигнала, приня­того с головки, лишь при небольших (порядка ±10 %) отклонениях скорости от номинала, поэтому скорость должна быть правильно выбрана для всех операций обмена данными с диском.


9.1. Интерфейс НГМД_____________________________________________ 357

В карте ресурсов AT имеется место под два контроллера НГМД:

♦ FDC АТ#1 (стандартный или основной) занимает порты с адресами 3FOh-
3F7h (как и FDC XT);

♦ FDC AT#2 (дополнительный) занимает порты с адресами 370h-377h.

Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS I n t 0E h) по окончании выполнения внутренних операций. Для обмена данными может ис­пользоваться канал DMA2. Назначение регистров контроллера приведено в табл. 9.2.

Адрес регистра состояния FDC 3F7 (377) совпадает с адресом регистра HDC (дав­но неиспользуемого), в связи с чем раздельная работа FDC и HDC, расположенных на разных платах, проблематична. В нормальном (не диагностическом) режиме из этого регистра интерес представляет только бит 7 — признак смены носителя.

Таблица 9.2.Регистры контроллера НГМД Адрес Назначение (R — чтение, W — запись)

3F2 (372) RW: DOR (Digital Output Register) — регистр управления: биты [4:7] — включение моторов А, В, С, D: 1 — включен; бит 3:1— разрешение использования DMA2 и IRQ6; бит 2:0 — сброс, 1 — разрешение контроллера; биты [1:0] — номер выбранного привода 0-3. В AT биты 6,7 и 1 не используются

3F3 (373) RW: TDR (Tape Drive Register) — регистр стриммера: биты [1:0]— номер устройства, которому соответствует стриммер. По сбросу устанавливается 00, но это означает отсутствие стриммера (вместо дисковода А: стиммер не поставить)

3F4 (374) R: MSR (Main State Register) — главный регистр состояния: бит 7 (DQM) — запрос: 1 — готов к приему/передаче байта; бит 6 (DIO) — направление данных: 1 — FDC -> CPU; бит 5 (NON DMA) — использование DMA: 1 — DMA не используется; бит4(CMDBSY): 1 — контроллер занят выполнением команды; биты [0:3] — привод А:, В:, С:, D: занят (в AT используются только биты 0,1)

3F4 (374)1 W: DSR (Datarate Select Register) — регистр выбора скорости: бит 7:1 — сброс

контроллера (обнуляется автоматически); бит 6:1 — отключение питания контроллера; бит 5:1 — разрешение внешней ФАПЧ (должен быть 0); биты [4:2] — выбор времени предкомпенсации записи (000 — предкомпенсация по умолчанию); биты [1:0] — скорость обмена (00 — 500Кбит/с,01 — 300 Кбит/с, 10 —250 Кбит/с, 11 —1 Мбит/с)

3F5 (375) RW: DR (Data Register) — регистр команд/данных

3F7 (377) W: CCR (Configuration Control Register) — регистр параметров контроллера (AT): биты [7:2] — не используются; биты [1:0]— скорость обмена (00 — 500 Кбит/с, 01—300 Кбит/с, 10 — 250 Кбит/с, 11—1 Мбит/с)

3F7 (377) R: DIR (Digital Input Register) — регистр состояния (только в AT): бит 7:1 =смена носителя (чтение инвертированной линии DC); биты [6:0] — не используются, при чтении не выводятся на шину данных

1 Регистр DSR обеспечивает совместимость с контроллером 18272; в современных контроллерах НГМД на АТ-совместимых компьютерах вместо него используют CCR, поскольку требуется только задание скорости.

Контроллер НГМД может быть использован и для работы со стриммерами; спе­циально для этого в контроллере имеется регистр TDR (Tape Drive Register), пара младших битов которого задает номер устройства, которому соответствует стрим­мер (для него иначе настраиваются цепи ФАПЧ сепаратора данных).


358________________________________ Глава 9. Интерфейсы устройств хранения

Все операции с дискетами выполняются по командам, посылаемым хостом в регистр DR (3F5) согласно состоянию битов регистра MSR (3F4). Запись байта команды или данных в регистр DR разрешается лишь при текущем значении MSR=10xxxxxxb, чтение — при MSR=llxxxxxxb. Для записи/чтения этого регистра приходится ис­пользовать отдельные подпрограммы, не только дожидающиеся разрешающих значений MSR, но и имеющие аварийный выход по тайм-ауту. Хост также выпол­няет запись в регистр DOR (3F2) для запуска/останова дисковода, а также в CCR (3F7) или DSR (3F4) для выбора скорости передачи данных. В операциях обмена данными с дискетами обычно участвует контроллер DMA, и он должен быть свое­временно проинициализирован. Сигнал ТС (завершение цикла DMA) использу­ется как признак завершения фазы данных. В общем виде процедура обмена дан­ными состоит из следующих шагов.

1. Запуск мотора и выбор дисковода (записью в регистр DOR).

2. Установка скорости (записью в регистр CCR).

3. Выполнение команды рекалибровки.

4. Ожидание раскрутки двигателя (если мотор работает еще менее 0,5 с).

5. Позиционирование головки на требуемый цилиндр.

6. Инициализация контроллера DMA.

7. Посылка команды чтения/записи.

8. Ожидание прерывания от контроллера. Прерывание произойдет, когда завер­
шится фаза исполнения, во время которой контроллер обычно обменивается
данными с хостом. Если за определенное время прерывание не получено, фик­
сируется неудачная попытка обращения с ошибкой тайм-аута.

9. По прерыванию от контроллера считываются байты результата, и если ошибок
нет, на этом обмен успешно завершается. Если есть ошибки, то снова переходят
на шаг инициализации DMA и далее повторяют команду чтения/записи. Если за несколько (3) раз успех не достигается, то выполняется рекалибровка, затем инициализация DMA и повторные попытки чтения/записи. Если успех не до­стигается и после нескольких рекалибровок, обмен прекращается аварийно.

Помимо описанного механизма имеется механизм автоматического выключения
мотора НГМД, если к нему долго нет обращения. Для этого в фиксированном
месте ОЗУ (BIOS Data Area, ячейка 0:0440) имеется счетчик времени работы мо­тора НГМД и адрес дисковода (в позиционном коде), мотор которого включен (0:043F). При каждом обращении к дискете (когда в регистре DOR устанавливает­ся бит включения мотора) в счетчик времени заносится константа, соответству­ющая выдержке на отключение (по умолчанию — 2 с). Обработчик аппаратного прерывания от таймера IRQ0 (BIOS Int 08h)c интервалом около 55 мс декрементирует счетчик времени и По его обнулению отключает мотор (записью в регистр DOR). Таким образом, если в течение заданного интервала нет обращений, мотор автоматически выключается. Конечно, это работает, лишь когда BIOS отрабаты­вает аппаратные прерывания от таймера, так что не отключающийся мотор ди­сковода может быть косвенным признаком «зависания» компьютера.


9,2. Интерфейс АТА/ATAPI (IDE) _____________________________________ 359

Исполнение каждой команды имеет три фазы.

1. Фаза команды. Контроллер устанавливает биты DQM=1 и DIO-0, что является приглашением к вводу команды. В регистр DR посылается байт команды, пос­ле которого посылаются байты параметров в строго предписанном порядке. На прием каждого байта контроллер отзывается обнулением DQM на время об­работки. После получения последнего требуемого байта DQM остается обнулен­ным и контроллер переходит в фазу исполнения. В качестве параметров фигу­рируют номер цилиндра С, номер головки Н, номер сектора R, код размера N или длина поля данных сектора DTL, номер последнего сектора на треке EOT, число секторов SC, длительность зазоров GPL и некоторые другие данные.

2. Фаза исполнения требует передачи данных от хоста к контроллеру или обратно,
передача может происходить как в режиме DMA, так и чисто программно (РЮ). В режиме DMA обмен выполняется по сигналам DRQ и DACK# используемого канала. Если DMA не используется, то запросом на передачу является бит DQM и сигнал прерывания. По окончании фазы вырабатывается сигнал прерыва­ния (и его признак в регистре ST0), и контроллер переходит в фазу результата.

3. В фазе результата DQM=1 и 010=1, хост должен считать байты результата из DR, после чего биты установятся в значение DQM=1 и 010=0, что соответствует переходу в фазу приема команды.

С момента получения команды и до окончания фазы результата в регистре MSR бит СМО BSY=1. Контроллер всегда можно принудительно сбросить (перевести в начало фазы команды) записью в регистр DOR или DSR. Если контроллер получит неподдерживаемую команду, он сразу выставит DQM=1 и 010=1, что является ука­занием на необходимость чтения DR. Хост должен прочитать из DR код состояния, в котором будет значение 80h (недопустимая команда).

В современных контроллерах НГМД имеется буфер FIFO глубиной 16 байт, работающий при передаче данных (но не команд и параметров) через регистр DR; в «историческом» контроллере 18272 буфера FIFO не было. Логика общения с ре­гистром DR остается той же. Буфер должен быть своевременно обслужен, чтобы не происходило его переполнения или опустошения. Логика буфера устанавливает запрос данных так, чтобы не отвлекать хост «по пустякам». При чтении из DR за­прос устанавливается, когда в буфере имеется (16-яорог) байтов или же считан последний байт сектора. При записи в OR запрос первоначально устанавливается и удерживается до заполнения буфера, впоследствии он устанавливается снова, когда в буфере остается порог байтов. Переход в фазу результата происходит, когда завершается обмен хоста с DR и буфер опустошается. Общение с регистром DR при записи команд и параметров должно выполняться согласно значениям старших битов регистра MSR (буфер FIFO при этом не используется).

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.