В компьютерах IBM и совместимых с ними, использовалось более 30 типов НГМД, различающихся диаметром дискеты, высотой накопителя, плотностью записи и другими параметрами. Применялись дискеты диаметром 5,25" и 3,5" с удвоенной плотностью (40 дорожек на две поверхности 5,25" дискеты) и учетверенной (80 дорожек). В первом случае емкость дискеты составляет 360 Кбайт, во втором - 1,2 Мбайт. 3,5" дискеты имеют тоже 80 дорожек на каждой их двух поверхностей дискеты и емкость 1.44 Мбайт (дискеты емкостью 2,88 Мбайт появились, но широкого распространения не получили, из-за недостаточной надежности хранения информации).
Поперечная плотность записи часто обозначается числом дорожек на дюйм TPI (Track-Per-Inch). Так, дискеты с 48-ю TPI - двойной, а с 96-ю TPI - учетверенной, или высокой (high) плотности. Продольная плотность - это число бит на дюйм длины дорожки. Так как запись на дорожке концентрическая, а диаметр дорожек разный (у периферии диска - больше, а у центра - меньше), продольная плотность записи для разных дорожек дискеты разная, но число записанных импульсов (бит) на дорожку, в общем случае, одинаково и не зависит от номера дорожки.
Стандартные параметры дисководов определяют:
- диаметр дискеты,
- высоту дисковода,
- плотность записи,
- тип интерфейса,
- скорость вращения диска.
Для стандартных FDD PC расположение дорожек и число сторон неизменны, и определяются типом дисковода, а число секторов на дорожку и размер сектора определяются программно, в процессе форматирования дискеты. Поэтому гибкие диски еще называют дисками с программной разметкой секторов (Soft-Sector).
Размер сектора НМД, поддерживаемый системой BIOS, может быть 128, 256, 512 и 1024 байт, но
MS DOS ориентирована на размер сектора только в 512 байт.
Контроллеры дисководов в РС/ХТ и /АТ-286 используют частоту синхронизации 250 КГц (емкость 360 Кбайт), а РС/АТ-386 и выше - 500 КГц.
Дисководы 5.25" могли иметь следующие емкости:
- одинарная плотность - 180 Кбайт (уже не встречается),
- двойная плотность - 360 Кбайт (использовались только в очень старых РС-286),
- высокая (учетверенная) плотность - 1.2 Мбайт.
Дисководы 5,25", как и дискеты для них, уже сняты с производства и могут встретиться только в очень старых компьютерах; впрочем, дисководы 3,5" уже тоже не перспективны, т.к. вытесняются более емкими, надежными, совершенными устройствами обмена информацией между компьютерами - компакт-дисками, DVD-дисками и дисководами и миниатюрными устройствами флешь-памяти.
Дисководы 3,5" более совершенны, чем 5,25" и могли иметь следующие емкости:
- 720 Кбайт (нормальная) - сейчас уже не встречается,
- 1.44 Мбайт (высокая) - обычная для современных РС,
- 2.44 Мбайт (высшая)- в серию так и не вышел.
Дисководы 5,25" на 360 Кбайт имели скорость вращения дискет 300 об/мин и 40 дорожек на каждую из сторон, дисководы 5,25" на 1.2 Мбайт имеют скорость вращения диска 360 об/мин и содержат по 80 дорожек на каждую сторону. Дисководы 3.5" емкостью 1.44 Мбайт имеют носитель с высокой разрешающей способностью и позволяют размещать 80 дорожек на сторону с 17 секторами на дорожку. При этом линейная плотность записи на таком диске может быть даже выше, чем у некоторых старых жестких дисков с 17 секторами на дорожку.
Так как скорости вращения дискет в дисководах невелики и повреждений головками магнитного покрытия дискет на таких скоростях не происходит, головки в рабочем положении прижимаются к поверхности дискет тарированными пружинками.
Для автоматического опознавания контроллером дисковода допустимой плотности записи на дискетах, в накопителях 3.5" имеется датчик плотности записи, а дискеты на емкость 1,44 Мбайт - специальное отверстие. Датчик дисковода определяет наличие или отсутствие этого отверстия и информирует контроллер о необходимой плотности записи, что определяет тактовую частоту и уровень тока записи в головке.
Совместимость дисководов разной плотности.
При работе на дисководе высокой плотности с дискетой удвоенной плотности возникают проблемы, Связанные с тем, что ширина дорожки на дискете емкостью 1.2 Мбайт вдвое меньше, чем на дискете емкостью 360 Кбайт:
- если дискета отформатирована на дисководе 360 Кбайт и записи сделаны на таком же дисководе, то такая дискета свободно читается дисководом на 1.2 Мбайт;
- если же на эту дискету записывать информацию на дисководе 1.2 Мбайт, то читаться дисководом на
1.2 Мбайт она будет, а дисководом на 360Кбайт нет, так как более широкая головка дисковода 360 Кбайт будет видеть одновременно две смежные дорожки от записи емкостью 1.2 Мбайт, т.е. информацию, записанную на двух соседних дорожках сразу;
- в случаях крайней необходимости записи информации на дисководе 1,2 Мбайт, а чтения дискеты - дисководом 360 Кбайт, нужно использовать чистую дискету, новую неформатированную, или старую, но специально размагниченную, разметить эту дискету на дисководе 1.2 Мбайт, но в формате 360 Кбайт, командой
FORMAT A: /F:360 (для DOS версии 4.0 и выше),
или
FORMAT A: /N/T:40 (для DOS версии 3.3),
т. е. разметить диск в формате 40 дорожек, 9 секторов на дорожку и с уменьшенным током записи; тогда, и только тогда, эта дискета, записанная на дисководе 1.2 Мбайт, будет читаться на дисководе малой плотности.
С дисководами 3.5" таких проблем нет, т.к. все 3.5" дисководы имеют одинаковую ширину дорожек.
Сопряжение НГМД с CPU
Функцию сопряжения FDD с CPU выполняет контроллер, освобождающий CPU от низкоуровневого управления приводом FDD: - включение-выключение шпиндельного двигателя, управление позиционированием головок на требуемый цилиндр, поиск и чтение сектора, перевод информации из параллельного кода в последовательный, и дополнение его синхросигналами при записи, обратная процедура при чтении, формирование интерфейса НГМД и т. д. CPU только управляет контроллером с помощью команд и слов состояния. Такая иерархия упрощает программирование ввода-вывода и повышает общую производительность вычислительной системы.
Связь НГМД с контроллером происходит посредством интерфейса SA-450 (фирмы Shugart Associated).
Среда интерфейса - два кабеля:
- кабель питания и
- кабель данных и управления.
Распределение контактов в разъеме питания следующее:
1 - +12в
2 - общий (0v)
3 - общий (0v)
4 - +5в
Распределение интерфейсных сигналов в разъеме данных и управления НГМД приведено в
таблице 1.6.
Рекомендованный разработчиками вариант магистральной связи интерфейса НГМД показан на рисунке 1.11.
Рисунок 1.11. Магистраль связи для НГМД.
Описание сигналов интерфейса RS232C.
Входные от контроллера:
Reduced Write - уменьшить ток записи в головке для амплитудной коррекции, при высокой плотности записи.
Drive Select 0, 1, 2, 3 - выборка дисковода с закоммутированным адресом (номером), соответствующим затребованному. Разрешает выбранному дисководу принимать все остальные сигналы от контроллера и выдавать данные, осведомительные сигналы и состояние - в контроллер.
Motor On - сигнал на включение шпиндельного двигателя. Через секунду после него возможны операции чтения/записи.
Direction Select - при высоком уровне на этом контакте разъема, сигнал STEP перемещает головки в направлении - от центра дискеты к периферии, при низком - от центра, к периферии.
Step - перемещает головку на один шаг позиционирования (на одну дорожку). Длительность сигнала составляет 1 мксек.
Write Data - импульс, длительностью 150 нсек, вызывает запись бита на диск при активном уровне сигнала Write Gate.
Write Gate - признак записи. Разрешает работу канала записи дисковода. Он должен оставаться активным (нижний уровень) в течение 4-8 мксек после последнего записываемого бита данных. Перед поступлением этого сигнала шпиндельный двигатель должен быть включен, а головки прижаты.
Side Select - выбор верхней (при низком уровне SS = L) или нижней (при высоком уровне SS = H) головки (стороны диска).
Выходные от дисковода:
Index - сигнализирует о начале дорожки.
Track 0 - сообщает контроллеру, что головка находится на начальной, нулевой дорожке.
Write Protect - активный уровень сигнала (WP=L) предупреждает контроллер, что запись на дискету запрещена (заклеено окно защиты записи на дискете 5,25", или поднята задвижка защиты записи на 3,5" дискете). При этом запись невозможна и контроллер, при попытке записи, сообщает программе о защите дискеты от записи.
Read Data - выход считанной с дискеты смеси информационных и синхронизирующих сигналов.
Discette Change - используется только в РС/АТ, для сигнализации о проведенной смене дискеты. В РС/АТ копия таблицы FAT дискеты хранится в буфере ОЗУ и используется для поиска нужных секторов. При смене дискеты старая таблица становится недействительной и должна быть считана с дискеты заново.
Формат дорожки НГМД имееет следующую структуру:
| AMS |CRC ams| ПОЛЕ ДАННЫХ | CRC поля Dn | ECC поля данных |
здесь
AMS - адресный маркер сектора в формате: № цил. - № головки - № сектора на дорожке,
CRC ams - циклическая контрольная сумма адресного маркера,
ПОЛЕ ДАННЫХ - содержание информации в секторе,
CRC поля Dn - циклическая контрольная сумма поля данных,
ECC - код исправления ошибок в поле данных.
Контроллер i8272 (отечественный аналог - КР1810ВГ72А) предназначен для чтения, записи, форматирования гибких дисков с одинарной (FM), удвоенной (MFM) и высокой плотностью в формате "IBM SYSTEM 34".
Функционирование контроллера НГМД.
Работа контроллера НГМД, на примере чтения сектора.
Процедура чтения сектора состоит из шести шагов:
1) включение шпиндельного двигателя накопителя, соответствующего запрошенному адресу;
2) выполнение команды поиска сектора и ожидание прерывания от контроллера, указывающего, что сектор найден и информация считана в буфер сектора без ошибок;
3) инициализация контроллера DМА, для пересылки данных из буфера сектора контроллера в оперативную память;
4) посылка команды ЧТЕНИЕ буфера сектора и ожидание прерывания от контроллера, указывающего, что пересылка данных в память завершена;
5) получение информации о состоянии (статусе) контроллера;
6) выключение шпиндельного двигателя.
Подробнее:
1) Посылка от CPU байта с адресом дисковода. Например, 1Сh - включить дисковод А:. Бит 2 = 1 в этой команде указывает, что головки должны остаться на текущей дорожке, если же бит 2 = 0, то требуется выполнить рекалибровку дисковода, т.е. предварительно установить головки на нулевую дорожку.
2) Команда ПОИСК передает байт, в котором указан номер искомой дорожки. После окончания поиска дорожки контроллер инициирует прерывание типа IRQ6 (для АТ), по которому BIOS устанавливает бит 7 статуса поиска = 1 (сектор найден).
3) Инициализация DMA (8237), состоящая из пяти шагов:
- посылка кода чтения 46h, или кода записи 4Ah в порты 0В и 0С DMA;
- вычисление 20-битового адреса памяти буфера в DRAM, куда будут посылаться данные из буфера сектора;
- засылка вычисленного адреса в регистры адреса 04h и страницы 81h канала 2 DMA;
- декремент регистра-счетчика байтов канала 2 (порт 05h) DMA;
- разрешение работы канала 2 DMA (передача байта 02h в порт 0Аh).
Инициализация контроллера DMA переводит его в ожидание данных от накопителя, а драйвер обмена данными с контроллером дисковода (BIOS) должен начать посылку командного файла в контроллер НГМД для пересылки данных.
4) Посылка в контроллер дисковода командного файла ЧТЕНИЕ или ЗАПИСЬ, соответственно. После этого через DMA передаются данные из НГМД в ОЗУ, или наоборот.
5) В фазе контроля, контроллером вырабатывается прерывание и происходит его обработка драйвером BIOS, которая считывает и анализирует байты состояния контроллера по команде ЧТЕНИЕ СОСТОЯНИЯ. Если используются процедуры DOS или BIOS, то байты состояния помещаются в область данных BIOS, начиная с адреса 0040:0042, а байт статуса дискеты сохраняется в адресе 0040:0041.
6) Выключение шпиндельного двигателя происходит через 5 секунд после завершения обмена. Выдержка в 5 секунд нужна, чтобы не проводить заново процедуру включения двигателя, если за это время потребуется новое обращение к НГМД.
Контрольные вопросы.
1. Какие частоты синхронизации используются в FDD?
2. Какую емкость сектора FDD поддерживает MS DOS?
3. Можно ли использовать для чтения/записи на дисководе высокой плотности дискету, отформатированную и записанную на дисководе с удвоенной плотностью записи?
4. Каков порядок поиска нужного сектора на дискете?
5. Какие аппаратно-программные и аппаратные средства РС используются для пересылки считанных с дискеты данных в ОЗУ?
6. Что такое рекалибровка дисковода?
7. Как осуществляется контроль считанной с дискеты информации?
8. Находятся ли в контакте с поверхностью дискеты головки НГМД при чтении/записи?