Главная / Полезное / Программирование SCSI, IDE устройств /Команды управления устройствами CD-ROM

Команды управления устройствами CD-ROM

здесь рассмотрены все основные команды управления CD-ROM. При этом в категорию поддерживаемых приводов входят не только устройства с интерфейсом SCSI, но и более распространенным — IDE. Поэтому можно применять эти команды к любым приводам CD-ROM. Некоторые из команд могут не поддерживаться отдельными приводами, и при описании материала будут оговариваться данные ограничения. Изучение главы даст возможность самостоятельно разрабатывать различные программы для работы с CD-ROM: аудиоплейеры, модули управления скоростью привода, программы для прямого считывания информации с лазерного диска (например, для цифрового копирования музыкальных дисков на компьютер) и другие полезные программы.

Как известно, существуют различные стандарты хранения данных на лазерном диске. Это могут быть музыкальные, видео-, компьютерные, а также смешанные диски. Любой диск имеет определенную структуру размещения информации и имеет от 1 до 99 записываемых дорожек (для аудиодисков треков). Для доступа к данным используется система адресации двух типов: по логическому адресу (ЛА) и по абсолютному адресу (МСФ — минута, секунда, фрейм).

Блоком называется набор байтов, имеющий единичное значение логического адреса. Он содержит определенное количество байтов, зависящее от формата диска. Несколько блоков образуют сектор. Сектор определяет единицу хранения информации в зависимости от формата диска (например, для аудиодиска значение сектора равно 1/75 с). Стандартный сектор CD-ROM содержит 2352 байта. Из них 2048 байт используются для данных, 12 байтов — для синхронизации, 4 байта определяют адрес сектора и оставшиеся 288 байтов могут содержать дополнительные сведения. Кроме этого, размер физического сектора может иметь несколько других стандартных значений: 2048 байт на сектор, 2336 байт на сектор и 2340 байт на сектор. Определенное количество секторов образуют дорожку. Длина дорожки не может иметь менее 300 секторов. Стандартный диск (74 мин) содержит 333 000 секторов (74 мин х 60 с х 75 секторов в секунду). Исходя из этого, полный размер диска в байтах будет равен: для аудиодиска — 333000x2352 байт, а для диска с данными — 333 000 x 2048 байт. Каждый сектор состоит из определенного количества логических блоков, которые могут иметь один из следующих размеров: 512, 1024 или 2048 байт.

Стандартом CD-ROM предусмотрены небольшие участки на диске между треками, являющиеся участками перехода. Для аудиодисков они называются паузами, а для дисков с данными их можно называть промежутками с отсутствием данных. Стандартом определены минимальные (150 секторов) значения промежутка, но максимальное значение может быть любым.

Адрес (МСФ) начала дорожки для диска с данными имеет точное значение, а для аудио может изменяться ±75 секторов. Необходимо это учитывать при работе с определенным диском. Кроме того, информация об индексах не содержится в оглавлении диска. Сектор без заданного значения индекса имеет тот же индекс, что и предыдущий сектор. Можно записать диск с одной дорожкой и одним индексом, а можно использовать до 99 дорожек, каждая из которых будет иметь до 99 индексов.

Формат сектора для CD-ROM Data Mode 1 выглядит так:

  • 12 байтов синхронизации;
  • 4 байта заголовка (М — абсолютное значение от 00 до 99, С — абсолютное значение от 00 до 59, Ф — абсолютное значение от 00 до 74, поле типа диска);
  • 2048 байт поля пользовательских данных;
  • 4 байта кода ошибки;
  • 8 байтов, равных нулю;
  • 276 байтов многоуровневого кода коррекции ошибок.

Формат сектора для CD-ROM Data Mode 2 выглядит так:

  • 12 байтов синхронизации;
  • 4 байта заголовка (М — абсолютное значение от 00 до 99, С — абсолютное значение от 00 до 59, Ф — абсолютное значение от и 00 до 74, поле типа диска);
  • 2336 байт поля пользовательских данных (2048 байт формата Mode 1 плюс 288 байт дополнительных данных).

