Introdução às Portas Lógicas Autor: Gabriel Torres e Cássio Lima Introdução As portas lógicas são os componentes básicos da eletrônica digital. Elas são usadas para criar circuitos digitais e até mesmo circuitos integrados complexos. Por exemplo, circuitos integrados complexos podem ser um circuito digital completo pronto para serem usados – processadores e microcontroladores são os melhores exemplos –, mas internamente estes circuitos integrados foram projetados usando várias portas lógicas. Neste tutorial ensinaremos tudo o que você precisa saber sobre portas lógicas, com vários exemplos. Como você já deve saber, em eletrônica digital apenas dois números são permitidos, “0” e “1”. Zero representa tensão de 0 V, enquanto que “1” representa uma tensão de 5 V ou de 3,3 V, no caso de circuitos integrados mais novos. Você pode pensar nos números “0” e “1” como uma lâmpada sendo acesa ou apagada quando você liga ou desliga o seu interruptor. Uma letra, também conhecida como variável, representa um número binário. Assim, “A” pode ser “0” ou “1”. Se A estiver conectado a um interruptor, A será “0” quando o interruptor estiver desligado e “1” quando o interruptor estiver ligado. Um traço sobre o nome da variável significa que o seu valor deve ser invertido. Por exemplo, se A = 0, /A será “1”, e se A = 1, /A será “0”. Em processadores de texto, pela dificuldade em se desenhar uma linha sobre uma letra, substituímos o traço sobre a variável por uma barra. Inversor Como o próprio nome já sugere, o inversor irá inverter o número entrado. Se você entrar o número “0” em um circuito inversor, você obterá na saída o número “1”, da mesma forma que se você entrar o número “1” obterá o número “0” na saída. O símbolo do inversor pode ser visto na Figura 1. A porta inversora é também conhecida como NOT e sua saída é Y = /A. Figura 1: Inversor. Na tabela verdade abaixo você pode ver um resumo de como este circuito funciona. A (Entrada) 0 1 Y (Saída) 1 0 Em circuitos lógicos, usamos o símbolo “o” como forma abreviada para o inversor. Você verá este símbolo em portas lógicas do tipo NAND, NOR e XNOR. O circuito integrado com inversores mais famoso é o 7404, que tem a pinagem mostrada na Figura 2. Ele possui seis inversores internos. Para fazer este circuito integrado funcionar você precisa conectá-lo em uma fonte de alimentação de 5 V. Figura 2: O circuito integrado 7404 fornece seis inversores. AND Como o nome já sugere, uma porta lógica AND realiza uma operação lógica “AND” (“E”), que é uma multiplicação. Ela possui pelo menos duas entradas. Por isso, se A e B são suas entradas, na saída teremos o resultado de A x B (também representado como A · B). A porta lógica AND pode ser resumida através da fórmula Y = A x B (ou Y = A · B). Você pode ver seu símbolo na Figura 3 e sua tabela verdade mais abaixo. Figura 3: Porta lógica AND. A 0 0 1 1 B 0 1 0 1 Y 0 0 0 1 Uma outra maneira de entender a porta lógica AND é a seguinte: sua saída será sempre “1” quando todos os valores de entrada forem também iguais a “1”. Caso isso não ocorra, o valor da sua saída será “0”. Se você está projetando um circuito e precisa de uma porta lógica AND com mais entradas, você pode desenhar uma porta lógica AND como a que mostramos na Figura 3 e colocar mais entradas. Mas se você está trabalhando com um circuito integrado com portas lógicas AND com poucas entradas, você pode expandir o número de entradas conectando-as como mostramos na Figura 4. Figura 4: Expandindo o número de entradas de uma porta AND usando portas de duas entradas. O circuito integrado com portas AND mais famoso é o 7408, que tem a sua pinagem mostrada na Figura 5. Claro que existem vários outros circuitos integrados que possuem portas AND com mais entradas. Por exemplo, o 7411 possui três portas AND de três entradas cada. Figura 5: Circuito integrado 7408 possui quatro portas AND com duas entradas cada. NAND A letra “N” em NAND significa NOT (literalmente “não”, mas representa o circuito inversor que explicamos anteriormente) e esta porta nada mais é do que uma porta AND com um inversor acoplado. Por isso, sua saída é o oposto da AND. Seu símbolo é o mesmo do AND, mas com um “o” em sua saída, para dizer que o valor da sua saída é invertido. Você pode construir uma porta NAND conectando uma porta AND a um inversor. Figura 6: Porta lógica NAND. A 0 0 1 1 B 0 1 0 1 Y 1 1 1 0 Se você precisa de mais entradas, adicione-as ao circuito com o símbolo mostrado na Figura 6. No entanto, se você quer criar mais entradas usando portas com poucas entradas, você não pode conectá-las usando a mesma idéia mostrada na Figura 4. Você precisa usar uma porta AND para as entradas “extras” (você pode ligá-las juntas para expandir o número de entradas como mostrada na Figura 4) e uma porta NAND para a porta “final”, como você pode ver na Figura 7. Figura 7: Como expandir o número de entradas de uma porta NAND. Você pode transformar facilmente portas NAND e NOR em inversores dando um curto em suas entradas, como mostrado na Figura 8. Este é um macete muito comum. Por exemplo, você precisa de um inversor em seu circuito e tem algumas portas NAND disponíveis em um dado circuito integrado. Em vez de adicionar outro circuito integrado no seu projeto apenas para ter um inversor (o que aumentaria o tamanho final do circuito e também o seu custo), você pode querer usar uma das portas NAND disponíveis. Figura 8: Transformando uma porta NAND em um inversor. O circuito integrado com portas NAND mais famoso é o 7400, que tem sua pinagem mostrada na Figura 5. Claro que existem vários outros circuitos integrados que possuem portas NAND com mais entradas. Por exemplo, o 7411 possui três portas NAND com três entradas cada e o 7430 possui uma porta NAND de oito entradas. Figura 9: Circuito integrado 7400 possui quatro portas NAND com duas entradas cada. OR Como o nome sugere, uma porta lógica OR realiza uma operação lógica “OR” (“OU”), que é uma adição. Ela possui pelo menos duas entradas. Por isso, se A e B são suas entradas, na saída teremos o resultado de A + B. Uma porta lógica OR pode ser resumida através da fórmula Y= A + B. Você pode ver seu símbolo na Figura 10 e sua tabela verdade mais abaixo. Figura 10: Porta lógica OR. A 0 0 1 1 B 0 1 0 1 Y 0 1 1 1 Uma outra maneira de entender a porta lógica OR é a seguinte: sua saída será sempre “0” quando todos os valores de entrada forem iguais a “0”. Caso contrário, sua saída será “1”. Se você precisar de mais do que duas entradas, a mesma idéia se aplica. Se você está projetando um circuito e precisa de uma porta lógica OR com mais entradas, você pode simplesmente desenhar uma porta lógica OR como a que mostramos na Figura 10 e colocar mais entradas nela. Mas se você está trabalhando com um circuito integrado com portas lógicas OR com poucas entradas, você pode expandir o número de entradas conectando-as como mostramos na Figura 11. Figura 11: Expandindo o número de entradas OR usando portas de duas entradas. O circuito integrado com portas OR mais famoso é o 7432, que tem sua pinagem mostrada na Figura 12. Claro que existem vários outros circuitos integrados que possuem portas OR com mais entradas. Por exemplo, o 7427 possui três portas OR com três entradas cada. Figura 12: Circuito integrado 7432 possui quatro portas OR com duas entradas cada. NOR A letra “N” em NOR significa NOT (literalmente “não”, mas representa o circuito inversor que explicamos anteriormente), e esta porta nada mais é do que uma porta OR com um inversor acoplado. Por isso, sua saída é o oposto da porta OR. Seu símbolo é o mesmo do OR, mas com um “o” em sua saída, para dizer que o valor da sua saída é invertido. Você pode construir uma porta NOR conectando uma porta OR a um inversor. Figura 13: Porta lógica NOR. A 0 0 1 1 B 0 1 0 1 Y 1 0 0 0 Uma outra maneira de entender a porta lógica NOR é a seguinte: sua saída será sempre “1” quando todos os valores de entrada forem iguais a “0”. Caso contrário, o valor da sua saída será “0”. Se você precisar de mais de duas entradas, adicione-as ao circuito com o símbolo mostrado na Figura 13. No entanto, se você quiser criar mais entradas usando portas com poucas entradas, você não pode conectá-las usando a mesma idéia mostrada na Figura 11. Você precisa usar uma porta OR para as entradas “extras” (você pode ligá-las juntas para expandir o número de entradas como mostramos na Figura 4) e uma porta NOR para a porta “final”, como você pode ver na Figura 14. Figura 14: Como expandir o número de entradas de uma porta NOR. Você pode transformar facilmente portas NAND e NOR em inversores dando um curto em suas entradas, como mostrado na Figura 15. Este é um macete muito comum. Por exemplo, você precisa de um inversor em seu circuito e tem algumas portas NAND disponíveis em um dado circuito integrado. Em vez de adicionar outro circuito integrado no seu projeto apenas para ter um inversor (o que aumentaria o tamanho final do circuito e também o seu custo), você pode querer usar uma das portas NAND ou NOR disponíveis. Figura 15: Transformando uma porta NOR em um inversor. O circuito integrado com portas NOR mais famoso é o 7402, que tem sua pinagem mostrada na Figura 16. Preste atenção pois a localização das entradas e saídas deste circuito integrado é diferente dos demais circuitos que mostramos anteriormente. Claro que existem vários outros circuitos integrados que possuem portas NOR com mais entradas. Por exemplo, o 7427 possui três portas NOR com três entradas cada. Figura 16: Circuito integrado 7402 possui quatro portas NOR com duas entradas cada. XOR XOR significa OR exclusivo (“ou exclusivo”). A porta lógica XOR compara dois valores e se eles forem diferentes a saída será “1”. A operação XOR é representada pelo símbolo e sua fórmula pode ser resumida como Y = A B. Você pode ver o símbolo da porta lógica XOR na Figura 10 e sua tabela verdade mais abaixo. Figura 17: Porta lógica XOR. A 0 0 1 1 B 0 1 0 1 Y 0 1 1 0 Sua saída será sempre “0” quando todos os valores de entrada forem iguais. De outra forma, o valor da sua saída será “1”. Se você precisar de uma porta XOR com mais de duas entradas, você precisará adicionar uma porta OR como mostrado na Figura 18. Figura 18: Expandindo as entradas de uma porta XOR. O circuito integrado XOR mais famoso é o 7486, que tem sua pinagem mostrada na Figura 19. Figura 19: Circuito integrado 7486 possui quatro portas XOR com duas entradas cada. XNOR XNOR significa NOR exclusivo e é uma porta XOR com sua saída invertida. Dessa forma, sua saída será igual a “1” quando suas entradas possuírem o mesmo valor e “0” quando elas forem diferentes. A operação XNOR é representada pelo símbolo (·) e sua fórmula pode ser resumida através da fórmula Y = A (·) B. Você pode ver o símbolo da porta lógica XNOR na Figura 20 e sua tabela verdade mais abaixo. Figura 20: Porta lógica XNOR. A 0 0 1 1 B 0 1 0 1 Y 1 0 0 1 Sua saída será sempre “1” quando todos os valores de entrada forem iguais. De outra forma, o valor da sua saída será “0”. Se você precisar de uma porta XNOR com mais de duas entradas, você precisará adicionar uma porta AND como mostrado na Figura 21. Uma outra forma é usar o circuito mostrado na Figura 18 adicionando um inversor em sua saída. Figura 21: Expandindo o número de entradas de uma porta XNOR. Como exemplo de circuito integrado com portas XNOR temos o 747266 e você pode ver sua pinagem na Figura 22. Figura 22: Circuito integrado 74266 possui quatro portas XNOR com duas entradas cada. Não inversor ou Buffer Em um não-inversor, também conhecido como buffer, o valor colocado na sua entrada será encontrado em sua saída. Você pode achar que esta é uma porta lógica maluca, já que ela não faz nada. Isto não é verdade, ela tem muitas aplicações importantes em eletrônica digital, como explicaremos abaixo. Figura 23: Não-inversor ou buffer. A 0 1 Y 0 1 Uma aplicação típica para um buffer é aumentar o fan-out de uma dada porta lógica. Fan-out é o número máximo de portas lógicas que um dado circuito integrado pode ser conectado. Por exemplo, se uma dada porta lógica tem um fanout de três portas, sua saída só pode ser conectada diretamente a, no máximo, três outras portas lógicas. Se você precisar conectar esta saída a mais do que três portas lógicas, você pode usar um buffer para aumentar o número de portas lógicas que você pode conectar a esta saída. Uma outra aplicação para o buffer é o uso de um circuito onde o buffer é controlado por um pino chamado gate (o circuito integrado 74367 é um bom exemplo). Nesta aplicação, a porta lógica trabalhará como um portão: ela replicará em sua saída o que está em sua entrada apenas quando seu pino chamado gate está ativado. Figura 24: Pinagem do circuito integrado 74367. Uma outra aplicação para um não-inversor é criar uma linha de atraso. Como cada circuito integrado demora um pouco para replicar em sua saída o que está em sua entrada, um não-inversor pode ser usado para retardar o sinal. Esta idéia é usada em alguns circuitos osciladores digitais, por exemplo. Se você pegar o circuito da Figura 25, se cada porta retarda o sinal 10 ns (nanosegundos), com quatro portas teremos uma linha de atraso de 40 ns. Figura 25: Uma linha de atraso. Coletor Aberto e Dreno Aberto Como comentamos anteriormente, “1” significa 5V. Em algumas situações você pode precisar de uma tensão maior para controlar um dispositivo que não trabalha com 5 V. Você pode querer controlar um relé de 12 V, por exemplo. Além disso, você também pode querer controlar um circuito de 5 V que consome mais corrente do que um circuito integrado padrão pode fornecer. Nesses casos, você pode usar uma configuração de coletor aberto. Circuitos integrados da série 74xxx (todos os circuitos integrados que usamos em nossos exemplos) são baseados em uma tecnologia chamada TTL, Lógica TransistorTransistor. Coletor aberto significa que o transistor usado na saída da porta não tem o seu coletor internamente conectado ao sinal VCC (tensão de alimentação) do circuito integrado. Dessa forma, você tem que fazer esta conexão por contra própria. Isto significa que você precisa instalar um resistor externo (chamado “pullup”) entre a saída e o VCC para fazer o circuito funcionar. A boa notícia é que o VCC não precisa usar o +5 V da fonte de alimentação. Você pode instalar na saída +12 V da fonte de alimentação e alimentar seu relé de 12 V diretamente, por exemplo. O termo dreno aberto é usado por circuitos integrados que usam a tecnologia CMOS e é exatamente a mesma coisa. Portas coletor aberto ou dreno aberto são geralmente marcadas com um asterisco. Figura 26: Exemplo de um circuito de coletor aberto. A configuração de coletor aberto tem muito mais aplicações. A mais comum é uma técnica chamada wired-AND, onde uma conexão trabalha como uma porta AND. Veja no exemplo da Figura 27. A saída Y será igual a (A OR B) AND (C NAND D). A conexão trabalhará como se fosse uma porta AND. Figura 27: Exemplo de um wired-AND usando uma porta lógica com coletor aberto. Alguns circuitos integrados com coletor aberto incluem o 7403 (portas NAND, mesma pinagem do 7400), 7405 (inversores, mesma pinagem do 7404), 7409 (portas AND, mesma pinagem do 7408) e 7433 (portas NOR, mesma pinagem do 7402), apenas para mencionar alguns exemplos.