Home » Artigos arquivados » 2003 – Instalações sem conflitos de hardware

2003 – Instalações sem conflitos de hardware

Autor: Laércio Vasconcelos
Janeiro/2003

Esse é o mais recente artigo sobre conflitos de hardware, muito comuns antes do padrão Plug and Play e muitos raros hoje. Mas com ele você aprenderá a lidar com IRQ, DMA, E/S, e eventualmente conseguirá resolver problemas.

Os recursos de hardware que podem entrar em conflitos são:

Endereços de memória

Endereços de E/S

Linhas de interrupções (IRQ)

Canais de DMA

Conflitos de hardware surgem quando dois ou mais dispositivos utilizam o mesmo recurso. Por exemplo, se um modem usar a mesma IRQ que a interface de mouse, o mouse poderá ficar pasalisado quando for feito o acesso à Internet. Existem casos em que as interrupções podem ser compartilhadas, mas na maioria das vezes, o uso de recursos iguais por circuitos diferentes resulta em conflitos, que por sua vez geram travamentos e outras anomalias. Neste capítulo aprenderemos como eliminar esses conflitos.
Exemplos de conflitos

Muitos problemas que ocorrem nos PCs são conseqüência de instalações erradas. Nem sempre uma instalação consiste em apenas conectar uma placa e deixar o Windows fazer o resto sozinho. Na verdade o Windows faz quase tudo sozinho, mas em muitos casos precisamos dar uma ajudazinha, visando evitar a ocorrência de conflitos de hardware. Este problema ocorre com mais freqüência quando são utilizados dispositivos não Plug and Play. Dispositivos PnP, pelo menos teoricamente, não sofrem de conflitos de hardware.

Alguns exemplos de problemas resultantes de conflitos de hardware são apresen­tados a seguir:

Exemplo 1:
“Meu PC funcionava bem até que fiz a insta­lação de uma placa de modem. A placa não funcionou, e o que é pior, o mouse deixou de funcionar. Só quando retirei o modem, o mouse voltou a funci­onar.”

Exemplo 2:
“Instalei uma placa de som que funcionou, mas a impres­sora come­çou a apresen­tar problemas, imprimindo figuras pela metade e perdendo parte do texto impresso.”

Exemplo 3:
“Troquei a placa de vídeo do meu PC e o modem deixou de fun­cionar.”

Exemplo 4:
“Depois que instalei a placa de rede, a placa de som começou a apresentar proble­mas no Windows, apesar de funcionar bem no modo MS-DOS.”

Exemplo 5:
“Depois que instalei um scanner, meu PC ficou maluco. Toda hora trava…”

Tais problemas ocorrem porque uma nova placa instalada entrou em conflito com as demais. Exis­tem quatro tipos diferentes de conflitos de hardware:

Conflito de endereços de memória

Conflito de endereços de E/S

Conflito de interrupções

Conflito de DMA

Ao instalarmos dispositivos PnP (Plug and Play), esses recursos são automatica­mente escolhidos de forma a evitar conflitos. O problema é que ainda existem mui­tos dispositivos não PnP. Basta que apenas um dispositivo não seja PnP para que o processo de instalação automática de dispositivos PnP fique comprometido. Não é sensato se des­fazer de uma placa de som, ou uma placa de rede, ou um scanner, só porque foram comprados antes de 1995, e portanto não possuem o recurso PnP. Para a maioria das funções de áudio, uma placa de som do início dos anos 90 é tão boa quanto uma mo­derna (exceto pelos recursos avançados das atuais placas). Uma placa de rede de 10 Mbits antiga é não é tão boa quanto uma moderna, de 100 Mbits/s, mas para aplicações simples, seu uso é satisfatório. Um scanner antigo pode não ser tão bom quanto um moderno, mas ainda é bastante útil.

Não é apenas na instalação de dispositivos não PnP que devemos nos preocupar em evitar conflitos. Muitas vezes, mesmo quando todos os dispositivos de um PC são PnP, precisamos fazer alguns remanejamentos de recursos visando desfazer conflitos.
Hardware antigo e Windows novo

Quanto maior é a diferença entre a idade do Windows e a idade do hardware, menor é a chance de que este hardware funcione. A Microsoft não é responsável por escrever drivers para dispositivos de hardware produzidos há vários anos atrás, apesar de que muitos drivers para dispositivos novos também servem para dispositivos antigos e compatíveis. Por exemplo, um drive de CD-ROM IDE produzido em 1994 funcionará perfeitamente com qualquer versão do Windows. Muitos drivers são entretanto responsabilidade dos fabricantes de hardware. A maioria dos fabricantes dificilmente produz drivers novos para dispositivos que já não são mais fabricados. Por exemplo, muitos scanners e câmeras digitais produzidos entre 1997 e 1999 não têm drivers para o Windows XP. Já com com Windows ME, a chance de funcionamento é melhor, já que este é derivado do Windows 95, um sistema também antigo. Mostraremos neste capítulo como eliminar conflitos de hardware e como instalar placas antigas em computadores novos, porém o funcionamento só será possível se existirem drivers apropriados, ou embutidos no Windows, ou fornecidos pelo fabricante do dispositivo.
Identificando recursos livres e ocupados

A forma mais simples de identificar recursos de hardware livres e ocupados é usando o Gerenciador de Dispositivos. No Windows 2000 e no Windows XP, podemos chegar ao Gerenciador de Dispositivos de várias formas:

1) Painel de Controle / Sistema / Hardware / Gerenciador de Dispositivos

2) Clicar com o botão direito do mouse em Meu Computador / Propriedades / Hardware / Gerenciador de Dispositivos

3) Tecle Windows+Pause / Hardware / Gerenciador de Dispositivos

E001

Figura 1

Gerenciador de Dispositivos no Windows XP.

 

 

 

No Windows 9x/ME, clicamos o ícone Meu Computador com o botão direito do mouse e no menu apresentado selecionamos a opção Propriedades. No quadro apresentado, selecionamos a guia Gerenciador de Dispositivos (figura 2).

E002

Figura 2

O Gerenciador de Dispositivos do Windows 9x/ME.

 

 

 

O Gerenciador de Dispositivos nos dá diversas informações sobre os dispositivos instalados em um PC, inclusive os recursos de hardware que estão sendo utilizados. No quadro da figura 1, usamos o comando Exibir / Recursos por tipo, e o programa apresentará listas de canais de DMA, endereços de E/S, endereços de memória e requisições de interrupção. Podemos clicar nos quadros indicados com “+” à esquerda de cada item para expandir a lista, como vemos na figura 3.

E003

Figura 3

Obtendo a lista de recursos ocupados no Windows XP.

 

 

 

No Windows 9x/ME, o processo é um pouco diferente. Na figura 2, dei­xando selecionado o item Computador, e clicando sobre o botão Pro­priedades, teremos o quadro mostrado na figura 4, no qual vemos quais são os recur­sos em uso. A lista da figura mostra as interrupções em uso, mas podemos marcar os demais recursos de hardware: Entrada/Saída, DMA e Memória.

E004

Figura 4

Interrupções em uso.

 

 

 

Para evitar conflitos de hardware, é preciso que a seguinte condição seja satisfeita:

Dois dispositivos não podem utilizar o mesmo recurso

Em outras palavras, não podemos ter duas placas utilizando a mesma interrupção, nem o mesmo canal de DMA, nem os mesmos endereços de memória, nem os mesmos endereços de E/S. Existe uma exceção para esta regra. Em certas condições especiais, é permitido que dois ou mais dispositi­vos compartilhem a mesma interrupção. É o caso do uso de interrupções de dispositivos conectados ao barramento PCI, que suporta o compartilhamento de IRQs. Por exemplo, na figura 3 vemos que vários dispositivos estão usando a IRQ11.
Evitando conflitos de memória

Este conflito ocorre quando duas memórias ocupam os mesmos endereços, normalmente ROMs de placas de expansão. A faixa de endereços usados pelas ROMs é a região compreendida entre 768 kB e 1024 kB, o que corresponde aos valores C0000 a FFFFF, em hexadecimal. Placas que possuem ROMs, quando se­guem o padrão PnP, têm seus endereços de memória configurados de forma auto­mática, sem intervenção do usuário. O problema está nas placas de legado (não PnP) que usam memórias, onde o usuário deve escolher ende­reços adequados na instalação, o que normalmente é feito através de jumpers.

A partir dos métodos já apresentados nas figuras 3 (Windows XP/2000) e 4 (Windows 9x/ME), ativamos o item Memória, e assim chegamos à lista dos endereços de memória em uso. A figura 5 mostra a lista obtida no Windows XP.

E005

Figura 5

Lista de endereços de memória em uso, no Windows XP.

 

 

 

A figura 6 mostra a lista de endereços de memória em uso, apresentada pelo Gerenciador de Dispositivos do Windows 9x/ME.

E006

Figura 6

Endereços de memória ocupados.

 

 

 

Graças ao sistema Plug and Play, cada placa instalada que possua memórias tem essas memórias configuradas pelo sistema operacional de modo a não entrar em conflito com as áreas de memória de outras placas. Os conflitos ocorrem apenas quando instalamos placas não PnP. São placas antigas e no padrão ISA. Portanto é muito difícil que você se envolva com este tipo de problema, a menos que precise colocar uma dessas antigas placas em funcionamento. Por outro lado, a maioria dessas antigas placas não tem suporte nas versões novas do Windows, e seus fabricantes não normalmente não produzem drivers atualizados. Seja como for, apresentaremos a técnica de instalação.
Exemplo: placa controladora SCSI

Vejamos um exemplo real, que é a configuração da placa controla­dora SCSI ADAPTEC, modelo AHA-2840A. Trata-se de uma placa de legado, e por isto o usuário precisa configurá-la através de jumpers. Esta placa possui uma ROM com 32 kB, cujo endereço é configurado de acordo as instruções do seu manual, mos­tradas a seguir. Neste exemplo, dois jumpers, indicados na placa como SW6 e SW5 são usados para o selecio­namento do endereço desta ROM.

 

BIOS BASE ADDRESS SW6 SW5

D8000h (Default) OFF OFF
C8000h ON OFF
D0000h OFF ON
E0000h (*) ON ON

OFF = OPEN ON = CLOSED

(*) Some systems do not support BIOS address E0000h

Observe que os endereços hexadecimais possuem cinco dígitos (Ex: D8000). Ao invés de usar 5 dígitos, é muito comum a representação com 4 dígitos (Ex: D800). A le­tra “h” colocada após cada endereço, é opcional, e serve para indicar que o número está em hexadecimal. Às vezes usam-se quatro dígitos e às vezes cinco. A razão é que os en­dereços de memória podem ser ex­pressos de duas formas:

Endereço absoluto: Usa cinco dígitos, como por exemplo, D8000
Segmento: Usa apenas quatro dígitos, como por exemplo D800

Para saber o endereço de um segmento, basta acrescentar um ZERO no seu final. Por exem­plo, o segmento D800 cor­responde ao endereço D8000.

Nas listas de endereços apresentadas pelo Gerenciador de dispositivos, são utilizados 8 dígitos (veja as figuras 5 e 6). Por outro lado, muitos manuais mostram seus endereços usando 4 ou 5, e às vezes até 8 dígi­tos. Por exemplo, o endereço D8000 poderia ser representado de 3 formas:

Endereço de 8 dígitos: 000D8000
Endereço absoluto de 5 dígitos: D8000
Segmento hexadecimal: D800

A tabela do nosso exemplo usa o termo BIOS base address. É o endereço da memória a partir do qual o BIOS da interface SCSI está loca­lizado. O BIOS da placa de vídeo fica localizado no endereço base C0000, enquanto o BIOS da placa de CPU nor­malmente está localizado a partir do ende­reço E0000, E8000 ou do F0000, dependendo da placa.

Podemos ainda ver na tabela que o fabricante apresenta o endereço base default como D8000. As chaves SW5 e SW6 de­vem ser colocadas nas posições ON ou OFF para a escolha do endereço desejado. Para escolher o endereço base, devemos visuali­zar o mapa de memória do PC, antes da instalação da nova placa. Tomemos como exemplo o mapa de memória apresentado na figura 6. Na lista apresentada, podemos verificar quais são as fai­xas de endereços já ocupadas, e quais estão livres:

00000-9FFFF Ocupada
A0000-AFFFF Ocupada
B0000-BFFFF Ocupada
C0000-C7FFF Ocupada
C8000-DFFFF Livre
E0000-E7FFF Não disponível
E8000-FFFFF Ocupada

Para decidir qual das faixas de endereços utilizar, é preciso determinar o início e o final de cada uma delas. Devemos levar em conta o seguinte:

Endereço base

Tamanho

A placa ADAPTEC AHA-2840 do nosso exemplo, possui 32 kB na sua ROM. Sa­bendo o endereço base e o seu tamanho, podemos determinar o ende­reço final. Sa­bendo o endereço base (inicial) e o final, automaticamente temos a faixa de en­dereços ocupada pela ROM. Para isto, precisamos converter os núme­ros em kB para o formato hexadecimal. A tabela que se segue será útil nesta conversão.

Valor em kB Valor Hex Segmento hex   Valor em kB Valor hex Segmento hex
4 kB 1000 0100 36 kB 9000 0900
8 kB 2000 0200 40 kB A000 0A00
12 kB 3000 0300 44 kB B000 0B00
16 kB 4000 0400 48 kB C000 0C00
20 kB 5000 0500 52 kB D000 0D00
24 kB 6000 0600 56 kB E000 0E00
28 kB 7000 0700 60 kB F000 0F00
32 kB 8000 0800 64 kB 10000 1000

A fórmula para calcular o endereço final é muito simples:

Endereço final = Endereço inicial + tamanho – 1

Suponha que a ROM da nossa placa seja configurada para que seu endereço base (inicial) seja D0000. Sendo o seu tamanho igual a 32 kB, que de acordo com a ta­bela acima equivale a 8000 em hexadecimal, seu endereço final é calculado como:

Endereço final = D0000 + 8000 – 1 = D8000 – 1 = D7FFF

Somando o endereço inicial (D0000) e o tamanho da ROM (8000), temos D8000. Subtraindo 1 deste resultado, temos D7FFF (se fossem núme­ros decimais, subtrair 1 re­sultaria em um final 999, mas em hexadecimal, este valor final é FFF). Levando em conta esses cálculos, as faixas de endereços que a ROM ocuparia seriam:

Endereço base Faixa de Endereços
D8000 D8000-DFFFF
C8000 C8000-CFFFF
D0000 D0000-D7FFF
E0000 E0000-E7FFF

De acordo com o Gerenciador de Dispositivos (figura 6), a faixa de endereços dis­ponível na área reservada para ROMs (C0000 a FFFFF) é C8000-DFFFF. Confron­tando esta faixa com as 4 opções oferecidas pela placa do nosso exemplo, temos:

D8000 Permitida
C8000 Permitida
D0000 Permitida
E0000 Não permitida

Portanto, a nossa placa controladora SCSI funcionaria se fosse confi­gurada com qualquer uma das três primeiras opções de endereços, e certamente não funciona­ria se fosse configurada na quarta opção, pois ocorreria um conflito de hardware.
Microsoft Diagnostics

O mapa de memória apresentado pelo Gerenciador de Dispositivos é suficiente para ajudar neste tipo de instalação, mas não podemos usá-lo quando o conflito impede o funcionamento do Windows. Neste caso podemos usar o programa MSD (Microsoft Diagnostics). No CD de instalação do Windows 98/ME, este software é encontrado no diretó­rio \TOOLS\OLDMSDOS. Outros programas de diagnóstico mais completos, como o PC-Check também permitem visualizar o mapa de memória.

Para utilizar o MSD, é preciso executar um boot limpo (Prompt do Modo de Se­gurança). Na tela principal do MSD, teclamos “M”, para c
egar ao mapa de memória (figura 7)

E007
Figura 7 – Mapa de memória apresentado pelo MSD.

O mapa de memória apresentado pelo MSD mostra a utilização da região com­pre­endida entre os endereços 640 kB (segmento A000, em hexadecimal) e 1024 kB (FFFF, em hexadecimal). As áreas em cinza no mapa de memória do MSD correspon­dem a memória ROM. As ROMs mostradas na figura 7 são o BIOS VGA (segmentos C000-C7FF) e o BIOS da placa de CPU, na parte superior do mapa. Áreas pontilhadas são indicadas como “possivel­mente livres”, mas o MSD não nos dá a total certeza de que real­mente estejam livres (na figura, entre E000 e EFFF). Finalmente, áreas totalmente pretas são garantidamente livres (na figura, entre C800 e DFFF).
Evitando conflitos de E/S

Os conflitos de endereços de E/S são muito comuns, já que todas as placas de ex­pansão necessitam deste recurso de hardware. Se o usuário não escolher esses en­dereços corre­tamente, ocorrerão conflitos de hardware, e as placas envolvidas não funcionarão.
O mapa de E/S padrão

Uma das formas de saber quais são os endereços de E/S livres é tomando como base o mapa de E/S padrão definido pela IBM. Este mapa nada mais é que uma tabela que mostra como a IBM utilizou os diversos endere­ços para suas diversas interfaces. A tabela a seguir ajuda um pouco, mas não é sufici­ente para saber se uma de­terminada faixa de endereços está ou não livre.

Endereços               Interface que os utiliza000-01F                 Controlador de DMA (placa de CPU)
020-03F                 Controlador de interrupções (placa de CPU)
040-05F                 Timer (placa de CPU)
060-06F                 Controlador de teclado do AT
070-07F                 Chip CMOS
080-09F                 Registro de página de DMA (placa de CPU)
0A0-0BF                 Segundo controlador de interrupções (CPU)
0C0-0DF                 Segundo controlador de DMA (placa de CPU)
0F0-0F1                 CLEAR e RESET do coprocessador
170-177                 Controladora IDE secundária
1F0-1F7                 Controladora IDE primária
200-207                 Interface de joystick
278-27F                 Porta paralela
2E8-2EF                 Porta serial COM4
2F8-2FF                 Porta serial COM2
370-377                 Interface de drives secundária
378-37F                 Porta paralela
3B0-3BF                 Placa de vídeo MDA e HÉRCULES
3C0-3CF                 Placa VGA
3D0-3DF                 Placas CGA e VGA
3E8-3EF                 Porta serial COM3
3F0-3F7                 Interface de drives primária
3F8-3FF                 Porta serial COM1

