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

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

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

Хотелось бы сделать небольшое вступление к данному разделу, а также несколько важных замечаний. Дело в том, что драйвер является довольно специфичным программным продуктом и по своей значимости может немногим уступать даже исходному коду операционной системы. Компании, выпускающие те или иные устройства, а также компании, которые специализируются на разработке драйверов, держат исходные коды разработанных драйверов и спецификации устройств в секрете и не афишируют их. Тем не менее, между драйверами, предназначенными для одного класса устройств, например устройств, подключаемых по универсальной последовательной шине USB, можно провести некоторые аналогии, хоть и весьма поверхностные. И все же я хочу, чтобы читатель понимал, что хоть устройства и подключаются к ПК через единый интерфейс, технологически между ними может существовать целая пропасть, вследствие которой функционирование и поведение драйверов может в корне отличаться.

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

C учетом выше изложенного, вместо рассмотрения драйверов для конкретных USB устройств мы рассмотрим общие особенности USB в целом. Нужно отметить, что настоящая спецификация USB достаточно объёмна и сложна, поэтому мы будем рассматривать лишь аспекты, которые необходимы для данного раздела.

Шина USB (Universal Serial Bus, универсальная последовательная шина) появилась в начале 1996 года как попытка решения проблемы множествен­ности интерфейсов. Действительно устройства можно подключать самые разнообразные, данные передаются последовательно, а вот физическое подключение на шину не похоже. Шина это совокупность параллельных проводников, к которым подсоединяются несколько устройств, например ISA или PCI [1.1].

Обычная архитектура USВ подразумевает подключение одного или несколь­ких USB-устройств к компьютеру, который в такой конфигурации является главным управляющим устройством и называется хостом. Подклю­чение USB-устройств к хосту производится с помощью кабелей. Для соеди­нения компьютера и USB-устройства используется хаб (рис. 1.1). Компьютер имеет встроенный хаб, называемый корневым хабом.

Рисунок 1.1 − Подклю­чение USB-устройств к хабу

Физическая архитектура USB определяется следующими правилами [1.2]:

  • устройства подключаются к хосту;

  • физическое соединение устройств между собой осуществляется по топологии многоярусной звезды, вершиной которой является корневой хаб;

  • центром каждой звезды является хаб.

Рисунок 1.2 − Физическая архитектура USB

Детали физической архитектуры скрыты от прикладных программ в системном программном обеспечении (ПО), поэтому логическая архитектура выглядит как обычная звезда (рис. 1.3), центром которой является прикладное ПО, а вершинами — набор конечных точек.

Рисунок 1.3 − Логическая архитектура USB

Спецификация USВ достаточно жестко определяет набор свойств, которые должно поддерживать любое USB-устройство [1.3]:

  • адресация — устройство должно отзываться на назначенный ему уникальный адрес и только на него;

  • конфигурирование — после включения или сброса устройство должно предоставлять нулевой адрес для возможности конфигурирования его портов;

  • передача данных — устройство имеет набор конечных точек для обмена данными с хостом. Для конечных точек, допускающих разные типы пе­редач, после конфигурирования доступен только один из них;

  • управление энергопотреблением — любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. При конфи­гурировании устройство заявляет свои потребности тока, но не более 500 мА. Если хаб не может обеспечить устройству заявленный ток, уст­ройство не будет использоваться;

  • приостановка — USB-устройство должно поддерживать приостановку (suspended mode), при которой его потребляемый ток не превышает 500 мкА. USB-устройство должно автоматически приостанавливаться при прекращении активности шины;

  • удаленное пробуждение — возможность удаленного пробуждения (remote wakeup) позволяет приостановленному USB-устройству подать сигнал хосту, который тоже может находиться в приостановленном состоянии. Возможность удаленного пробуждения описывается в конфигурации USB-устройства. При конфигурировании эта функция может быть за­прещена.

Разработчики шины ориентировались на создание интерфейса, обладающего следующими свойствами [1.3]:

  • легкореализуемое расширение периферии ПК;

  • дешевое решение, позволяющее передавать данные со скоростью до 12 Мбит/с (480 Мбит/с для USB 2.0);

  • полная поддержка в реальном времени голосовых, аудио- и видеопотоков;

  • гибкость протокола смешанной передачи изохронных данных и асинхронных сообщений;

  • интеграция с выпускаемыми устройствами;

  • охват всевозможных конфигураций и конструкций ПК;

  • обеспечение стандартного интерфейса, способного быстро завоевать рынок;

  • создание новых классов устройств, расширяющих ПК.

Спецификация USB определяет следующие функциональные возможности интерфейса [1.3]:

  • простота использования для конечного пользователя;

  • широкие возможности работы;

  • равномерная пропускная способность;

  • гибкость и надежность;

  • выгода для разработчиков;

  • дешевая реализация.