quarta-feira, 26 de dezembro de 2012

O 8080 para principiantes

Como tudo na vida, nada é por acaso, existe uma evolução, e na tecnologia não é diferente. Se temos o que temos hoje, é graças a muita dedicação e muito estudos dos que nos antecederam. Por isso reverencio muito os grandes cientistas, aqueles que deram uma parte de suas vidas a pesquisas e inovações.

Esse prólogo é para justificar o meu próximo post no nosso blog. Sei que os críticos de plantão (os sabichões) vão logo pichar ou logo me mandar uma observação - mas professor isso foi no início, não usamos mais isso, o senhor está desatualizado. Sei disso, mas pra nós ou alguns do meu tempo que atravessamos por toda a tecnologia, só se compreende o hoje, se compreendermos o ontem...

Então acho interessante voltarmos lá atrás e vermos como tudo começou, tenho certeza, com experiência própria, que ficará muito mais fácil os iniciantes nessa área entenderem o está gio atual. Não deixem de acompanhar os vários posts que irei descrever aqui sobre microprocessadores - o precursor de todos - o 8080.

Vamos desvendar para vocês as técnicas e os segredos do mais popular microprocessador dos anos 70.

À medida que os posts forem avançando, vocês perceberão que estão aprendendo o que são e como funcionam os microprocessadores, suas operações, circuitos periféricos e sistemas auxiliares.

INTRODUÇÃO 

O objetivo final é fa­zer com que você esteja apto a projetar um microcomputador. Ele vai se focalizar no primeiro microprocessador de 8 bits a alcançar o estágio da produção em massa - o 8008 - e no seu sucessor, o 8080, que faz parte da segunda geração de microprocessadores. 

Os primeiros microprocessadores 8008 e 8080 que surgiram no mercado eram fabricados pela firma americana Intel. Atualmente vários fabricantes produzem versões equivalentes (ou quase equivalentes) do 8080; é claro que diversos outros tipos de microprocessadores são produzidos, tanto para aplicações gerais como específicas. Mas, entre todos eles o que se tornou mais popular foi mesmo o 8080, seja para fins profissionais, seja para "hobby". Isto, provavelmente devido à grande versatilidade desse compo­nente de 2ª geração, que permite que seja empregado nas mais variadas aplicações. 

Dessa forma, acreditamos que ao entender o funcionamento de um 8080, você estará capacitando a "encarar" os demais microprocessadores, com a ajuda do manual de instruções de cada um. Para que você tenha condições de "encarar" este curso, apenas uma coisa é necessária: um conhecimento razoável de lógica digital. O resto fica por nossa conta. 

O PROJETO COM CIRCUITOS DISCRETOS E O PROJETO COM OS COMPONENTES LSI 

Nos primeiros tempos dos circuitos integrados, ou Cls, chamava-se de "discretos" aos componentes que tinham encapsulamentos separados, ou seja, os transistores, diodos, resistores. Na época, com o progresso da tecnologia LSI (Large Scale Integration - integração em larga escala), com a qual é possível fabricar Cls contendo dezenas de integrados comuns ou milhares de transistores, os pequenos Cls da SSI (Small Scale Integration - integração em pequena escala) passaram também a ser chamados de "discretos". É por isso que se diz que o microprocessador, um dos maiores representantes da tecnologia LSI, pode substituir várias placas com circuitos ou integrados "discretos". 

O primeiro microprocessador, o 8008, apesar de já simplificar bastante o projeto de circuitos, era de utilização complexa. O objetivo do fabricante, ao lançar esse novo componente, era o de provar que a flexibilidade, versatilidade e a capacidade de processamento lógico de um computador digital podiam ser obtidas em componentes eletrônicos reduzidos e de custo relativamente baixo (e, na verdade, o microprocessador nada mais á, senão a UCP, ou unidade central de processamento, de um pequeno computador). 

O 8080 veio solucionar os problemas que os projetistas encontravam ao lidar com o 8008. Com seus 40 pinos (enquanto o 8008 tinha apenas 18), ele oferece uma maior quantidade de seus sinais diretamente aos circuitos de controle externo. 

Há uma grande diferença entre um projeto de circuito implementado dentro de um integrado LSI e um projeto lógico utilizando integrados convencionais do tipo SSI. O projetista deve estar consciente dessa diferença, ou seu projeto poderá não ser tão eficiente. 

Tomemos, por exemplo, o 8008. 

Oito dos pinos de seu encapsulamento são utilizados para a barra de dados bidirecionais de 8 bits. Praticamente toda a comunicação entre o 8008 e o mundo exterior acontece por essa barra de dados. As informações, nessa barra, percorrem em ambos os sentidos o caminho que liga o 8008 a sua unidade lógica aritmética; aos seus sete registradores de dados de 8 bits; aos seus oito registradores de endereçamento de memória, de 14 bits; à sua lógica de controle de memória; e à sua lógica de decodificação de instruções. Os dados que passam pela barra podem representar informações de entrada, dados de saída, um código de instrução ou um endereço de memória. Todos esses processos tem lugar em instantes diferentes nas operações internas do processador da UCP (tudo isto será detalhado em um outro post). 

