Construindo Protótipos Usando a Porta Paralela
Por Gabriel Torres e Cássio Lima em 26 de dezembro de 2005
Introdução
A porta paralela do micro é o meio mais fácil para controlar dispositivos externos, como LEDs, lâmpadas e até mesmo eletrodomésticos. Neste tutorial ensinaremos a você como usar a porta paralela do micro para controlar circuitos externos.
Atualmente, as impressoras vendidas no mercado utilizam conexão USB. Com isso, na maioria dos micros modernos a porta paralela está disponível, podendo ser usada para controlar circuitos externos ao micro.
Na verdade, a idéia por trás da porta paralela é muito simples. Ela é uma interface de comunicação paralela de 8 bits, e portanto você tem oito bits disponíveis lá. Como cada bit de dados pode ser transmitido como “0” (“desligado”) ou como “1” (“ligado”), nós podemos ligar ou desligar diretamente até oito dispositivos, como LEDs, lâmpadas e até mesmo eletrodomésticos. Você pode conectar LEDs diretamente na porta paralela e brincar com eles – na verdade é exatamente isso o que iremos fazer neste tutorial, já que essa é a melhor maneira de aprender como usar a porta paralela. Mas para circuitos “pesados” como lâmpadas e eletrodomésticos, você precisará construir um circuito de potência, já que a porta paralela do micro não é capaz de fornecer corrente suficiente para dispositivos como esses. Também explicaremos como construir este tipo de circuito.
clique para ampliar
Figura 1: Conectando LEDs à porta paralela.Entendendo a Porta Paralela
No micro a porta paralela usa um conector de 25 pinos (chamado DB-25, 25 pinos D-sub ou 25 pinos D-shell), como você pode ver na Figura 2. Nas impressoras, no entanto, é usado um tipo de conector diferente, chamado Centronics, que possui 36 pinos.
clique para ampliar
Figura 2: A porta paralela.Além dos oito bits de dados existem mais sinais disponíveis na porta paralela. Na tabela abaixo listamos todos os sinais básicos da porta paralela e suas funções, bem como suas localizações tanto no conector padrão 25 pinos quanto no conector Centronics. A Coluna E/S indica se o sinal é de entrada (E) ou de saída (S). Entrada significa que o sinal tem que vir do dispositivo para a porta paralela (isto é, o sinal deve ser gerado pelo nosso protótipo); saída significa que o sinal vem da porta paralela.
A porta paralela utiliza três endereços de E/S: dados (378h), status (379h) e controle (37Ah). Se você quer enviar dados para um dispositivo externo ao micro através da porta paralela, basta escrever os dados no endereço de dados da porta paralela. Por exemplo, se quisermos ligar todos os nossos LEDs, tudo o que temos que fazer é enviar o valor 255 (que é o decimal equivalente para 11111111, isto é, todos os bits de dados configurados como “ligado”) para o endereço 378h. Claro que explicaremos mais sobre isto e também falaremos mais sobre os endereços de status e controle.
Sinal
Nome
Pino (Conector padrão 25 pinos)
Pino (Conector Centronics 36 pinos)
E/S
Descrição
/STROBE Strobe 01 01 S Indica se o dado está pronto ou não para ser transmitido. (0= Dado pronto para ser transmitido, 1= Dado não está pronto para ser transmitido.) /ACK Acknowledge 10 10 E Indica que a impressora está pronta para receber dados. BUSY Busy 11 11 E Indica que a impressora não está pronta para receber dados. PE Paper Empty 12 12 E Indica que a impressora está sem papel. SELECT Select 13 13 E Indica que a impressora está “on line” pronta para receber informações. /AUTO FD XT Auto Feed 14 14 S A impressora move o papel para o início da próxima linha. /ERROR Error 15 32 E Aconteceu algum erro (impressora desabilitada, sem papel). /INIT Init 16 31 S Reinicia a impressora e limpa seu buffer de impressão. /SELECT INPUT Select Input 17 36 S Dados podem ser transferidos para impressora apenas quando esta linha estiver em “0”. D0 até D7 D0 até D7 2 até 9 2 até 9 S Bits de Dados. GND Ground 18 até 25 19 até 30 S Terra. Construindo um Protótipo Básico
Se você nunca construiu qualquer protótipo para porta paralela antes, sugerimos que você comece com o mais básico de todos: um conjunto de oito LEDs, onde cada um dos LEDs é conectado a um bit de dados da porta paralela. Com este protótipo básico você será capaz de aprender muito sobre o funcionamento da porta paralela.
Quando um pino de dados é colocado em “0”, você encontrará 0 V nele. Quando ele é colocado em “1” você encontrará 5 V. Isto é o suficiente para ligarmos os LEDs, mas não para ligar lâmpadas e eletrodomésticos; explicaremos adiante como alimentar dispositivos “pesados”.
Portanto, tudo o que você precisa fazer é conectar cada um dos pinos de dados da porta paralela (pinos 2 até 9) ao LED (em seu terminal anodo, também conhecido como “terminal positivo”) e utilizar um pino de terra (qualquer um do 18 até 25) para conectar os terminais catodo (também conhecido como “terminal negativo”) de todos os LEDs. Você pode ver o esquema na Figura 3.
clique para ampliar
Figura 3: Esquema para usar a porta paralela.Como os LEDs possuem polaridade, você deve prestar atenção para localizar corretamente seus terminais anodo (positivo) e catodo (negativo). Se você prestar bem atenção, irá reparar que os LEDs não são completamente redondos: o lado do catodo é um pouco achatado, como você pode ver na Figura 4.
Figura 4: Terminais de um LED.
Para construir circuitos, recomendamos a utilização de um “protoboard”. Protoboards permitem a você montar protótipos sem a necessidade de nenhum tipo de solda.
clique para ampliar
Figura 5: Usando um protoboard para construir nosso protótipo.Construindo um Protótipo Básico (Cont.)
O modo mais fácil para construir o cabo que será utilizado para conectar a porta paralela ao seu protótipo na protoboard é pegando um cabo de impressora padrão e cortar fora o conector Centronics. Feito isso, você precisará descobrir onde cada fio está conectado. Com um multímetro na escala de resistência (ou continuidade), coloque uma das pontas no fio que você está tentando descobrir sua função e teste a outra ponta em cada um dos pinos do conector de 25 pinos do cabo. Quando a resistência for zero (ou o multímetro emitir um bipe, se você estiver usando sua escala de continuidade), você descobrirá que pino no conector de 25 pinos o fio está conectado. Rotule o fio com a função do pino (dessa forma você não precisará repetir todo o processo novamente no futuro) e vá para o próximo fio, até você ter encontrado a função de cada fio no cabo.
clique para ampliar
Figura 6: Detalhe do nosso protoboard. Veja como rotulamos os fios.A respeito da numeração dos pinos, preste atenção no conector de 25 pinos e você verá que cada pino está numerado, veja na Figura 7.
clique para ampliar
Figura 7: Detalhe do conector de 25 pinos. Veja como cada pino está numerado.Programação
Na época do DOS a programação da porta paralela era muito simples: era apenas uma questão de enviar para o endereço de E/S (378h) o valor que você quisesse “jogar” para fora do micro. Nas versões mais modernas do Windows, no entanto, isto não é mais possível, já que o sistema operacional não permite acesso direto ao hardware do PC, o que inclui a porta paralela.
Portanto, a maneira mais fácil de enviar dados para a porta paralela é fazendo o download de um programa pronto, como o Relaistimer. Este programa é realmente muito simples e permite que você explore todas as capacidades básicas da porta paralela.
clique para ampliar
Figura 8: RelaisTimer.Neste programa você pode ligar ou desligar cada bit pressionando as teclas F1 até F8. Você pode ligar todos os LEDs clicando em “X” ou desligar todos eles clicando em “O”. Você pode também ligar ou desligar LEDs individuais clicando com o do mouse no LED correspondente no diagrama que fica na parte superior do programa.
Você também pode programar quando cada LED deverá ser ligado ou desligado, permitindo a você criar padrões luminosos ou usar o programa como um temporizador, já que ele permite a você programar um horário do dia para ligar ou desligar um ou um grupo de LEDs. Imagine que em vez de um LED você tenha uma lâmpada ou um eletrodoméstico: você será capaz de fazer seu computador ligar ou desligar o dispositivo na hora programada, mesmo que você não esteja em casa. Muito bacana.
Se você é um programador e quer escrever programas mais avançados do que o RelaisTimer, você deve ir a http://www.logix4u.net/inpout32.htm e ler como programar diretamente a porta paralela usando sua linguagem de programação favorita (C, Pascal, VB, etc).
Interface de Potência
Se você precisa controlar outros dispositivos além de LEDs, você precisará projetar e construir uma interface de potência. A idéia básica é conectar um transistor agindo como uma chave na saída dos dados, e este transistor chaveando o dispositivo que você quer controlar para ligado ou desligado. Se você quer controlar circuitos AC – lâmpadas e eletrodomésticos, por exemplo – você precisará usar um relé. O relé é uma chave que liga toda vez que a corrente elétrica passa por ele.
Você pode ver uma interface de potência básica na Figura 9. Você precisará repetir este circuito para cada bit que deseja usar, isto é, se você quer usar os oito bits da porta paralela de modo a controlar até oito circuitos AC, você precisará repetir este circuito oito vezes, um para cada bit de dados.
Você precisará de uma fonte de alimentação externa com a mesma tensão do seu relé. Assim se você usar um relé de 12 V você precisará de uma fonte de alimentação de 12 V conectada ao +Vcc e terra. “Cabo de força” é o fio que será conectado na tomada da parede e “Tomada” é a tomada em seu circuito onde as lâmpadas ou eletrodomésticos serão conectados.
clique para ampliar
Figura 9: Interface de potência.Os diodos trabalham como proteção e apesar de recomendarmos o 1N4148 qualquer outro diodo de uso geral funcionará bem. O mesmo vale para o transistor, que recomendamos o BC547, mas qualquer outro transistor NPN de uso geral também pode ser usado.
Recursos Avançados
Até agora falamos apenas sobre o envio de dados para fora da porta paralela. Na verdade, você também pode ler dados usando a porta paralela. A porta paralela padrão, também conhecida como SPP, usa dois endereços extras para status (379h) e controle (37Ah). Se você ler o conteúdo do endereço 379h você será capaz de ler o estado dos pinos busy, acknowledge, Paper Empty, Select e Error encontrados na porta paralela. Isto pode ser muito útil se você deseja construir um circuito para enviar dados para o computador. Por exemplo, se você tem algum tipo de sensor e quer um programa para ligar um alarme se este sensor disparar, esta é uma maneira de realizar isto.
Endereços de Status
Como mencionamos acima, a leitura do endereço de E/S 379h faz com que você tenha acesso aos pinos Busy, Acknowledge, Paper Empty, Select e Error. Você obtém um valor de 8 bits com o seguinte formato:
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
/BUSY
ACK
PE
SELECT
ERROR
X
X
X
Endereço de Controle
A escrita de dados neste endereço de E/S (37Ah) permite você a controlar outras linhas disponíveis na porta paralela. Na verdade, você tem mais bits de saída na porta paralela do que os oito bits de dados padrão, mas esses bits extras são acessados em um endereço diferente. Além disso, o bit número 4 do endereço de controle mascara a IRQ7. Com este bit configurado como “1” a IRQ7 pode ser usada.
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
X
X
X
IRQ 7
/SELECT INPUT
INIT
/AUTO FD XT
/STROBE
Modo Bi-Direcional
Se você já entendeu o básico, pode seguir adiante e estudar dois diferentes modos de operação da porta paralela: EPP (Enhanced Parallel Port, Porta Paralela Aprimorada) e ECP (Enhanced Capabilities Port, Porta com Capacidades Estendidas). Esses dois modos são genericamente chamados “modos bi-direcional”, já que nesses modos os pinos de dados podem ser usados tanto para entrada como para saída, o que não ocorre na porta paralela padrão, SPP, onde a porta pode ser usada apenas para enviar dados, mas não para receber (isto não é totalmente verdade, já que você pode usar bits de status para receber dados – esta técnica é chamada modo nibble).
A utilização dos modos EPP e ECP não é tão fácil quanto o modo padrão. Para mais detalhes sobre esses modos bem como mais informações de como construir protótipos usando a porta paralela, recomendamos a leitura do livro Parallel Port Complete, de Jan Axelson.
Originalmente em http://www.clubedohardware.com.br/artigos/Construindo-Prototipos-Usando-a-Porta-Paralela/1147
© 1996-2012, Clube do Hardware. Todos os direitos reservados.
É expressamente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998.
Não nos responsabilizamos por danos materiais e/ou morais de qualquer espécie promovidos pelo uso das informações contidas no Clube do Hardware.