Bog BOS: hardware: CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-R, DVD-RAM, DVD-RW, DVD+RW.
Последнее изменение файла: 2002.01.28
CD-DA (Compact Disk - Digital Audio), были разработаны Sony и Philips в 1982 году. Длина волны лазера в воздухе - 780 нм. Диаметр 120 мм (информационная зона приблизительно с 50 мм до 116 мм) или 80 мм. Толщина 1.2 мм. Вес - от 14 г до 33 г. Цепочка углублений (pits) расположена по спирали как в грампластинке, но в направлении от центра (фактически CD является устройством последовательного доступа с ускоренной перемоткой). Интервал между витками - 1.6 мкм, ширина пита - 0.5 мкм, глубина - 0.125 мкм (1/4 длины волны луча лазера в поликарбонате), минимальная длина - 0.83 мкм. Объем - 74 минуты звука (44.1 kHz, 16 бит, PCM, big-endian) или 650 MB данных (333000 сектора по 2048 байт), для 80 мм - 21 минута (185 МБ). Частота дискретизации была подобрана так, чтобы затруднить копирование на DAT (48 kHz). Существуют модификации в 80 минут (700 МБ), 90 минут (791 МБ) и 99 минут (870 MB). Обеспечивается постоянная линейная скорость перемещения носителя относительно головки (1.25 м/сек), соответственно, частота вращения изменяется при чтении различных участков диска (от 500 об/мин до 200 об/мин), что увеличивает время доступа (требуется ускорять и тормозить вращение диска). Номинальная (1x) скорость передачи данных - 150 КБ/сек (176400 байт/сек аудио или "сырых" данных, 4.3 Мбит/сек "физических" данных).
CD может иметь bar code (вертикальные штрихи), прожженный лазером в BCA (burst cutting area, внутреннее кольцо перед lead-in), используемый для серийного номера, но мне не встречались устройства, которые умеют его читать. DVD может иметь BCA только на односторонних дисках. Для повышения надежности используются коды EDC и ECC.
SID (Source Identification Code) для DVD Audio. Состоит из двух частей: Mastering Code (строка "IFPI" и 4-символьный код, выжигается лазером на штампе) и Mould Code (строка "IFPI" и 4-символьный код, гравируется на форме), которые отпечатываются на противоположных сторонах подложки на внутреннем кольце (до BCA). Должны читаться невооруженным глазом. В этом же кольце могжет быть напечатана и другая информация, требуемая местными законами.
Не рекомендуется наклеивать что-либо на поверхность диска (нарушите балансировку, а скорость вращения 5000 об/мин; к тому же некоторые виды клея растворяют защитный лак; а эти гадкие воздушные пузыри?) или надписывать его (промнете защитный слой или чернила его растворят, графитовая пыль тоже не подарок). Единственным безопасным методом маркировки является печать на специальном принтере. Кстати, простейший способ уничтожить информацию на CD - это содрать присохшую наклейку. Мыть можно теплой водой с мылом (никаких органических растворителей, спирта и прочей химии).
Торговая марка, под которой продаются заготовки, не всегда (точнее, почти всегда не) соответствуют их реальному изготовителю. Даже по ATIP вы можете узнать лишь изготовителя матрицы, но не конкретный завод эту матрицу использующий. Примеры ATIP дисков различных типов, размеров и скоростей записи. Большой обзор CD-R заготовок, продающихся на московском рынке, можно найти на IXBT. :
Поверхность диска разделена на области:
Двоичный нуль представляется в виде отсутствия изменений в отражающей способности поверхности диска (длина участка определяет число нулевых бит), единица - в виде изменения отражающей способности на рассматриваемом участке.
Каждый байт данных (8 бит) кодируется 14-битным символом на носителе (кодировка EFM). Символы отделяются 3-битными промежутками, выбираемыми так, чтобы на носителе не было более 10 нулей подряд.
Из 24 байтов данных (192 бита) формируется кадр (F1-frame), 588 битов носителя, не считая промежутков:
При декодировании могут использоваться различные стратегии обнаружения и исправления групповых ошибок (вероятность обнаружения против надежности коррекции).
Последовательность из 98 кадров образует сектор (2352 информационных байта). Кадры в секторе перемешаны, чтобы уменьшить влияние дефектов носителя. Адресация сектора произошла от аудиодисков и записывается в формате A-Time - mm:ss:ff (минуты:секунды:доли, доля в секунде от 0 до 74). Отсчет начинается с начала программной области, т.е. адреса секторов вводной области отрицательные. Биты субканалов собираются в 98-битные слова для каждого субканала (из них 2 бита - синхронизация). Используются субканалы:
На самом деле все еще "интереснее", т.к. в дополнение к секторам определяются секции того же полезного размера, но с несовпадающими границами, причем часть адресов является адресами секторов, а другая - адресами секций. Но об этом лучше сразу забыть ;)
Последовательность секторов одного формата объединяется в дорожку (трек) от 300 секторов (4 секунды. см. субканал P) до всего диска. На диске может быть до 99 дорожек (номера от 1 до 99). Трек может содержать служебные области:
Вводная цифровая область должна завершаться постзазором. Первый цифровой трек должен начинаться со второй части предзазора. Последний цифровой трек должен завершаться постзазором. Выводная цифровая область не содержит предзазора.
CD-DA. Каждый сектор содержит 588 выборок сигнала (PCM, 2 канала, 16 бит). Выборки размазываются по сектору, чтобы уменьшить влияние выпадения данных.
CD-ROM Mode 0: нет данных.
CD-ROM Mode 1: синхронизация, адрес блока, 2048 байт пользовательских данных, EDC (CRC-32), ECC (276 байт, две суммы: P и Q - не путать с субканалами!), 8 байт нулей.
CD-ROM Mode 2: синхронизация, адрес блока, 2336 байт пользовательских данных без дополнительной защиты.
CD-ROM XA Mode 1 совпадает с CD-ROM Mode 1.
CD-ROM XA Mode 2 Form 1: синхронизация, адрес блока, подзаголовок CD-I (8 байт, определяет тип и формат пользовательских данных - звук, видео, данные), 2048 байт пользовательских данных, EDC (CRC-32), ECC (276 байт, две суммы: P и Q - не путать с субканалами!).
CD-ROM XA Mode 2 Form 2: синхронизация, адрес блока, подзаголовок CD-I (8 байт), 2324 байта пользовательских данных, EDC (CRC-32).
CD Text (текст - автор, название - записывается в субканалах R-W).
CD-Graphics. Субканалы R-W используются для записи графики.
CD-R и CD-RW. При закрытии диска (finalizing, fixating) сразу за программной областью записывается выводная область, после чего записывается вводная область, содержащая TOC. Если диск записывался не в один прием, то TOC формируется из PMA. Лазер не может включаться и выключаться мгновенно, поэтому данные "прожженные" во время переходного процесса могут не читаться (именно из-за этого возникает проблема опустошения буфера). В местах стыковки оставляют неиспользуемые промежутки. Методы записи:
Многосеансовая (многосессионная) запись. За выводной областью первой сессии записывается вводная область второй сессии, затем область данных и т.д. Размер выводной зоны для второй и последующих сессий уменьшен до 2250 секторов (0.5 минуты, 4 МБ). Сессия называется закрытой, если ее область данных обрамлена вводной и выводной областью. Незакрытые сессии могут читаться только устройствами записи (необходим доступ к PAM). Указатель в TOC сессии на выводную область может содержать либо действительно адрес выводной области данной сессии (закрытый диск), либо адрес вводной области следующей сессии. Запись ограничивается местом на диске, местом в PMA и числом треков (треки имеют сквозную нумерации по всему диску от 01 до 99). Сессия может быть независимой (TOC указывает только на треки внутри сессии) или связанной (TOC содержит адреса треков из предыдущих сессий). Сессии могут быть связаны также на уровне файловой системы. Механизм сессий позволяет "изменять" CD-R, дописывая новую сессию.
Стирание CD-RW: полное и быстрое (только TOC). Если диск настолько испорчен, что невозможно выполнить и стирание, то можно попробовать стереть ультрафиолетом (или солнечным светом).
Ходят слухи, что некоторые устройства записывают на каждый диск Recorder Unique Identifier (RID): идентификатор изготовителя устройства, номер модели и серийный номер (помнится в СССР регистрировали пишущие машинки ;).
Информационная область диска делится на вводную зону (lead-in zone), зону данных (data zone) и выводную зону (lead-out zone). На двуслойном диске с противоположными спиралями (OTP) каждая сторона содержит только одну информационную зону на оба слоя. Для перехода луча от слоя к слою используется промежуточная зона (middle zone). Сектора адресуются последовательно по всей информационной зоне (LBA). Никаких дорожек, пауз, зазоров, субканалов и A-time адресации. Единый формат данных: прощайте режимы и формы.
Структура вводной зоны:
Двоичный нуль представляется в виде отсутствия изменений в отражающей способности поверхности диска (длина участка определяет число нулевых бит), единица - в виде изменения отражающей способности на рассматриваемом участке.
Физический сектор содержит 4836 байт. Из них 104 байта синхронизации и 4732 байта канальных данных.
Для DVD в отличие от CD используется кодировка 8-битных байт фрейма записи 16-битными канальными символами без промежутков (сама кодировка обеспечивает не более 10 нулей подряд, однако для декодирования байта иногда требуется знание последующего символа).
Байты 16 фреймов перемешиваются аналогично CD, чтобы уменьшить воздействие локальных дефектов носителя. В каждом таком "большом" блоке содержится 4832 байта ECC и 33024 (2064*16) байт фрейма данных.
Фрейм данных (Data Frame) состоит из:
Таким образом, на хранение 2048 байт пользовательских данных расходуется 4836 байт физического сектора (перемешанных и размазанных). Это значительно лучше, чем приблизительно 8415 байт в случае CD-ROM.
DVD-RAM содержит как отпечатанные (embossed), так и перезаписываемые данные. Отпечатываются первые 5 зон вводной зоны: зона инициализации, reference code, первая буферная зона, управляющие данные и второй буфер. В остальных зонах спираль образуется вытравленной канавкой (groove), причем запись производится как в канавках (groove track, groove sector), так и между ними (land track, land sector). Спираль делится на виртуальные дорожки (оборот 360 &grad;). Во вводной зоне в дополнение к 5 зонам, определенным стандартом DVD-ROM, имеются зона соединения (промежуток между отпечатанной и перезаписываемой областями, пустое место без секторов), защитная зона 1, зона для тестирования диска, зона для тестирования дисковода, защитная зона 2, резервная зона, DMA 1 (область управления дефектными блоками), DMA 2. Адрес 0x030000 имеет не первый сектор зоны данных, а первый сектор первой защитной зоны. Выводная зона состоит из зоны DMA 3, DMA 4, защитной зоны 1, зоны для тестирования диска, зоны для тестирования дисковода, защитной зоны 2, резервной зоны. Первый сектор зоны данных имеет адрес 0x031000. Каждая дорожка вводной зоны состоит из 18 секторов. Перезаписываемая область поделена на 24 подзоны, разделяемые защитными зонами. Подзона обрамлена защитными зонами и имеет область запасных блоков. Вводится адресация LSN (Logical Sector Number), так что все сектора с пользовательскими данными имеют последовательные номера, начиная с 0. Внутри каждой подзоны дорожки состоят из одинакового числа секторов (от 17 до 40), но эти сектора содержат по 2697 байт (данные формата физического сектора DVD-ROM обрамляются всякой дополнительной информацией, причем заголовок отпечатывается при изготовлении). Сама спираль имеет синусообразную форму, причем нулевая фаза находится на границе между заголовком сектора и остальной его частью (теперь я понимаю почему DVD-RAM заготовки стоят так дорого ;). Содержимое всех зон DMA идентично и содержит информацию о форматированности диска, первичный список дефектов (обнаруженных при форматировании) и вторичный список дефектов (обнаруженных в процессе работы).
Про DVD-R, DVD-RW и DVD+RW я напишу (может быть :) подробнее после того, как ECMA опубликует вторые версии соответствующих стандартов, а то чтение первых версий напоминает использование альфа-версии операционной системы - запускаться запускается, но от конечного изделия отличается сильно.
Каждая заготовка для записи DVD имеет уникальный (64 бит) идентификатор (механизм защиты CPRM). Содержимое диска может шифроваться по ключу, генерируемому из этого идентификатора, поэтому простое копирование даст нечитаемые данные (фильмы).
Есть два метода: покупка заготовки, размеченной (pregroove) на объем более стандартного за счет более тесных витков спирали или использование под данные области lead-out и некоторого пространства за ней. Можно использовать оба метода сразу. Заготовки CD-R бывают на 80 минут (700 MB), 90 минут (791 МБ) и 99 минут (870 МБ), заготовки CD-RW встречались (пока?) только на 700 МБ. Оба метода являются нарушением стандарта. Либо устройство записи, либо устройство чтения может оказаться не способным работать с более тесной спиралью (см. таблицу совместимости устройств записи и поддерживаемых скоростей записи). Например, моему Plextor PX-W1610TA приходится устанавливать скорость записи для 700 МБ заготовок CD-RW в 8x. Отсутствие места под lead-out может привести к аварийному завершению записи (в этом случае не запишется TOC и диск будет нечитаемым - записывайте его в режиме DAO и TOC будет всегда, ключ -dao в cdrecord), отказу программы начинать запись (используйте ключ -ignsize в cdrecord) или невозможности прочесть получившийся диск (особенно в старых устройствах и здесь уже ничего не поможет). Еще одна проблема вызвана способом адресации блоков на диске (адрес записывается в формате MM:SS:FF относительно начала области данных): во-первых, под число минут отводятся 2 десятичные цифры, что сразу ограничивает объем 99 минутами, во-вторых, блоки в lead-in адресуются отрицательными числами под которые зарезервированы адреса, начиная с 80:00:00. Именно поэтому в ATIP даже 99-минутных заготовок впечатывается длина 79:59:74. И что будет делать устройство записи, программа или устройство чтения встретив два блока с одинаковым адресом неизвестно. В общем, если вам дороги ваши данные - не жадничайте, запишите эти 700 МБ на 2 заготовки.
SCSI, ATAPI (IDE), USB, USB 2.0, FireWire (IEEE 1394), нестандартные и устаревшие (Sony, Panasonic, Mitsumi).
Характеристики устройства:
Большой обзор CD-RW устройств, продающихся на московском рынке, можно найти на IXBT, а мне попадались такие устройства:
Безродный старый CD-ROM boot hdb: CD-ROM CDU711, ATAPI CDROM drive hdb: ATAPI 14X CD-ROM drive, 256kB Cache hdparm Model=CD-ROM CDU711, FwRev=1.0g, SerialNo= DblWordIO=no, OldPIO=3, DMA=yes, OldDMA=2 tDMA={min:120,rec:120}, DMA modes: sword0 sword1 sword2 mword0 mword1 mword2 IORDY=on/off, tPIO={min:180,w/IORDY:120}, PIO modes: mode3 mode4 UDMA modes: mode0 mode1 *mode2
ASUS 50x CD-ROM boot hdc: CD-S500/A, ATAPI CD/DVD-ROM drive hdparm -i Model=CD-S500/A, FwRev=1.4X, SerialNo= IORDY=yes, tPIO={min:227,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2 ATAPI identity
HP CD-Writer Plus 8100i (4/2/24), aka Sony CRX100E boot hdc: Hewlett-Packard CD-Writer Plus 8100, ATAPI CD/DVD-ROM drive scsi0 : SCSI host adapter emulation for IDE ATAPI devices Vendor: HP Model: CD-Writer+ 8100 Rev: 1.0g Type: CD-ROM ANSI SCSI revision: 02 hdparm -i Model=Hewlett-Packard CD-Writer Plus 8100, FwRev=1.0g, SerialNo=PJW1ERKPU1 IORDY=on/off, tPIO={min:180,w/IORDY:180}, tDMA={min:150,rec:150} PIO modes: pio0 pio1 pio2 pio3 DMA modes: sdma0 sdma1 sdma2 mdma0 *mdma1 cdrecord -prcap (макс. скорость зависит от установленной заготовки!) Does read CD-R media Does write CD-R media Does read CD-RW media Does write CD-RW media Does support test writing Does read Mode 2 Form 1 blocks Does read Mode 2 Form 2 blocks Does read digital audio blocks Does restart non-streamed digital audio reads accurately Does not support BURN-Proof (Sanyo) Does read multi-session CDs Does read fixed-packet CD media using Method 2 Does not read CD bar code Does not read R-W subcode information Does read raw P-W subcode data from lead in Does return CD media catalog number Does return CD ISRC information Does not support C2 error pointers Does not deliver composite A/V data Maximum read speed in kB/s: 4234 Current read speed in kB/s: 4234 Maximum write speed in kB/s: 706 Current write speed in kB/s: 706 Buffer size in KB: 1024 ATAPI identity Замечание. Реальная скорость чтения - 8-12. Замечание. UDMA не поддерживается. Не надо ставить на один канал с диском. Замечание. Стандарт ATA времен до ATA-3. Замечание. Какой-то глюк с DMA не позволяет использовать большой кеш (более 4MB).
Mitsumi CR-4804TE (4/4/24) boot ATAPI 24x CD-ROM DVD-RAM CD-R/RW drive, 2048kB Cache Vendor: MITSUMI Model: CR-4804TE, Rev: 2.4C (Philips CDD-522)
Plextor PW-1610A (PlexWriter CD-RW 16/10/40) boot hdc: PLEXTOR CD-R PX-W1610A, ATAPI CDROM drive scsi : 1 host. Vendor: PLEXTOR Model: CD-R PX-W1610A Rev: 1.03 Type: CD-ROM ANSI SCSI revision: 02 sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray hdparm -i Model=PLEXTOR CD-R PX-W1610A, FwRev=1.03, SerialNo= IORDY=on/off, tPIO={min:180,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 udma0 udma1 *udma2 cdrecord -prcap (макс. скорость зависит от установленной заготовки!) Does read CD-R media Does write CD-R media Does read CD-RW media Does write CD-RW media Does support test writing Does read Mode 2 Form 1 blocks Does read Mode 2 Form 2 blocks Does read digital audio blocks Does restart non-streamed digital audio reads accurately Does support BURN-Proof (Sanyo) Does read multi-session CDs Does read fixed-packet CD media using Method 2 Does not read CD bar code Does read R-W subcode information Does return R-W subcode de-interleaved and error-corrected Does read raw P-W subcode data from lead in Does return CD media catalog number Does return CD ISRC information Does support C2 error pointers Does deliver composite A/V data Maximum read speed in kB/s: 7056 Current read speed in kB/s: 7056 Maximum write speed in kB/s: 1764 Current write speed in kB/s: 706 Buffer size in KB: 2048 ATAPI identity Замечание. UDMA включается неописанным нигде переключателем. Замечание. При записи заготовок 700 MB надо устанавливать скорость 8x. Замечание. При записи используется буфер 1162 KB.
Mitsumi CR-48X9TE 24/12/40 boot hdc: CR-48X9TE, ATAPI CD/DVD-ROM drive scsi0 : SCSI host adapter emulation for IDE ATAPI devices Vendor: MITSUMI Model: CR-48X9TE Rev: 1.0B Type: CD-ROM ANSI SCSI revision: 02 sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray hdparm -i Model=CR-48X9TE, FwRev=1.0B, SerialNo=1L08LH0327 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2 cdrecord -prcap (макс. скорость зависит от установленной заготовки!) Does read CD-R media Does write CD-R media Does read CD-RW media Does write CD-RW media Does support test writing Does read Mode 2 Form 1 blocks Does read Mode 2 Form 2 blocks Does read digital audio blocks Does restart non-streamed digital audio reads accurately Does support BURN-Proof (Sanyo) Does read multi-session CDs Does read fixed-packet CD media using Method 2 Does not read CD bar code Does read R-W subcode information Does not return R-W subcode de-interleaved and error-corrected Does read raw P-W subcode data from lead in Does return CD media catalog number Does return CD ISRC information Does not support C2 error pointers Does not deliver composite A/V data Maximum read speed in kB/s: 7056 Current read speed in kB/s: 7056 Maximum write speed in kB/s: 4234 Current write speed in kB/s: 4234 Buffer size in KB: 16384 ATAPI identity Замечание. При записи используется буфер 13008 KB. Замечание. Некачественные диски читает плохо, установка скорости не помогает. Замечание. Шумный (40x все-таки). Замечание. Медленное позиционирование. Замечание. Средняя скорость записи на 12x заготовку - 2125KB/s + 30s фиксация. Замечание. Средняя скорость записи на 24x заготовку - 2918KB/s + 26s фиксация. Замечание. Средняя скорость перезаписи на 12x заготовку - 1730KB/s + 30s быстрая очистка + 30s фиксация. Замечание. Средняя скорость чтения - 4071KB/s (и "штамповка", и CD-RW).
Для ATAPI CD-ROM config.sys должен содержать строки:
LASTDRIVE=Z DOS=HIGH DEVICEHIGH C:\GSCDROM.SYS /D:MSCD000 /P:1/S:1 /V
Вместо GSCDROM.SYS (драйвер от Goldstar CD-ROM) можно использовать тот драйвер, что вы получили с вашим CD-ROM (CD-RW), например, Atapi_hp.sys (HP CD-Writer) или oakcdrom.sys (из поставки MS Windows 9x).
Для SCSI CD-ROM надо использовать тот набор драйверов, который вы получили со SCSI-контроллером, например для моего NCR 53C810:
DEVICE=C:\PROSCSI\DOSCAM.SYS DEVICEHIGH=C:\PROSCSI\CDROM.SYS /D:PROCD01
autoexec.bat должен содержать строки (значение ключа /D должно соответствовать config.sys, в качестве буквы диска используется R):
LH MSCDEX /S /V /L:R /D:MSCD000
И, в заключение, запомните: пишется hard disk, но compact disc.