No interior do microprocessador, a barra de 8 bits é distribuída para todas as principais seções da UCP. Um dos elementos mais importantes na arquitetura da "pastilha" (peça de silício, onde estão todos os circuitos do microprocessador) é o circuito de controle, que determina qual das várias seções deve controlar a barra de dados, ou dela receber informações, a cada estágio das operações internas do processador (este é um assunto que também será tratado separadamente, em outro post). 

Consideremos agora, por um momento, a implementação de um circuito de controle de barra, utilizando integrados convencionais, do tipo TTL, sobre uma placa de circuito impresso. Os sinais de ternporização devem ser decodificados em suas oito possíveis combinações de estado e então empregados para ativar um certo número de dispositivos ligados à barra, em diferentes localidades da placa de circuito impresso. A placa vai necessitar um decodificador de 3 para 8 linhas e a escolha mais provável recairia sobre um único integrado TTL, que deveria conter oito portas NE de três entradas e seis inversores. A desvantagem de se utilizar um único integrado como decodificador reside no fato de que, como as oito linhas de decodificador são requisitadas em muitos pontos da placa, são necessárias oito pistas, ao invés de três, percorrendo grandes extensões da placa. De qualquer forma, não há projetista que escolha portas separadas para um só decodificador, pois um CI mais complexo e algumas pistas a mais no circuito impresso resultam num custo mais baixo do que comprar, estocar, testar, montar e soldar integrados adicionais. 

Nesse ponto, vamos examinar as decisões de projeto que aguardam o projetista de. "pastilhas", quando deve criar uma máscara para a produção das peças de silício, e assim obter o microprocessador. Vamos também comparar estas decisões com aquelas que o projetista de placas deve enfrentar. . . 

Um decodificador 3 para 8 pode muito bem ser implementado, numa "pastilha", por meio de oito portas NE de três entradas e doze inversores, sendo que cada porta e cada inversor devem estar localizados exatamente no ponto onde o sinal decodificado é requisitado. Somente as três linhas são transportadas aos vários pontos da "pastilha", ao invés das oito saídas decodificadas; caso contrário, as cinco linhas a mais ocupariam, . provavelmente, uma área maior que qualquer duplicação de portas. 

Tais considerações afetam a for­ma como o microprocessador é organizado. Em primeiro lugar, um número relativamente grande de sinais de temporização e controle, de aplicação especial, são desenvolvidos na "pastilha", em diversos pontos; são sinais derivados de um número mínimo de sinais de temporização de aplicação geral. Em segundo lugar, somente esses poucos sinais são trazidos para fora do integrado, o que significa que os circuitos ex ternos ao 8008 precisam desenvolver novamente uma série de sinais especiais de controle, de modo que UCP possa se comunicar com a memória e as portas de entrada e saída.

Observando o 8008 numa fotomicrografia (fotografia que mostra a arquitetura do 8008, com grande ampliação), vê-se que foi projetado por um excelente projetista de "pastilhas", que sempre utiliza portas adicionais, ao invés de linhas adicionais. Porém, tal. sistema,não é o ideal para o projetista de hardware, na hora de criar o controle do microcomputador e a lógica de temporizaçao, pois é preciso fazer isso com o menor número possível de peças. Assim, a lógica de controle e temporização pode não ser exatamente igual aquela que está no interior do CI . 


Antes de mais nada o projetista deve dominar perfeitamente o mecanismo das operações internas da UCP. Em seguida, ele deve compreender como os sinais básicos de temporizaçao do microprocessador estão relacionados com as operações internas (no caso do 8008, existem seis sinais básicos de temporização: 01, 02, S2, S1 ,SO e SYNC). Apenas neste ponto é que ele deve começar a pensar no projeto dos circuitos externos. 

Esse sistema de trabalho tende a ser mais produtivo que apenas. copiar ou tentar simplificar os projetos de 8008 publicados pelos fabricantes do mesmo. E, empregando este método, o número de integrados poderá ser reduzido de 20 a 50%, na montagem de um microcomputador, dependendo da aplicação a que ele se destina. 

Além disso, o projetista que domina completamente a operação da UCP está em condições de colocar o microprocessador para fazer coisas que não aparecem nos manuais dos fabricantes. 

OS MICROCOMPUTADORES

Aplicações

Com a velocidade e versatilidade que as gerações atuais de microprocessadores apresentam, os projetistas são capazes de produzir computadores excepcionais. Muita coisa pode ser feita com micro­processadores, pois os sistemas que empregam computadores não são necessariamente computadores. Eles estão incluídos numa grande variedade de dispositivos eletrônícos digitais, desde balanças automáticas, passando por periféricos de computadores, por controles industriais, até sistemas de comunicação. 

