КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

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


Контроллер НГМД может быть использован и для работы со стриммерами; спе¬циально для этого в контроллере имеется регистр 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 и далее повторяют команду чтения/записи.

Hosted by uCoz