http:// Биография / Реферат выпускной работы / Библиотека / Работы / Статьи / Ссылки / Поиск по теме / Анимации магистров

Донецкий национальный технический университет
студент группы СП-2000м
Николаев Николай Николаевич
Тема выпускной работы
Программа для записи оптических носителей данных. Исследование режимов записи и файловых систем ISO9660 и UDF.


Актуальность

        Перед каждым программистом рано или поздно встают вопросы использования аппаратных ресурсов компьютера, поскольку без этого трудно написать серьезную игровую или коммерческую программу. Каждый решает эту проблему по-разному: кто-то использует готовые программные модули сторонних производителей, кто-то садится за ассемблер, а многие довольствуются скромными возможностями программного интерфейса (WinAPI 32) фирмы Microsoft. В Интернете на сайтах, посвященных программированию, начинающие (и не только) программисты постоянно задают одни и те же вопросы: как открыть (закрыть) лоток CD-ROM, как изменить скорость чтения CD-ROM, как считать данные с аудиодиска в файл или получить информацию о диске, как написать свой проигрыватель дисков без использования чужих библиотек, как скопировать данные с любого типа диска на винчестер. И это перечислены наиболее часто задаваемые вопросы, а сколько их еще звучало и звучит на различных форумах, не перечесть. [1]
        В связи с чем актуальность данной темы только больше возрастает и в практическом и учебном процессе результаты работы будут востребованы. В основу работы положено изучение программного интерфейса ASPI (Advanced SCSI Programming Interface), с помощью которого можно эффективно управлять различными периферийными устройствами. Данный интерфейс (ASPI) разработан фирмой Adaptec в начале 90-х годов и был призван упростить (унифицировать) доступ к широкому спектру разнообразного оборудования. Попытка оказалась удачной, и в настоящее время интерфейс ASPI (в виде набора файлов) входит в стандартную поставку следующих версий семейства Windows: Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP. Этот интерфейс обеспечивает универсальную связь и обмен данными с устройством, независимо от того, к какому типу (принтер, сканер или CD-ROM) данное устройство относится. Для правильной работы необходимо только наличие драйвера конкретного устройства, поставляемого производителем. Интерфейсом устройств, который поддерживается программным расширением ASPI, является SCSI (Small Computer System Interface — системный интерфейс малых вычислительных систем). Однако благодаря последним разработкам появилась возможность использования программного интерфейса ASPI для управления устройствами с интерфейсом IDE (Integrated Drive Electronics - встроенный интерфейс накопителей), в частности приводами CD-ROM. Эта особенность позволяет существенно расширить диапазон применения интерфейса ASPI.
        Расширение ASPI представляет собой набор файлов, которые выполняют всю черновую работу по обмену данными с устройством. Пользователь же работает с библиотечными файлами ASPI, вызывая определенные функции. Следует отметить, что библиотеки интерфейса ASPI входят в состав современных операционных систем Windows. Для каждой системы предназначен свой набор файлов. Получить их можно абсолютно свободно, зайдя на сайт фирмы Adaptec: www.adaptec.com. С этого же сайта можно скачать специальные утилиты для проверки установленной версии ASPI, а также обновления ASPI для определенной операционной системы. Для коммерческого использования ASPI следует связаться (по электронной почте) с менеджером фирмы Adaptec. Адрес почтового ящика и подробная информация о лицензировании интерфейса ASPI, распложены на сайте, указанном выше. Процедура регистрации не сложная, но необходимая вещь, поскольку все авторские права на программный интерфейс ASPI принадлежат фирме Adaptec.

Программный интерфейс ASPI

        Для ускорения и упрощения разработки управляющих программ (драйверов) под операционную систему Windows (и не только) и был разработан (фирмой Adaptec) программный интерфейс ASPI (Advanced SCSI Programming Interface - расширенный интерфейс программирования SCSI), упрощающий разработку переносимых приложений управления различными устройствами с одной платформы Win32 на другую. Интерфейс ASPI представляет собой программную оболочку (надстройку), которая объединяет в себе соглашение о вызовах функций и установленный набор команд. Этот интерфейс призван посылать и обрабатывать команды SCSI, используя любой доступный (установленный) в системе контроллер SCSI, поддерживающий такую возможность. ASPI интерфейс стал промышленным стандартом программной оболочки для следующих операционных систем: DOS, Windows, OS/2, Netware В данной работе описано применение ASPI только для семейства систем Windows.

