Параллельный интерфейс АТА
Параллельный интерфейс АТА представляет собой шину, в которой все сигналы соответствуют стандартной логике ТТЛ:
♦ высокий уровень выходного сигнала не ниже 2,4 В (при токе до 400 мкА, сигнал DMARQ — до 500 мкА), низкий уровень не выше 0,5 В (при токе 4 мА, для линии DASP ради совместимости со старыми устройствами — 12 мА);
♦ высокий уровень входного сигнала не ниже 2,0 В, низкий уровень не выше 0,8 В.
Все информационные сигналы интерфейса передаются через 40-контактный разъем, у которого ключом является отсутствующий на вилке и закрытый на розетке контакт 20. Использование в качестве ключа выступа на корпусе розетки и прорези в бандаже вилки стандартом не приветствуется. Для соединения устройств применяется плоский многожильный кабель-шлейф, длина кабеля не должна превышать 0,46 м(18"), допустимая емкость проводников — неболее 35 пФ. Терминаторы стандартом не предусматриваются (они имеются в каждом устройстве и хост-адаптере), но если кабель с тремя разъемами (розетками) используют для подключения одного устройства, то устройство и хост-адаптер рекомендуется подключать к противоположным концам кабеля. Состав информационных сигна-
9.2. Интерфейс ATA/ATAPI (IDE)
лов интерфейса АТА приведен в табл. 9.3, вид кабеля — на рис. 9.2. В большинстве кабелей одноименные контакты всех разъемов соединяются своими проводами и все коннекторы равноправны. Встречаются (редко) ленточные кабели с кабельной выборкой, изображенные на рис. 9.3. В них провод 28 перерезан, так что контакт 28 (CSEL) для ведущего устройства заземлен через хост-адаптер, а для ведомого — не подключен. Кабель должен соответствовать системе адресации, выбранной для обоих устройств.
Таблица 9.3.Интерфейс ATA (IDE)
Сигнал
| Тип1
| Контакт
| Контакт
| Тип1
| Сигнал
| reSet#
|
|
|
| -
| GND
| DD7
| I/OTS
|
|
| I/OTS
| DD8
| DD6
| I/OTS
|
|
| I/OTS
| DD9
| DD5
| I/OTS
|
|
| I/O TS
| DD10
| DD4
| I/OTS
|
|
| I/OTS
| DD11
| DD3
| I/OTS
|
|
| I/O TS
| DD12
| DD2
| I/OTS
|
|
| I/OTS
| DD13
| DD1
| I/OTS
|
|
| I/OTS
| DD14
| DDO
| I/OTS
|
|
| I/OTS
| DD15
| GND
| -
|
|
| -
| Ключ (нет штырька)
| DMARQ
| OTS2
|
|
| -
| GND
| DlOWtf/STOP3
|
|
|
| -
| GND
| DIOR#/HDMARDY#/HSTROBE3
|
|
|
| -
| GND
| IORDY/DDMARDY#/DSTROBE3
| OTS2
|
|
| I/O
| SPSYNC/CSEL7
| DMACK#
|
|
|
| -
| GND
| INTRQ
| OTS2
|
|
| ОOK
| IOCS16#8
| DA1
|
|
|
| I,O>
| PDIAG#/CBLID3
| DAO
|
|
|
|
| DA2
| CSO#
|
|
|
|
| CS1#
| DASP#
| I/O OK5
|
|
| -
| GND
| +5 В (Logic)
| -
| 41е
| 426
| -
| +5 В (Motor)
| GND
| -
| 436
| 446
| -
| Зарезервирован
| 1 Тип сигнала для устройства: I — вход, О— выход, I/O — двунаправленный, TS — тристабильный, ОК — открытый коллектор. Для хост-адаптера значения I и О имеют противоположный смысл.
2 У старых устройств сигнал может иметь тип ОК (при разнотипных сигналах на одной шине возможен конфликт).
3 Сигналы, приведенные после символа /,используются только в режиме Ultra DMA (AT A-4).
4 У ведущего устройства —' вход, у ведомого — выход.
5 У ведомого устройства — только выход.
6 Контакты 41-44 используются только для миниатюрных дисков.
7 Начиная с АТА-3 - только CSEL.
8 Начиная с АТ А-3 зарезервирован.
Глава 9. Интерфейсы устройств хранения
Рис. 9.3. Ленточный кабель интерфейса АТА с кабельной выборкой
Начиная с ATA/ATAPI-4 в шлейфах узаконили кабельную выборку и для подключения устройства 1 определили средний коннектор. В нем контакт 28 либо не соединен с проводом, либо просто отсутствует. Вполне понятно, что при использовании кабельной выборки хост-контроллер подключать к среднему коннектору нельзя (как и к правому на рис. 9.3). Если номер устройства назначается джампером, то для 40-проводного кабеля можно подключать устройства и хост-контроллер к любым коннекторам произвольно (но желательно избегать «висячих» концов).
Для устойчивой работы в режиме Ultra DMA рекомендуется применение 80-про-водных кабелей, обеспечивающих чередование сигнальных цепей и проводов схемной земли (GND). Такие кабели требуются для режимов UltraDMA выше 2 (скорость выше 33 Мбайт/с). Эти кабели разделываются на специальные разъемы, имеющие 40-контактные гнезда с обычным назначением контактов, но ножевые контакты для врезки 80 проводов. В шлейфе для схемной земли используются либо все четные, либо все нечетные провода — это зависит от применяемых разъемов (на них должна быть маркировка EVN GND или ODD GND соответственно). Установка
9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 365
на одном шлейфе разнотипных разъемов недопустима (тогда все 80 проводов окажутся соединенными вместе). На 80-проводном кабеле в разъеме для подключения контроллера контакт 34 соединен с шиной GND и не соединен с проводом шлейфа; этим обеспечивается идентификация типа кабеля (CBLID). Провод шлейфа соединяет контакты 34 разъемов устройств, что обеспечивает прохождение сигнала PDIAG* от ведомого устройства к ведущему. С учетом возможности кабельной выборки на 80-проводном шлейфе положение коннекторов уже однозначно.
♦ Коннектор хост-контроллера расположен на конце шлейфа, у него контакт 34 заземлен и не соединен со шлейфом. Корпус коннектора должен быть синего цвета .
♦ Коннектор устройства 0 расположен на противоположном конце шлейфа, у него все контакты соединены со шлейфом. Корпус коннектора должен быть черного цвета.
♦ Коннектор устройства 1 (необязательный) расположен в середине шлейфа, у него контакт 28 не соединен со шлейфом. Корпус коннектора должен быть серого цвета.
Если кабельная выборка не используется, то устройства 0 и 1 можно менять местами.
Спецификация АТА «узаконивает» как 40-контактный интерфейсный разъем, так и 4-контактный разъем питания (рис. 9.4), но для малогабаритных устройств питание может подаваться по 44-проводному интерфейсному кабелю.
А б
Рис. 9.4. Разъемы интерфейса АТА (вилки на устройствах): а — интерфейсный, б — питания
Для большинства устройств применяется 40-контактный разъем с шагом контактов 2,54 мм. Рядом с ним могут располагаться дополнительные контакты, служащие для конфигурирования устройства и технологических целей (диагностики и других операций по служебному последовательному интерфейсу). Спецификация AT A/ AT API предусматривает два варианта, приведенные на рис. 9.5, а и б. Здесь пустым квадратиком обозначены позиции ключевых (пропущенных) выводов, контакты 1-40 используются для интерфейса (см. табл. 9.3), а контакты А-Н — для установки джамперов (табл. 9.4) и технологических целей. Для миниатюрных устройств предназначен 50-контактный разъем с шагом выводов 2 мм (рис. 9.5, в), у которого контакты 1-44 соответствуют табл. 9.3, контакты A-D — табл. 9.4 (используются для конфигурирования, а пара пропущенных контактов является дополнительным ключом). Для 50-контактного кабеля принято назначение выводов накопителей IBM Thinkpad/Travelstar:
♦ контакт А через резистор 10 кОм соединяется с шиной +5 В;
♦ контакт В для устройства задает его роль: низкий уровень — устройство 0, высокий — устройство 1;
366________________________________ Глава 9. Интерфейсы устройств хранения
♦ контакт С определяет режим устройства по включении питания: низкий уро вень — Standby, высокий — Idle;
♦ контакт D соединяется с контактом 28 (CSEL) и через резистор 10 кОм — с шиной +5 В.
Это назначение, позволяющее конфигурировать и адресацию, и режим потребления, применяется не на всех устройствах. На винчестерах фирмы Toshiba контакты А и В могут использоваться как выход и вход последовательного интерфейса (В подтянут к шине +5 В через резистор 47 кОм), С — GND, D — роль устройства (низкий уровень для устройства 1).
Рис. 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 мкс вырабатывается после установления питающих напряжений. Сигнал вызывает сброс интерфейса в исходное состояние и устанавливает параметры по умолчанию.
Э.2. Интерфейс АТА/ATAPI (IDE) ___________________________________ 367
♦ 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) — запрос прерывания. Выход должен быть тристабильным, активный сигнал (логическую единицу) вырабатывает только вы-
368________________________________ Глава 9. Интерфейсы устройств хранения
бранное устройство, когда у него имеется необслуженный запрос прерывания и его вырабатывание не запрещено битом 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 мс его вводит ведомое устройство для сообщения о своем присутствии. Ведущее устройство не активирует этот сиг-
9.2. Интерфейс АТА/ATAPI (IDE) 369
нал в течение 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), но устройство воспринимает только один из них.
Глава 9. Интерфейсы устройств хранения
♦ DMARQ, DMACK* и IORDY — не обязательны для использования.
♦ M/S# (Master/Slave) — инверсия сигнала CSEL. Хост выдает сигналы M/S# и CSEL до подачи питания, устройство воспринимает лишь один из них.
Для обеспечения «горячего» подключения разъем для цепи GND обеспечивает более раннее соединение при подключении и более позднее при отключении. В устройстве сигналы CSO#, CS1#, RESET* и SELATA* подтягиваются к пассивному состоянию.
Таблица 9.5.68-контактный интерфейс АТА для PC Card (PCMCIA) Контакт Сигнал Контакт Сигнал
| GND
|
| GND
|
| DD3
|
| CD1#
|
| DD4
|
| DD11
|
| DD5
|
| DD12
|
| DD6
|
| DD13
|
| DD7
|
| DD14
|
| CSO#
|
| DD15
|
|
|
| CS1#
|
| SELATA*
|
|
|
|
|
| DIOR#
|
| CS1#
|
| DIOW#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| INTRQ
|
|
|
| +5 В
|
| +5 В
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| M/S#
|
|
|
| CSEL
|
|
|
|
|
|
|
| RESET#
|
|
|
| IORDY*
|
|
|
| DMARQ
|
| DA2
|
| DMACK#
|
| DA1
|
| DASP#
|
| DAO
|
| PDIAG*
|
| DDO
|
| DD8
|
| DD1
|
| DD9
|
| DD2
|
| DD10
|
|
|
| CD2#
|
| GND
|
| GND
|
9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 371
Для компьютеров класса ЛТ существует 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 — высокий)
|
|
| CSO#
| CS1#
| DA2
| DA2 DA1О
|
|
|
|
|
| X
| X X
| Нет обращения (шина данных в третьем
|
|
|
|
|
|
| состоянии)
|
|
|
|
| X
| x X
| Недопустимый адрес (шина данных в третьем
|
|
|
|
|
|
| состоянии)
| 3FX
| 37Х
| Control Block Registers — блок управляющих регистров
|
|
|
|
|
| X X
| Не используется (шина данных в третьем
|
|
|
|
|
|
| состоянии)
|
|
|
|
|
| 0 X
| Не используется (шина данных в третьем
|
|
|
|
|
|
| состоянии)
| 3F6
|
|
|
|
| 1 0
| R: Alternate Status (AS) — альтернативный
|
|
|
|
|
|
| регистр состояния
| 3F6
|
|
|
|
| 1 0
| W: Device Control (DC) — регистр управления
|
|
|
|
|
|
| устройством
| 3F7
|
|
|
|
| 1 1
| R: Drive Address (DA) — регистр адреса
|
|
|
|
|
|
| (не используется)1
| продолжение^
372________________________________ Глава 9. Интерфейсы устройств хранения
Таблица 9.6.(продолжение)
Адрес Сигналы адресации канала № Назначение (R — чтение, W — запись) (0 — низкий уровень, 1 — высокий)
1 2 CSO# CS1# DA2 DA1 ОАО______________________________________________
1FX 17Х Command Block Registers — блок командных регистров
1F0
|
|
|
|
|
|
| 1F1
|
|
|
|
|
|
| 1F1
|
|
|
|
|
|
| 1F2
|
|
|
|
|
|
| 1F3
|
|
|
|
|
|
| 1F4
|
|
|
|
|
|
| 1F5
|
|
|
|
|
|
| 1F6
|
|
|
|
|
|
| 1F7
|
|
|
|
|
|
| 1F7
|
|
|
|
|
|
| R/W: Data (DR) — регистр данных
R: Error (ER) — регистр ошибок
W: Features (FR) — регистр свойств
R/W: Sector Count (SC) — регистр счетчика секторов
R/W: Sector Number (SN) — регистр номера
сектора/LBA[7:0]2
R/W: Cylinder Low (CL) — регистр младшего
байта номера цилиндраДВА[15:8]2
R/W: Cylinder High (CH) — регистр старшего байта номера цилиндра/1-ВА[23:1 б]2
R/W: Device/Head (D/H) — регистр номера устройства и головки/1_ВА[27:24]2
R: Status (SR) — регистр состояния
W: Command (CR) — регистр команд
1 Рекомендуется, чтобы на сигнал чтения по этому адресу устройство не отвечало.
2 Регистры сектора, цилиндра и головки в режиме LBA содержат указанные биты логического адреса.
Альтернативный регистр состояния AS (для первого канала адрес 3F6h, для второго — 376h) имеет те же биты, что и основной (см. ниже), но его чтение не приводит ни к каким изменениям состояния устройства.
Регистр управления устройством DC (3F6h, 376h) служит для программного сброса обоих устройств одновременно и управления разрешением прерывания выбранного устройства. Запись в этот регистр возможна в любой момент. Программный сброс через регистр DC должен отрабатываться ив состоянии Sleep. Назначение битов регистра DC:
♦ биты [7:3] зарезервированы;
♦ бит 2 — SRST (Software Reset) — программный сброс, действует все время, пока бит не будет снят (оба устройства на шине воспринимают программный сброс одновременно);
♦ бит 1 — n IE N (Interrupt Enable) — инверсный бит разрешения прерывания (при нулевом значении бита выбранное устройство может вырабатывать сигнал INTRQ через тристабильный выход);
♦ бит 0 - 0.
Регистр адреса устройства DA (3F7h, 377h) использовался только в первой версии АТА для совместимости со старыми контроллерами, чтением этого регистра можно было определить адресованный привод и головку. Регистр выпадает из блока (он совпадает с диагностическим регистром состояния онтроллера НГМД)
9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 373
и рекомендуется, чтобы устройство АТА не отвечало на чтение этого регистра. Если устройство отвечает на чтение, то оно не должно управлять битом DD7 во избежание конфликта с контроллером НГМД, у которого по этой линии передается бит смены носителя. Из-за несоблюдения этого требования могут возникать проблемы, когда контроллер (адаптер) АТА и контроллер НГМД находятся на разных платах. Назначение битов регистра DA:
♦ бит 7 — (HiZ) — высокоимпедансный, при считывании не выдается на шину;
♦ бит 6 — nWTG — инверсный признак записи (во время физического выполнения записи на носитель бит нулевой);
♦ биты [5:2] — nHS [3 :0] — номер головки (инверсные биты);
♦ биты [1:0] — nDS [1:0] — выбор устройства (инверсные биты): 10 — выбрано устройство 0, 01 — выбрано устройство 1.
Регистр данных DR (IFOh, 170h) может использоваться как 8-битный или 16-битный в зависимости от типа данных, передаваемых в текущей команде. Обращение к этому регистру происходит в режиме обмена РЮ (когда сигнал DMACK* неактивен), при выполнении передач протокола РО (РЮ Out) хост производит запись в этот регистр, при PI (РЮ In) — чтение. В режиме DMA обмен данными происходит через порт данных, при этом активны сигналы DMARQ и DMACK*, а сигналы CSO# и CS1# неактивны.
Регистр ошибок ER (IFlh, 171h) хранит состояние выполнения последней операции или диагностический код. После завершения операции на наличие ошибки указывает бит ERR регистра состояния.
Назначение битов регистра ER:
♦ бит 7 — зарезервирован;
♦ бит 6 — UNC (Uncorrectable Data Error) — неисправимая ошибка данных;
♦ бит 5 — МС (Media Changed) — смена носителя (после смены носителя первая команда обращения отвергается и устанавливается данный бит, после сброса бита следующие команды будут выполняться нормальным образом);
♦ бит 4 — IDN F (ID Not Found) — указывает на ненайденный идентификатор сектора;
♦ бит 3 — MCR (Media Change Requested) — индикатор запроса смены носителя (после обнаружения запроса смены носителя команды Door Lock будут возвращать бит ошибки ERR и бит MCR, бит MCR сбрасывается командами Door Unlock, Medi a Ej ect или сигналом аппаратного сброса);
♦ бит 2 — ABRT (Aborted Command) — устанавливается, если команда отвергнута как недействительная или в случае возникновения иной ошибки;
♦ бит 1 —TK0NF (Track ONot Found) —указываетна то, что по команде Recalibrate не удалось найти нулевой трек;
♦ бит 0 — AMNF (Address Mark Not Found) — не найден адресный маркер данных в заголовке сектора.
374________________________________ Глава 9. Интерфейсу устройств хранения
После выполнения любого сброса или команды Execute Device Diagnostic регистр ошибок содержит диагностический код. Трактовка битов, за исключением бита 2 (ABRT), может меняться в зависимости от исполненной команды.
Регистр свойств FR (IFlh, 171h) используется в зависимости от команды. В команде Set Features через него задается код подкоманды. Некоторые старые устройства могут игнорировать запись в этот регистр. До принятия спецификации АТА-2 в этот регистр помещали значение рекомендуемого номера цилиндра для предкомпен-сации записи.
Регистр счетчика секторов SC (lF2h, 172h) содержит число секторов, участвующих в обмене. Хост инициализирует этот регистр до подачи команды (нулевое значение соответствует 256 секторам). По успешному завершению операции доступа к данным регистр должен обнулиться. Если команда завершилась с ошибкой, в регистре будет число секторов, которые должны быть переданы для успешного завершения предыдущего запроса. Команды Initialize Device Parameters или Write Same могут переопределить значение этого регистра. В некоторых командах регистр используется для передачи иных параметров.
Регистры номера сектора S N (1 F3h, 173h) и номера цилиндра — младшего С L (1 F4h, 174h) и старшего байта СН (lF5h, 175h) — имеют двоякое назначение в зависимости от выбранной системы адресации (CHS или LEA). Они инициализируются хост-адаптером, а в случае возникновения ошибки при выполнении операции устройство поместит в них адрес, по которому встретилась ошибка.
Регистр номера устройства и головки D/H (IFGh, 176h) кроме хранения части адресной информации служит для выбора ведущего или ведомого устройства и метода адресации.
Назначение битов регистра D/H:
♦ биты 7 и 5 вплоть до АТА-3 должны были быть единичными, в AT A/ AT API -4 их объявили устаревшими;
♦ бит 6 — L — единичным значением указывает на применение режима адресации LBA, при нулевом значении бита используется режим CHS;
♦ бит 4 — DEV (Device) — выбор устройства, при DEV=0 выбрано ведущее, при DEV=1 — ведомое;
♦ биты [3:0] имеют двоякое назначение в зависимости от выбранной системы адресации, в режиме CHS они содержат номер головки, в режиме LBA — старшие биты логического адреса.
Как и предыдущие (5М,СНиС1_), адресный регистр D/H инициализируется хост-адаптером, а в случае возникновения ошибки при операции устройство поместит в них адрес, по которому встретилась ошибка. До принятия спецификации АТА-2 считалось, что адресные регистры должны модифицироваться и после успешного выполнения операции, отражая текущее значение адреса в носителе. Регистр состояния S R (l F7h, 177h) отражает текущее состояние устройства в процессе выполнения команд: занятость, готовность, наличие ошибок и др. Чтение регистра состояния разрешает дальнейшее изменение его битов и сбрасывает запрос аппаратного прерывания.
9.2. Интерфейс АТА/ATAPI (IDE) _____________________________________ 375
Назначение битов регистра SR описано ниже.
♦ Бит 7 — BSY (Busy) указывает на занятость устройства, значение этого бита действительно всегда. При BSY=1 устройство игнорирует попытки записи в командный блок регистров, а чтение этих регистров дает неопределенный результат. При BSY=0 регистры командного блока доступны, в это время устройство не может устанавливать бит DRQ, изменять значение битов Е RR и содержимое остальных командных регистров (могут меняться только значения битов IDX, DRDY, DF, DSC и CORR). Бит может устанавливаться на кратковременный интервал, так что хост может этого не заметить. Бит устанавливается:
• при сбросе устройства;
• по получении команды, если не устанавливается DRQ;
• между передачами блоков данных в режиме РЮ и после них, пока не обнулился DRQ;
• во время передач данных в режиме DMA.
♦ Бит 6 — DRDY (Device Ready) указывает на готовность устройства к восприятию любых кодов команд. Если состояние бита изменилось, оно не может вернуться обратно до чтения регистра состояния. При DRDY=0 устройство воспринимает только команды Execute Device Diagnostic и Initialize Device Parameters, прекращая выполнение текущей команды и сообщая об этом флагом ABRT в регистре ошибок и флагом ERR в регистре состояния. Другие команды приводят к непредсказуемым результатам. Устройства AT API сбрасывают бит по любому сбросу и команде Execute Device Diagnostic. Бит устанавливается устройством AT A, когда оно готово к выполнению всех команд. Устройство AT API устанавливает бит до завершения выполнения команд, за исключением команд Device Reset и Execute Device Diagnostic.
♦ Бит 5 — DF (Device Fault) — индикатор отказа устройства.
♦ Бит 4 — DSC (Device Seek Complete) — индикатор завершения поиска трека. В командах, допускающих перекрытие, бит называется SERV (Service Required) — устройство требует обслуживания.
♦ Бит 3 — DRQ (Data Request) — индикатор готовности к обмену словом или байтом данных.
♦ Бит 2 — CORR (Corrected Data) — индикатор исправленной ошибки данных.
♦ Бит 1 — I DX (Index) — индекс, трактуется особо каждым производителем.
♦ Бит 0 — ERR (Error) — индикатор ошибки выполнения предыдущей операции. Дополнительная информация содержится в регистре ошибок. Если установ лен бит ERR, до приема следующей команды, программного или аппаратного сброса устройство не изменит состояние этого бита, а также регистра ошибок, регистра количества секторов и регистров цилиндра, головки и номера сектора. Для команд PacketnService бит называется СНК и служит признаком исключительной ситуации.
В стандарте ATA/ATAPI-4 для некоторых команд биты 4 и 5 могут иметь иное назначение, а биты 1 и 2 объявлены устаревшими.
Глава 9. Интерфейсы устройств хранения
Назначение регистра команд CR (lF7h, 177h) очевидно из названия. Устройство начинает исполнять команду сразу, как только ее код записан в данный регистр. Команда Devi ce Reset выполняется устройством AT API независимо от состояния битов BSY и DRQ, и даже в состоянии Sleep.
Полный список команд АТА приведен в литературе [4,5,9].
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|