Чтение онлайн

ЖАНРЫ

Аппаратные интерфейсы ПК. Энциклопедия

Гук Михаил Юрьевич

Шрифт:

Для обеспечения «горячего» подключения разъем для цепи

GND
обеспечивает более раннее соединение при подключении и более позднее при отключении. В устройстве сигналы
CS0#
,
CS1#
,
RESET#
и
SELATA#
подтягиваются к пассивному состоянию.

Для компьютеров класса XT существует 8-битная версия интерфейса, называемая XT-IDE, реже — XT-Bus. Этот интерфейс [2, 5], как и ATА, реализован на 40-проводном кабеле, и многие его сигналы совпадают с 16-битной шиной AT А. Интерфейс XT-IDE можно рассматривать как подмножество AT А, хотя прямой совместимости нет. Ряд устройств ATA имеют джампер выбора режима XT/AT (в накопителях Seagate на это указывает окончание «АХ» в обозначении модели).

Регистры устройств

Каждое устройство ATA имеет стандартный набор регистров, адресуемых сигналами от хост-адаптера (

CS0#
,
CS1#
,
DA2
,
DA1
,
DA0
,
DIOR#
и
DIOW#
). Набор регистров (табл. 9.6) состоит из двух блоков, выбираемых сигналами
CS0#
и
CS1#
,
из которых активным (низкий уровень, «0») может быть только один. В таблице приведены адреса регистров в пространстве ввода-вывода IBM PC-совместимого ПК для первого и второго каналов ATA. При обращении к регистрам сигнал
DMACK#
должен быть неактивным. Блок командных регистров служит для посылки команд устройству и чтения информации о его состоянии. Блок управляющих регистров используется для управления устройством и получения более подробной информации о его состоянии. На действительность содержимого регистров командного блока и альтернативного регистра состояния указывает нулевое значение бита
BSY
регистра состояния. Запись в регистры должна производиться лишь при
BSY
=0 и
DRQ
=0, кроме особо оговоренных случаев. Если устройство поддерживает управление энергопотреблением, в «спящем» режиме содержимое этих регистров недействительно и запись игнорируется, кроме особо оговоренных случаев.

Таблица 9.6. Регистры контроллеров устройств ATA

Адрес Сигналы адресации канала № (0 — низкий уровень, 1 — высокий) Назначение (R — чтение, W — запись)
1 2 CS0# CS1# DA2 DA1 DA0 
    1 1 x x x Нет обращения (шина данных в третьем состоянии)
    0 0 x x x Недопустимый адрес (шина данных в третьем состоянии)
3FX 37Х Control Block Registers — блок управляющих регистров
    1 0 0 X x Не используется (шина данных в третьем состоянии)
    1 0 1 0 x Не используется (шина данных в третьем состоянии)
3F6 376 1 0 1 1 0 R: Alternate Status (AS) — альтернативный регистр состояния
3F6 376 1 0 1 1 0 W: Device Control (DC) — регистр управления устройством
3F7 377 1 0 1 1 1 R: Drive Address (DA) — регистр адреса (не используется)¹
1FX 17Х Command Block Registers — блок командных регистров
1F0 170 0 1 0 0 0 R/W: Data (DR) — регистр данных
1F1 171 0 1 0 0 1 R: Error (ER) — регистр ошибок
1F1 171 0 1 0 0 1 W: Features (FR) — регистр свойств
1F2 172 0 1 0 1 0 R/W: Sector Count (SC) — регистр счетчика секторов
1F3 173 0 1 0 1 1 R/W: Sector Number (SN) — регистр номера сектора/LBA[7:0]²
1F4 174 0 1 1 0 0 R/W: Cylinder Low (CL) — регистр младшего байта номера цилиндра LBA[15:8]²
1F5 175 0 1 1 0 1 R/W: Cylinder High (CH) — регистр старшего байта номера цилиндра/LBA[23:16]²
1F6 176 0 1 1 1 0 R/W: Device/Head (D/H) — регистр номера устройства и головки/LBA[27:24]²
1F7 177 0 1 1 1 1 R: Status (SR) —
регистр состояния
1F7 177 0 1 1 1 1 W: Command (CR) — регистр команд

¹ Рекомендуется, чтобы на сигнал чтения по этому адресу устройство не отвечало.

² Регистры сектора, цилиндра и головки в режиме LBA содержат указанные биты логического адреса.

Альтернативный регистр состояния

AS
(для первого канала адрес 3F6h, для второго — 376h) имеет те же биты, что и основной (см. ниже), но его чтение не приводит ни к каким изменениям состояния устройства.

Регистр управления устройством

DC
(3F6h, 376h) служит для программного сброса обоих устройств одновременно и управления разрешением прерывания выбранного устройства. Запись в этот регистр возможна в любой момент. Программный сброс через регистр
DC
должен отрабатываться ив состоянии Sleep.

