Порты ввода/вывода, команды НЖМД IDE AT. — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Порты ввода/вывода, команды НЖМД IDE AT.

2018-01-05 396
Порты ввода/вывода, команды НЖМД IDE AT. 0.00 из 5.00 0 оценок
Заказать работу

Обмен между HOST и НЖМД IDE AT осуществляется через программно-доступные регистры ввода/вывода, для адресации к которым выделена область с адресами 1FOH - 1F7H, 3F6H, 3F7H. Программно-доступные регистры НЖМД IDE AT представлены в табл.2.

Таблица 2.

Адрес (HEX) Чтение Запись
1FO Регистр данных Регистр данных
1F1 Регистр ошибок Регистр предкомпенсации
1F2 Регистр счетчика секторов Регистр счетчика секторов
1F3 Регистр номера сектора Регистр номера сектора
1F4 Регистр номера цилиндра мл. Регистр номера цилиндра мл.
1F5 Регистр номера цилиндра ст. Регистр номера цилиндра ст.
1F6 Регистр накопителя/головки Регистр накопителя/головки
1F7 Регистр состояния Регистр команд
3F6 Регистр альтернативного сост. Состояние накопителя
3F7 Регистр адреса накопителя Не используется

Регистр данных (1FO чтение/запись) используется при выполнении операций чтения или записи сектора в программном режиме ввода/вывода. Этот регистр недоступен, пока не начнется операция чтения или записи. Передача данных осуществляется 16-разрядными словами. При выполнении длинных операций чтения или записи (когда вместе с данными передаются байты КЦК) 4 байта ЕСС передаются байтами, перед передачей байтов ЕСС повторно устанавливается бит 3 "Datarequest" регистра состояния.

Регистр ошибок (1F1 чтение) определяет состояние НЖМД после выполнения операции. Состояние этого регистра действительно:

- после выполнения команды, если установлен бит "Error" в регистре состояния;
- после выполнения команды "Диагностика" или после выполнения внутренней диагностики НЖМД по системному сбросу. В диагностическом режиме коды регистра ошибок определяют следующее:

01Н -нет ошибки;
02Н - ошибка микроконтроллера;
03Н - ошибка буферного ОЗУ;
04Н - ошибка аппаратуры ЕСС;
05Н - ошибка микропроцессора
8ХН - НЖМД неисправен.

Значения битов регистра ошибок после выполнения команды:

               
ввк UNC   IDNF   ABRT TONF AMNF

 

Бит 0 - DataAdresMarkNotFound - устанавливаются во время выполнения команды "Чтение сектора", если адресный маркер данных соответствующего сектора не найден после правильного нахождения идентификатора этого сектора.

 

Бит 1 - Track 0 NotFound - устанавливается только в команде "Рекалибровка", если после 2048-и шагов не обнаружена дорожка 0.

 

Бит 2 - AbortedCommand - устанавливается при получении из НЖМД состояния "Writefault", "Notseekcomplete", "Drivenotready" или когда была загружена недействительная команда. Причина ошибки может быть определена при помощи регистров состояния и ошибки.

 

Бит 3 - не используется (равен 0).

 

Бит 4 - ID NotFound - требуемый цилиндр, головка, сектор не могут быть обнаружены или же произошла ошибка ЕСС в поле идентификатора.

 

Бит 5 - не используется (равен 0).

 

Бит 6 - UncorrectData - ошибка ЕСС в поле данных. Устанавливается в случае некорректируемой ошибки.

 

Бит 7 - BadMarkBlock - в идентификаторе обнаружена метка дефектного сектора.
Регистр предкомпенсации (1F1 запись) использовался для указания номера цилиндра, с которого необходимо выполнить предкомпенсацию. В современных моделях НЖМД IDE AT предкомленсацией управляет сам накопитель, поэтому данный регистр может использоваться для других целей.

Регистр счетчика секторов (1F2 чтение/запись) содержит количество секторов для операции записи или считывания. Значение этого регистра уменьшается на 1 при обработке каждого сектора. Передача одного сектора происходит при значении 1, при значении 0 - 256 секторов. Если при выполнении мультисекторной передачи произошла ошибка записи или чтения очередного сектора, то передача прекращается и в регистре счетчика секторов находится количество секторов, которое осталось после обнаружения ошибки. При успешном завершении команды содержимое этого регистра равно 0.

