O Passado - Barramento ISA
top of page
Leonardo Ritter

O Passado - Barramento ISA

Atualizado: 21 de jul. de 2023

Esta série de artigos é exclusiva para detalhar o funcionamento de interfaces de comunicação muito antigas, aparelhos antigos e componentes eletrônicos que foram muito importantes durante a evolução da tecnologia, mas que hoje em dia são obsoletos!

Nos anos 1980 já estava ficando extremamente necessário uma interface para conectar placas de vídeo, placas de som e diversos outros periféricos ao PC, foi quando surgiu uma das interfaces mais populares da história do computador pessoal: a ISA.

A interface ISA, abreviação para "Industry Standard Architeture" (Arquitetura Padrão da Indústria), foi o primeiro barramento para conexão de placas de expansão incorporado em placas de PC. O primeiro computador a utiliza-la foi o IBM PC, de 1981. Já o último à usa-la não se sabe, pois virou uma interface extremamente popular, apesar dos problemas de desempenho. No início dos anos 2000 ainda era possível encontrar placas-mãe para Athlon de socket 462 e até mesmo para o LGA775 da Intel que incluíam suporte ao barramento ISA.

Abaixo, uma placa-mãe para processadores Intel de socket mPGA478 e com suporte à memória RAM DDR1 400:

Imagem 1 - Placa-mãe pós-anos 2000 que ainda implementava o barramento ISA


ISA 8 bits


Em sua versão original, que foi utilizada em placas baseadas no processador Intel 8088, a interface ISA foi implementada diretamente no barramento da CPU, que tinha apenas apenas 8 bits de largura e operava com um clock de 4,77 Mhz.

No PC XT o barramento ISA (ou XT Bus) passou a trabalhar com um clock de 8,33 Mhz, também tendo o mesmo clock do processador. A interface também manteve os 8 bits de largura.


CURIOSIDADE: A interface ISA, nas suas primeiras versões, também era chamada de XT Bus, devido a ela ter sido incorporada no PC XT, que veio logo após o PC original (conhecido como IBM PC).


Veja abaixo, a imagem de um XT com Intel 8088:

Imagem 2 - Placa-mãe com CPU INtel 8088


ISA 16 bits


Com a chegada dos processadores 286, a interface ISA foi revisada e passou à usar um barramento de 16 bits, mas mantendo a compatibilidade com as placas de expansão que trabalhavam com apenas 8 bits. Para que isso acontecesse, o conector antigo foi mantido e a nova revisão apenas incluiu algumas linhas a mais, passando de 62 para 98 terminais no conector.

Veja um cartão ISA com interface de 8 bits e um cartão ISA com interface de 16 bits abaixo:

Interface ISA de 8 e de 16 bits

Imagem 3 - Diferença entre conector de 8 e de 16 bits


Veja o conector ISA de 16 bits abaixo:

Imagem 4 - Conector ISA de 16 bits


Um cartão ISA de 8 bits possui 62 contatos (62 terminais no slot), enquanto um cartão de 16 bits possui 98 contatos (98 terminais no slot).


Veja que, como foi dito acima, o slot ISA de 16 bits possui apenas uma extensão de 36 contatos, tornando todos os cartões de 8 e 16 bits retro-compatíveis.

Veja uma placa-mãe com slots ISA abaixo:

Placa-mãe com interface ISA

Imagem 5 - Uma antiga placa-mãe em formato AT cheia de slots


CURIOSIDADE: Na Imagem 5 é possível notar oito conectores brancos acima dos slots ISA. Eles são utilizados para módulos SIMM de memória RAM FPM. Para saber mais sobre memórias RAM FPM e EDO, conectores SIMM de 30 e 72 pinos e muito mais, CLIQUE AQUI!


O controlador ISA era fácil de programar (como eu havia dito acima, era mesmo barramento oferecido pelo processador), sendo muito utilizado por programadores que trabalhavam com automação e robótica. Tão popular que quando o seu fim estava chegando, alguns começaram a fazer estoque de dispositivos compatíveis com ISA.


eISA (32 bits)


Por volta de 1988, a AST, Epson, Hewlett-Packard, NEC, Olivetti, Tandy, Wyse e a Zenith, todas elas lideradas pela Compaq, desenvolveram a eISA, abreviação para "Extended Industry Standard Interface" (Arquitetura Padrão da Indústria Estendida), uma opção ao recém lançado barramento Micro Channel Architeture (MCA) da IBM.

O eISA vinha com barramento de 32 bits, no entanto, mantinha a compatibilidade com as revisões anteriores desta interface. Ele foi utilizado em placas-mãe com suporte à processadores 386 e 486 por volta do ano 1995, mas logo perdeu espaço para o moderno barramento PCI.

O conector eISA possui o mesmo tamanho do conector ISA comum, só que ele é mais alto e abriga um total de 4 linhas de pinos, divididas em duas camadas, sendo que as duas faixas superiores são para manter a compatibilidade com as versões anteriores da interface, e as duas faixas inferiores são para a interface eISA. Veja abaixo o esquema do slot:

Cartão eISA

Imagem 6 - Como era o conector eISA


Veja a imagem de slots eISA numa placa-mãe:

Placa-mãe com slot's eISA

Imagem 7 - Placa-mãe AT repleta de slots de expansão


Os slots eISA possuem cor marrom em 99% das placas-mãe. Assim, pela imagem, é fácil de confundi-los com o slot AGP, só que ao ver de perto, a diferença de tamanho entre o AGP e o eISA é enorme.

Compare um slot ISA de 16 bits com um slot eISA:

Interface ISA x eISA

Imagem 7 - Diferença entre o ISA e o eISA


Veja abaixo uma placa de vídeo eISA:

Placa de vídeo eISA da S3 Graphics

Imagem 8 - Uma 'dinossaúrica' placa de vídeo eISA


CURIOSIDADE: Estas placas de vídeo utilizavam interfaces VGA muito primitivas, tanto que a interface ISA vinha com uma linha de clock de 14,318 Mhz para sincronismo de vídeo CGA, sendo que os chips gráficos eram limitados apenas à formação de 256 cores, já que não havia largura de banda suficiente para transferir dados de vídeo com qualidade muito alta.

Em todas as revisões da interface ISA permaneram os jumpers nos cartões de expansão para que o usuário configurasse manualmente os endereços de DMA, IRQ e I/O. Quando o PC tinha vários periféricos instalados, a configuração dos jumpers deveria ser feita com muito cuidado, pois caso duas placas utilizassem o mesmo endereço, entrariam em conflito e não iriam funcionar corretamente.

Somente em 1993, uma especificação criada pela Microsoft e pela Intel permitiu que os cartões ISA fossem Plug and Play (Conectar e Usar), poupando o usuário de ter que configurar tudo ao instalar um periférico ISA, já que o BIOS configurava os endereços ao ligar o computador. Com a colocação desta nova tecnologia, os cartões que utilizavam jumpers passaram a ser chamados de placas Legacy ISA (placas ISA Legado).


CURIOSIDADE: Após a chegada do Plug and Play, os cartões Legacy ISA ainda populares eram os antigos modems, que trabalhavam via hardware e ofereciam vantagens em relação aos softmodems avançados lançados em meados de 1990.

PCMCIA PC Card


O PCMCIA, grupo de interesse especial (SIG) criado em 1989, foi o responsável por trazer ao mercado:


A interface PC Card, introduzida em Novembro de 1990, que implementa um barramento ISA de 16 bits;


A interface CardBus, introduzida em Maio de 1996, que implementa um barramento PCI de 32 bits.


A interface ExpressCard, introduzida em meados de 2003, que implementa uma conexão PCI Express x1 e uma porta USB.


OBSERVAÇÃO: Foi gerada uma distinção coloquial que definiu PC Card como sendo um dispositivo de 16 bits (baseado em ISA) e um dispositivo Cardbus como sendo um dispositivo de 32 bits (baseado em PCI). Em um entendimento técnico, isso está incorreto.

O marketing acabou atrapalhando a marca PCMCIA e, em Fevereiro de 1995, o nome foi substituído por um mais amigável e menos tecnológico: PC Card. PC Card é o nome de hardware dominante para dispositivos de 16 bits e 32 bits. Cardbus é exclusivamente um subconjunto opcional da especificação PC Card. O Cardbus não precisa ser implementado por um fabricante do dispositivo, e só é feito quando são necessários recursos de desempenho compatíveis com os de um periférico PCI.

Sendo assim, do ponto de vista acadêmico, o uso mercadológico de 'PC Card' em referência a dispositivos de 32 bits é correto, embora como resultado direto da necessidade social superveniente de esclarecimento, as distinções coloquiais sejam preferidas.

Todavia, por uma questão de melhor entendimento do conteúdo - que já é complexo por si só - o Hardware Central trata o PC Card como sendo aqueles cartões de 16 bits, e o CardBus como sendo aqueles de 32 bits.


Prosseguindo com o conteúdo...


O CardBus é uma interface para conectar dispositivos periféricos a um computador, sendo adotado geralmente em notebooks. Alguns PCs domésticos implementavam tal interface, como é o caso do Asus Pundit-S, um gabinete Slim com uma placa-mãe P4S8L para soquete mPGA478, da Intel, cujo conector PCMCIA PC Card / CardBus pode ser visto abaixo:

Imagem 9 - Logo atrás, o seu controlador, um chip ENE CB-710Q A1


O PCMCIA CardBus possui o mesmo conector de 68 pinos utilizado no PC Card, que é a primeira geração. No entanto, a função de cada pino difere...

Diagrama 1 - O conector utilizado na PCMCIA PC Card e CardBus


Existem três classes de cartões PCMCIA (não inclui o ExpressCard):


Tipo I: Cartão com dimensões de 3,3 mm x 85,6 mm x 54,0 mm (A x C x L), a versão 2.1 permite que o comprimento varie de 50 mm a 135 mm. Estes só existem com a interface ISA de 16 bits;


Tipo II: Cartão com dimensões de 5,0 mm x 85,6 mm x 54,0 mm, a versão 2.1 permite que o comprimento varie de 50 mm a 135 mm. Existem cartões com estas dimensões com interface ISA e outros com a interface PCI;


