cap27 - eliminando conflitos de hardware

21
Capítulo 27 Eliminando conflitos de hardware Exemplos de conflitos Os conflitos de hardware são resultantes de instalações indevidas, nas quais temos dois ou mais dispositivos utilizando o mesmo recurso de hardware. Esses recursos são endereços de memória, endereços de E/S, linhas de IRQ e canais de DMA. Neste capítulo veremos como surgem os conflitos, como evitá-los e eliminá-los. Muitos problemas que ocorrem nos PCs são conseqüência de instalações er- radas. 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. Veremos neste capítulo como fazer instalações de dispositivos PnP (Plug-and-Play) e de legado (os que não são Plug-and-Play) sem que ocorram conflitos de hardware. Alguns exemplos de problemas resultantes de conflitos de hardware são apresentados a seguir: Exemplo 1: "Meu PC funcionava bem até que fiz a instalação de uma placa fax/modem. A placa não funcionou, e o que é pior, o mouse deixou de funcionar. Só quando retirei a placa fax/modem o mouse voltou a funcionar." Exemplo 2:

Upload: api-3711983

Post on 07-Jun-2015

5.084 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 Eliminando conflitosde hardwareExemplos de conflitosOs conflitos de hardware são resultantes de instalações indevidas, nas quaistemos dois ou mais dispositivos utilizando o mesmo recurso de hardware.Esses recursos são endereços de memória, endereços de E/S, linhas de IRQ ecanais de DMA. Neste capítulo veremos como surgem os conflitos, comoevitá-los e eliminá-los.

Muitos problemas que ocorrem nos PCs são conseqüência de instalações er-radas. Nem sempre uma instalação consiste em apenas conectar uma placa edeixar o Windows fazer o resto sozinho. Na verdade o Windows faz quasetudo sozinho, mas em muitos casos precisamos dar uma ajudazinha, visandoevitar a ocorrência de conflitos de hardware. Veremos neste capítulo comofazer instalações de dispositivos PnP (Plug-and-Play) e de legado (os que nãosão Plug-and-Play) sem que ocorram conflitos de hardware.

Alguns exemplos de problemas resultantes de conflitos de hardware sãoapresentados a seguir:

Exemplo 1:

"Meu PC funcionava bem até que fiz a instalação de uma placa fax/modem.A placa não funcionou, e o que é pior, o mouse deixou de funcionar. Sóquando retirei a placa fax/modem o mouse voltou a funcionar."

Exemplo 2:

Page 2: Cap27 - Eliminando Conflitos de Hardware

27-2 Hardware Total

"Instalei uma placa de som que funcionou, mas a impressora começou aapresentar problemas, imprimindo figuras pela metade e perdendo parte dotexto impresso."

Exemplo 3:

"Troquei a placa de vídeo do meu PC e a placa fax/modem deixou de fun-cionar."

Exemplo 4:

"Depois que instalei a placa de rede, a placa de som começou a apresentarproblemas 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 conflitocom as demais. Existem 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ãoautomaticamente escolhidos de forma a evitar conflitos. O problema é queainda existem muitos dispositivos não PnP. Basta que apenas um dispositivonão seja PnP para que o processo de instalação automática de dispositivosPnP fique comprometido. Não é sensato se desfazer de uma placa de som,ou uma placa de rede, ou um scanner, só porque foram comprados antes de1995, 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 derede de 10 Mbits antiga é não é tão boa quanto uma moderna, de 100Mbits/s, mas para aplicaçõe simples, seu uso é satisfatório. Um scanner antigopode 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 nospreocupar em evitar conflitos. Muitas vezes, mesmo quando todos osdispositivos de um PC são PnP, precisamos fazer alguns remanejamentos derecursos visando desfazer conflitos.

Page 3: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-3

Identificando recursos livres e ocupadosA forma mais simples de identificar recursos de hardware livres e ocupados éusando o Gerenciador de Dispositivos. Para chegar a ele clicamos o íconeMeu Computador com o botão direito do mouse e no menu apresentadoselecionamos a opção Propriedades. No quadro apresentado, selecionamos aguia Gerenciador de Dispositivos (figura 1).

Figura 27.1

