Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДП.docx
Скачиваний:
11
Добавлен:
23.09.2019
Размер:
4.64 Mб
Скачать

Содержание

Введение 5

1 Исследовательский раздел 7

1.1 Анализ существующих аналогичных систем 7

1.1.1 Обзор архитектуры устройств USB 7

1.2 Обоснование выбора программно-аппаратных средств 11

1.3 Постановка задачи 15

1.4 Развернутое техническое задание 16

1.4.1 Общие сведения 16

1.4.2 Назначение 16

1.4.3 Требования к надежности 16

1.4.4 Требования к составу и параметрам технических средств 17

1.4.5 Требования к информационной и программной совместимости 17

1.4.6 Требования к программной документации 17

2 Специальный раздел 18

2.1 Разработка структурной схемы драйвера 18

2.1.1 Основные дескрипторы USB драйвера 19

2.1.1.1 Дескриптор устройства 19

2.1.1.2 Дескриптор расширения устройства 22

2.1.1.3 Дескриптор конфигурации 25

2.1.1.4 Дескриптор интерфейса 27

2.1.1.5 Дескриптор конечной точки 29

2.2 Разработка функциональной схемы драйвера 31

2.2.1 Драйвер в иерархии WDM 31

2.2.2 Уровни обмена данными USB устройств 32

2.2.3 Архитектура системного драйвера USB 35

2.2.4 Основные рабочие процедуры драйвера 36

2.2.5 Управление перемещаемостью кода в драйвере 37

2.3 Разработка алгоритмического обеспечения 40

2.3.1 Инициализация драйвера 40

2.3.2 Обработка запросов ввода\вывода 42

2.3.3 Обработка расширенных запросов IOCTL 46

2.3.4 Поддержка запросов Plug and Play 47

2.3.5 Управление питанием 49

2.3.5.1 Обработка запросов IRP_MJ_POWER 51

2.3.6 Процедура деинициализации драйвера 52

2.4 Разработка программного обеспечения 54

2.4.1 Процедура DriverEntry 54

2.4.2 Процедура DriverUnload 56

2.4.3 Процедура AddDevice 56

2.4.4 Процедура передачи запроса USBD 60

2.4.5 Обработчики USBCreate и USBClose 62

2.4.6 Обработчик ConfigureDevice 66

2.4.7 Обработчики запросов на чтение и запись 68

3 Технологический раздел 73

3.1 Технология разработки драйверов для

операционных систем семейства Windows 73

3.1.1 Архитектура Windows Driver Model 73

3.1.2 Выбор типа разрабатываемого драйвера 75

3.1.3 Разработка USB драйвера 78

3.2 Технология отладки драйверов в операционных

системах семейства Windows 79

3.2.1 Основные отладочные тесты 81

3.2.2 Основные «проблемы», возникающие при отладке драйвера 82

3.2.2.1 Аппаратные проблемы 83

3.2.2.2 Программные проблемы 83

3.2.3 Основные отладчики и утилиты для проверки драйвера 86

3.2.3.1 Отладчик WinDbg 86

3.2.3.2 Driver Verifier 87

3.2.4 Общие приемы отладки драйвера 93

3.2.4.1 Установка фиксированных точек прерывания 93

3.2.4.2 Промежуточный вывод на экран 94

3.2.4.3 Сохранение отладочного кода в исходном тексте драйвера 94

3.2.4.4 Перехват некорректных условий 95

3.2.4.5 Обнаружение утечек памяти 96

3.2.5 Замечания по отладке драйверов 98

4 Безопасность жизнедеятельности 99

4.1 Анализ эргономических параметров рабочего места пользователя ПЭВМ 99

4.1.1 Общие эргономические аспекты рабочего места 100

4.2 Организация рабочего места пользователя с

учётом эргономических требований 102

4.2.1 Организация рабочего стола 102

4.2.2 Рабочее кресло 104

4.2.3 Работа с клавиатурой и мышью 105

4.2.4 Расположение и эргономические характеристики монитора 106

4.2.5 Внутренний объем 108

4.2.6 Рабочая поза пользователя ПЭВМ 109

4.3 Экологическая оценка и переработка узлов

компьютерной техники содержащих платину 110

4.3.1 Извлечение платины из отработанных катализаторов 111

4.3.2 Извлечение платины из радиооборудования

и сплавов для электрических контактов 112

5 Экономический раздел 114

5.1 Планирование разработки драйвера с

построением графика выполнения работ 114

5.1.1 Определение этапов и работ по созданию программного продукта 114

5.1.2 Расчет трудоемкости и продолжительности работ 116

5.1.3 Построение графика выполнения работ 120

5.2 Расчет затрат на разработку 122

5.3 Оценка экономической эффективности проекта 132

Заключение 137

Список использованных источников 139

Приложение А. Установка драйвера с помощью INF-файла 142

Приложение Б. Графические материалы 143

Введение

Как известно большинству рядовых пользователей ПК, ядро той или иной операционной системы не предназначено для самостоятельного взаимодействия с устройствами. Для обнаружения подсоединенных устройств, обмена с ними информацией и предоставления сервисов, а также для взаимодействия с приложениями пользовательского режима, ядро операционной системы полагается именно на драйверы устройств. Ни одно устройство, подключенное к компьютеру, пусть это даже всем привычная мышь или клавиатура, не сможет работать без соответствующего драйвера. Выражаясь более простым языком, без драйверов компьютер просто не узнает о том, что вы к нему что-то подключили и уж тем более о том, как работать с данным устройством. Таким образом, любая операционная система предоставляет абстрактный интерфейс для поддержки устройств, называемый драйверная модель. Собственно, задача разработчика драйвера как раз и состоит в том, чтобы реализовать данный интерфейс, который будет поддерживать конкретные требования аппаратного устройства. Несмотря на то, что разработка драйверов является весьма сложной и трудоёмкой задачей даже по сегодняшним меркам, она никогда не потеряет своей актуальности. Это также справедливо, как и то, что Assembler никогда не потеряет актуальности, ибо является языком процессора.

В данном дипломном проекте разрабатывается драйвер автоматизированного устройства хранения компакт дисков для операционной системы семейства Windows, который обеспечивает ответы на запросы ввода/вывода, взаимодействует с основными сервисами системы, а также обеспечивает поддержку Plug and Play и управление энергопотреблением.

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

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

В технологическом разделе описывается технология разработки и отладки драйверов для операционных систем семейства Windows.

Экономический раздел посвящен планированию разработки системы, построению ленточного графика и расчету экономической эффективности проекта.

При разработке программного продукта разработчик значительное время проводит непосредственно на рабочем месте за ПЭВМ. В связи с этим, правильная планировка, соответствующая эргономическим требованиям - это залог эффективной и производительной работы. Благодаря соблюдению норм эргономики может быть сэкономлено до 30% рабочего времени. Таким образом, в разделе безопасность жизнедеятельности разрабатываются мероприятия по организации рабочего места пользователя ПЭВМ с учётом эргономических требований. При этом проводится анализ эргономических параметров рабочего места пользователя ПЭВМ. Так же рассматриваются экологические вопросы, связанные с необходимостью переработки узлов компьютерной техники, содержащих платину.