Назначение битов регистра

DC
:

♦ биты [7:3] зарезервированы;

♦ бит 2 —

SRST
(Software Reset) — программный сброс, действует все время, пока бит не будет снят (оба устройства на шине воспринимают программный сброс одновременно);

♦ бит 1 —

nIEN
(Interrupt Enable) — инверсный бит разрешения прерывания (при нулевом значении бита выбранное устройство может вырабатывать сигнал
INTRQ
через тристабильный выход);

♦ бит 0–0.

Регистр адреса устройства

DA
(3F7h, 377h) использовался только в первой версии ATA для совместимости со старыми контроллерами, чтением этого регистра можно было определить адресованный привод и головку. Регистр выпадает из блока (он совпадает с диагностическим регистром состояния контроллера НГМД) и рекомендуется, чтобы устройство ATA не отвечало на чтение этого регистра. Если устройство отвечает на чтение, то оно не должно управлять битом DD7 во избежание конфликта с контроллером НГМД, у которого по этой линии передается бит смены носителя. Из-за несоблюдения этого требования могут возникать проблемы, когда контроллер (адаптер) ATA и контроллер НГМД находятся на разных платах.

Назначение битов регистра

DA
:

♦ бит 7 — (HiZ) — высокоимпедансный, при считывании не выдается на шину;

♦ бит 6 —

nWTG
— инверсный признак записи (во время физического выполнения записи на носитель бит нулевой);

♦ биты [5:2] —

nHS[3:0]
— номер головки (инверсные биты);

♦ биты [1:0] —

nDS[1:0]
— выбор устройства (инверсные биты): 10 — выбрано устройство 0, 01 — выбрано устройство 1.

Регистр данных

DR
(1F0h, 170h) может использоваться как 8-битный или 16-битный в зависимости от типа данных, передаваемых в текущей команде. Обращение к этому регистру происходит в режиме обмена PIO (когда сигнал
DMACK#
неактивен), при выполнении передач протокола PIO (PIO Out) хост производит запись в этот регистр, при PI (PIO In) — чтение. В режиме DMA обмен данными происходит через порт данных, при этом активны сигналы
DMARQ
и
DMACK#
, а сигналы
CS0#
и
CS1#
неактивны.

Регистр ошибок

ER
(1F1h, 171h) хранит состояние выполнения последней операции или диагностический код. После завершения операции на наличие ошибки указывает бит
ERR
регистра состояния.

Назначение битов регистра

ER
:

♦ бит 7 — зарезервирован;

♦ бит 6 —

UNC
(Uncorrectable Data Error) — неисправимая ошибка данных;

♦ бит 5 —

МС
(Media Changed) — смена носителя (после смены носителя первая команда обращения отвергается и устанавливается данный бит, после сброса бита следующие команды будут выполняться нормальным образом);

♦ бит 4 —

IDNF
(ID Not Found) — указывает на ненайденный идентификатор сектора;

♦ бит 3 —

MCR
(Media Change Requested) — индикатор запроса смены носителя (после обнаружения запроса смены носителя команды
Door Lock
будут возвращать бит ошибки
ERR
и бит
MCR
, бит
MCR
сбрасывается командами
Door Unlock
,
Media Eject
или сигналом аппаратного сброса);

♦ бит 2 —

ABRT
(Aborted Command) — устанавливается, если команда отвергнута как недействительная или в случае возникновения иной ошибки;

♦ бит 1 —

TK0NF
(Track 0 Not Found) — указывает на то, что по команде Recalibrate не удалось найти нулевой трек;

♦ бит 0 —

AMNF
(Address Mark Not Found) — не найден адресный маркер данных в заголовке сектора.

После выполнения любого сброса или команды

Execute Device Diagnostic
регистр ошибок содержит диагностический код. Трактовка битов, за исключением бита 2 (
ABRT
), может меняться в зависимости от исполненной команды.

Регистр свойств

FR
(1F1h, 171h) используется в зависимости от команды. В команде
Set Features
через него задается код подкоманды. Некоторые старые устройства могут игнорировать запись в этот регистр. До принятия спецификации ATA-2 в этот регистр помещали значение рекомендуемого номера цилиндра для предкомпенсации записи.

Регистр счетчика секторов

SC
(1F2h, 172h) содержит число секторов, участвующих в обмене. Хост инициализирует этот регистр до подачи команды (нулевое значение соответствует 256 секторам). По успешному завершению операции доступа к данным регистр должен обнулиться. Если команда завершилась с ошибкой, в регистре будет число секторов, которые должны быть переданы для успешного завершения предыдущего запроса. Команды
Initialize Device Parameters
или
Write Same
могут переопределить значение этого регистра. В некоторых командах регистр используется для передачи иных параметров.

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