|
TREINAMENTO Neste módulo: Esta apostila é um apoio à aula ministrada pela Next. Não
tem a intenção de ser um tratado sobre o assunto. Mas uma apostila feita
para ser "complemento" de aula tem seus furos, por isso se você encontrar
problemas na compreensão da mesma, mande uma mensagem para seu autor,
Jefferson Ryan. O autor já
conhece alguns desses furos e promete revisar a apostila quando puder.
EndereçosOs slots dos Pcs atuais ( barramento ISA ) são todos idênticos. Não faz diferença alguma do ponto de vista do desempenho, em que slot você encaixa uma determinada placa. Digo "Pcs atuais" porque no obsoleto XT o slot 8 era diferente dos demais. Assim sendo, todas as placas que você adiciona a um PC
tem condições de acessar os mesmos sinais do barramento. O que é vantajoso
do ponto de vista estético ( você pode arrumar as placas dentro do computador
como for mais conveniente) pode ser um pesadelo do ponto de vista do funcionamento,
porque não existe uma maneira direta do processador "conversar"
com uma placa que esteja em um determinado slot. Para que o processador
possa acessar uma determinada placa é necessário saber o seu endereço
. Na verdade, tudo no PC tem um endereço. Qualquer dado que trafegue pelo computador tem que ter um destino e para ter um destino ele precisa de um endereço. Nessa aula, falaremos apenas do endereçamento feito a dispositivos periféricos (internos ou externos). Para entender porque isso é necessário, imagine uma empresa
em que todas as ordens são publicadas no quadro de avisos e onde todos
os funcionários tem de ler todas as ordens, filtrando quais as ordens
que tem a ver com seus cargos. Cada funcionário perderia tanto tempo examinando
as ordens publicadas e decidindo se são de sua responsabilidade ou não,
que não teria tempo de executar as que lhe cabem. Milhões de informações percorrem o barramento a cada
segundo e se cada placa tivesse que analisar todas as informações que
passam no barramento o PC de hoje seria uma tartaruga ou precisaria ser
reformulado. Os Pcs não caem nessa asneira. Cada placa monitora apenas
as chamadas Linhas de Endereço e, ao detectar o endereço que lhe é atribuído,
processa as informações contidas nas linhas de dados. Às vezes o endereço
é fixo, como acontece na maioria das placas de vídeo, mas em algumas circunstâncias
você pode mudar o endereço a que uma placa responde através de configuração
da placa. Mas se você muda o endereço padrão de uma placa, tem que ter
um meio de dizer ao software que a utiliza qual é esse novo endereço;
do contrário o software não a encontrará, apesar dela estar bem ali, dentro
do micro. Existe algo importante a considerar quando você se refere
ao endereço de uma placa: você normalmente se refere ao endereço base,
porque na realidade o que existe é uma faixa de endereços a partir
daquele endereço base que a placa usa ou pode usar. É importante você saber disso para não ficar confuso
quando, por exemplo, o Windows 95 ou qualquer manual diz que o endereço
de uma placa é 0110 - 011F. Isso significa que ao dispositivo estão
atribuídos os endereços que vão de 0110 até 011F em seqüência.
Ë comum se omitir esse detalhe quando se fala em endereços e você deve
sempre levar em consideração isso. Mas porque isso? Uma placa normalmente é constituída de vários dispositivos, mesmo quando não temos consciência disso. O programa deve ser capaz de conversar com cada um desses dispositivos isoladamente e por isso precisa de um endereço atribuído para cada um. Uma mesma placa também pode ter vários conjuntos de dispositivos, como é o caso da Super IDE ( também chamada da IDE Plus e Multi I/O) que integra 4 portas
As interrupções
|
IRQ 0* | Cronômetro do Sistema |
IRQ 1* | Teclado ( quando o buffer está cheio ) |
IRQ 2* | O próprio controlador de interrupções |
IRQ 6 | Controladora de disco flexível |
IRQ 8* | CMOS do sistema/relógio de tempo real |
IRQ 9 | Usada pelo sistema |
IRQ 13* | Processador de dados numérico |
IRQ 14 | Controlador primário de disco rígido |
*Não é possível haver conflito nessas interrupções, porque os "fios" correspondentes a elas não estão disponíveis no barramento.
Da lista acima você pode perceber que "sobram"
ao todo 8 interrupções ( 3, 4, 5, 7, 10, 11, 12, e 15 ). Todo e qualquer
dispositivo que você conecte ao computador e que precise usar uma interrupção
tem que se contentar com uma destas. Eu coloquei "sobram" entre
aspas porque nem todas estão sempre realmente disponíveis
Eis algumas atribuições padrão para as IRQ que "sobraram" da lista anterior
Interrupção | Nome padrão do dispositivo | Quem geralmente usa |
IRQ 3 | COM 2/COM4 | Mouse ou placa de rede * |
IRQ 4 | COM 1/COM3 | Modem |
IRQ 5 | Porta paralela 2 (LPT2) | Impressora ou Sound Blaster |
IRQ 7 | Porta paralela 1 (LPT1) | Outra Impressora |
IRQ 10 | ||
IRQ 11 | ||
IRQ 12 | ||
IRQ 15 | Controlador secundário de disco rígido | Terceiro disco rígido ou drive de CD ROM IDE |
*As placas de rede vem geralmente pré-configuradas para usar IRQ3 e entram em conflito com COM1, geralmente deixando o mouse inoperante
Vamos analisar os possíveis problemas:
IRQs 3 e 4
Mesmo que você não esteja usando nenhuma das portas de
comunicação, elas geralmente precisam ser explicitamente desligadas para
não utilizarem as interrupções 3 e 4. E mesmo que você não use uma destas
interrupções, são poucos os dispositivos/placas que podem fazer uso de
uma IRQ 3 ou 4 livre.
Quando uma fabricante constrói uma placa, ele define no projeto que interrupções podem ser escolhidas para seu uso. Você não pode usar uma interrupção que não esteja no conjunto definido pelo fabricante, mesmo que ela esteja livre.
IRQs 5 e 7
Geralmente,
impressoras não utilizam as IRQs disponíveis nas portas paralelas, por
isso alguns placas são projetadas para fazer uso das IRQs 5 e 7. Um caso
muito comum é o das placas de som como a Sound Blaster. A Sound Blaster
16 vem de fábrica configurada para trabalhar com a IRQ 5. A obsoleta Sound
Blaster PRO tinha por default a IRQ 7.
Entretanto,
esse esquema pode significar problemas se um dia você decidir conectar
à porta paralela um dispositivo que faz uso da IRQ correspondente.
IRQ 15
Em computadores antigos, geralmente do 386 para trás, você poderia usar IRQ 15 com qualquer dispositivo que pudesse fazer uso dela sem medo de conflitos porque ela sempre estava disponível. Hoje, todas as placas-mãe modernas dão suporte a uma segunda controladora de disco rígido, chamada de secundária, que é utilizada por drives modernos de CD ROM ou quando você tem mais que dois Winchesters ( isso não é tão incomum quanto parece). Essa controladora secundária usa a IRQ 15.
Pelo que foi exposto, dá para notar que dispositivos
"incomuns" ou qualquer coisa que venha a ser inventada para
o PC tem que se contentar com as interrupções de 10 a 12. E mesmo quando
um fabricante tenta evitar problemas e constrói seu dispositivo para usar
apenas interrupções dentro dessa faixa, ainda podem ocorrer problemas.
É necessário que uma interrupção padrão seja escolhida para que o dispositivo use automaticamente, sem intervenção do usuário ou técnico. Então se dois fabricantes de dispositivos diferentes resolvem usar a mesma interrupção padrão e o usuário dá o azar de comprar dispositivos desses dois fabricantes, ele vai ter que reconfigurar um deles. O mesmo vai ocorrer nos casos em que é necessário usar dois dispositivos idênticos no mesmo computador (duas placas de rede, por exemplo).
A especificação Plug and Play (PnP), que traduzida para o português seria mais ou menos "encaixe e use", promete acabar com as dores de cabeça com conflitos no computador. Segundo a especificação, o computador pode conversar com as placas, saber dos recursos que necessitam e configurá-las automaticamente para que não entrem em conflito umas com as outras.
Isso parece muito bom à primeira vista, mas não é nada
fácil de implementar. Explicar como isso funciona foge dos limites do
nosso curso por ser altamente técnico. O que você precisa saber é que
para ter um sistema verdadeiramente PnP você precisa cumprir três condições:
Se as condições 1 e 2 não forem satisfeitas, não adianta você comprar placas PnP que isso não vai ajudar. O usuário ainda vai precisar escolher ele mesmo os endereços e interrupções para evitar conflitos. Talvez ele não precise ficar mudando jumpers nas placas, mas vai precisar usar os softwares que vem com as placas.
Se você satisfizer apenas a condição 1 ou apenas a condição 2, você não tem nada.
Você precisa que no mínimo duas dessas condições sejam
satisfeitas para ter um mínimo de funcionalidade PnP.
As portas seriais (COM) e paralelas (LPT) são um caso
especial. Normalmente quando um programa procura por uma placa ele usa
seu endereço absoluto, mas quando ele procura por uma porta COM ou LPT
ele deve consultar antes uma tabela para saber qual é o endereço atual
da porta. No caso, COM e LPT são apenas "apelidos" para as posições
na tabela onde se encontram os verdadeiro endereços.
Os endereços padrão para as portas COM e LPT são:
COM 1 | 3F8 | LPT1 | 03BC |
COM 2 | 2F8 | LPT2 | 0378 |
COM 3 | 3E8 | LPT3 | 0278 |
COM 4 | 2E8 |
No projeto original do PC, só haviam duas portas de comunicação:
COM 1 e COM 2 e a elas foram atribuídas as IRQs 4 e 3, respectivamente.
Mais tarde chegou-se à conclusão que mais duas portas seriam úteis e então
foram criadas as portas COM 3 e COM 4. Mas não havia interrupções de sobra
para atribuir a essas portas, por isso o projeto prevê que as novas portas
devem "dividir" interrupções com as portas originais. A coisa
até hoje ficou da seguinte forma:
Em teoria, você pode perfeitamente utilizar as 4 portas
ao mesmo tempo, desde que as 4 portas não precisem usar as interrupções,
ao mesmo tempo.
Como regra geral para evitar problemas, deve-se ter em
mente o seguinte:
Se você usar COM 1, não deve usar COM 3;
Se você usar COM 2, não deve usar COM 4;
Poderia parecer a princípio que você poderia fazer o
inverso: Usar COM 3 e COM 4 desde que não usasse COM 1 e COM 2. Mas o
projeto do PC é cheio de surpresas, como veremos a seguir.
Quando o computador é inicializado, o programa armazenado na BIOS procura em seqüência pela existência de portas nos endereços padrão. À cada porta encontrada é atribuído um apelido, também em seqüência.
Essa atribuição seqüencial de apelidos gera um problema: Se você optar, por exemplo, por instalar uma placa cujo endereço, tecnicamente, seria atribuído a COM 4, essa placa vai receber um apelido que vai depender das portas que você já tem instaladas no sistema. Se você não tiver uma porta COM 2, a BIOS vai atribuir o apelido COM2 à sua placa. Se ainda assim a porta funcionasse seria ótimo, mas é muito mais provável que você tenha um monte de dores de cabeça. BIOS modernas e o Windows 95 podem contornar esse problema, mas é sempre melhor não facilitar para o azar.
As portas paralelas também usam esse mesmo esquema de
atribuição seqüencial, mas falaremos nisso mais adiante.
Resumindo: Você deve usar os endereços em seqüência.
O projeto do PC permite a existência de até três portas
paralelas:
Denominação | Endereço base | Interrupção |
LPT 1 | 03BC | IRQ 7 |
LPT 2 | 0378 | IRQ 5 |
LPT 3 | 0278 | IRQ 5 ou 7 |
As portas paralelas são menos suscetíveis a conflitos,
porque geralmente o que você conecta a elas (impressoras) não utiliza
interrupções. Mas se você for utilizar algum dispositivo diferente (como
o ZIP Drive para porta paralela) é bom ter em mente que problemas podem
ocorrer se você tiver instalado algum dispositivo no seu computador que
assume que sua porta paralela não vai usar a interrupção que lhe cabe.
As portas paralelas também sofrem do mesmo tipo de problema
de atribuição seqüencial que as portas seriais, mas às vezes isso é útil,
porque não importa o endereço da placa que você conecta, o PC vai ter
sempre uma porta LPT1. Se você tiver sorte, vai funcionar tudo direitinho
( se você tiver sorte, eu disse. ).
Mas para que eu iria querer usar duas portas paralelas
em meu computador?
Por vários motivos:
Mas para isso eu não posso usar um chaveador?
O chaveador é uma solução simples e rápida, porque você não tem que abrir o micro e nem se preocupar com interrupções. Mas instalar uma outra porta paralela é uma solução mais elegante, às vezes mais econômica ( se você não tiver que pagar um técnico para instalar) e mais fácil de operar. Sempre que você vai imprimir, você pode escolher entre uma ou outra impressora com no máximo dois cliques do mouse ( no Windows, é claro). É bom ter em mente que não existe um chaveador automático de um micro para duas impressoras. Você só encontra chaveadores automáticos de dois micros para uma impressora. Se você quiser fazer uma conexão de um micro com duas impressoras, vai ter que se contentar com um chaveador manual, se não quiser instalar duas portas paralelas
Nas portas seriais, os dados são transferidos um bit por vez, em "série" porque só existe um fio por onde os dados podem passar. Nas portas paralelas, 8 bits são transferidos de cada vez, ao mesmo tempo, "paralelamente", porque existem oito fios para a passagem dos dados.
Como toda a comunicação interna em um computador é "paralela" (sempre 8, 16, 32 ou 64 bits estão sendo transmitidos ao mesmo tempo) a porta serial requer um circuito adicional para converter os sinais de paralelo para serial.
Mas se a porta paralela é no mínimo 8 vezes mais rápida que uma porta serial e requer um circuito menos complexo, então porque as portas seriais ainda existem?
Em sistemas de transmissão de dados é muito mais barato
construir complexos circuitos eletrônicos que convertem dados de paralelo
para serial de um lado e de serial para paralelo do outro do que multiplicar
por oito os fios necessários à transmissão de dados. Além disso, a comunicação
paralela só funciona bem até uns poucos metros. Quando a distância aumenta,
problemas de interferência eletrônica difíceis de resolver começam a ocorrer
no cabo. As portas paralelas tem então aplicações relativamente reduzidas:
A comunicação serial é largamente utilizada, mesmo quando
você não se apercebe disso:
Embora a impressora seja um dispositivo normalmente vendido
com uma interface paralela, existem aplicações que exigem que a impressora
tenha (ou que possa ter) uma interface serial. São aplicações onde se
espera ou se quer que a impressora fique longe do computador:
É importante observar que isso tem um preço: a transmissão de dados do computador para a impressora vai ser 8 vezes mais lenta, no mínimo.
Exemplos de dispositivos seriais:
Exemplos de dispositivos paralelos:
É comum você ouvir alguém dizer "saída paralela",
"entrada serial" e "saída serial" referindo-se às
portas seriais e paralelas. Estas expressões são tecnicamente incorretas,
porque tanto as portas seriais quanto as paralelas são bidirecionais (
as informações tanto podem entrar quanto sair por elas). Os defensores
das "saídas paralelas" vão teimar que as impressoras, por exemplo,
apenas recebem informação vinda do computador, por isso a porta paralela
é uma "saída" paralela. Antigamente, na época do PC XT, as portas
eram construídas unidirecionais, mas os PCs modernos usam portas bidirecionais.
Não adianta discutir ou tentar convencer essas pessoas que elas estão
erradas. Entenda o que elas querem dizer mas sempre use o termo "porta"
em lugar de "entrada" e "saída".