Лазерные диски и дисководы

         При работе с лазерными дисками используется не магнитный, а оптический способ записи и считывания данных при помощи полупроводникового лазера (от которого данный тип носителей и получил свое название). По своему внутреннему устройству лазерный дисковод похож на дисковод для гибких дисков: лазер перемещается вдоль радиуса диска, как показано на рис. 1.1. Оптические технологии, однако, позволяют ввести я систему различные способы автоподстройки (например, самофокусировку лазерного луча), что обеспечило лазерным диководам при сходной конструкции гораздо более высокую плотность хранения информации.С точки зрения программиста, существенной особенностью лазерных дисков является использование одной спиральной дорожки вместо множества концентрических дорожек на магнитных дисках. Спиральная дорожка обеспечивает лазерном дискам важное преимущество при воспроизведении аудио- и видеозаписей - непрерывность потока информации. С другой стороны, такая форма дорожки создает проблемы, когда необходимо вести запись отдельных порций данных на диск при наличии между операциями записи больших временных промежутков (например, при выполнении периодической архивации данных на персональном компьютере).
         Размещенные на дорожке секторы данных нумеруются последовательно, начиная от центра диска. Для адресации секторов на дорожке допускается использование двух различных режимов - физического и логического.

В настоящее время применяются лазерные диски двух типов:
- CD (Compact Disk) — компакт-диск (лазерный диск первого поколения);
- DVD (Digital Versatile Disk) — видеодиск (лазерный диск второго поколения);
- BD (Blue-Ray Disk) — диск третьего поления.

Компакт-диски позволяют хранить информацию только с одной стороны носителя и допускают считывание и запись информации только в одном направлении. Видео диски имеют большую, чем компакт-диски, плотность записи информации и могут быть как односторонними, так и двусторонними. Некоторые модели дисков допускают считывание и запись в двух направлениях.

Структура данных на компакт-дисках

        Для встроенного контроллера дисковода единицей представления данных на компакт-диске является так называемый "малый кадр" (Small Frame). Запись данных на диск выполняется в виде непрерывного потока малых кадров. Каждый байт данных малого кадра записывается на диск в 14-битном коде EFM; всего к малом кадре 588 EFM-битов.
Таблица 2.1. - Формат малого кадра

        Формат малого кадра показан в таблице 2.1. Как видно из таблицы, малый кадр содержит код синхронизации, байт данных субканала и 24 байта данных основного канала (две группы по 12 байт, каждая из которых защищена помехоустойчивым корректирующим кодом Рида-Соломона CIRC). Первоначально компакт-диски предназначались для звукозаписи: основной канал хранил данные для цифро-аналоговых преобразователей правого и левого аудиоканалов (отсюда разделение данных основного канала на две 12-байтные подгруппы), а субканал содержал вспомогательную символьно-цифровую информацию.
        Малые кадры сами по себе для программиста недоступны: минимальной адресуемой единицей данных на компакт-диске является кадр (Frame). Один кадр компакт-диска состоит из 98 последовательно расположенных малых кадров. Кадр содержит 24 х 98 = 2352 байт данных основного канала и 98 байт субканала (2 байта синхронизации и 96 байт данных).

Файловые системы лазерных дисков

        ISO 9660 почти повсеместно используется как основная файловая система для хранения данных на CD-ROM независимо от используемой платформы. Если у вас нет веской причины для использования файловой структуры определенной операционной системы или если вам не нужно разрабатывать собственное приложение для специальной цели, рекомендуется создавать все CD-ROM, используя ISO 9660. Для обеспечения независимости от платформ ISO 9660 налагает ряд ограничений на имена файлов (с правилами, касающимися разрешенных символов и длин имен файлов) и содержит другие соглашения по файловым системам. ISO 9660 представляет собой единую файловую систему, предназначенную для использования под управлением многих различных операционных систем. В отличие от обычной файловой системы, которая должна динамически обновляться и изменяться, когда операционная система добавляет или удаляет файлы, ISO 9660 описывает среду только для чтения, а именно CD-ROM.
        Большим достижением в обеспечении совместимости в технологии DVD стала принятая в 2000 году единая файловая система MicroUDF. Файловая система MicroUDF — это, адаптированная для применения в DVD, версия файловой системы UDF (Universal Disk Format), которая, в свою очередь, основана на международном стандарте ISO-13346. Эта файловая система постепенно идет на смену устаревшей ISO9660, созданной в свое время для использования в компакт-дисках. На переходный период (пока не выйдут из обращения компьютерные устройства и диски, работающие в формате ISO9660) будет использоваться файловая система UDF Bridge, которая является некоторой комбинацией MicroUDF и ISO9660. Для записи Audio/Video DVD дисков может использоваться только MicroUDF.
