для устройства задает его роль: низкий уровень — устройство 0, высокий — устройство 1;
♦ контакт
С
определяет режим устройства по включении питания: низкий уровень — Standby, высокий — Idle;
♦ контакт
D
соединяется с контактом 28 (CSEL) и через резистор 10 кОм — с шиной +5 В.
Это назначение, позволяющее конфигурировать и адресацию, и режим потребления, применяется не на всех устройствах. На винчестерах фирмы Toshiba контакты
А
и
В
могут использоваться как выход и вход последовательного интерфейса (
В
подтянут к шине +5 В через резистор 47 кОм),
С
— GND,
D
—
роль устройства (низкий уровень для устройства 1).
Рис. 9.5. Дополнительные контакты на разъемах интерфейса ATA: а — 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) — готовность устройства завершить цикл обмена. Низким уровнем сигнала во время цикла обмена устройство может ввести такты ожидания шины. Сигнал требуется при обмене в PIO Mode 3 и выше. На хост-контроллере эта линия через резистор 1 кОм должна подтягиваться к шине питания.
♦
IOCS16#
— разрешение 16-битных операций. Обращение ко всем регистрам, кроме регистра данных, всегда 8-битное. Для PIO Mode 0, 1, 2 при активном сигнале обращения 16-битные, при неактивном — 8-битные. Для PIO Mode 3, 4 и DMA все обмены 16-битные, кроме дополнительных байтов (выходящих за границу 512-байтного сектора) «длинного» считывания и записи. Начиная с ATA/ATAPI-3 не используется.
♦
DMARQ
(DMA Request) —
запрос обмена по каналу DMA (необязательный). При разрешении обмена сигнал (высокий уровень) вводится устройством по готовности к обмену. Введя сигнал
DMARQ
, устройство должно дождаться подтверждения от хост-адаптера сигналом
DMACK#
, после чего может снять запрос
DMARQ
. Для очередной передачи запрос должен быть введен снова. В режиме Multiword DMA запрос может удерживаться на время передачи всех данных. Выход должен быть тристабильным, во время работы с DMA он может быть в активном состоянии (0 или 1) только у выбранного устройства. В ATA-1 для этого сигнала мог использоваться как тристабильный, так и стандартный ТТЛ-выход. Работа на одной шине устройств с разнотипными выходами
DMARQ
может привести к конфликтам. На хост-контроллере линия должна соединяться с шиной GND через резистор 5,6 кОм.
♦
DMACK#
(DMA Acknowledge) — подтверждение DMA. Сигнал вырабатывается хост-адаптером как подтверждение цикла передачи. Передача слова данных управляется сигналами
DIOR#
или
DIOW#
. Во время обмена по каналу DMA сигналы
IOCS16#
,
CS0#
и
CS1#
не используются, обмен всегда производится 16-битными словами.
♦
INTRQ
(Interrupt Request) — запрос прерывания. Выход должен быть тристабильным, активный сигнал (логическую единицу) вырабатывает только выбранное устройство, когда у него имеется необслуженный запрос прерывания и его вырабатывание не запрещено битом
nIEN
в регистре
Device Control
. Запрос сбрасывается по сигналу
RESET#
, установке бита
SRST
в регистре
Deviсе Control
, записи в регистр команд или чтении регистра состояния. При обменах PIO запрос устанавливается в начале передачи каждого блока (сектора или группы секторов при многосекторных операциях). Исключения: по командам
Format Track
,
Write Sector(S)
,
Write Buffer
и
Write Long
в начале передачи первого блока данных запрос прерывания не вырабатывается. При обменах DMA запрос прерывания вырабатывается только по завершении операции. На хост-контроллере эта линия через резистор 10 кОм должна подтягиваться к шине
GND
.
♦
CS0#
(Chip Select 0) — сигнал выбора блока командных регистров (Command Block Registers). Для первого канала он вырабатывается при наличии на системной шине адреса порта ввода-вывода в диапазоне 1F0h-1F7h (сигнал так же называют
CS1FX#
).
♦
CS1#
(Chip Select 1) — выбор блока управляющих регистров (Control Block Registers). Для первого канала он вырабатывается при наличии на системной шине адреса порта ввода-вывода в диапазоне 3F6h-3F7h (часто этот сигнал называется
CS3FX#
).
♦
PDIAG#
(Passed Diagnostics) — сигнал о прохождении диагностики. Ведущее устройство наблюдает за этим сигналом, который ведомое устройство должно выработать в ответ на сброс или команду диагностики. Если ведомое устройство обнаружено (по сигналу
DASP#
), ведущее устройство ожидает сигнал в течение 31 с после сброса и 6 с после команды диагностики. Если за это время сигнал не появился, ведущее устройство отмечает этот факт установкой бита 7 регистра ошибок. Если ведомое устройство не обнаружено, ведущее обнуляет регистр состояния ведомого устройства и сообщает свое состояние сразу после завершения собственной самодиагностики. Сигнал служит только для связи двух устройств и хост-адаптером не используется (в ATA-4 контакт задействован для сигнала
CBLID#
).
♦
CBLID#
(Cable assembly type identifier) — идентификация типа кабеля. В 80-проводной сборке контакт 34 на разъеме хост-адаптера соединяется с шиной
GND
, а контакты 34 разъемов устройств соединяются между собой, но связи с разъемом хост-адаптера не имеют. На устройстве эта линия через резистор 10 кОм должна подтягиваться к шине питания. После прохождения сброса (когда сигнал
PDIAG#
снимается) хост может определить наличие 80-проводного кабеля по низкому уровню сигнала.