O Gerenciador de Dispositivos.

O Gerenciador de Dispositivos nos dá diversas informações sobre osdispositivos instalados em um PC, inclusive os recursos de hardware queestão sendo utilizados. Na figura 1, deixando selecionado o itemComputador, e clicando sobre o botão Propriedades, teremos o quadromostrado na figura 2, no qual vemos quais são os recursos em uso. A lista dafigura mostra as interrupções em uso, mas podemos marcar os demaisrecursos de hardware: Entrada/Saída, DMA e Memória.

Page 4: Cap27 - Eliminando Conflitos de Hardware

27-4 Hardware Total

Figura 27.2

Interrupções em uso.

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

Dois dispositivos não podem utilizar o mesmo recurso

Em outras palavras, não podemos ter duas placas utilizando a mesmainterrupção, nem o mesmo canal de DMA, nem os mesmos endereços dememória, nem os mesmos endereços de E/S. Existe uma exceção para estaregra. Em certas condições especiais, é permitido que dois ou mais dispositi-vos compartilhem a mesma interrupção. É o caso do uso de interrupções dedispositivos conectados ao barramento PCI, que suporta o compartilhamentode IRQs.

Evitando conflitos de memóriaEste conflito ocorre quando duas memórias ocupam os mesmos endereços,normalmente ROMs de placas de expansão. A faixa de endereços usadospelas ROMs é a região compreendida entre 768 kB e 1024 kB, o quecorresponde aos valores C0000 a FFFFF, em hexadecimal. Placas quepossuem ROMs, quando seguem o padrão PnP, têm seus endereços dememória configurados de forma automática, sem intervenção do usuário. Oproblema está nas placas de legado que usam memórias, onde o usuáriodeve escolher endereços adequados na instalação. A figura 3 mostra a listade endereços de memória em uso, apresentada pelo Gerenciador deDispositivos.

Page 5: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-5

Figura 27.3

Endereços de memória ocupados.

Exemplo: placa controladora SCSI

Vejamos um exemplo real, que é a configuração da placa controladora SCSIADAPTEC, modelo AHA-2840A. Trata-se de uma placa de legado, e poristo o usuário precisa configurá-la através de jumpers. Esta placa possui umaROM com 32 kB, cujo endereço é configurado de acordo as instruções doseu manual, mostradas a seguir. Neste exemplo, dois jumpers, indicados naplaca como SW6 e SW5 são usados para o selecionamento do endereçodesta ROM.

Table 2-5. Host Adapter BIOS Base Address Switch SettingsBIOS BASE ADDRESS SW6 SW5

D8000h (Default) OFF OFFC8000h ON OFFD0000h OFF ONE0000h (*) ON ON

OFF = OPENON = 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 letra "h" colocada após cada endereço, é opcional, e servepara indicar que o número está em hexadecimal. Às vezes usam-se quatrodígitos e às vezes cinco. A razão é que os endereços de memória podem serexpressos de duas formas:

Page 6: Cap27 - Eliminando Conflitos de Hardware

27-6 Hardware Total

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

Para saber o endereço de um segmento, basta acrescentar um ZERO no seufinal. Por exemplo, o segmento D800 corresponde ao endereço D8000.

Na lista de endereços apresentada na figura 3, são utilizados 8 dígitos. Poroutro lado, muitos manuais mostram seus endereços usando 4 ou 5, e àsvezes até 8 dígitos. Por exemplo, o endereço D8000 poderia ser representadode 3 formas:

Endereço de 8 dígitos: 000D8000Endereço absoluto de 5 dígitos: D8000Segmento hexadecimal: D800

A tabela do nosso exemplo usa o termo BIOS base address. É o endereço damemória a partir do qual o BIOS da interface SCSI está localizado. O BIOSda placa de vídeo fica localizado no endereço base C0000, enquanto o BIOSda placa de CPU normalmente está localizado a partir do endereço E0000,E8000 ou do F0000, dependendo da placa.