Tipo III: dimensões 10,5 mm x 85,6 mm x 54,0 mm (Altura x Comprimento x Largura). Existem cartões com estas dimensões com interface ISA e outros com a interface PCI.


CURIOSIDADE: Um Tipo IV foi criado pela Toshiba, porém nunca regularizado pelo PCMCIA. Ele tinha como diferencial uma espessura de 16 milímetros.


Um dispositivo PC Card (16 bits) funcionará tanto em um conector PC Card quanto em um slot para CardBus (32 bits). É aqui que a interface PCI e ISA se cruzam. Sendo o conector da Imagem 9 para cartões Tipo I, II e III, isto significa que seu controlador, o ENE CB-710Q A1 opera com ISA e PCI e se alterna de acordo com o cartão inserido.

Inserir um cartão CardBus (32 bits) num conector PC Card (16 bits) não vai funcionar. O conector, como já foi dito, é igual, no entanto, os controladores mais antigos não suportam o subconjunto CardBus, que é o que permite a conexão PCI de 32 bits.

Para que não ocorram deslizes por parte do usuário, um mecanismo "anti-burro" é implementado. O entalhe na parte frontal esquerda do dispositivo é um pouco mais raso em um cartão CardBus, portanto, por design, um dispositivo de 32 bits não pode ser conectado a equipamentos anteriores que suportem apenas dispositivos de 16 bits. Veja a imagem:

Imagem 10 - Tecnologia anti-burro dos cartões PCMCIA


Os cartões CardBus podem ser diferenciados dos mais antigos pela presença de uma faixa dourada com oito pequenos pontos na parte superior da placa próxima ao quadro de pinos:

Imagem 11 - Diferença entre o PC Card e o CardBus


Originalmente desenvolvido pela Personal Computer Memory Card International Association (PCMCIA), o padrão PC Card e o CardBus tornaram-se obsoletos após a virada do século, sendo sucedidos pelo PCMCIA ExpressCard, que atualmente está 'sepultado' no USB Implementers Forum (USB-IF) após a dissolução da organização original em meados de 2009.

Se você leu o Capítulo 3 sobre o PCI Express, nem é necessário explicar que o PCMCIA ExpressCard é completamente diferente e sem compatibilidade com as duas versões anteriores detalhadas aqui.

 

Abaixo, a tabela com as principais características de todas as versões da interface ISA (exceto PCMCIA):

Tabela 1 - Versões do barramento ISA

Como você pode ver, apesar da interface ISA de 16 bits trabalhar com 8,33 Mhz, ela requer 2 pulsos de clock para enviar um bit por cada linha.

Apesar da interface eISA ter uma taxa de transferência teórica de 33,3 MB/s, na realidade não passa dos 16,6 MB/s a devido natureza lenta da interface, às limitações de implementação dos projetos e interferências eletromagnéticas com taxas mais altas.

Em todas as revisões da interface ISA é necessário tempos de espera entre uma atividade e outra, o que torna a comunicação ainda mais lenta.

Abaixo, você vê a pinagem do slot ISA de 8 bits e a suas extensões, de 16 e 32 bits.

Tabela 2 - Reveja a Imagem 4 e a Imagem 6 para entender a organização dos terminais


Na sequência, a tabela de pinos do PCMCIA PC Card:

Tabela 3 - A pinagem do Card Bus


Agora, uma breve descrição sobre a serventia de cada pino:

Pinos A1 / B1 ao A31 / B31:


A0 ao A19: Barramento de endereços (apenas A0 ao A15 são utilizados - endereçamento de 16 bits);


D0 ao D7: Barramento de dados;


AES / AEN: Quando ativo, este sinal indica que a operação executada no barramento é de DMA. Este sinal deve ser utilizado para que o decodificador não capture um dado erroneamente durante uma operação de DMA do computador;


BALE / ALE: Indica que há um endereço válido no barramento de endereços (A0 ao A19). Esta linha é desativada durante operações de DMA. O endereço vindo pelo barramento de endereços é válido a partir da borda descendente de "BALE" até o final do ciclo de barramento. Dispositivos de memória devem travar o barramento "LA" na borda descendente de "BALE";


Clock / BCLK: Sinal de sincronismo do barramento ISA, podendo ser de 4,77 Mhz ou de 8,33 MHz. Ele não é simétrico, pois possui um ciclo de carga de 33%, ou seja, 1/3 em nível HIGH e 2/3 em nível LOW;


DRQ1: Faz um pedido de DMA nível 1 ao controlador de DMA;


DACK1#: Indica que o pedido de DMA 1 foi aceito e que o controlador de interrupção irá iniciá-lo;


DRQ2: Faz um pedido de DMA nível 1 ao controlador de DMA;


DACK2#: Indica que o pedido de DMA 2 foi aceito e que o controlador de interrupção irá iniciá-lo;


DRQ3: Faz um pedido de DMA nível 1 ao controlador de DMA;


DACK3#: Indica que o pedido de DMA 3 foi aceito e que o controlador de interrupção irá iniciá-lo;


I/O CH CK#: Quando este sinal está LOW, gera-se uma interrupção não-mascarável (NMI). É ativado em situações de erro, como erro de paridade. Este sinal deve ser utilizado com um circuito de coletor aberto;


