Questão Os requisitos para o Plug and Play


O Plug and Play pode nos ajudar a descobrir um componente de hardware em um sistema sem a necessidade de uma configuração física ou intervenção do usuário na resolução de conflitos de recursos.

Mas eu me pergunto: há requisitos especiais para hardware e / ou software para permitir que o Plug and Play funcione? Tome um exemplo de USB; Há algum requisito para cartões de memória USB ou discos USB para usar os drivers padrão da Microsoft?


0


origem




Respostas:


"Plug and Play" é um termo específico do Windows que originalmente significava o método posteriormente. Os dispositivos ISA e depois PCI permitiam que o sistema operacional escolhesse os recursos que consumiam. O BIOS poderia fazer isso também para o DOS, ou deixar o Windows e fazê-lo completamente.

Os recursos são: A) endereços de memória, B) endereços de E / S, C) IRQs e / ou D) canais de DMA. Cada um, vários ou todos eles podem ser usados ​​por um dispositivo para se comunicar com a CPU.

Portanto, originalmente, um driver "Plug and Play" era um driver que entendia como inicializar o dispositivo, ou seja, configurá-lo para obter recursos que nenhum outro dispositivo estava usando.

Uma outra parte importante do Plug and Play é um método padrão para um dispositivo identificar-se, PCI (e possivelmente ISAPNP) faz provisões para que cada dispositivo tenha um único fornecedor e ID de dispositivo. Isso foi transferido para o USB. Assim, o sistema operacional host pode descobrir "o que" o dispositivo e carregar o driver adequado.

Agora, quando entramos em dispositivos projetados para serem "hot-pluggable", isso é um pouco diferente, mas evidentemente o termo "Plug and Play" ainda é usado para descrevê-lo. A maioria dos dispositivos de conexão automática é "hospedada" por um dispositivo não hotplugável. Dispositivos USB são "hospedados" por um controlador USB, que é um dispositivo PCI que consome um ou mais recursos normalmente atribuídos via Plug and Play. Falar com dispositivos através do barramento USB envolve passar "pelo" controlador USB. Uma situação semelhante existe para dispositivos SCSI, IDE e SATA.

Portanto, para que a capacidade de conexão funcione, o driver do controlador "host" precisa de um mecanismo para informar aos drivers que representam os dispositivos "acima" do que está acontecendo, ou seja, um driver controlador USB precisa de uma maneira de informar a um driver de armazenamento em massa que o dispositivo foi desconectado. O driver "superior" precisa ter código que possa ser encerrado corretamente quando for solicitado a ser removido, em vez de esperar permanecer residente até ser reinicializado.

A maioria dos tipos de barramento, como USB, SCSI, SATA, é governada por padrões que os drivers devem reconhecer e implementar.

No nível de hardware, a maioria dos dispositivos de conexão automática é projetada onde parte do conector descarrega eletricidade estática e que os pinos que transportam energia conectam-se uma fração de segundo aos pinos que transportam dados. Observe atentamente os pinos do conector USB e SATA; É por isso que alguns são mais longos que os outros. Os conectores IDE NÃO fazem isso e NÃO são seguros para hotplugging.


1



Parece interessante. Você pode me dizer de qual fonte você recebe essas informações? - chipbk10


Todo o plug & play "magic" tem - do meu conhecimento - apenas duas partes essenciais do núcleo:

  • O software precisa ser capaz de identificar algum novo hardware conectado (parte do padrão USB, por exemplo).
  • O hardware pode ser identificado. Usando uma solicitação especial (sem usar drivers específicos do fornecedor), um ID exclusivo pode ser recuperado (geralmente consistindo de um ID de fornecedor e um ID de dispositivo / hardware). O sistema operacional pode usá-los para identificar o hardware específico e instalar os drivers corretos sem perguntar ao usuário primeiro.
  • (Opcional :) O hardware e o software (drivers) devem, idealmente, funcionar sem exigir uma reinicialização.

Para trabalhar com os drivers padrão fornecidos, o hardware precisa implementar as reações corretas aos comandos enviados (ou seja, o hardware precisa falar a "linguagem" correta). Dependendo do tipo de hardware, isso geralmente é padronizado (por exemplo, Dispositivos de armazenamento em massa USB).


1