Podemos ainda ver na tabela que o fabricante apresenta o endereço basedefault como D8000. As chaves SW5 e SW6 devem ser colocadas nasposições ON ou OFF para a escolha do endereço desejado. Para escolher oendereço base, devemos visualizar o mapa de memória do PC, antes dainstalação da nova placa. Para isto podemos usar o Gerenciador de Dispositi-vos, como mostra a figura 3. Na lista apresentada, podemos verificar quaissão as faixas de endereços já ocupadas, e quais estão livres:

00000-9FFFF: OcupadaA0000-AFFFF: OcupadaB0000-BFFFF: OcupadaC0000-C7FFF: OcupadaC8000-DFFFF: LivreE0000-E7FFF: Não disponívelE8000-FFFFF: Ocupada

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

Endereço base Tamanho

Page 7: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-7

A placa ADAPTEC AHA-2840 do nosso exemplo, possui 32 kB na suaROM. Sabendo o endereço base e o seu tamanho, podemos determinar oendereço final. Sabendo o endereço base (inicial) e o final, automaticamentetemos a faixa de endereços ocupada pela ROM. Para isto, precisamosconverter os números em kB para o formato hexadecimal. A tabela que sesegue será útil nesta conversão.

Valor em kB Valor Hex Segmento hex Valor em kB Valor hex Segmento hex4 kB 1000 0100 36 kB 9000 09008 kB 2000 0200 40 kB A000 0A0012 kB 3000 0300 44 kB B000 0B0016 kB 4000 0400 48 kB C000 0C0020 kB 5000 0500 52 kB D000 0D0024 kB 6000 0600 56 kB E000 0E0028 kB 7000 0700 60 kB F000 0F0032 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çobase (inicial) seja D0000. Sendo o seu tamanho igual a 32 kB, que de acordocom a tabela 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), temosD8000. Subtraindo 1 deste resultado, temos D7FFF (se fossem númerosdecimais, subtrair 1 resultaria em um final 999, mas em hexadecimal, estevalor final é FFF). Levando em conta esses cálculos, as faixas de endereçosque a ROM ocuparia seriam:

Endereço base Faixa de EndereçosD8000 D8000-DFFFFC8000 C8000-CFFFFD0000 D0000-D7FFFE0000 E0000-E7FFF

De acordo com o Gerenciador de Dispositivos (figura 3), a faixa deendereços disponível na área reservada para ROMs (C0000 a FFFFF) éC8000-DFFFF. Confrontando esta faixa com as 4 opções oferecidas pelaplaca do nosso exemplo, temos:

Page 8: Cap27 - Eliminando Conflitos de Hardware

27-8 Hardware Total

D8000: PermitidaC8000: PermitidaD0000: PermitidaE0000: Não permitida

Portanto, a nossa placa controladora SCSI funcionaria se fosse configuradacom qualquer uma das três primeiras opções de endereços, e certamente nãofuncionaria se fosse configurada na quarta opção, pois ocorreria um conflitode 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á-loquando o conflito impede o funcionamento do Windows. Neste casopodemos usar o programa MSD (Microsoft Diagnostics). No CD deinstalaçã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 deSegurança). Se esta opção não for satisfeita, o mapa de memória apresentadonão mostrará as áreas que estão realmente livres, pois estarão sendoocupadas pelos gerenciadores de memória. Na tela principal do MSD,teclamos “M”, para chegar ao mapa de memória (figura 4)

Figura 27.4

Mapa de memória apresentado pelo MSD.

O mapa de memória apresentado pelo MSD mostra a utilização da regiãocompreendida entre os endereços 640 kB (segmento A000, em hexadecimal)e 1024 kB (FFFF, em hexadecimal). As áreas em cinza no mapa de memóriado MSD correspondem a memória ROM. As ROMs mostradas na figura 4são o BIOS VGA (segmentos C000-C7FF) e o BIOS da placa de CPU, na

Page 9: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-9

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 realmenteestejam livres (na figura, entre E000 e EFFF). Finalmente, áreas totalmentepretas são garantidamente livres (na figura, entre C800 e DFFF).