Формат подканала имеет восемь составляющих, обозначаемых английскими буквами Р, Q, R, S, T, U, V, W. Значение Р является битом флага, который может использоваться для управления выключением звука и определения границы дорожки диска. Значение Q содержит определенную информацию, длиной 98 бит и выглядит так:

  • 2 бита подканала синхронизации;
  • 4 бита поля адреса, определяющего тип данных подканала;
  • 4 бита контрольного поля, содержащего информацию о типе сектор;
  • 8 битов содержат значение номера трека;
  • 8 битов содержат значение номера индекса;
  • 24 бита кодируют значение адреса МСФ;
  • 8 битов зарезервировано;
  • 24 бита кодируют абсолютный адрес в формате МСФ;
  • 16 битов содержат код ошибки.

При работе с аудиодиском получение информации о подканале является единственным способом определить границы сектора.

Значение Q может иметь еще два определения, которые являются необязательными. Одно служит для обеспечения непрерывного потока информации и определения номера диска (так называемый код UPC/EAN, Universal Product Code/European Article Numbering). Второй определяет международный код стандартизации ISRC (International Standard Recording Code).

После того как вставлен диск, происходит инициализация готовности устройства к считыванию данных, а также получение необходимой информации о диске из его заголовочной области. Неготовность устройства CD-ROM к чтению данных может быть вызвана следующими причинами:

  1. Отсутствует диск.
  2. Устройство считывания не может загрузить или выгрузить диск.
  3. Не удается прочитать заголовочную область диска.
  4. Контроллер устройства неисправен.

После того как диск инициализирован, он устанавливается в начальную позицию воспроизведения, хотя это не является правилом, поскольку до инициализации могли выполняться и другие команды. Когда диск вставлен в дисковод и должным образом определен, можно посылать ему любые команды управления.

Каждая команда управления представляет собой числовой код в шестнадцатеричном исчислении (например, BDh) и состоит из нескольких байт. Первый байт содержит код команды, а остальные служат для передачи дополнительных параметров и получения возвращаемых значений после выполнения команды. Список команд управления CD-ROM с интерфейсом SCSI приведен в табл. 1.

Таблица 1. Команды управления CD-ROM (SCSI)

Имя команды Код команды Поддержка CD-ROM
CHANGE DEFINITION 40h Необязательная
COMPARE 39h Необязательная
СОРУ 18h Необязательная
COPY AND VERIFY 3Ah Необязательная
INQUIRY 12h Обязательная
LOCK/UNLOCK CASHE 36h Необязательная
LOG SELECT 4Ch Необязательная
LOG SENSE 4Dh Необязательная
MODE SELECT (6) 15h Необязательная
MODE SELECT (10) 55h Необязательная
MODE SENSE (6) 1Ah Необязательная
MODE SENSE (10) 5Ah Необязательная
PAUSE/RESUME 4Bh Необязательная
PLAY AUDIO (10) 45h Необязательная
PLAY AUDIO (12) A5h Необязательная
PLAY AUDIO MSF 47h Необязательная
PLAY AUDIO TRACK/INDEX 48h Необязательная
PLAY TRACK RELATIVE (10) 49h Необязательная
PLAY TRACK RELATIVE (12) A9h Необязательная
PRE-FETCH 34h Необязательная
PREVENT/ALLOW MEDIUM REMOVAL 1Eh Необязательная
READ (6) 08h Необязательная
READ (10) 28h Обязательная
READ (12) A8h Необязательная
READ BUFFER 3Ch Необязательная
READ CD-ROM CAPACITY 25h Обязательная
READ HEADER 44h Необязательная
READ LONG 3Eh Необязательная
READ SUB-CHANNEL 42h Необязательная
READ TOC 43h Необязательная
RECEIVE DIAGNOSTIC RESULTS 1Ch Необязательная
RELEASE 17h Обязательная
REQUEST SENSE 03h Обязательная
RESERVE 16h Обязательная
RE ZERO UNIT 01h Необязательная
SEARCH DATA EQUAL (10) 31h Необязательная
SEARCH DATA EQUAL (12) B1h Необязательная
SEARCH DATA HIGH (10) 30h Необязательная
SEARCH DATA HIGH (12) B0h Необязательная
SEARCH DATA LOW (10) 32h Необязательная
SEARCH DATA LOW (12) B2h Необязательная
SEEK (6) 0Bh Необязательная
SEEK (10) 2Bh Необязательная
SEND DIAGNOSTIC 1Dh Обязательная
SET LIMITS (10) 33h Необязательная
SET LIMITS (12) B3h Необязательная
START STOP UNIT 1Bh Необязательная
SYNCHRONIZE CACHE 35h Необязательная
TEST UNIT READY 00h Обязательная
VERIFY (10) 2Fh Необязательная
VERIFY (12) AFh Необязательная
WRITE BUFFER 3Bh Необязательная