I/O CH RDY#: Informa que o canal de dados está pronto, além de gerar Wait States (estados de espera) para operações de Entrada e Saída ou de memória. Se o circuito necessitar de Wait States, basta ativar esta linha após a decodificação do endereço e dos sinais "MEMR#", "MEMW#", "IOR#" ou "IOW#". Esta linha deve ser temporizada com muito cuidado, para que não seja inserido Wait States desnecessários. Manter essa linha em nível LOW por muito tempo pode causar problemas em alguns sistemas. "I/O CH RDY#" e "NOWS#" não devem ser usados ​​simultaneamente, pois isso pode causar problemas com alguns controladores de barramento. Este sinal também deve ser utilizado com um circuito de coletor aberto;


IRQ3 até IRQ9: Linhas de pedido de interrupção ao controlador de interrupções;


IOR#: Indica que uma leitura em I/O está sendo executada. Também é ativado durante ciclos de DMA. Tem um funcionamento análogo à linha "Strobe" da porta LPT (aquela porta rosada, utilizada principalmente para conectar impressoras antigas);

Para saber mais sobre a interface LPT, CLIQUE AQUI!


IOW#: Indica que uma escrita em I/O está sendo executada. Também é ativado durante operações de DMA. Também têm um funcionamento análogo à linha "Strobe" da porta LPT;


MEMR#: Indica que está sendo executada uma operação de leitura em memória. Também é ativado durante operações de DMA;


MEMW#: Indica que está sendo executada uma operação de escrita em memória. Também é ativado durante operações de DMA;


OSC: Sinal de sincronismo com frequência de 14,31818 MHz, utilizado para a sincronização de vídeo CGA. Não tem nada a ver com o clock da interface ISA;


T/C: Indica que um dos canais de DMA acabou de realizar a transferência de DMA programada;


RESET: Indica inicialização ou reinicialização do sistema;


REFRESH: Gera atualizações na lista de requisições;


NOWS#: Nenhum estado de espera. Usado para encurtar o número de estados de espera gerados pelo timer padrão. Isso faz com que o ciclo do barramento termine mais rapidamente, pois os estados de espera não serão inseridos. A maioria dos sistema irá ignorar o "NOWS#" se o "I/O CH RDY#" estiver em nível LOW, só que isso pode causar problemas com alguns controladores de barramento se ambos estes sinais estiverem ativos simultaneamente.

Pinos C1 / D1 ao C18 / D18:


LA17 ao LA23: Barramento de endereços da parte alta, ou seja, dos 8 bits extras adicionados à interface ISA. Estas linhas não são válidas durante todo o ciclo do barramento, desta forma deve ser utilizado um Latch para armazenar seus valores;


D8 ao D15: Barramento de dados;


DRQ0: Faz um pedido de DMA nível 0 ao controlador de DMA;


DACK0#: Indica que o pedido de DMA 0 foi aceito e que o controlador de interrupção irá iniciá-lo;


DRQ5: Faz um pedido de DMA nível 5 ao controlador de DMA;


DACK5#: Indica que o pedido de DMA 5 foi aceito e que o controlador de interrupção irá iniciá-lo;


DRQ6: Faz um pedido de DMA nível 6 ao controlador de DMA;


DACK6#: Indica que o pedido de DMA 6 foi aceito e que o controlador de interrupção irá iniciá-lo;


DRQ7: Faz um pedido de DMA nível 7 ao controlador de DMA;


DACK7#: Indica que o pedido de DMA 7 foi aceito e que o controlador de interrupção irá iniciá-lo;


IRQ10 ao IRQ15: Linhas de pedido de interrupção ao controlador de interrupções;


IOCS16: Indica que haverá uma transferência de 16 bits no barramento de dados, utilizando endereçamento em I/O. Para que uma transferência de 16 bits ocorra, este sinal deve ser mantido em nível LOW. Para este sinal deve ser utilizado um circuito de coletor aberto;


MEMCS16: Indica que haverá uma transferência de 16 bits no barramento de dados, utilizando endereçamento em memória. Este sinal deve ser utilizado com um circuito de coletor aberto;


MASTER# / MREQx: Este sinal é ativado quando algum outro dispositivo deve assumir o controle do barramento ISA. Deve ser acionado em conjunto com o sinal "DRQ". Quando o sinal "DACK#" correspondente for devolvido, todos os circuitos conectados ao barramento são colocados em Tri-State, permitindo que o dispositivo que mandou o sinal "MASTER#" manipule o barramento do jeito que quiser. O novo mestre de barramento deverá obedecer aos sinais de temporização e devolver o controle em no máximo 15 milissegundos;


MEMR: É ativado quando é feita uma leitura em uma posição de memória acima de 1 MB;


MEMW: É ativado quando é feita uma escrita em uma posição de memória acima de 1 MB;


SBHE: Sigla para System Bus High Enable. Indica que a transferência de dados utilizará a parte alta do barramento de dados, isto é, da linha D8 até a linha D15. Este sinal "SBHE" e o "A0" são decodificados para informar que tipo de transferência será efetuada. Abaixo, a tabela com os tipos de transferência:

Modos de transferência de dados

Tabela 4

OBSERVAÇÃO: A parte alta do barramento de dados é os 8 bits extras, e a parte baixa do barramento de dados é os primeiros 8 bits, do pino D0 ao D7.