Evitando conflitos de E/SOs conflitos de endereços de E/S são muito comuns, já que todas as placasde expansão necessitam deste recurso de hardware. Se o usuário nãoescolher esses endereços corretamente, ocorrerão conflitos de hardware, e asplacas envolvidas não funcionarão. Todos os comandos que o processadorenvia para os circuitos do computador são acompanhados de um endereçode E/S. Cada dispositivo de hardware, cada interface, ocupa umadeterminada faixa de endereços. Cabe aos softwares que chamamos de dri-vers, fazer o acesso ao hardware, através desses endereços.

O mapa de E/S padrão

Uma das formas de saber quais são os endereços de E/S livres é tomandocomo 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 parasuas diversas interfaces. A tabela a seguir ajuda um pouco, mas não é sufici-ente para saber se uma determinada faixa de endereços está ou não livre.Além disso, um determinado PC pode possuir interfaces que não estejamdescritas nesta tabela padrão da IBM. De qualquer forma, é útil ter estatabela como referência.

Page 10: Cap27 - Eliminando Conflitos de Hardware

27-10 Hardware Total

Endereços Interface que os utiliza

000-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 AT070-07F Chip CMOS080-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 coprocessador170-177 Controladora IDE secundária1F0-1F7 Controladora IDE primária200-207 Interface de joystick278-27F Porta paralela2E8-2EF Porta serial COM42F8-2FF Porta serial COM2370-377 Interface de drives secundária378-37F Porta paralela3B0-3BF Placa de vídeo MDA e HÉRCULES3C0-3CF Placa VGA3D0-3DF Placas CGA e VGA3E8-3EF Porta serial COM33F0-3F7 Interface de drives primária3F8-3FF Porta serial COM1

Existem métodos mais seguros para determinar se uma faixa de endereçosestá livre ou ocupada, mas mesmo assim a tabela acima pode ser útil, pelomenos para eliminar 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 dasseguintes 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 a207 é usada pela interface de joystick. Como a maioria dos PCs possuem estainterface, não devemos deixar que outras placas utilizem esta faixa deendereços. De acordo com a tabela, apenas as três últimas opções poderiamser utilizadas. Cabe aqui usar mais informações, pois obedecer a tabela não ésuficiente para evitar os conflitos de hardware. O PC pode possuir outrasinterfaces não previstas na configuração básica do IBM PC original. É o queocorre quando o PC possui uma placa de som. Normalmente, os modelos

Page 11: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-11

compatíveis com a Sound Blaster ocupam 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.

Usando o Gerenciador de Dispositivos

O Gerenciador de Dispositivos do Windows apresenta uma lista com asfaixas de endereços que estão em uso, bem como uma descrição dasinterfaces que as contém. A partir do quadro da figura 2, marcamos a opçãoEntrada/Saída (E/S), e teremos o quadro mostrado na figura 5. A listaapresenta as faixas de endereços que estão ocupadas, bem como asinterfaces que as contém. As faixas que não constam da lista estão, aprincípio, livres.

Figura 27.5

Encontrando endereços livres e ocupados.

Teríamos então:

200-207 Joystick para porta de jogos208-21F Livre220-22F Creative Labs Sound Blaster 16 PnP230-26F Livre270-273 Porta de dados de leitura de E/S para o enumerador ISA PnP274-2F7 Livre2F8-2FF COM2300-32F Livre330-331 Creative Labs Sound Blaster 16 PnP332-33F Livre340-35F NE2000 Compatível360-36D Livre36E-36F Creative SB32 PnP

Encontrando endereços livres desta forma, temos a primeira pista para aescolha de endereços de novas placas a serem instaladas.

Page 12: Cap27 - Eliminando Conflitos de Hardware

27-12 Hardware Total

Usando o programa IOVIEW

O IOVIEW é um utilitário ideal para fazer o levantamento do mapa de E/S.Pode ser encontrado em http://www.laercio.com.br. Deve ser usadoexclusivamente em modo MS-DOS, e nunca sob o Windows. Usamos assetas do teclado (para cima e para baixo) para percorrer a lista de endereços(figura 6).

Figura 27.6

Mapa de E/S entre 200-2FF, obtido como IOVIEW.

