Аппаратные интерфейсы ПК. Энциклопедия - Михаил Гук
- Дата:20.06.2024
- Категория: Компьютеры и Интернет / Компьютерное "железо"
- Название: Аппаратные интерфейсы ПК. Энциклопедия
- Автор: Михаил Гук
- Просмотров:4
- Комментариев:0
Шрифт:
Интервал:
Закладка:
¹ Нечетные контакты 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, ко переключение выборки на эту линию некоторыми накопителями не поддерживается, в результате замена накопителей в этих «фирменных» машинах может стать хлопотным делом, особенно при отсутствии технической документации.
9.1.2. Контроллер НГМД
Программное взаимодействие с НГМД производится через контроллер накопителей на гибких дисках 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%) отклонениях скорости от номинала, поэтому скорость должна быть правильно выбрана для всех операций обмена данными с диском.
В карте ресурсов AT имеется место под два контроллера НГМД:
♦ FDC АТ#1 (стандартный или основной) занимает порты с адресами 3F0h-3F7h (как и FDC XT);
♦ FDC AT#2 (дополнительный) занимает порты с адресами 370h-377h.
Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS Int 0Eh) по окончании выполнения внутренних операций. Для обмена данными может использоваться канал DMA2. Назначение регистров контроллера приведено в табл. 9.2.
Таблица 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)¹ 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] — не используются, при чтении не выводятся на шину данных¹ Регистр DSR обеспечивает совместимость с контроллером i8272; в современных контроллерах НГМД на AT-совместимых компьютерах вместо него используют CCR, поскольку требуется только задание скорости.
Адрес регистра состояния FDC 3F7 (377) совпадает с адресом регистра HDC (давно неиспользуемого), в связи с чем раздельная работа FDC и HDC, расположенных на разных платах, проблематична. В нормальном (не диагностическом) режиме из этого регистра интерес представляет только бит 7 — признак смены носителя.
Контроллер НГМД может быть использован и для работы со стриммерами; специально для этого в контроллере имеется регистр TDR (Tape Drive Register), пара младших битов которого задает номер устройства, которому соответствует стриммер (для него иначе настраиваются цепи ФАПЧ сепаратора данных).
Все операции с дискетами выполняются по командам, посылаемым хостом в регистр DR (3F5) согласно состоянию битов регистра MSR (3F4). Запись байта команды или данных в регистр DR разрешается лишь при текущем значении MSR=10xxxxxxb, чтение — при MSR=11xxxxxxb. Для записи/чтения этого регистра приходится использовать отдельные подпрограммы, не только дожидающиеся разрешающих значений MSR, но и имеющие аварийный выход по тайм-ауту. Хост также выполняет запись в регистр DOR (3F2) для запуска/останова дисковода, а также в CCR (3F7) или DSR (3F4) для выбора скорости передачи данных. В операциях обмена данными с дискетами обычно участвует контроллер DMA, и он должен быть своевременно проинициализирован. Сигнал TC (завершение цикла DMA) используется как признак завершения фазы данных. В общем виде процедура обмена данными состоит из следующих шагов.
1. Запуск мотора и выбор дисковода (записью в регистр DOR).
2. Установка скорости (записью в регистр CCR).
3. Выполнение команды рекалибровки.
4. Ожидание раскрутки двигателя (если мотор работает еще менее 0,5 с).
5. Позиционирование головки на требуемый цилиндр.
6. Инициализация контроллера DMA.
7. Посылка команды чтения/записи.
8. Ожидание прерывания от контроллера. Прерывание произойдет, когда завершится фаза исполнения, во время которой контроллер обычно обменивается данными с хостом. Если за определенное время прерывание не получено, фиксируется неудачная попытка обращения с ошибкой тайм-аута.
9. По прерыванию от контроллера считываются байты результата, и если ошибок нет, на этом обмен успешно завершается. Если есть ошибки, то снова переходят на шаг инициализации DMA и далее повторяют команду чтения/записи. Если за несколько (3) раз успех не достигается, то выполняется рекалибровка, затем инициализация DMA и повторные попытки чтения/записи. Если успех не достигается и после нескольких рекалибровок, обмен прекращается аварийно.
- Защита компьютера на 100%: cбои, ошибки и вирусы - Петр Ташков - Компьютерное "железо"
- Время — деньги. Создание команды разработчиков программного обеспечения - Эд Салливан - Деловая литература
- Шлюпка. Устройство и управление - Л. Иванов - Техническая литература
- Формирование технологии разработки и принятия предпринимательских решений - Д. Кенина - Управление, подбор персонала
- Язык программирования C++. Пятое издание - Стенли Липпман - Программирование