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

Но мне интересно: существуют ли особые требования к аппаратному и / или программному обеспечению, чтобы разрешить работу Plug and Play? Возьмите пример с USB; Существуют ли какие-либо требования к USB-накопителям или USB-дискам для использования стандартных драйверов Microsoft?

2 ответа2

1

"Plug and Play" - это термин, специфичный для Windows, который первоначально означал метод, который позже ISA, а затем устройства PCI позволяли операционной системе выбирать ресурсы, которые они использовали. BIOS может сделать это и для DOS, или отойти в сторону и позволить Windows полностью это сделать.

Ресурсы: A) адреса памяти, B) адреса ввода / вывода, C) IRQ и / или D) каналы DMA. Каждое, несколько или все из них могут использоваться устройством для связи с процессором.

Поэтому изначально драйвер "Plug and Play" был драйвером, который мог понять, как инициализировать устройство, то есть настроить его так, чтобы он брал ресурсы, которые не использовалось ни одним другим устройством.

Еще одна важная часть Plug and Play - это стандартный метод идентификации устройства. PCI (и, возможно, ISAPNP) предусматривают, чтобы у каждого устройства был уникальный поставщик и идентификатор устройства. Это перенесено на USB. Таким образом, операционная система хоста может выяснить, что представляет собой устройство, и загрузить соответствующий драйвер.

Теперь, когда мы переходим к устройствам, которые предназначены для "горячей замены", это немного отличается, но, очевидно, термин "Plug and Play" все еще используется для его описания. Большинство устройств с возможностью "горячей" замены "размещаются" на устройствах без возможности "горячей" замены. Устройства USB "размещаются" на контроллере USB, который сам по себе является устройством PCI, потребляющим один или несколько ресурсов, обычно назначаемых через Plug and Play. Общение с устройствами через шину USB подразумевает прохождение через USB-контроллер. Аналогичная ситуация существует для устройств SCSI, IDE и SATA.

Таким образом, для работы с возможностью "горячей" замены драйверу «хост-контроллера» необходим механизм, который сообщает драйверам, представляющим устройства "выше", о том, что происходит, то есть драйверу контроллера USB нужен способ сообщить драйверу запоминающего устройства USB, что устройство было отключено. "Верхний" драйвер должен иметь код, который может корректно завершаться, когда его просят удалить, вместо того, чтобы ожидать, что он останется резидентом до перезагрузки.

Большинство типов шин, таких как USB, SCSI, SATA, регулируются стандартами, которые драйверы должны распознавать и реализовывать.

На аппаратном уровне большинство устройств с возможностью «горячей» замены спроектированы так, что часть разъема разряжает статическое электричество, а контакты, на которых подается питание, подключаются за доли секунды до контактов, на которых передаются данные. Посмотрите внимательно на контакты USB и SATA разъема; Вот почему некоторые из них длиннее других. Разъемы IDE НЕ делают этого и НЕ безопасны для горячего подключения.

1

Вся "магия" Plug & Play имеет, насколько мне известно, только две основные части:

  • Программное обеспечение должно быть в состоянии определить, было ли подключено какое-то новое оборудование (например, часть стандарта USB).
  • Оборудование может быть идентифицировано. Используя специальный запрос (без использования драйверов, специфичных для поставщика), можно получить уникальный идентификатор (обычно состоящий из идентификатора поставщика и идентификатора устройства / оборудования). Операционная система может использовать их для идентификации конкретного компонента оборудования и установки правильных драйверов без предварительного запроса пользователя.
  • (Необязательно :) Аппаратное и программное обеспечение (драйверы) в идеале должно работать без перезагрузки.

Для работы с предоставленными стандартными драйверами, аппаратное обеспечение должно реализовывать правильную реакцию на отправляемые команды (т. Е. Аппаратное обеспечение должно говорить на правильном "языке"). В зависимости от типа оборудования это обычно стандартизируется (например, запоминающие устройства USB).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .