- •Введение 5
- •1 Исследовательский раздел
- •1.1 Анализ существующих аналогичных систем
- •1.1.1 Обзор архитектуры устройств usb
- •1.2 Обоснование выбора программно-аппаратных средств
- •1.3 Постановка задачи
- •1.4 Развернутое техническое задание
- •1.4.1 Общие сведения
- •2.1.1 Основные дескрипторы usb драйвера
- •2.1.1.1 Дескриптор устройства
- •2.1.1.2 Дескриптор расширения устройства
- •2.1.1.3 Дескриптор конфигурации
- •2.1.1.4 Дескриптор интерфейса
- •2.1.1.5 Дескриптор конечной точки
- •2.2 Разработка функциональной схемы драйвера
- •2.2.1 Драйвер в иерархии wdm
- •2.2.2 Уровни обмена данными usb устройств
- •2.2.3 Архитектура системного драйвера usb
- •2.2.4 Основные рабочие процедуры драйвера
- •2.2.5 Управление перемещаемостью кода в драйвере
- •2.3 Разработка алгоритмического обеспечения
- •2.3.1 Инициализация драйвера
- •2.3.3 Обработка расширенных запросов ioctl
- •2.3.4 Поддержка запросов Plug and Play
- •2.3.5 Управление питанием
- •2.3.5.1 Обработка запросов irp_mj_power
- •2.3.6 Процедура деинициализации драйвера
- •2.4 Разработка программного обеспечения
- •2.4.1 Процедура DriverEntry
- •2.4.2 Процедура DriverUnload
- •2.4.3 Процедура AddDevice
- •2.4.4 Процедура передачи запроса usbd
- •2.4.5 Обработчики usbCreate и usbClose
- •2.4.6 Обработчик ConfigureDevice
- •2.4.7 Обработчики запросов на чтение и запись
- •3 Технологический раздел
- •3.1 Технология разработки драйверов для операционных систем семейства Windows
- •3.1.1 Архитектура Windows Driver Model
- •3.1.2 Выбор типа разрабатываемого драйвера
- •3.1.3 Разработка usb драйвера
- •3.2 Технология отладки драйверов в операционных системах семейства Windows
- •3.2.1 Основные отладочные тесты
- •3.2.2 Основные «проблемы», возникающие при отладке драйвера
- •3.2.2.1 Аппаратные проблемы
- •3.2.2.2 Программные проблемы
- •3.2.3 Основные отладчики и утилиты для проверки драйвера
- •3.2.3.1 Отладчик WinDbg
- •3.2.3.2 Driver Verifier
- •3.2.4 Общие приемы отладки драйвера
- •3.2.4.1 Установка фиксированных точек прерывания
- •3.2.4.2 Промежуточный вывод на экран
- •3.2.4.3 Сохранение отладочного кода в исходном тексте драйвера
- •3.2.4.4 Перехват некорректных условий
- •3.2.4.5 Обнаружение утечек памяти
- •3.2.5 Замечания по отладке драйверов
- •4 Безопасность жизнедеятельности
- •4.1 Анализ эргономических параметров рабочего места пользователя пэвм
- •4.1.1 Общие эргономические аспекты рабочего места
- •4.2 Организация рабочего места пользователя с учётом эргономических требований
- •4.2.1 Организация рабочего стола
- •4.2.2 Рабочее кресло
- •4.2.3 Работа с клавиатурой и мышью
- •4.2.4 Расположение и эргономические характеристики монитора
- •4.2.5 Внутренний объем
- •4.2.6 Рабочая поза пользователя пэвм
- •4.3 Экологическая оценка и переработка узлов компьютерной техники содержащих платину
- •4.3.1 Извлечение платины из отработанных катализаторов
- •4.3.2 Извлечение платины из радиооборудования и сплавов для электрических контактов
- •5 Экономический раздел
- •5.1 Планирование разработки драйвера с построением графика выполнения работ
- •5.1.1 Определение этапов и работ по созданию программного продукта
- •5.1.2 Расчет трудоемкости и продолжительности работ
- •5.1.3 Построение графика выполнения работ
- •5.2 Расчет затрат на разработку
- •5.3 Оценка экономической эффективности проекта
- •1 К исследовательскому разделу
- •2 К специальному разделу
- •3 К технологическому разделу
- •4 К разделу «Безопасность Жизнедеятельности»
- •5 К экономическому разделу
- •Приложение а Установка драйвера с помощью inf-файла
- •Приложение б Графические материалы
1.3 Постановка задачи
Разработать драйвер автоматизированного устройства хранения компакт дисков для операционной системы семейства Windows, который обеспечивает:
ответы на запросы ввода/вывода;
взаимодействует с основными сервисами системы;
обеспечивает поддержку Plug and Play;
обеспечивает управление энергопотреблением.
Драйвер автоматизированного устройства хранения компакт дисков должен быть разработан с использованием Windows Driver Development Kit компании Microsoft ( набор из средств разработки, заголовочных файлов, библиотек, утилит, программного кода примеров и документации, который позволяет программистам создавать драйверы) в интегрированной среде разработки Microsoft Visual Studio 2010 и работать в операционной системе Microsoft Windows XP SP2 и выше.
1.4 Развернутое техническое задание
1.4.1 Общие сведения
Драйвер автоматизированного устройства хранения компакт дисков предназначен в первую очередь для того, чтобы операционная система и, в частности, некоторые приложения могли правильно работать с данным устройством (принимать и отправлять данные от устройства и т.п.). Устройство автоматизированного хранения компакт дисков предназначено для любого пользователя. Кроме того, разрабатываемый драйвер должен работать практически на любой конфигурации стационарного персонального компьютера или портативных ПК (ноутбуки и т.п.).
Драйвер автоматизированного устройства хранения компакт дисков позволит операционной системе не только правильно работать с данным устройством, но и в случае непредвиденных ошибок приложений, работающих с устройством, избежать «краха» самой операционной системы. Кроме того, данный драйвер должен облегчить работу программистов, которые разрабатывают приложения, работающие с данным устройством.
1.4.2 Назначение
Данный драйвер реализует в целом интерфейс, поддерживающий требования устройства автоматизированного хранения компакт дисков.
1.4.3 Требования к надежности
Драйвер должен предусматривать защиту от некорректных действий пользователя при работе с приложениями, использующими устройство автоматизированного хранения компакт дисков, а так же и непосредственно с самим устройством. Драйвер также не должен приводить к зависанию или нестабильной работе операционной системы, под управлением которой работает.
1.4.4 Требования к составу и параметрам технических средств
Драйвер должен работать на IBM-совместимых персональных компьютерах. Минимальная конфигурация ПК: тип процессора – Pentium III и выше; объем ОЗУ – 512 Мб и выше. Персональный компьютер также должен быть оснащен, по крайней мере, одним или более USB-портами.
1.4.5 Требования к информационной и программной совместимости
Драйвер должен работать под операционной системой семейства Windows, начиная с Windows XP SP2 и выше.
1.4.6 Требования к программной документации
Прилагаемая документация к драйверу должна включать все необходимые сведения, чтобы конечный пользователь мог установить и использовать драйвер на своём ПК.
2 Специальный раздел
2.1 Разработка структурной схемы драйвера
Разработка структурной схемы программы является одним из наиболее важных этапов в процессе разработки программного обеспечения, неправильный выбор архитектуры ведет к риску срыва всего проекта в будущем. Данный этап является базовым для всего процесса разработки. Продуманная архитектура позволяет легко модифицировать программный продукт, если произойдут изменения требований к нему.
Архитектура - это набор значимых решений по поводу организации системы программного обеспечения, набор структурных элементов и их интерфейсов, при помощи которых компонуется система, вместе с их поведением, определяемым во взаимодействии между этими элементами, компоновка элементов в постепенно укрупняющиеся подсистемы, а также стиль архитектуры который направляет эту организацию - элементы и их интерфейсы, взаимодействия и компоновку [2.1].
Под архитектурой понимается совокупность компонентов программы, а также связи и способы организации информационного обмена между ними. Логическая структура описывает объекты, которые связаны с другими объектами. Она определяет связи между ними [2.1].
Физическая структура описывает, где объект находится в действительности, отражая, например, путь к каталогу объекта в файловой системе или его расположение в базе данных [2.1].
Исходя из анализа требований, предъявляемых к системе, определяется набор всех функций, выполнение которых программа должна поддерживать. Далее полученные функции объединяются в логически связанные между собой группы. В процессе анализа функций и на первых стадиях проектирования архитектуры могут быть выявлены дополнительные функции, которые необходимо включить в разрабатываемую программу.