(Device Active, Slave Present) — сигнал двойного назначения: индикатор активности устройства и присутствия ведомого устройства. Устройства имеют выход типа «открытый коллектор» с нагрузочным резистором 10 кОм к шине +5 В. После сброса по сигналу
RESET#
или при инициализации по включении питания оба устройства в течение 1 мс должны деактивировать этот сигнал, после чего не позже чем через 400 мс его вводит ведомое устройство для сообщения о своем присутствии. Ведущее устройство не активирует этот сигнал в течение 450 мс. Сигнал деактивируется ведомым устройством после получения им команды или через 31 с автоматически (смотря что произойдет раньше). После этого сигнал может быть введен любым устройством как индикатор активности. Адаптер использует этот сигнал для включения светодиодного индикатора доступа к диску.
♦
SPSYNC/CSEL
(Spindle Synchronization/Cable Select) — синхронизация шпинделя или выборка кабелем. Сигнал двойного назначения, которое должно быть единым для обоих устройств. Сигнал
SPSYNC
позволяет синхронизировать шпиндели устройств (актуально для RAID-массивов); используется по усмотрению производителя накопителя, начиная с ATA/ATAPI-3 этот сигнал из спецификации изъят. Сигнал
CSEL
позволяет устройствам определять свой адрес по положению на специальном кабеле с разрывом провода 28 между разъемами двух устройств (малораспространенная «кабельная выборка»). Эта линия на хост-адаптере заземлена, и ведущее устройство получает заземленную линию, а ведомое — неподключенную. На устройстве линия подтягивается
к высокому уровню резистором 10 кОм. Состояние сигнала (если он управляется хост-адаптером) должно удерживаться по крайней мере 31 с после сигнала
RESET#
.
При использовании режима Ultra DMA четыре линии получают новое назначение сигналов.
♦
STOP
(Stop Ultra DMA burst) — останов передачи пакета Ultra DMA.
♦
DDMARDY#
(Device Ultra DMA ready) — готовность устройства при приеме пакета Ultra DMA (управление потоком).
♦
DSTROBE
(Host Ultra DMA data strobe) — строб данных устройства при передаче пакета хосту. Данные передаются по обоим перепадам
DSTROBE
.
♦
HDMARDY#
(Host Ultra DMA ready) — готовность хоста при приеме им пакета Ultra DMA (управление потоком).
♦
HSTROBE
(Host Ultra DMA data strobe) — строб данных хоста при передаче пакета устройству. Данные передаются по обоим перепадам
HSTROBE
.
Для блокнотных ПК в стандарте имеется вариант интерфейса IDE на 68-контактном разъеме PCMCIA (PC Card), приведенный в табл. 9.5. Здесь имеется ряд специфичных сигналов.
♦
SELATA#
(Select 68-pin ATA) — сигнал, которым хост идентифицирует режим использования разъема, PC Card (сигнал снят) или ATA (сигнал установлен, то есть низкий уровень). Этот сигнал хост должен установить до подачи питания на коннектор. В течение 19 мс после подачи питания устройство игнорирует все интерфейсные сигналы, кроме этого. Если этот сигнал активен, то устройство должно сконфигурироваться на режим ATA. Если сигнал неактивен, оно должно сконфигурироваться на режим PC Card или не отвечать на другие сигналы хоста.
♦
CD1#
и
CD2#
(Card Detect) заземляются в устройстве — по этим сигналам хост определяет присутствие устройства.
♦
CS1#
(Device chip select 1) — выбор устройства, подается хостом на оба контакта (11 и 42), но устройство воспринимает только один из них.
♦
DMARQ
,
DMACK#
и
IORDY
— не обязательны для использования.
♦
M/S#
(Master/Slave) — инверсия сигнала
CSEL
. Хост выдает сигналы
M/S#
и
CSEL
до подачи питания, устройство воспринимает лишь один из них.
Таблица 9.5. 68-контактный интерфейс ATA для PC Card (PCMCIA)
Контакт
Сигнал
Контакт
Сигнал
1
GND
35
GND
2
DD3
36
CD1#
3
DD4
37
DD11
4
DD5
38
DD12
5
DD6
39
DD13
6
DD7
40
DD14
7
CS0#
41
DD15
8
42
CS1#
9
SELATA#
43
10
44
DIOR#
11
CS1#
45
DIOW#
12
46
13
47
14
48
15
49
16
INTRQ
50
17
+5 В
51
+5 В
18
52
19
53
20
54
21
55
M/S#
22
56
CSEL
23
57
24
58
RESET#
25
59
IORDY#
26
60
DMARQ
27
DA2
61
DMACK#
28
DA1
62
DASP#
29
DA0
63
PDIAG#
30
DD0
64
DD8
31
DD1
65
DD9
32
DD2
66
DD10
33
67
CD2#
34
GND
68
GND
Для обеспечения «горячего» подключения разъем для цепи
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, кроме особо оговоренных случаев. Если устройство поддерживает управление энергопотреблением, в «спящем» режиме содержимое этих регистров недействительно и запись игнорируется, кроме особо оговоренных случаев.
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) служит для программного сброса обоих устройств одновременно и управления разрешением прерывания выбранного устройства. Запись в этот регистр возможна в любой момент. Программный сброс через регистр