Для обеспечения «горячего» подключения разъем для цепи 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) — регистр команд |