Existem métodos mais seguros para determinar se uma faixa de ende­reços está livre ou ocupada, mas mesmo assim a tabela acima pode ser útil, pelo menos para eli­minar opções que com certeza não podem ser usadas. Ve­jamos um exemplo:
Exemplo: placa controladora de scanner

Digamos que uma placa controladora de scanner possa ocupar uma das seguintes faixas de endereços:

200 a 207

210 a 217

220 a 227

230 a 237

De acordo com a tabela de endereços da IBM, a faixa de endereços de 200 a 207 é usada pela interface de joystick. Como a maioria dos PCs possuem esta interface, não devemos deixar que outras placas utilizem esta faixa de endereços. De acordo com a tabela, apenas as três últimas opções poderiam ser utiliza­das. Cabe aqui usar mais informações, pois obedecer a tabela não é suficiente para evitar os conflitos de hardware. O PC pode possuir outras interfaces não previstas na configuração básica do IBM PC original. É o que ocorre quando o PC possui uma placa de som. Normalmente, os modelos compatíveis com a Sound Blaster ocu­pam a faixa de 220 a 233, o que inva­lida o uso das opções 220-227 e 230-237. Nossa controladora de scanner só poderia usar, portanto, a faixa 210-217.

HARD-055

Figura 8

Placa de interface de scanner.

 
Usando o Gerenciador de Dispositivos

O Gerenciador de Dispositivos do Windows apresenta uma lista com as faixas de endereços que estão em uso, bem como uma descrição das interfaces que as contém. A partir do quadro da figura 4, marcamos a opção Entrada/Saída (E/S), e teremos o quadro mostrado na figura 9. As faixas que não constam da lista estão, a princípio, livres.

E009

Figura 9

Encontrando endereços livres e ocupados.

 

 

 

Teríamos então:

200-207 Joystick para porta de jogos
208-21F Livre
220-22F Creative Labs Sound Blaster 16 PnP
230-26F Livre
270-273 Porta de dados de leitura de E/S para o enumerador ISA PnP
274-2F7 Livre
2F8-2FF COM2
300-32F Livre
330-331 Creative Labs Sound Blaster 16 PnP
332-33F Livre
340-35F NE2000 Compatível
360-36D Livre
36E-36F Creative SB32 PnP

Encontrando endereços livres desta forma, temos a primeira pista para a escolha de endereços de novas placas a serem instaladas.
Usando o programa IOVIEW

O IOVIEW é um utilitário ideal para fazer o levan­tamento do mapa de E/S. Pode ser encontrado em http://www.laercio.com.br. Deve ser usado exclusivamente em modo MS-DOS, e nunca sob o Windows. Usamos as setas do te­clado (para cima e para baixo) para percorrer a lista de endereços (figura 10).

E010
Figura 10 – Mapa de E/S entre 200-2FF, obtido com o IOVIEW.

No IOVIEW, valores “FF” indicam que os endereços correspondentes estão pro­va­velmente livres. Valores diferentes de “FF” indicam que os endereços estão certa­mente ocupados. Note que as faixas de endereços ocupados apresentados pelo programa IOVIEW dizem respeito apenas aos circuitos que estão ativos no modo MS-DOS, que é o caso dos dispositivos de legado. Dispositivos Plug and Play não serão mostrados.

A grande vantagem em utilizar o IOVIEW é que ele consegue “enxergar” endere­ços usados por dispositivos de legado que o Gerenciador de Dispositivos do Windows não mostra como ocupados.

E011
Figura 11 – Mapa de E/S obtido com o PC-Check.

Outros programas de diagnóstico e informações sobre hardware também mostram o mapa de E/S. A figura 11 mostra o relatório obtido com o programa PC-Check, cuja versão DEMO pode ser obtida em www.eurosoft-uk.com.
Conflitos de IRQ

A resolução dos conflitos de IRQ é relativamente fácil. No caso de dispositivos Plug and Play, basta fazer a alteração na guia Recursos do quadro de propriedades de cada dispo­sitivos envolvido no conflito, e reiniciar o computador. No caso de dispositivos não Plug and Play, além de fazer a alteração neste quadro, temos que alterar os jumpers da placa de legado envolvida, programando-a de forma idêntica à do Gerenciador de Dispositi­vos. Não esqueça de declarar na seção PCI/PnP Configuration do CMOS Setup quais são as IRQs e canais de DMA que estão sendo usados pelas placas de legado.

Para corrigir um conflito devemos inicialmente des­marcar a opção Usar configura­ções automáticas. A seguir clicamos sobre o recurso que desejamos alterar e usamos o botão Alterar Configu­ração. Se for apresentada uma mensagem indicando que o recurso não pode ser alterado, selecione outra configuração básica (veja o campo Config base­ada em Configuração básica 0000) e tente novamente. Será finalmente apresentado um quadro no qual você pode escolher outro recurso (outra IRQ, outro canal de DMA, etc.), desfazendo assim o conflito.
Exemplo: Instalando uma placa Sound Blaster 16 de legado

Mostraremos agora o método de instalação e eliminação de conflitos em uma placa antiga, uma Sound Blaster 16 (figura 12). Como esta não é uma placa Plug and Play, não é detectada de forma automática pelo Windows. Devemos inicialmente usar o Gerenciador de Dispositivos para determinar quais endereços, canais de DMA e IRQs podem ser usadas, ou seja, que não estejam sendo usados por outros dispositivos. Desligamos o computador e conectamos a placa, com seus jumpers já configurados. Podemos agora ligar o computador e fazer a instalação dos drivers da placa.

HARD-056

Figura 12

Sound Blaster 16.

 

 

 

Para fazer a instalação dos drivers da placa, usamos o comando Adicionar novo hardware, no Painel de Controle. Isto fará com que seja executado o Assistente para adicionar novo hardware. Mostraremos este exemplo sob o Windows XP, mas para outras versões do Windows, o processo é muito semelhante. No Windows 2000, o processo é praticamente idêntico, enquanto no Windows ME, 98 e 95 existem diferenças mínimas.