Возможности файловой системы MicroUDF следующие:
- независимость от используемой программно-аппаратной платформы (в этом смысле UDF — оптимальный выбор в архивных системах);
- большая емкость. Весь диск может быть представлен в виде единственного тома;
- оптимальная скорость передачи. Скорость чтения и записи данных в формате UDF может быть выше, чем производительность многих "родных" файловых систем, когда предаются большие файлы (например, в мультимедийных системах)
- максимальные возможные размеры файла;
- использование шрифтового формата UNICODE, что обеспечивает эффективную интернациональную поддержку;
- поддержка расширенных файловых атрибутов, что используется в некоторых "родных" операционных системах;
- поддержка длинных имен файлов с расширением ограничений операционной системы. Максимальная длина имени файла 255 символов;
- взаимозаменяемость DVD дисков в бытовой электронике и компьютерных системах.
        При использовании MicroUDF на одном DVD-диске можно одновременно хранить видеофильмы, аудиозаписи, оцифрованные фотографии и компьютерные файлы. Этим обеспечивается межплатформенная совместимость, т.е DVD-диск становится единым носителем для Macintosh, DOS/Windows, OS/2, UNIX.
        Детальную информацию по файловой системе UDF можно найти на сайте www.osta.org

Набор команд для работы с дисководами CD и DVD

        Перечень команд, которые могут быть использованы при работе с CD- и DVD-дисководами, приведен в табл. 4.1. В графе "Тип" используются следующие обозначения
" Л — обязательная команда для работы с аудио-CD;
" В — обязательная команда для работы с CD-дисками;
" С — обязательная команда для работы с механизмом смены дисков;
" D — обязательная команда для работы с DVD-дисками;
" Е — обязательная команда для работы с дисками CD-RW;
" К — обязательная команда для работы с дисками DVD-R;
" М — команда, обязательная для всех логических устройств;
" О — дополнительная команда
" R — обязательная команда для работы с дисками CD-R и CD-RW
" W — обязательная команда для работы с дисками DVD-RW

Выполнение команд

        Для выполнения AK необходимо (работа без прерываний):
1. Выбрать соответствующее устройство (Master/Slave) в порту 176h
2. Дождаться готовности (BSY и DRQ = 0). Драйверы ждут до 10-20 секунд. Если готовности нет - можно попытаться сбросить привод.
3. Установить желательный размер блока в регистрах 174h (мл.) и 175h (ст. часть) Если команда не возвращает данные, это можно и не делать. Для DMA-шных обменов в этот момент надо установить и другие регистры.
4. В 177h записать команду A0h. В ответ на это устройство может установить BSY на время подготовки к приему AP.
5. Дождаться требования данных (DRQ=1 и BSY=0). (обычно ждать не надо - драйв выставляет требование сразу). При этом в регистре 172h два младших бита должны иметь значение 01.
6. В режиме словной пересылки записать в порт 170h 6 слов AP.
7. Дождаться готовности (BSY=0). (В зависимости от типа команды и других обстоятельств, драйв может выполнять команду за время от тысячных долей секунды до десятков секунд (Если, например, плохо читается сектор диска).
8. Проверить бит DRQ и если он установлен, то считать из регистров 174h и 175h длину передаваемого блока.
9. Если длина =0 или бит DRQh в 177h не установлен - п. 11, иначе произвести обмен данными через порт 170h. При этом два младших бита регистра 172h могут принимать значение 00 (при передаче данных в CD) или 02 (при приеме данных из CD).
10.Если команда не закончила обмен (бит BSY=1), то повторить с п 7.
11.После завершения команды два младших бита регистра 172 обычно принимают значение 03, что означает готовность драйва к выдаче статуса завершения команды. При этом можно проанализировать результат завершения команды (регистры 177h и 171h). При ошибках можно использовать ATAPI-функцию 03h для получения более детальной информации.

Выводы

        Результаты данной работы могут быть использованы как на практике, так и в учебном процессе. С экономической точки зрения программы для записи данных могут использоваться для сохранения баз данных и разного вида информации для большей надежности. А поскольку нынешнее развитие техники в области оптических носителей и все быстро растущие потребности в объемных носителях для резервного копирования данных, растут. То данная программа актуальна на данном этапе развития техники и будет актуальна в будущем, из-за гибкой системы совместительства с оптическими носителями.
       Работу нельзя считать завершенной, так как в ней лишь рассматривается теоретическая часть и некоторые возможные пути решения на языках программирования. Из-за большого объема информации который нужно обработать многое не вошло в работу, а предполагается расширить и дополнить данную тему в магистерской работе.

П Е Р Е Ч Е Н Ь С С Ы Л О К

1. Всеволод Несвижский "Программирование устройств SCSI и IDE", Санкт-Петербург, 2003 г., 585 стр.
2. Владимир Кулаков "Программирование дисковых подсистем", Санкт-Петербург 2002 г., 767 стр.
3. В. В. Подбельский "Язык Си++", Москва 2001 г., 557 стр.
4. Б. Керниган, Д. Ритчи "Язык программирования Си", Санкт-Петербург 2001 г., 351 стр.
5. Бьерн Страуструп "Язык программирования С++", Москва 2004 г., 1098 стр.
А так же использованные и необходимые материалы вы найдете в разделе — Ссылки.


http:// Биография / Реферат выпускной работы / Библиотека / Работы / Статьи / Ссылки / Поиск по теме / Анимации магистров