Vejamos alguns exemplos: calculadoras programáveis, jogos eletrônicos, rádios com "display" digital e auto sintonia. Controle de carburação e ignição em automóveis; freagem antiderrapante. Alarmes .de segurança e temperatura em edifícios, controles para elevadores. Programadores para máquinas operatrizes, sistemas para sinais de tráfego. Aparelhos de monitoração de pacientes em medicina, analisadores bioquímicos. Filtros digitais de baixa freqüência e analisadores Fourier. Instrumentação para medições eletrônicas complexas; testadores de circuitos. Centrais telefônicas, periféricos de computador, caixas registradoras eletrônicas e terminais de computador. 

O QUE É O MICROCOMPUTADOR 

O microcomputador é uma unidade lógica programável, com base num microprocessador. Como o próprio nome já sugere, os princípios básicos da tecnologia dos computa­dores são empregados no mlcrocomputador. Seus circuitos eletrônicos destinam-se a efetuar operações lógicas com blocos de dados codificados sob a forma binária (no caso do 8008 e do 8080, esses blocos são bytes de oito bits). Cada operação é efetuada seqüencial­mente a uma certa velocidade, e sob o controle de Instruções, também codificadas em binário. 

A versatilidade do microcomputador depende, em parte, do conjun­o de instruções do microprocessador, que em geral fornece operações lógicas básicas (E, OU EXCLUSIVO, OU, etc.) e operações matemáticas (SOMA, SUBTRAÇÃO, etc). Existem também as instruções que providenciam a comunicação com os equipamentos associados ao microcompu­tador, recebendo (ENTRADA) e transmitindo (SAíDA) dados. 

Os programas requisitados pelo microcomputador para levar a termo suas funções são normalmente guardados numa memória semicondutora permanente (memória ROM - Read Only Memory ou memória só de leitura). O microprocessador lê cada instrução armazenada na memória, executa essa instrução e segue em frente, com a instrução seguinte. As instruções condicio­nais fazem o microprocessador "saltar", sem uma seqüência fixa, para um certo ponto do programa, somente se o resultado da operação anterior satisfizer certas condições pré-estabelecidas. Tais instruções são essenciais à programação de computadores e representam o fator que faz do microcomputador um verdadeiro computador, e não apenas um sistema lógico programável dotado de uma certa complexidade. 

Grande parte dos microcomputa­dores requer maior capacidade de armazenagem temporária do que é possível obter dentro do próprio microprocessador; dessa forma, nesses casos faz-se uso de uma memó­ria RAM (Random Access Memory ou memória de acesso aleatório). O 
microprocessador pode escrever e ler dados, ou ler instruções, na memória RAM. A UCP (unidade central do processamento) possui meios para o endereçamento de qualquer local da memória, do modo que for especificado no programa. 

AS VANTAGENS DOS MICROCOMPUTADORES

É sempre possível obter alguma flexibilidade de projeto com os circuitos lógicos convencionais (aqueles "discretos"). Assim, por exemplo, é possível acrescentar um sistema numa placa de circuitos desse tipo, a fim de se obter uma característica desejada, A tecnologia dos microprocessadores, por sua vez, implica em um nível diferente de flexibilidade. 

Em primeiro lugar, no caso da lógica convencional uma mudança de projeto quase sempre exige um circuito impresso redesenhado. Quando se trabalha com microcomputa­dores, normalmente a única mudança necessária é a do "software" (programação), que envolve uma no­va programação da memória ROM ou da memória PROM (Programmable ROM ou ROM programável), que é mais vantajosa, pois pode ser reprogramada pelo próprio usuário. 

Em segundo lugar, o microcom­putador pode servir como elemento lógico básico de toda uma família de equipamentos relacionados. Para fins ilustrativos, vamos assumir que o projetista esteja manipulando uma série de periféricos de computador, tais como a tela do computador, uma impressora, um terminal de comunicação com teclado, etc. O próprio microcomputador é instalado numa placa, sendo utilizado com todos esses dispositivos. Ele é com­posto pelo microprocessador, circuitos de temporização, memória ROM (para armazenagem dos programas), memória RAM e alguns integrados para "inferface" da entrada e saída, de aplicação geral. 

Em placas separadas vão os componentes necessários às funções especializadas da máquina: excitadores de potência, codificado­res de teclado, amplificadores de deflexão, modems (moduladores/demoduladores), etc. A memória ROM necessária à estocagem das instruções apropriadas a essas máquinas são inseridas em um soquete, em cada placa separada. E uma eficiente distribuição de barras de comunicação vem otimizar a flexibilidade e a modularidade de todo o sistema. 

(Continua) 

Nenhum comentário: