Рис. 9.5. Дополнительные
контакты на разъемах интерфейса АТА:
а — SFF8057, б — SFF8058, в — SFF8212 (50-контактный
разъем)
Таблица 9.4.
Использование дополнительных контактов
Выборка |
SFF8057 |
SFF8058 |
SFF8212 |
Toshiba
(1996) |
Используемые
контакты |
Е-Н |
A-F |
A-D |
A-D |
Кабельная
выборка |
E-F |
A-B |
B-D |
B-D |
Master |
G-H |
E-F |
- |
- |
Master
при наличии Slave |
G-H,E-F |
E-F |
- |
- |
Slave |
- |
C-D |
A-B |
C-D |
Для малогабаритных
внешних устройств-существует довольно
распространенный разъем HP 36, но в спецификацию
ATA/ATAPI он не входит. Для устройств хранения
на флэш-памяти используется коннектор,
соответствующий спецификации CompactFlash
Association.
В документации
на устройства могут быть указаны
несколько отличающиеся обозначения
сигналов. Здесь приведены обозначения
из стандарта ATA/ATAPI-4.
♦ RESET*
(Device Reset) — сброс устройства (инвертированный
сигнал сброса системной шины). Сигнал
длительностью не менее 25 мкс вырабатывается
после установления питающих напряжений.
Сигнал вызывает сброс интерфейса в исходное
состояние и устанавливает параметры
по умолчанию.
- DA[2:0] (Device
Address) — три младших бита системной шины
адреса, используемые для выбора регистров
устройств.
- DD[15:0] (Device
Data) — двунаправленная 16-битная шина данных
между адаптером и устройствами. При 8-битных
обменах используются младшие биты D[7:0].
У устройства не должно быть «подтягивающего»
резистора на линии DD7 — на хост-контроллере
эта линия через резистор 10 кОм соединена
с шиной GND. Это позволяет хосту определить
факт отсутствия устройства на шине сразу
после аппаратного сброса: при чтении
регистра состояния отсутствующего устройства
бит BSY окажется сброшенным.
- DIOR* (Device I/O
Read) — строб чтения портов ввода-вывода.
Данные фиксируются по положительному
перепаду сигнала.
- DIOW# (Device I/O
Write) — строб записи портов ввода-вывода.
Данные фиксируются по положительному
перепаду сигнала.
- IORDY (I/O channel
Ready) — готовность устройства завершить
цикл обмена. Низким уровнем сигнала во
время цикла обмена устройство может ввести
такты ожидания шины. Сигнал требуется
при обмене в РЮ Mode 3 и выше. На хост-контроллере
эта линия через резистор 1 кОм должна
подтягиваться к шине питания.
- IOCS16* — разрешение
16-битных операций. Обращение ко всем регистрам,
кроме регистра данных, всегда 8-битное.
Для РЮ Mode 0,1,2 при активном сигнале обращения
16-битные, при неактивном — 8-битные. Для
РЮ Mode 3,4 и DMA все обмены 16-битные, кроме
дополнительных байтов (выходящих за границу
512-байтного сектора) «длинного» считывания
и записи. Начиная с ATA/ATAPI-3 не используется.
- DMARQ (DMA Request)
— запрос обмена по каналу DMA (необязательный).
При разрешении обмена сигнал (высокий
уровень) вводится устройством по готовности
к обмену. Введя сигнал DMARQ, устройство
должно дождаться подтверждения от хост-адаптера
сигналом DMACK*, после чего может снять запрос
DMARQ. Для очередной передачи запрос должен
быть введен снова. В режиме Multiword DMA запрос
может удерживаться на время передачи
всех данных. Выход должен быть тристабильным,
во время работы с DMA он может быть в активном
состоянии (0 или 1) только у выбранного
устройства. В АТА-1 для
этого сигнала мог использоваться как
тристабильный, так и стандартный ТТЛ-
выход. Работа на одной шине устройств
с разнотипными выходами DMARQ может привести
к конфликтам. На хост-контроллере линия
должна соединяться с шиной GND через резистор
5,6 кОм.
- DMACK# (DMA Acknowledge)
— подтверждение DMA. Сигнал вырабатывается
хост-адаптером как подтверждение цикла
передачи. Передача слова данных управляется
сигналами DIOR* или DIOW*. Во время обмена
по каналу DMA сигналы IOCS16#, CSO# и CS1# не используются,
обмен всегда производится 16-битными словами.
- INTRQ (Interrupt
Request) — запрос прерывания. Выход должен
быть тристабильным, активный сигнал (логическую
единицу) вырабатывает только выбранное
устройство, когда у него имеется необслуженный
запрос прерывания и его вырабатывание
не запрещено битом n IE N в регистре Device
Control.Запрос сбрасывается по сигналу RESET*,
установке бита SRST в регистре Devi се Control,
записи в регистр команд или чтении регистра
состояния. При обменах PIO запрос устанавливается
в начале передачи каждого блока (сектора
или группы секторов при многосекторных
операциях). Исключения: по командам Format
Track, Write Sector(S),Write Buffer и Write Long в начале передачи
первого блока данных запрос прерывания
не вырабатывается. При обменах DMA запрос
прерывания вырабатывается только по
завершении операции. На хост-контроллере
эта линия через резистор 10 кОм должна
подтягиваться к шине GND.
- CSO# (Chip Select
0) — сигнал выбора блока командных регистров
(Command Block Registers). Для первого канала он вырабатывается
при наличии на системной шине адреса
порта ввода-вывода в диапазоне !FOh-lF7h (сигнал
так же называют CS1FX*).
- CS1# (Chip Select
1) — выбор блока управляющих регистров
(Control Block
Registers). Для первого канала он вырабатывается
при наличии на системной шине адреса
порта ввода-вывода в диапазоне 3F6h-3F7h (часто
этот сигнал называется CS3FX*).
- PDIAG* (Passed
Diagnostics) — сигнал о прохождении диагностики.
Ведущее устройство наблюдает за этим
сигналом, который ведомое устройство
должно выработать в ответ на сброс или
команду диагностики. Если ведомое устройство
обнаружено (по сигналу DASP#), ведущее устройство
ожидает сигнал в течение 31с после сброса
и 6 с после команды диагностики. Если за
это время сигнал не появился, ведущее
устройство отмечает этот факт установкой
бита 7 регистра ошибок. Если ведомое устройство
не обнаружено, ведущее обнуляет регистр
состояния ведомого устройства и сообщает
свое состояние сразу после завершения
собственной самодиагностики. Сигнал
служит только для связи двух устройств
и хост-адаптером не используется (в АТА-4
контакт задействован для сигнала CBLID*).
- CBLID* (Cable assembly
type identifier) — идентификация типа кабеля.
В 80-проводной сборке контакт 34 на разъеме
хост-адаптера соединяется с шиной GND,
а контакты 34 разъемов устройств соединяются
между собой, но связи с разъемом хост-адаптера
не имеют. На устройстве эта линия через
резистор 10 кОм должна подтягиваться к
шине питания. После прохождения сброса
(когда сигнал PDIAG* снимается) хост может
определить наличие 80-проводного кабеля
по низкому уровню сигнала.
♦ DASP# (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 (сигнал
снят) или АТА (сигнал установлен, то есть
низкий уровень). Этот сигнал хост должен
установить до подачи питания на коннектор.
В течение 19 мс после подачи питания устройство
игнорирует все интерфейсные сигналы,
кроме этого. Если этот сигнал активен,
то устройство должно сконфигурироваться
на режим АТА. Если сигнал неактивен, оно
должно сконфигурироваться на режим PC
Card или не отвечать на другие сигналы хоста.
- CD1 # и CD2# (Card
Detect) заземляются в устройстве — по этим
сигналам хост определяет присутствие
устройства.
- CS1# (Device chip
select 1) — выбор устройства, подается хостом
на оба контакта (Ни 42), но устройство воспринимает
только один из них. DMARQ, DMACK* и IORDY — не обязательны
для использования.
- M/S# (Master/Slave)
— инверсия сигнала CSEL. Хост выдает сигналы
M/S# и CSEL до подачи питания, устройство
воспринимает лишь один из них.
Для обеспечения
«горячего» подключения разъем для
цепи GND обеспечивает более раннее соединение
при подключении и более позднее при отключении.
В устройстве сигналы CSO#, CS1#, RESET* и SELATA*
подтягиваются к пассивному состоянию.
Таблица 9.5.68-контактный
интерфейс АТА для 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 |
CSO# |
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 |
DAO |
63 |
PDIAG* |
30 |
DDO |
64 |
DD8 |
31 |
DD1 |
65 |
DD9 |
32 |
DD2 |
66 |
DD10 |
33 |
|
67 |
CD2# |
34 |
GND |
68 |
GND |
|
Для компьютеров
класса ЛТ существует 8-битная версия
интерфейса, называемая XT-IDE, реже — XT-Bus.
Этот интерфейс [2,5], как и AT А, реализован
на 40-провод-ном кабеле, и многие его сигналы
совпадают с 16-битной шиной AT А. Интерфейс
XT-IDE можно рассматривать как подмножество
AT А, хотя прямой совместимости нет. Ряд
устройств АТА имеют джампер выбора режима
XT/AT (в накопителях Seagate на это указывает
окончание «АХ» в обозначении модели).
Регистры
устройств
Каждое
устройство АТА имеет стандартный
набор регистров, адресуемых сигналами
от хост-адаптера (CSO#, CS1#, DA2, DA1, ОАО, DIOR*
и DIOW#). Набор регистров (табл. 9.6) состоит
из двух блоков, выбираемых сигналами
CSO# и CS1#, из которых активным (низкий уровень,
«О») может быть только один. В таблице
приведены адреса регистров в пространстве
ввода-вывода IBM PC-совместимого ПК для
первого и второго каналов АТА. При обращении
к регистрам сигнал DMACK* должен быть неактивным.
Блок командных регистров
служит для посылки команд устройству
и чтения информации о его состоянии.
Блок управляющих регистров
используется для управления устройством
и получения более подробной информации
о его состоянии. На действительность
содержимого регистров командного блока
и альтернативного регистра состояния
указывает нулевое значение бита BSY регистра
состояния. Запись в регистры должна производиться
лишь при BSY=0 и DRQ=0, кроме особо оговоренных
случаев. Если устройство поддерживает
управление энергопотреблением, в «спящем»
режиме содержимое этих регистров недействительно
и запись игнорируется, кроме особо оговоренных
случаев.
Таблица 9.6. Регистры
контроллеров устройств АТА
Адрес |
Сигналы
адресации канала
№ |
Назначение (R
— чтение, W — запись) |
|
|
(0
— низкий уровень, 1
— высокий) |
1 |
2 |
CSO# |
CS1# |
DA2 |
DA2 DA1О |
|
|
|
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) —
регистр адреса |
|
|
|
|
|
|
(не используется)1 |
|
продолжение^
Таблица 9.6.
(продолжение)
Адрес
Сигналы адресации
канала №
Назначение (R — чтение,
W — запись) (0 — низкий
уровень, 1 — высокий)
1
2 CSO# CS1# DA2
DA1 ОАО
1FX 17Х Command
Block Registers — блок
командных регистров
1F0 |
170 |
0 |
1 |
0 |
0 |
0 |
1F1 |
171 |
0 |
1 |
0 |
0 |
1 |
1F1 |
171 |
0 |
1 |
0 |
0 |
1 |
1F2 |
172 |
0 |
1 |
0 |
1 |
0 |
1F3 |
173 |
0 |
1 |
0 |
1 |
1 |
1F4 |
174 |
0 |
1 |
1 |
0 |
0 |
1F5 |
175 |
0 |
1 |
1 |
0 |
1 |
1F6 |
176 |
0 |
1 |
1 |
1 |
0 |
1F7 |
177 |
0 |
1 |
1 |
1 |
1 |
1F7 |
177 |
0 |
1 |
1 |
1 |
1 |