Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Регистр данных (DR) используется так же, как и регистр данных ATA.
Регистр ошибки (ER) определяет состояние контроллера устройства ATAPI после выполнения операции и доступен только для чтения. Назначение разрядов регистра следующее:
n бит 0 (ILI) – недопустимая длина командного пакета или блока данных;
n бит 1 (EOM) – обнаружен конец дорожки на носителе;
n бит 2 (ABRT) – аварийное прекращение выполнения команды;
n бит 3 – не используется;
n бит 4-7 (Sense Key) – код состояния устройства.
Регистры младшего байта и старшего байта счетчика байтов (CL и CH) используются в режиме PIO и доступны как для чтения, так и для записи информации. Значение счетчика должно быть загружено в эти регистры до того, как код команды будет записан в регистр команд. Значение счетчика должно соответствовать объему передаваемых данных.
В регистре выбора устройства (DS) используется только бит 4 (DEV), с помощью которого осуществляется выбор устройства. Биты 7 и 5 должны иметь значение 1 с целью сохранения совместимости с устаревшими устройствами.
Регистр состояния (SR) отображает состояние устройства. Назначение разрядов регистра следующее:
n бит 0 (CHK) – признак возникновения исключительной ситуации, в регистре ошибки (ER) находится код ошибки;
n биты 1 и 2 игнорируются при считывании информации из регистра;
n бит 3 (DRQ) – признак готовности устройства к обмену данными;
n бит 4 (SERV) – признак готовности к обслуживанию следующей команды (имеет значение только при работе в режиме перекрытия команд);
n бит 5 (DMRD/DF) – признак готовности к передаче в режиме DMA (при CHK = 0) или признак неисправности устройства (при CHK = 1).
Регистр команд (CR) используется для загрузки кода выполняемой команды.
Пакетные команды ATAPI
Рассмотрим порядок выполнения пакетных команд интерфейса ATAPI на примерах. Работоспособность всех примеров была проверена для ОС Linux, ядро 2.4.26. Привод CD-ROM подключен как Secondary Master, в ядре включен режим SCSI-эмуляции для ATAPI-устройств (SCSI host adapter emulation for IDE ATAPI devices). Использовались два привода:
n TEAC CD-W524E Rev 1.0E;
n MITSUMI CD-ROM FX54++M Rev Y01E.
Исходные тексты всех программ доступны на сайте журнала.
Начнём с самого простого примера – открытие/закрытие лотка CD-ROM. Чтобы выполнить эту операцию, устройству необходимо послать пакетную команду START/STOP UNIT, которая представляет собой 12-байтный блок данных следующего формата (см. спецификацию INF-8020i, п. 10.8.25, стр. 197):
START/STOP UNIT Command
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
|
Operation code (1Bh) |
|
|||||
1 |
|
Reserved |
|
|
Immed |
|||
2 |
|
Reserved |
|
|||||
3 |
|
Reserved |
|
|||||
4 |
|
Reserved |
|
|
LoEj |
Start |
||
5 |
|
|||||||
6 |
|
Reserved |
|
|||||
7 |
|
Reserved |
|
|||||
8 |
|
Reserved |
|
|||||
9 |
|
Reserved |
|
|||||
10 |
|
Reserved |
|
|||||
11 |
|
Reserved |
|