As linhas "Alimentação" são para alimentação elétrica do cartão conectado. É utilizado tensões de +5 Volts, -5 Volts, +12 Volts e -12 Volts.

Agora, a descrição dos pinos exclusivos da interface eISA:


D17 ao D31: Barramento de dados;


LA2 ao LA16: Barramento de endereços eISA. Estas linhas não são válidas durante todo o ciclo do barramento, desta forma deve ser utilizado um Latch para armazenar seus valores;


L24 ao L31: Barramento de endereços eISA. Estas linhas não são válidas durante todo o ciclo do barramento, desta forma deve ser utilizado um Latch para armazenar seus valores. Perceba que está faltando as linhas que vão do "LA17" ao "LA23", mas lembre-se de que elas estão na interface ISA 16 bits;


BE0# ao BE3#: Ativar Byte. 32 bits é igual à 4 Bytes. 1 Byte é enviado através de 8 linhas de dados, sendo que cada grupo de 8 linhas possui um "BEx#" para indicar ao receptor se o Byte enviado é válido ou não;


EX16#: Isso é usado pelo dispositivo escravo para informar ao mestre de barramento que ele é capaz de transferências de 16 bits;


EX32#: Isso é usado pelo dispositivo escravo para informar ao mestre de barramento que ele é capaz de transferências de 32 bits;


EXRDY: Pronto para eISA. Se este sinal for declarado, o ciclo terminará na próxima borda de subida do BCLK. O dispositivo escravo reduz este sinal para inserir estados de espera (os mesmos Walt States inseridos pelo "/I/O CH RDY");


START#: Este sinal é em nível LOW quando o ciclo atual do barramento está na fase inicial. Os sinais de endereço e "M / IO#" são decodificados durante esta fase. Os dados são transferidos durante a fase de comando (indicada pelo "CMD#");


CMD#: Este sinal indica que o ciclo de barramento atual está na fase de comando. Após a fase de início ("START#"), os dados são transferidos durante a fase de "CMD#". O "CMD#" permanece firme desde a borda descendente do "START#" até o final do ciclo do barramento;


W/R#: Escrever ou ler. Usado para indicar se o ciclo de barramento atual é uma operação de leitura ou gravação. Indica leitura quando em nível HIGH e escrita quando em nível LOW;


M/IO#: Esta linha é utilizada para indicar se o ciclo de barramento atual é uma operação de leitura / escrita ("MEMR#" / "MEMW#") ou uma operação de Entrada / Saída ("IOR#" / "IOW#");


SLBURST#: O dispositivo escravo coloca esta linha em HIGH para indicar que é capaz de estourar ciclos;


MSBURST#: O mestre de barramento responderá com este sinal se também for necessário estourar ciclos;


MAKx: Indica que a solicitação do barramento mestre ("MREQx" ou "MASTER#") foi concedida para o cartão inserido no slot "x".


LOCK#: Colocar esta linha em HIGH impede que outros dispositivos solicitem o controle do barramento via "MASTER#" ou "MREQx".


Pinos exclusivos do PCMCIA PC Card


CD1# e CD2#: É necessário a detecção de um cartão inserido, obviamente. Estas duas linhas são conectados internamente ao GND no cartão. Quando um PC Card é inserido em um soquete, CD1 e CD2 são puxados para baixo;


VCC: Utilizado na nomenclatura dos pinos do PCMCIA CardBus para definir as linhas que podem alimentar o cartão com 5 ou 12 Volts, de acordo com a tensão de operação que será detectada pela placa-mãe;


VPP1 e VPP2: É uma entrada que oferece 3,3 Volts, 5 Volts, 12 Volts ou alta impedância (High-Z) ao cartão;


VS1# e VS2#: São linhas que, quando usadas em conjunto, determinam a tensão de operação do módulo inserido no conector PCMCIA;


CURIOSIDADE: VPP e VCC são fornecidos por um switch de força capaz de, após a detecção, fornecer a tensão requerida ao módulo. Um exemplo de chip capaz de fazer isto é o Texas Instruments TPS2211A. O diagrama de implementação pode ser visto abaixo:

Diagrama 2 - Controlador PCMCIA para 16 e 32 bits "PCI1510" com um switch de força "TPS2211A"


BVD1 / STSCHG#: Exclusivo do PCMCIA PC Card (não aplicado ao CardBus). O BVD1 é gerado por cartões PC Card (16 bits) de memória que incluem baterias. O BVD1 é usado com o BVD2 como uma indicação da condição das baterias em um cartão PC de memória. Tanto o BVD1 quanto o BVD2 estão altos quando a bateria está boa. Quando o BVD2 está baixo e o BVD1 está alto, a bateria está fraca e deve ser substituída. Quando o BVD1 está baixo, a bateria não pode mais ser reparada e os dados no cartão PC de memória são perdidos.

O "STSCHG" é usado para alertar o sistema sobre uma alteração na condição de READY# (linha utilizada apenas no PC Card 16 bits), proteção contra gravação ou bateria sem energia em uma placa PC Card;