E013

Figura 13

Assistente para adicionar novo hardware, no Windows XP.

 

 

 

Depois de clicar em avançar, o assistente procurará dispositivos de hardware presentes no computador mas que ainda não tenham os drivers instalados. O assistente perguntará se o dispositivo já está conectado. No nosso caso, respondemos SIM. Finalmente será apresentada uma lista de dispositivos de hardware, na qual selecionamos o item “Adicionar novo dispositivo de hardware” e clicamos em Avançar (figura 14).

E014

Figura 14

Para instalar um novo dispositivo.

 

 

 

O assistente perguntará se queremos que o dispositivo seja detectado automaticamente ou se desejamos procurá-lo em uma lista de marcas e modelos. Quando não temos certeza sobre esta informação, podemos deixar o assistente tentar descobri-la, porém nem sempre o assistente consegue, já que os dispositivos de legado não possuem recursos de identificação.

E015

Figura 15

O Assistente não conseguiu identificar o novo hardware.

 

 

 

Apesar de ser recomendável deixar o assistente tentar identificar o hardware que está sendo instalado, na maioria das vezes ele não consegue, apresentando um resultado como o da figura 15. Podemos agora clicar em Avançar para indicar manualmente a marca e o modelo do dispositivo.

E016

Figura 16

Indicando o tipo de dispositivo.

 

 

 

Será apresentada uma lista de tipos de hardware, como mostra a figura 16. No nosso exemplo estamos instalando uma placa Sound Blaster 16, portanto selecionamos o tipo “Controladores de som, vídeo e jogo”, a seguir clicamos em Avançar.

E017

Figura 17

Selecionando a marca e o modelo da placa a ser instalada.

 

 

 

Será apresentada uma lista de marcas e modelos, como vemos na figura 17. Indicamos o fabricante Creative Technology Ltd e o modelo, Sound Blaster 16 ou AWE32 ou compatível (WDM). Note que esta lista apresenta apenas os drivers nativos do Windows que estamos usando. O Windows XP abandonou vários dispositivos antigos, da mesma forma como o Windows 95 não suportava a maioria dos dispositivos produzidos no final dos anos 80. Note que neste quadro podemos usar o botão Com disco, através do qual podemos indicar um outro drive ou diretório que contenha drivers fornecidos pelo fabricante. Portanto, se o Windows não possui drivers para o dispositivo que você está instalando, cheque se existe um driver atualizado no site do fabricante do dispositivo. O driver deve ser preferencialmente para a mesma versão do Windows que está sendo usada. Drivers do Windows 95 em geral funcionam no Windows 98 e no Windows ME; drivers do Windows 98 normalmente funcionam no Windows ME, porém drivers para Windows 95, 98 ou ME nem sempre funcionam no Windows XP e no Windows 2000.

E018

Figura 18

Terminada a instalação.

 

 

 

Depois de lidos os drivers fornecidos pelo fabricante ou os drivers nativos do Windows, o assistente apresentará uma mensagem como a da figura 18. Note que nas versões mais recentes do Windows, todo o conteúdo dos arquivos de instalação são copiados para o disco rígido. No Windows 95 e 98 esta cópia não é feita, portanto é preciso fornecer o CD de instalação do sistema para a leitura de drivers nativos.

E019

Figura 19

A nova placa aparece no Gerenciador de Dispositivos.

 

 

 

Alguns dispositivos requerem que o Windows seja reiniciado para que a instalação tenha efeito. Não é o caso das placas de som. Logo depois da instalação dos drivers, essas placas já estão funcinando. Podemos consultar o Gerenciador de Dispositivos (figura 19) para checar se a instalação foi bem sucedida. No nosso exemplo, aplicamos um clique duplo no item Sound Blaster 16 ou AWE32 ou compatível (WDM).

E020

Figura 20

Quadro de propriedades da placa instalada.

 

 

 

Será apresentado um quadro de propriedades como o da figura 20. Note na guia Geral, a indicação “Este dispositivo está funcionando corretamente”. Isto indica que os drivers estão instalados e que não existem conflitos de hardware.

E021

Figura 21

Guia de recursos.

 

 

 

Neste mesmo quadro selecionamos a guia Recursos (figura 21). Esta guia mostra os endereços de memória, endereços de E/S, canais de DMA e linhas de IRQ utilizadas pela placa. No nosso exemplo, os recursos utilizados são:

E/S 220-22F
E/S 330-331
E/S 388-38B
IRQ 5
DMA 1
DMA 5

Note que esses recursos não são necessariamente os que estão em uso pela placa. As placas não PnP não podem ser configuradas pelo Windows, e nem podem informar os recursos de hardware que estão utilizando. Por isso os recursos que o Windows designa nem sempre correspondem à realidade. Normalmente são usados os recursos da configuração de fábrica. Devemos alterar manualmente cada um desses recursos para que fiquem de acordo com a programação dos jumpers da placa. Digamos por exemplo que tenhamos programado os jumpers da placa com IRQ7 e DMA3, ao invés de IRQ5 e DMA 1. Para fazer a alteração basta aplicar um clique sobe o recurso a ser modificado (figura 21) e clicar no botão Alterar configuração.

E022

Figura 22

Alterando a IRQ usada pela placa.

 

 

 

Suponha que na figura 21 cliquemos no item IRQ 5 e usemos o botão Alterar configuração. Será apresentado um quadro como o da figura 22, onde podemos mudar a IRQ usada. Este quadro indica na sua parte inferior se a IRQ escolhida está livre ou ocupada. Caso esteja livre, será apresentada a indicação “Nenhum dispositivo em conflito”. Se a IRQ escolhida estiver ocupada, será apresentadas a lista dos demais dispositivos que estão utilizando este recurso. Na figura 23, vemos que a IRQ 10 não pode ser usada pela placa de som, já que está em uso pela placa de rede (D-Link DFE-530TX+ PCI Adapter).

E023

Figura 23

A IRQ 10 não pode ser usada pela placa de som, pois já está sendo usada pela placa de rede.

 

 

 