No IOVIEW, valores “FF” indicam que os endereços correspondentes estãoprovavelmente livres. Valores diferentes de “FF” indicam que os endereçosestão certamente ocupados. Na figura 6, temos logo no início, uma seqüênciade valores “F0”, correspondendo aos endereços 200, 201, 202, 203, 204, 205,206 e 207. Mais adiante, encontramos bytes ocupados em 220, 221, 222, 223,228, 229, 22A, 22C e 22E. Depois de uma grande faixa provavelmente livre,temos uma faixa ocupada nos endereços 2F8 a 2FF.

Note que as faixas de endereços ocupados apresentados pelo programaIOVIEW dizem respeito apenas aos circuitos que estão ativos no modo MS-DOS, que é o caso dos dispositivos de legado. Dispositivos Plug and Playnão serão mostrados, a menos que o IOVIEW seja executado no ambienteWindows. Para fazer isto é preciso encerrar todos os programas e executar oIOVIEW, de preferência em tela cheia, em uma sessão do MS-DOS sob oWindows (Iniciar / Programas / MS-DOS). Dispositivos Plug and Playpoderão então ser mostrados pelo IOVIEW.

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

Conflitos de IRQ

Page 13: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-13

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

Para corrigir o conflito devemos inicialmente desmarcar a opção Usarconfigurações automáticas. A seguir clicamos sobre o recurso que desejamosalterar e usamos o botão Alterar Configuração. Se for apresentada umamensagem indicando que o recurso não pode ser alterado, selecione outraconfiguração básica (veja o campo Config baseada em Configuração básica0000) e tente novamente. Será finalmente apresentado um quadro no qualvocê pode escolher outro recurso (outra IRQ, outro canal de DMA, etc.),desfazendo assim o conflito.

Exemplo: Instalando uma placa de rede de legado

As placas de rede mais usadas são as compatíveis com a NE2000, lançadapela Novell e produzida hoje por dezenas de fabricantes. Os modelosexistentes à venda são PCI, mas é possível ainda encontrar alguns modelosISA. Todas as placas de rede modernas operam em modo PnP, mas épossível que você precise instalar um modelo um pouco mais antigo,operando em modo de legado. Normalmente placas como esta possuemjumpers para selecionamento de:

Endereço de E/S IRQ Endereço de memória

O endereço de memória só precisa ser configurado quando a placa possuiuma ROM com boot remoto, ou RAM com buffer de transmissão/recepção.Quando não existe esta ROM ou RAM, deveremos desabilitá-la, usandoinstruções do seu manual. A placa usada no nosso exemplo possui jumperspara 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 IRQ0 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 30 0 1 0 340H 0 1 1 0 240H 0 1 0 4

Page 14: Cap27 - Eliminando Conflitos de Hardware

27-14 Hardware Total

0 0 1 1 360H 0 1 1 1 260H 0 1 1 51 0 0 0 380H 1 1 0 0 280H 1 0 0 101 0 0 1 3A0H 1 1 0 1 2A0H 1 0 1 111 0 1 0 3C0H 1 1 1 0 2C0H 1 1 0 121 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 aser ocupado pela placa, e os três jumpers seguintes definem a interrupção aser usada.

Digamos que já tenhamos feito as devidas consultas ao Gerenciador deDispositivos para determinar endereços e IRQs livres, e tenhamos optadopor usar o seguinte:

Endereço de E/S: 300HInterrupção: 10

Programamos os jumpers de acordo com as tabelas, conectamos a placa emum 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 ocomando Adicionar Novo Hardware, no Painel de Controle. Entrará emação o Assistente para Adicionar Novo Hardware.

O Assistente pergunta se queremos que o novo hardware seja detectadoautomaticamente, ou se desejamos especificar manualmente a sua marca emodelo. 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çãonem sempre funciona. No nosso exemplo vamos optar pela opção Não, eselecionar o hardware a partir de uma lista.

Será então apresentada uma lista de tipos de hardware, na qual selecionamosa opção Adaptadores de rede. Será finalmente apresentada uma lista demarcas e modelos, como vemos na figura 11.17. Na lista de fabricantesmarcamos Novell/Anthem, e na lista de modelos marcamos Compatível comNE2000. Note que algumas placas são acompanhadas de disquetes deinstalação, e neste caso devemos clicar sobre o botão Com disco para acessaresses drivers.