BVD2 / SPKR#: Exclusivo do PCMCIA PC Card (não aplicado ao CardBus). Quando o BVD1 está baixo, a bateria não pode mais ser reparada e os dados no PC Card são perdidos.

O "SPKR" é um sinal de áudio binário opcional disponível apenas quando a placa e o conector foram configurados para a interface de E/S de 16 bits;


REG#: Linha que dá acesso à memória EEPROM do cartão PC Card, fazendo-o com que forneça sua "identidade", isto é, marca, modelo, aplicação, se ele é ISA (16 bits) ou PCI (32 bits), além de outras características. Funciona de forma análoga ao sistema com chip SPD (Serial Presence Detect - Detector de Presença Serial) das memórias RAM modernas;


OE# e WE#: Nesta época fazia-se necessário uma entrada "OE#" para indicar a saída de dados do buffer do chip para o controlador. O pino "OE#" é o contraponto da linha "WE#". Enquanto "WE#" indica uma leitura quando em nível HIGH e uma gravação quando em nível LOW, "OE#" indica a liberação (Low-Z) do Data Out Buffer para enviar os dados ao controlador. Seria como um sinal de destravamento do buffer de saída;


WP: É um pino que tem como função bloquear a escrita na memória do cartão inserido no slot PC Card. Para que isso aconteça ele deve ser configurado de tal forma que envie um sinal HIGH ao ser reconhecido no slot;


READY# / Wait States: Estas duas linhas possuem a mesma função do "I/O CH RDY#" do slot ISA. No PCMCIA PC Card não há a linha "NOWS" (que elimina a inserção de estados de espera), pois há a linha Wait States (que introduz estados de espera).

Agora, serão explicados os principais pontos que definem o funcionamento da interface ISA e eISA:

A interface ISA de 8 bits utiliza apenas um ciclo de barramento para efetuar uma leitura ou uma escrita, da mesma forma que ocorre com a interface ISA de 16 e de 32 bits. Repare que, quando digo "ciclo", não estou me referindo aos ciclos de clock na linha "Clock", mas sim a quantidade de ciclos de clock necessárias para efetuar uma operação ("MEMR#", "MEMW#", "IOR#" ou "IOW#") pelo barramento.

A interface eISA possui duas linhas extras para indicar que uma transferência vai extrapolar o ciclo de barramento. Estes pinos são o "SLBURST#" e "MSBURST#". Assim, o emissor envia os dados para o receptor numa espécie de "rajada", entregando mais pacotes de dados sem que seja executado todo o protocolo novamente (dos tempos de espera entre atividades...), algo análogo ao Burst-Chop da memória RAM.

As "QUATRO OPERAÇÕES"


Utilizei os termo "quatro operações" para se referir às atividades executadas no barramento, que podem ser sinalizadas pelas linhas "MEMR#", "MEMW#", "IOR#" e "IOW#".

Caso seja utilizada a interface de 16 bits, também são utilizadas as linhas "MEMW" e "MEMR", com funcionamento análogo à "MEMW#" e "MEMR#", mas exclusivas para sinalizar uma leitura ou escrita em memória acima de 1 MB de capacidade.

Na interface eISA, de 32 bits, é utilizado a linha "W/R#" para informar uma escrita ou gravação e a linha "M/IO#" para informar se é uma atividade envolvendo memória (Leitura / Escrita) ou uma atividade envolvendo transferência de dados (Entrada / Saída).

No PCMCIA PC Card apenas são sinalizadas entradas e saídas para leituras e escritas ("IOR#" e "IOW#"), afinal esta implementação do ISA não acessa diretamente a memória RAM.


Transferências acima de 8 bits


Na interface de 16 bits, 2 Bytes podem ser transferidos simultaneamente, sendo que o Byte mais significativo (também chamado de Byte alto) é transferido pelas linhas "D8" a "D15", e o Byte menos significativo (também chamado de Byte baixo) é transferido pelas linhas "D0" a "D7".

Para que a transferência de 16 bits seja permitida, um sinal em nível LOW deve ser mandado pela linha "IOCS16". Após isso, a linha "SBHE" e "A0" servem para informar o receptor dos dados a forma com que o barramento de 16 bits será utilizado (ver Tabela 4). A transferência de 16 bits só é permitida se "SBHE" = 1 e "A0" = 0, caso contrário será feita a transferência normal, de 8 bits.


Ao utilizar um cartão eISA, apenas as linhas de endereço "A0" e "A1" da interface ISA de 8 bits são ativadas. Anteriormente vimos que, para a transferência de dados em modo 16 bits acontecer, devem ser utilizadas as linhas "SBHE" e "A1" para mostrar a forma com que os 2 Bytes devem ser enviados pelo barramento. No barramento de 32 bits ocorre a mesma coisa: As linhas "SBHE", "A0" e "A1" devem mostrar ao receptor a forma com que 4 Bytes podem ser transmitidos pelo barramento.


No caso da interface ISA implementada no padrão PCMCIA PC Card há a transferência de 8 ou 16 bits, e as linhas "A0" e "A1" informam o tipo de transferência tal qual as linhas "SBHE" e "A0" do slot ISA de 16 bits.

Endereçamento


Outra peculiaridade é que, apesar do slot de 8 bits possuir 20 linhas de endereço (A0 ao A19), apenas 16 delas são utilizadas.