Esta alteração de recursos é também o método usado para eliminar conflitos de hardware. Os dispositivos em conflito aparecerão com um ponto de exclamação no Gerenciador de Dispositivos. Podemos então acessar o seu quadro de propriedades e selecionar a guia Recursos, na qual são indicados os dispositivos em conflito. Podemos então alterar a configuração, remanejando aquele recurso para uma configuração que esteja livre, desfazendo o conflito.

Em muitos casos, quando tentamos alterar um recurso, podemos ser surpreendidos com a desagradável mensagem “Este recurso não pode ser alterado”. Uma forma de resolver o problema é desmarcar no quadro da figura 21, a opção “Usar configurações automáticas” e alterar o campo “Config baseada em”. A operação é mostrada na figura 24.

E024

Figura 24

Alterando a configuração.

 

 

 

Um outro método que também pode ser usado é a troca de slot. Se dois dispositivos estão em conflito e usando a mesma IRQ, e nenhum deles permite a alteração desta IRQ, podemos experimentar tocar um deles de slot. Os slots PCI utilizam interrupções diferentes, e esta troca normalmente desfaz um eventual conflito. Note que normalmente não ocorrem conflitos entre dois dispositivos de placas de PCI, já que são Plug and Play. O conflito ocorre quando temos dois dispositivos de legado, ou então um PCI (PnP) e outro de legado, como uma placa ISA antiga.
Exemplo: Instalando uma placa de rede de legado

Essas antigas placas também requerem instalação e configuração manuais, já que não contam com o recurso Plug and Play. Precisam ser configuradas através de jumpers, ou então a partir de um software de configuração que a acompanha (é o caso de placas jumperless, porém sem este software original a configuração de recursos não pode ser feita). Também é necessário ter os drivers, e quanto mais antiga é a placa, menor é a chance de que funcionem em sistemas operacionais novos. O Windows ME, por exemplo, possui drivers nativos para dezenas de placas de rede produzidas antes de 1995. Já o Windows XP não possui esses drivers, portanto a instalação nem sempre é possível.

HARD-057

Figura 25

Placa de rede ISA.

 

 

 

Depois de consultar o Gerenciador de Dispositivos, checamos quais são os recursos livres e escolhemos os recursos a serem usados pela placa de acordo com esta informação. Muitas placas antigas têm esses recursos configurados por jumpers, outras têm a configuração feita por um utilitário que a acompanha, como o que vemos na figura 26. Observe na figura que entre outras opções este programa permite escolher o endereço base e a IRQ usados pela placa.

E026
Figura 26 – Exemplo de utilitário de configuração de uma placa de rede antiga.

Apesar de algumas dessas placas de rede possur um programa de configuração como o que citamos (placas jumperless), a maioria delas possuem jumpers para selecionamento de endereços de E/S, IRQ e endereços de memória.

O endereço de memória só precisa ser configurado quando a placa possui uma ROM com boot remoto (usado para fazer um boot através da rede), ou RAM com buffer de transmissão/recepção. Quando não existe esta ROM ou RAM, deveremos desabilitá-la, usando instruções do seu manual. A placa usada no nosso exemplo possui jumpers para essas finalidades:

JP1 1-4 (I/O Base) JP1 5-7 (IRQ)
1 2 3 4 I/O 1 2 3 4 I/O 5 6 7 IRQ
0 0 0 0 300H 0 1 0 0 200H 0 0 0 2 (9)
0 0 0 1 320H 0 1 0 1 220H 0 0 1 3
0 0 1 0 340H 0 1 1 0 240H 0 1 0 4
0 0 1 1 360H 0 1 1 1 260H 0 1 1 5
1 0 0 0 380H 1 1 0 0 280H 1 0 0 10
1 0 0 1 3A0H 1 1 0 1 2A0H 1 0 1 11
1 0 1 0 3C0H 1 1 1 0 2C0H 1 1 0 12
1 0 1 1 3E0H 1 1 1 1 2E0H 1 1 1 15

Temos um bloco de jumpers chamado JP1. Cada um desses jumpers é numerado de 1 a 7. Os 4 primeiros servem para definir o endereço de E/S a ser ocupado pela placa, e os três jumpers seguintes definem a interrupção a ser usada.

Digamos que já tenhamos feito as devidas consultas ao Gerenciador de Dispositi­vos para determinar endereços e IRQs livres, e tenhamos optado por usar o seguinte:

Endereço de E/S: 300H
Interrupção: 10

Programamos os jumpers de acordo com as tabelas, conectamos a placa em um slot livre e ligamos o PC. Como não se trata de uma placa PnP, não será reconhecida de forma automática. Será preciso fazer a instalação com o comando Adicionar Novo Hardware, no Painel de Controle. Entrará em ação o Assistente para Adicio­nar Novo Hardware. Como já mostramos um exemplo de instalação usando o Windows XP, usaremos agora como exemplo o Windows 98, cujo processo de instalação de placas é similar ao do Windows 95 e do Windows ME.

O Assistente pergunta se queremos que o novo hardware seja detectado automaticamente, ou se desejamos especificar manualmente a sua marca e modelo. A princípio, devemos deixar o Assistente detectar o novo hardware, a menos que o manual do fabricante sugira o contrário, porém esta detecção nem sempre funciona. No nosso exemplo vamos optar pela opção Não, e selecionar o hardware a partir de uma lista.

Será então apresentada uma lista de tipos de hardware, na qual selecionamos a opção Adaptadores de rede. Será finalmente apresentada uma lista de marcas e modelos, como vemos na figura 27. Na lista de fabricantes marcamos Novell/Anthem, e na lista de modelos marcamos Compa­tível com NE2000. Note que algumas placas são acompanhadas de disquetes de instala­ção, e neste caso devemos clicar sobre o botão Com disco para acessar esses drivers.

E027

Figura 27

Selecionando a marca e o modelo da placa.

 

 

 

Como não se trata de um dispositivo PnP, o assistente para adicionar hardware irá designar recursos que tenham sido encontrados como livres. Podemos assim programar os jumpers da placa com esses recursos. Alternativamente, podemos deixar os jumpers da placa programados com os recursos originalmente esco­lhidos, e desde que estejam realmente livres, alterar as configurações na guia de Recur­sos do quadro de propriedades de placa, obtido pelo Gerenciador de dispositivos, pro­gramando o endereço de E/S e a IRQ escolhidos.