Page 15: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-15

Figura 27.7

Selecionando a marca e o modelo daplaca.

Como não se trata de um dispositivo PnP, o assistente para adicionarhardware 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 osrecursos originalmente escolhidos, e desde que estejam realmente livres,alterar as configurações na guia de Recursos do quadro de propriedades deplaca, obtido pelo Gerenciador de dispositivos, programando o endereço deE/S e a IRQ escolhidos.

Figura 27.8

Visualizando os recursos de hardware utilizados poruma placa.

Page 16: Cap27 - Eliminando Conflitos de Hardware

27-16 Hardware Total

Depois de realizado o novo boot, podemos abrir o Gerenciador deDispositivos, e lá veremos registrada a placa recém-instalada, que no nossocaso é indicada como NE2000 Compatível.

Alterações no CMOS Setup

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

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

Cada IRQ ou canal de DMA utilizado por um dispositivo de legado deve serindicado como ISA/Legacy no CMOS Setup. Isto evitará que o Windowsutilize esses recursos para outros dispositivos PnP.

Evitando conflitos de DMAO funcionamento da transferência de dados por DMA está explicado nocapítulo 4. No que diz respeito à resolução de conflitos, temos que garantirque não existam dois dispositivos usando o mesmo canal de DMA.

Podemos visualizar os canais de DMA que estão em uso através doGerenciador de Dispositivos, como mostra a figura 9. Neste exemplo, alémdos 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, eo canal DMA3 usado pela porta paralela ECP.

Page 17: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-17

Figura 27.9

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

Quando o Windows é instalado em um PC com configuração básica, apenasestarão em uso os canais 2 e 4. Os canais 0, 1, 3, 5, 6 e 7 estarão disponíveispara serem usadas por placas de expansão. À medida em que novas placassão instaladas, os canais livres vão sendo ocupados. Quando instalamosplacas PnP, os canais de DMA necessários são atribuídos automaticamente.No caso de placas de legado, cabe ao usuário descobrir quais são os canaisde DMA livres, bem como atribuir canais às placas que estão sendoinstaladas.

Um caso importante é a interface paralela operando no modo ECP. Aescolha do canal de DMA é feita pelo CMOS Setup, e e alguns casos é feitaatravés de um jumper da placa de CPU.

Exemplo: Placa Sound Blaster 16 de legado

As placas Sound Blaster 16 e todas as suas sucessoras utilizam dois canais deDMA, 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 DMA3DMA HIGH: Pode ser escolhido entre DMA5, DMA6 e DMA7

A escolha é feita pelos jumpers da placa, levando em conta os canais queestão livres.

Reservando recursosExistem certos tipos de instalação em que temos que usar o comandoReservar Recursos no Gerenciador de Dispositivos. São casos em que oWindows não consegue reconhecer a placa que está sendo instalada, nem no

Page 18: Cap27 - Eliminando Conflitos de Hardware

27-18 Hardware Total

modo PnP e nem no modo de legado, e por isso não sabe das suasnecessidades em termos de endereços de E/S, DMA, memória e IRQ.

Tipicamente isto ocorre com dispositivos antigos, nos quais temos que utilizardrivers também antigos, próprios para o Windows 3.x. Recursos de hardwarecontrolados por drivers que não são próprios para o Windows 9x não sãoindicados no Gerenciador de dispositivos. Temos que indicar esses recursoscomo ISA/Legacy no CMOS Setup, e também reservá-los no Gerenciador dedispositivos. Apenas depois que esses recursos estão reservados podemosinstalar os drivers para Windows 3.x. Você precisará fazer isto, por exemplo,para instalar um scanner antigo, ou qualquer outro tipo de hardware anteriora 1995 e que não tenha drivers nativos no Windows 9x.

Vamos ilustrar a reserva de recursos usando como exemplo a placa deinterface que acompanha o scanner Genius ScanMate Color. Trata-se de umscanner manual, capaz de operar com 16 milhões de cores, e muito vendidopor volta de 1995. De acordo com o manual deste scanner, a placa deinterface que o acompanha necessita dos seguintes recursos de hardware:

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