Регистр номера сектора (1F3 чтение/запись) содержит стартовый номер сектора при операциях чтения/записи. После обработки каждого сектора содержимое этого регистра инкрементируется. После выполнения команды в данном регистре находится номер последнего обработанного сектора или номер сектора, в котором произошла ошибка.

Регистр младшего (1F4 чтение/запись) и старшего (1F5 чтение/запись) байтов номера цилиндра определяют номер цилиндра для которого будет выполняться данная команда.

Регистр выбора НЖМД/номера головки (1F6 чтение/запись) имеет следующий вид:

               
      DRV HS3 HS2 HS1 HSO

Биты 0 - 3 - двоичный код выбранной головки, Бит 4 - выбор НЖМД, DRV = 0 выбран НЖМД О, DRV = 1 выбран НЖМД 1.

Регистр состояния (1F7 чтение) отображает текущее состояние НЖМД IDE AT. Значение этого регистра обновляется после выполнения каждой команды. Если установлен бит BSY этого регистра, то любые обращения к НЖМД запрещены и значения остальных битов регистра состояния недействительны. Чтение этого регистра сбрасывает аппаратное прерывание IRQ 14. Значения битов регистра состояния:

               
BSY DRDY WFT DSC DRQ CORR INX ERR

Бит 0 - Error - индицирует, что предыдущая команда закончилась с ошибкой и что один или несколько битов установлены в регистре ошибок. Используется для быстрой проверки успешного завершения команды. Сбрасывается, когда в регистр команд засылается новая команда.
Бит 1 - Index - этот бит устанавливается в 1 при каждом обороте магнитного диска. В современных моделях НЖМД не используется.
Бит 2 - CorrectedData - индицирует, что при считывании с диска данных произошла ошибка, которая была успешно скорректирована аппаратурой КЦК. Корректируемые ошибки не прекращают мультисекторную передачу.
Бит 3 - DataRequest - этот бит показывает, что имеется запрос на обмен данными с буфером сектора при выполнении команд чтения/записи. По этому запросу необходимо прочитать буфер или переслать данные в буфер, в зависимости от выполняемой команды.
Бит 4 - DriveSeekComplete - индицирует, что головки чтения/записи завершили операцию поиска.
Бит 5 - WriteFault - индицирует неисправность в накопителе или попытку выполнить команду запись с некорректными параметрами.
Бит 6 - DriveRedy - установленный в 1 означает готовность НЖМД к выполнению команды.
Бит 7 - Busy - определяет состояние НЖМД IDE AT. Устанавливается в Г во время выполнения команды или диагностики НЖМД после системного сброса. Когда этот бит установлен, никакие другие биты регистра состояния не являются действительными. Бит Busy должен быть проверен перед чтением любого регистра состояния.

Регистр команд (1F7 запись) используется для загрузки выполняемой команды. Перед записью команды в регистр команд необходимо подготовить файл задания - TaskFile (записать необходимые данные в регистры 1F1 - 1F6), когда НЖМД находится в состоянии "не занято" (Busy=0). Выполнение команды начинается с момента записи в регистр команд.

Регистр альтернативного состояния (3F6 чтение) содержит такую же информацию, как и регистр состояния (1F7). Различие заключается в том, что чтение этого регистра не сбрасывает установленное прерывание IRQ 14 НЖМД.

 

               
BSY DRDY WFT DSC DRQ CORR INX ERR

Регистр состояния устройства (3F6 запись) содержит три управляющих бита.

               
        HS3EN SRST /IЕN  

Бит 1 - InterruptEnable - бит разрешения прерывания для НЖМД к HOST. Когда этот бит активен и накопитель выбран, HOST прерывается. Сигнал HOST IRQ 14 должен быть разрешен через 3 - стабильный буфер. Когда этот бит не активен или НЖМД не выбран, сигнал HOST IRQ14 будет иметь высокий уровень.
Бит 2 - SoftReset - программный бит сброса. Накопитель выполняет сброс, когда этот бит в состоянии высокого уровня.
Бит 3 - Heads 3 Enable - используется для разрешения выбора головок с 8 по 15.
Регистр адреса накопителя (3F7 чтение) содержит номер головки и НЖМД, выбранные в предыдущей операции.

               
  WG /HS3 /HS2 /HS1 /HSO /DS1 /DSO

Биты О, 1 - /DSO, /DS1 - биты выбора соответствующего накопителя 0 или 1.
Биты 2...5 - /HSO.../HS3 - содержат двоичный код выбранной головки.
Бит 6 - WriteGate - бит выполнения записи, активен во время операции записи.


Поделиться с друзьями:

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.