E028

Figura 28

Visualizando os recursos de hardware utilizados por uma placa.

 

 

 

Depois de realizado o novo boot, podemos abrir o Gerenciador de Dispositivos, e lá veremos registrada a placa recém-instalada, que no nosso caso é indicada como NE2000 Compatível. Se for necessário, usamos o mesmo método já explicado para o Windows XP, para alterar os recursos usados pela placa (guia Recursos, clicar em Alterar configuração, na figura 28).
Conflitos reportados pelo Gerenciador de Dispositivos

Observe a figura 29, na qual o Gerenciador de Dispositivos do Windows XP indica a placa de som com um ponto de exclamação amarelo, indicando problemas.

E029

Figura 29

A placa de som está com problemas.

 

 

 

Aplicamos um clique duplo no dispositivo para verificar seu quadro de propriedades. Na guia Geral será apresentado um relatório de problemas (figura 30). Neste exemplo está indicado que o dispositivo não está encontrando recursos livres suficientes para usar. É um caso típico de conflito de hardware. Para resolver o problema, clicamos em “Solução de problemas” ou selecionamos a guia Recursos.

E030

Figura 30

Indicação dos problemas com o dispositivo.

 

 

 

A figura 31 mostra o resultado, que é a guia Recursos do dispositivo com problemas. Existe mais uma descrição do problema, e não a tradicional lista de recursos que encontramos nos dispositivos que funcionam corretamente. Devemos clicar em “Definir config. manualmente”.

E031

Figura 31

Guia Recursos de um dispositivo em conflito.

 

 

 

O quadro passará a mostrar os recursos utilizados pela placa. Vemos que o problema está no uso da IRQ5. Clicamos sobre este item e a seguir no botão Alterar configuração. Note que na lista de dispositivos em conflito está indicado que a IRQ5 está também sendo usada pelo dispositivo:

Intel(r) 82371AB/EB PCI to USB Universal Host Controller

E032

Figura 32

É preciso alterar manualmente a IRQ usada pela placa para desfazer o conflito.

 

 

 

 

Poderemos então escolher outra IRQ para a placa de som em conflito, como mostra a figura 33. Este quadro mostra na sua parte inferior, informações sobre conflitos. Note que escolhemos a IRQ10 porque o quadro indica “Nenhum dispositivo em conflito”.

E033

Figura 33

Alterando para IRQ10, que está livre.

 

 

 

Este pequeno ajuste resolverá o conflito, e as placas envolvidas passarão a funcionar normalmente. A placa de som passará a usar a IRQ10 (será preciso ajustar seus jumpers) e a interface USB que antes estava em conflito poderá utilizar a IRQ5.
Alterações no CMOS Setup

Quando instalamos dispositivos de legado que utilizam IRQs e canais de DMA, temos ainda que fazer uma pequena alteração no CMOS Setup. Lá encontraremos uma seção chamada PCI/PnP Configuration. Existirão vários itens relacionados com o uso de cada uma das linhas de IRQ e cada um dos canais de DMA. Para cada um deles, encontra­remos duas opções:

PnP: Normalmente indicados como PCI/PnP
Legado: Normalmente indicados como ISA/Legacy

Cada IRQ ou canal de DMA utilizado por um dispositivo de legado deve ser in­dicado como ISA/Legacy no CMOS Setup. Isto evitará que o Windows utilize esses re­cursos para outros dispositivos PnP.

Note que no exemplo anterior, um dispositivo Plug and Play (interface USB) estava utilizando a mesma IRQ5 destinada a uma placa de som de legado. Podemos evitar este problema se reservarmos no CMOS Setup, a IRQ5 para ser usada por uma placa de legado. Isto impedirá que dispositivos PnP usem as interrupções e canais de DMA reservados, mas permitirá que possamos indicar manualmente o uso desses recursos pelos dispositivos de legado instalados.

E034

Figura 34

O conflito foi desfeito.

 

 

 

Fizemos a reserva da IRQ5 para a placa Sound Blaster 16 no CMOS Setup. Note que agora o Gerenciador de dispositivos (figura 34) indicará que a IRQ5 está sendo usada pela placa de som e a IRQ10 agora está sendo usada pela interface USB, que antes apresentava conflito com a placa de som.
Símbolos no Gerenciador de Dispositivos

Os itens apresentados no Gerenciador de dispositivos têm uma representação através de ícones. Esses ícones podem ser sobrepostos a símbolos que podem indicar problemas. São os seguintes os símbolos apresentados:

a) Ponto de exclamação preto sobre fundo amarelo
Indica que o dispositivo tem algum problema. No quadro de propriedades encontramos a descrição detalhada do problema. Este é o caso dos dispositivos que estão em conflito de hardware.

b) “X” vermelho
Indica que o dispositivo está desabilitado ou não possui driver instalado. Podemos habilitá-lo através da guia Geral do seu quadro de propriedades. Se o dispositivo não possui drivers instalados, basta fazer a sua instalação para resolver o problema.

c) “i” azul
Não caracteriza um problema, e sim que o dispositivo está utilizando uma configuração manual de recursos.

d) “?” verde
Usado apenas no Windows ME. Indica que um driver compatível está instalado mas que nem todas as suas funções estejam operacionais. Devemos procurar um outro driver mais adequado ao dispositivo.

e) “?” amarelo
Indica que o dispositivo foi detectado mas que não possui driver instalado. É resolvido com a instalação dos drivers corretos.
Evitando conflitos de DMA

O funcionamento da transferência de dados por DMA está explicado no capítulo 3. No que diz respeito à resolução de conflitos, temos que garantir que não existam dois dispositivos usando o mesmo canal de DMA.

E035

Figura 35

Checando os canais de DMA em uso, com o Gerenciador de Dispositivos do Windows XP.

 

 

 

Podemos visualizar os canais de DMA que estão em uso atra­vés do Gerenciador de Dispositivos, como mostra a figura 35. Tipicamente estão em uso apenas os canais 2 (interface de disquetes) e 4 (ligação em cascata entre os controladores de DMA). Quando a porta paralela está configurada como ECP, existe ainda mais um canal, em uso, normalmente 1 ou 3. Este canal é escolhido através do CMOS Setup.