Uma vez identificadas as opções suportadas pela placa, devemos verificar,com a ajuda do Gerenciador de Dispositivos, quais delas podem ser usadas,ou seja, não estão em uso. Consultando os relatórios sobre uso de endereçosde E/S, interrupções e canais de DMA apresentados pelo Gerenciador deDispositivos, digamos que resolvemos usar para a nossa placa de interface descanner, a seguinte configuração:

Endereços de E/S: 2A0-2A3Interrupção: IRQ11Canal de DMA: DMA6

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

Page 19: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-19

Figura 27.10

Quadro para reservar recursos.

Para reservar um recurso, devemos antes indicar o seu tipo. No quadro dafigura 10, está sendo indicado o tipo Pedido de interrupção (IRQ). Clicamosentão sobre o botão Adicionar. É apresentado um quadro onde especifica-mos a interrupção a ser reservada. O procedimento é semelhante para osendereços de E/S e para o canal de DMA. Nos casos dos endereços de E/S eendereços de memória, é preciso especificar uma faixa, ou seja, um endereçoinicial e um endereço final.

Figura 27.11

A IRQ11 já está reservada

Terminada a reserva, é preciso reinicializar o computador para que asmudanças tenham efeito. Observe que neste momento ainda não instalamosa placa no computador, apenas reservamos os seus recursos. Depois do boot,podemos usar novamente o Gerenciador de Dispositivos para confirmar areserva dos recursos. Veja por exemplo na figura 11, a IRQ11 reservada.

Page 20: Cap27 - Eliminando Conflitos de Hardware

27-20 Hardware Total

Endereços de E/S acima de 3FFUm certo cuidado adicional deve ser tomado com o uso de endereços de E/Susados por placas modernas. Até poucos anos atrás, tanto as placas de CPUquanto as placas de expansão utilizavam apenas a faixa de endereços de E/Sentre 000 a 3FF, sendo que o endereço 400 é uma repetição do endereço000, o endereço 500 é uma repetição do endereço 100, o endereço 600 éuma repetição do endereço 200, e assim por diante. Esta repetição ocorredevido a uma técnica usada em hardware para economizar circuitos,chamada decodificação incompleta. No PC esta técnica foi empregada pois aIBM estipulou o uso apenas da faixa de 000 e 3FF. Para distinguir umendereço nesta faixa basta usar um decodificador de endereços de 10 bits aoinvés de 16. A diferença entre, por exemplo, 170 e 570 (hexadecimal) está no11º bit. Uma interface de disco rígido usando um decodificador de 10 bitspara reconhecer a sua faixa de endereços (170 a 177) responderá indevida-mente a comandos direcionados para endereços 570-577, 970-977, etc.

Se configurarmos uma nova placa para utilizar a faixa 550-57F, certamenteocorrerá um conflito de endereços de E/S, a menos que o decodificador deendereços utilize pelo menos 11 bits, ao invés de 10. Diversas placas deinterface modernas utilizam decodificadores completos, usando 16 bits aoinvés de 10, com o objetivo de evitar este tipo de conflito. Problemas destetipo podem ocorrer quando são instaladas placas de expansão antigas(produzidas até aproximadamente 1995) em um PC moderno.

Figura 27.12

Mapa de E/S entre 300 e 3FF.

Page 21: Cap27 - Eliminando Conflitos de Hardware

Capítulo 27 – Eliminando conflitos de hardware 27-21

Figura 27.13

Mapa de E/S entre 700 e 7FF.

Programas como o IOVIEW podem ser usados normalmente, mesmo parabuscar endereços livres acima do endereço 3FF. As figuras 12 e 13 mostramas faixas de endereços 300-3FF e 700-7FF em um certo PC. A decodificaçãoincompleta com 10 bits faz com que o endereço 700 seja uma repetição doendereço 300. Comparando as figuras podemos observar que a maioria dosvalores existentes na faixa 300-3FF aparecem idênticos na faixa 700-7FF.Nesse caso, não poderíamos deixar que uma nova placa ocupe, porexemplo, a faixa 700-70F, pois encontraríamos aí uma repetição da faixa 300-30F, que como vemos, já está ocupada.

////////// FIM ////////////////