Na versão de 16 bits, foi adicionado mais algumas linhas (LA17 ao LA23), permitindo o endereçamento de 24 bits.

No slot eISA, que possui 32 bits, caso seja utilizado um cartão eISA, as 19 linhas de endereço da interface de 8 bits são desabilitadas (exceto A0 e A1), restando apenas LA17 ao LA23 da interface de 16 bits e as linhas LA2 ao LA16 e LA24 ao LA31 da interface de 32 bits.

No PCMCIA PC Card há 24 linhas para endereçamento ("A2" até "A25"), sendo que o "A0" e "A1" não são levados em conta.

Os tempos de espera


A linha "I/O CH RDY#" serve para adicionar tempos de espera entre os ciclos de atividade ("MEMR#", "MEMW#", "IOR#" ou "IOW#") dos dispositivos inseridos no barramento. Manter a linha "I/O CH RDY#" em nível baixo durante muitos ciclos de clock pode gerar problemas no sistema e, principalmente, lentidões ainda maiores. Perceba que a linha "NOWS#" serve justamente para fazer o contrário, isto é, diminuir o tempo de espera entre as atividades do barramento. Manter os dois sinais ativos pode gerar problemas, apesar de o sistema ignorar o "NOWS#" enquanto o "I/O CH RDY#" estiver em nível LOW.

O PC Card não tem uma linha "NOWS#", porém, há uma linha "Wait States".

A relação com a Memória RAM


Perceba que a interface de 16 bits possui os pinos "MEMR" e "MEMW", presente nos 36 pinos extras do slot de 16 bits, que servem para indicar leitura ou escrita em memória maior que 1 MB.


Mas acessar a memória diretamente? Exatamente!


Na época em que o barramento ISA foi lançado, ele era ligado diretamente ao barramento do processador, que na época tinha uma largura de apenas 8 bits e um clock de 4,77 Mhz.

A memória RAM também era ligada ao barramento do processador, obviamente, portanto, todos os periféricos poderiam trocar dados, fazer interrupções na CPU, gravar e ler na memória RAM, fazer tudo pelo mesmo caminho. Veja o diagrama de blocos de uma placa-mãe para processador 8088 abaixo:

Diagrama de uma placa-mãe para CPU 8088

Diagrama 3 - Como era uma placa-mãe para processador 8088


Perceba o bloco "RAM Dinâmica" e os slots ISA de 8 bits.

Para o processador 286, com um barramento de 16 bits e endereçamento de 24 bits, foi incorporada a interface ISA de 16 bits. Veja o diagrama de uma placa-mãe para CPU 286 abaixo:

Placa-mãe para CPU 286

Diagrama 4 - Como era uma placa-mãe para processador 286


Perceba que nos dois diagramas apresentados, todos os circuitos da placa-mãe eram ligados ao mesmo barramento de dados fornecido pelo processador. Este barramento continha as linhas de endereço, as linhas de dados e as linhas de controle. O que os engenheiros fizeram foi colocar slots na placa-mãe para que o usuário adicionasse mais circuitos ao PC.

Os clocks dos processadores de gerações seguintes (o 386, 486 e etc) foram aumentando, passando dos 10 Mhz, e a interface ISA foi ficando para trás, já que não dava pra fazer aumento do clock devido a manter a compatibilidade com placas antigas e também devido as limitações do barramento. Sendo assim, o barramento ISA foi desconectado da CPU, ganhando um controlador próprio e idêntico ao barramento do processador, que acabou sendo embutido no chipset Ponte Sul das placas-mãe, permitindo que tal interface continuasse a ser utilizada apesar da evolução constante nas 'outras regiões' das PCBs.

Se quiser saber mais sobre a arquitetura das placas-mãe e o agrupamento cada vez maior de blocos de hardware em poucos chips, CLIQUE AQUI!

Alguns detalhes que complementam tudo o que foi dito...


Um detalhe bastante interessante é que a interface ISA já foi utilizada até para conectar o chip do BIOS da placa-mãe. Observe a imagem abaixo:

Imagem 12 - Placa-mãe PC Chips cujo chip de firmware é implementado na interface ISA


O uso foi tão difundido, que ao ver sua aposentadoria chegando a 'dona' Intel resolveu criar um substituto à altura: a interface LPC, barramento com largura de 4 bits e que utiliza o clock da interface PCI e parte da lógica de funcionamento da interface ISA. Para saber mais sobre ela, basta CLICAR AQUI e ler o texto dedicado ao Super I/O.


As placas "desdentadas"


Se você pegar um cartão ISA, verá que em muito casos nem todos os contatos do conector estão presentes. Isso ocorre pois nem todos os circuitos utilizavam todas as linhas do barramento.

Observe este cartão para Joystick:

Cartão adaptador para Joystick

Imagem 13 - Placa de expansão ISA para conectar Joysticks analógicos


Repare no conector ISA de apenas 8 bits. Para saber mais sobre a interface GAME, CLIQUE AQUI!


Observe a seguinte placa de som:

Placa de som ISA

Imagem 14 - Placa de áudio com interface ISA


Esta é uma placa de som da Creative Labs. Além de ter os conectores P2, vem com uma interface GAME. Repare no conector ISA de 16 bits com vários contatos ausentes.