A figura 36 mostra o uso dos canais de DMA, visualizados pelo Gerenciador de Dispositivos do Windows 9x/ME. Neste exemplo, além dos canais DMA2 e DMA4, que estão sempre ocupados em qualquer PC, temos ainda os canais DMA1 e DMA5 sendo utilizados pela placa de som, e o canal DMA3 usado pela porta paralela ECP.

E036

Figura 36

Visualizando o uso dos canais de DMA com a ajuda do Gerenciador de Dispositivos.

 

 

 

Quando o Windows é instalado em um PC com configuração básica, apenas esta­rão em uso os canais 2 e 4. Os canais 0, 1, 3, 5, 6 e 7 estarão disponíveis para serem usadas por placas de expansão. À medida em que novas placas são instala­das, os canais livres vão sendo ocupados. Quando instalamos placas PnP, os canais de DMA necessá­rios são atribuídos automaticamente. No caso de placas de legado, cabe ao usuário des­cobrir quais são os canais de DMA livres, bem como atribuir canais às placas que estão sendo instaladas.
Exemplo: Placa Sound Blaster 16 de legado

As placas Sound Blaster 16 e todas as suas sucessoras utilizam dois canais de DMA, sendo um para operações de 8 bits, e outro para operações de 16 bits:

DMA LOW: Pode ser escolhido entre DMA0, DMA1 e DMA3
DMA HIGH: Pode ser escolhido entre DMA5, DMA6 e DMA7

A escolha é feita pelos jumpers da placa, levando em conta os canais que estão livres, de acordo com as informações do Gerenciador de Dispositivos.
Eliminando conflitos de DMA

A eliminação de conflitos de DMA é feita de forma similar à dos demais recursos de hardware, já amplamente explicado para IRQs. Também podemos reservar no CMOS Setup, os canais de DMA a serem usados pelas placas de legado, o que evita que sejam usados por placas PnP.
Reservando recursos

Existem certos tipos de instalação em que temos que usar o comando Reservar Recursos no Gerenciador de Dispositivos. São casos em que o Windows não con­segue reconhecer a placa que está sendo instalada, nem no modo PnP e nem no modo de legado, e por isso não sabe das suas necessidades em termos de endereços de E/S, DMA, memória e IRQ.

Tipicamente isto ocorre com dispositivos antigos, nos quais temos que utilizar dri­vers também antigos, próprios para o Windows 3.x. Recursos de hardware controlados por drivers que não são próprios para o Windows 9x não são indicados no Gerencia­dor de dispositivos. Temos que indicar esses recursos como ISA/Legacy no CMOS Setup, e também reservá-los no Gerenciador de dispositivos. Apenas depois que esses recursos estão reservados podemos instalar os drivers para Windows 3.x. Você precisará fazer isto, por exemplo, para instalar um scanner antigo, ou qualquer outro tipo de hardware anterior a 1995 e que não tenha drivers nativos no Windows 9x. Observe que a reserva de recursos só pode ser feita no Windows 95, 98 e ME.

Vamos ilustrar a reserva de recursos usando como exemplo a placa de interface que acompanha o scanner Genius ScanMate Color. Trata-se de um scanner ma­nual muito vendido por volta de 1995. De acordo com o manual deste scanner, a placa de interface que o acompanha necessita dos se­guintes recursos de hardware:

Recurso Opções
Endereço de E/S 280-283, 2A0-2A3, 330-333 ou 340-343
Interrupção IRQ5, IRQ10, IRQ11 ou IRQ12
Canal de DMA DMA1, DMA3, DMA5 ou DMA6

Consultando os relatórios sobre uso de endereços de E/S, interrupções e canais de DMA apresentados pelo Gerenciador de Dispositivos, digamos que resolvemos usar para a nossa placa de interface de scanner, a seguinte configuração:

Endereços de E/S 2A0-2A3
Interrupção IRQ11
Canal de DMA DMA6

 

No Gerenciador de Dispositivos, clicamos em Computador, depois no botão Pro­priedades, e selecionamos a guia Reservar Recursos (figura 10).

E037

Figura 37

Quadro para reservar recursos.

 

 

 

Para reservar um recurso, devemos antes indicar o seu tipo. No quadro da figura 37, está sendo indicado o tipo Pedido de interrupção (IRQ). Clicamos então so­bre o botão Adicionar. É apresentado um quadro onde especi­fica­mos a interrupção a ser reservada. O procedimento é semelhante para os endere­ços de E/S e para o canal de DMA. Nos casos dos endereços de E/S e ende­reços de memória, é preciso especificar uma faixa, ou seja, um endereço inicial e um endereço final.

Terminada a reserva, é preciso reinicializar o computador para que as mudanças tenham efeito. Observe que neste momento ainda não instalamos a placa no com­puta­dor, apenas reservamos os seus recursos. Depois do boot, podemos usar nova­mente o Gerenciador de Dispositivos para confirmar a reserva dos recursos. Os itens reservados aparecerão am a indicação “Reservado para o sistema”.
Endereços de E/S acima de 3FF

Um certo cuidado adicional deve ser tomado com o uso de endere­ços de E/S usa­dos por placas modernas. Até poucos anos atrás, tanto as placas de CPU quanto as placas de expansão utilizavam apenas a faixa de endereços de E/S entre 000 a 3FF, sendo que o endereço 400 é uma repetição do endereço 000, o endereço 500 é uma repetição do en­de­reço 100, o endereço 600 é uma repetição do endereço 200, e assim por diante.

Se configu­rarmos uma nova placa para utilizar a faixa 550-57F, poderá ocorrer um conflito com a faixa 150-17F. Para não recair neste problema, use o programa IOVIEW para checar se a faixa desejada está realmente livre, pois ela poderá ter a repetição de outras faixas de endereço.

E038
Figura 38 – Mapa de E/S entre 700 e 7FF.

Veja por exemplo a figura 38, onde temos alguns endereços ocupados entre 700 e 7FF. Tratam-se de repetições de endereços entre 300 e 3FF, o que poderá ocorrer ou não, dependendo das placas utilizadas.