Os requisitos para Plug and Play

0

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 para resolver 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?

    
por chipbk10 03.01.2013 / 02:20

2 respostas

1

"Plug and Play" é um termo específico do Windows que originalmente significava o método. Posteriormente, o ISA e os dispositivos 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, vários ou todos estes podem ser usados por um dispositivo para se comunicar com a CPU.

Então, 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 se identificar, o PCI (e possivelmente o 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.

Assim, para hot-pluggability funcionar, o driver para o 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 um armazenamento em massa USB driver que o dispositivo foi desconectado. O driver "superior" precisa ter um 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.

    
por 03.01.2013 / 05:11
1

Todo o plug & jogo "mágica" tem - do meu conhecimento - apenas duas partes essenciais do núcleo:

  • O software precisa ser capaz de identificar que algum novo hardware foi 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 funcionar idealmente sem a necessidade de 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 ).

    
por 03.01.2013 / 02:40