A PCB e o slot


Já que o assunto integrou até a pinagem dos slots, nada melhor que dissertar sobre a confecção destes componentes.

Vamos começar pela PCB, tanto da placa-mãe quanto da placa de expansão, que serve de substrato para a soldagem dos chips e demais componentes.

Em geral, a placa de circuito impresso pode ter uma ou mais camadas, todas feitas em FR4, isto é, cada camada é composta por uma fina folha de poliepóxido reforçado com um tecido de lã de vidro (fibra de vidro).

As trilhas são feitas de Cobre puro (CU1100) depositado sobre a superfície polimérica. Já os contatos elétricos do módulo podem ser feitos de Cobre puro galvanizado com Ouro, ou, geralmente, materiais mais comuns, como aqueles que serão descritos mais abaixo, neste tópico.

Para saber mais sobre os materiais utilizados na confecção de placas de circuito, CLIQUE AQUI!


Já o slot também é plástico, obviamente, mais especificamente LCP (Liquid Crystal Polymer) ou PPA (Poliftalamida), dois materiais muito utilizados para a confecção de slots e conectores de placas de circuito devido a boa rigidez dielétrica e resistência a altas temperaturas.


CURIOSIDADE: De qualquer forma, a indústria faz uso apenas de termoplásticos, e que devem seguir a norma UL 94V-0. Para saber mais sobre tal norma, CLIQUE AQUI! e leia o tópico "Indicador de Flamabilidade".


Os terminais destes slots podem ser feitos a base de ligas de Cobre com algum tipo de galvanização:

-> Bronze fosforado com dupla galvanização a frio (Estanho sobre Níquel);

-> Bronze fosforado com dupla galvanização a frio (Ouro sobre Níquel);

-> Bronze fosforado galvanizado a frio com Estanho ou Ouro;

-> Cobre galvanizado a frio com Estanho ou com Ouro (como é o caso dos pinos de processadores).


Para saber mais sobre polímeros e elastômeros, comece CLICANDO AQUI!

Para saber mais sobre cristais líquidos, CLIQUE AQUI!

Para saber mais sobre as ligas não-ferrosas com base no Cobre, CLIQUE AQUI!

Para saber mais sobre o FR4, CLIQUE AQUI! (exemplos de uso de polímeros e elastômeros) e CLIQUE AQUI! (aditivações em compósitos).


Os barramentos e a Lógica TTL


Este conteúdo veio a calhar como exemplo para outro texto do blog: Aquele sobre "Pares Diferenciais". Para acessa-lo, basta CLICAR AQUI!


O TTL (Lógica Transistor-Transistor) é um circuito simples, muito conhecido no meio dos entusiastas e técnicos em eletrônica, sendo demasiadamente utilizado em barramentos com várias linhas de dados em paralelo, como é o caso da interface ISA, seja ela com barramento de 8, 16 ou 32 bits (eISA). Por operar apenas com 5 e 12 Volts (a lógica TTL opera com 5 V), não faz uso da lógica LVTTL (que trabalha com 3,3 Volts).

Após o barramento ISA veio o VLB. Se quiser saber mais sobre esta interface, que também é paralela, CLIQUE AQUI!

O barramento PCI surgiu para eliminar as duas anteriores, sendo também um barramento paralelo, porém, com maior taxa de transferência. Para aprender mais sobre o PCI, comece CLICANDO AQUI!

Com as limitações do PCI, a indústria criou uma versão "melhorada" desta interface que era exclusiva para placas de vídeo: o AGP. Para conhecer melhor esta tecnologia, CLIQUE AQUI!


E assim evoluímos até chegar no ápice, com o PCI Express, que se mantém a "bola da vez" há mais de 10 anos, recebendo atualizações constantes, mas sem perder a retro-compatibilidade!


Ficou com alguma dúvida? Achou que falta alguma coisa? Mande um e-mail para hardwarecentrallr@gmail.com.


Gostou do artigo? É só curtir e compartilhar nas redes sociais! Ajude a espalhar conteúdo de qualidade!

 

FONTES e CRÉDITOS

Imagens: Leonardo Ritter, Google Imagens;

Tabelas e diagramas: Leonardo Ritter;

Fontes: Clube do Hardware; Hardware.com; Universidade Federal do Rio Grande do Sul; Pinouts.ru.


Última atualização: 26 de Fevereiro de 2023.

3.102 visualizações

O Hardware Central abandonou de vez o Facebook. Não temos mais fanpage e a caixa de comentários que aqui habitava foi chutada pra longe! Não somos Mainstream! Redes socias não combinam com nós! Somos a galera dos livros!

Como também repassamos conteúdo de terceiros, não é justo restringir a cópia! O uso do conteúdo do HC e de toda a internet deve ser livre!

Para relatar erros, incongruências ou sugerir conteúdo, nos chame pelo hardwarecentrallr@gmail.com! Não somos perfeitos, mas sempre é possível melhorar!

© 2024 Hardware Central Tecnologia Entretenimento e Comunicação do Brasil Ltda. Todos os direitos reservados.

Wix Editor / Revisão da web page: 3.2/2022 (20/03/22)

bottom of page