Следующие коды команд могут использоваться производителями CD-ROM по своему усмотрению: 02h, 05h, 06h, 09h, OCh-llh, 13h, I4h, I9h—24h. 26h, 27h, 29h, и COh—FFh. Остальные коды зарезервированы для последующих расширений стандарта CD-ROM. Описание специальных кодов изготовителей устройств CD-ROM следует искать у конкретного производи теля привода.

Теперь приведем таблицу команд управления для CD-ROM с интерфейсом IDE (табл. 2).

Таблица 2. Команды управления CD-ROM (IDE)

Имя команды Код команды Поддержка CD-ROM
INQUIRY 12h Обязательная
LOAD/UNLOAD CD A6h Необязательная
MECHANISM STATUS BDh Обязательная
MODE SELECT (10) 55h Обязательная
MODE SENSE (10) 5Ah Обязательная
PAUSE/RESUME 4Bh Необязательная
PLAY AUDIO (10) 45h Необязательная
PLAY AUDIO MSF 47h Необязательная
PLAY CD BCh Необязательная
PREVENT/ALLOW MEDIUM REMOVAL 1Eh Обязательная
READ (10) 28h Обязательная
READ (12) A8h Обязательная
READ CD-ROM CAPACITY 25h Обязательная
READ CD BEh Обязательная
READ CD MSF B9h Обязательная
READ HEADER 44h Обязательная
READ SUB-CHANNEL 42h Обязательная
READ TOC 43h Обязательная
REQUEST SENSE 03h Обязательная
SCAN BAh Необязательная
SEEK 2Bh Обязательная
SET CD SPEED BBh Необязательная
STOP PLAY/SCAN 4Eh Обязательная
START STOP UNIT 1Bh Обязательная
TEST UNIT READY 00h Обязательная

Как видно из таблицы, команды управления CD-ROM с интерфейсом IDE практически не отличаются от аналогичных команд для интерфейса SCSI. Однако появилось и несколько новых команд: LOAD/UNLOAD CD, MECHANISM STATUS, READ CD, SCAN и STOP PLAY/SCAN. Поскольку команды не имеют больших отличий, не будем описывать их два раза, а рассмотрим в алфавитном порядке с учетом различий и дополнений. Как видно из таблицы, часть команд являются стандартными, истинными для всех совместимых устройств.

 

 

2021-04-01

Google сообщил о запуске проекта Dunant

Проект Dunant, начатый в 2018 году, был запущен в эксплуатацию. Трансатлантический интернет-кабель соединяет США и континентальную Европу. Общая протяженность...

подробнее
2020-04-06

Новшества в обновленной Windows 10

Корпорация Microsoft завершила разработку обновления, в котором добавлено множество функций. Обновление содержит как доработку уже имеющихся систем, так...

подробнее

 

Все новости...

 

Научно-Техническое Объединение

Тел.: +7(4752) 55-95-86

E-mail:e-mail