• Leonardo Ritter

Hardware - A interface IEEE 1284 ("Porta paralela" ou "LPT")

Atualizado: 7 de set.

A continuação dos estudos das funcionalidades do chip Super I/O!

O tema detalhado neste artigo é a interface IEEE 1284, conhecida popularmente como "porta paralela" ou "porta LPT".

Interface paralela

Imagem 1


As impressoras da Centronics, muito famosas na década de 1960, utilizavam uma conexão do tipo barramento paralelo implementada com um conector Micro Ribbon de 36 pinos. No entanto, a IBM, nos anos 1980, querendo integrar a interface aos seus modernos Computadores Pessoais resolveu que um conector de 25 pinos já era mais do que suficiente.

Este conector de 25 pinos é do tipo "DB" e possui cor Borgonha 235C, como vemos na Imagem 1. Além disso, ele pode ser referido como "LPT", sigla para "Local Printer Terminal".

A interface criada pela Centronics nos anos 1970, e que posteriormente foi aprimorada pela IBM foi padronizada apenas nos anos 1990 como IEEE 1284.


CURIOSIDADE: Um conector de 36 pinos do tipo "Mini Delta Ribbon" também foi definido, mas não se popularizou no mercado, permanecendo apenas cabos com ambas as pontas de 25 pinos ou cabos com ponta LPT (lado PC) e Centronics (lado impressora).


Veja abaixo uma impressora HP datada de 2004 com conector Centronics:

Imagem 2 - Um conector Centronics numa impressora HP dos anos 2000. Ela é conectada na porta LPT do computador


O fato é que o padrão Centronics e o LPT andam juntos desde sempre, e passaram a ser detalhadamente definidos a partir do IEEE 1284!


Com o passar dos anos, a interface foi sofrendo com a evolução das impressoras e computadores, fazendo com que a IBM e empresas parceiras que utilizavam a interface, criassem novas revisões deste meio de comunicação. Todas as revisões serão detalhadas neste artigo. A interface LPT foi utilizada também em scanners, câmeras digitais e zip drives antigos.


Com a chegada do padrão USB (Universal Serial Bus) no final dos anos 1990, a interface paralela, com o tempo, perdeu sua funcionalidade principal, que era conectar o PC a uma impressora e passou a "servir pra bonito" nos computadores. Por incrível que pareça, em 2016 ainda era possível encontrar placas-mãe novas com suporte à porta paralela.


Hobbystas podem utilizar o conector DB25 para fazer projetinhos simples, como por exemplo um pisca-pisca programado e acionado pelo computador, ou um gravador de PIC ou outros chips e circuitos digitais simples, mas funcionalidades oficiais não são mais atribuídas a portas paralelas já faz uns bons anos.

Vamos começar pela parte física e depois ir aos modos de operação...


O hardware


A porta LPT utiliza um conector DB25, de 25 pinos, dispostos em duas linhas. Para fins de curiosidade, listamos a pinagem da interface LPT e da Centronics. Perceba o quão diferente (só que não) elas são:

Tabela 1 - Veja que a interface LPT apenas elimina um grupo de pinos sem uso e alguns GND do padrão Centronics


Agora, observe o formato e a organização dos pinos nos conectores (incluindo o Mini Delta Ribbon):

Imagem 3 - Diferença entre conectores da interface LPT, Centronics e Mini Delta Ribbon


A linha "strobe" é utilizada para marcar o fim e o início da transferência, tal como a linha "Frame" num barramento PCI, por exemplo. Mas como assim? Enquanto as linhas de dados estão ociosas, o sinal de strobe está em HIGH, mas quando um dado é transmitido, imediatamente o sinal cai para nível LOW e só volta para HIGH quando a transferência é finalizada.


A interface paralela tem este nome popular pois, como você pode ver no diagrama de pinos acima, são 8 linhas de dados (os pinos 0 a 7), o que significa que 1 Byte (8 bits) podem ser transmitidos por vez, diferente da interface serial RS-232, que possui apenas 1 linha de dados e que transmite 1 bit por vez. Desta forma, a porta LPT possui uma taxa de transferência maior e se torna melhor que a serial.

No entanto, toda linha de dados deve ter sua linha GND ao lado, mais precisamente em formato "par trançado", igual utilizam em outras interfaces, como é o caso dos cabos de rede conectados em portas RJ-45:

Imagem 4 - Portas LPT / Centronics devem usar pares trançados


Assim é possível evitar crosstalks entre as linhas. Isso significa uma taxa de dados e comunicação mais alta possível em distâncias maiores.

Se for usado um cabo flat, as linhas de dados serão intercaladas com as linhas GND.


A normatização trazida pela IEEE 1284 define dois tipos de cabos:

IEEE 1284-I: Implementada com conectores IEEE 1284-A (DB25) e IEEE 1284-B (Micro Ribbon);

IEEE 1284-II: Implementada com conectores IEEE 1284-C (Mini Delta Ribbon).


Somente com a criação dos pares diferenciais nos sistemas CMOS que a comunicação em série se tornou mais viável e muito mais utilizada que a interface LPT e outros meios de comunicação que utilizam vários fios para transmitir dados.


A porta LPT prevê um circuito padrão entre o controlador e o conector. Todo esse sistema funciona com base na Lógica TTL, ou seja, trabalha com tensões de 5 V ou 3,3 Volts. A corrente máxima dos pinos deve estar na faixa de 4mA e 20mA.

Selecionamos três diagramas elétricos para você conhecer mais a fundo esta interface! Observe as imagens abaixo:

Esquema elétrico da placa-mãe GBT GA-8VM800M

Diagrama 1 - Esquema elétrico da porta paralela da placa-mãe GBT GA-8VM800M

Esquema elétrico da placa-mãe GBT GA-6VEML Rev.: 1.0

Diagrama 2 - Esquema elétrico da porta paralela da placa-mãe GBT GA-6VEML Rev.: 1.0

Esquema elétrico da placa-mãe Foxconn 748A01

Diagrama 3 - Esquema elétrico da porta paralela da placa-mãe Foxconn 748A01

Observe que, dos pinos 1 ao 17 há resistores em Pull-Up e terminações capacitivas. Do pino 18 ao 25 são terminais ligados no GND.

Agora, os modos de operação para transferências de dados numa porta LPT.


A interface LPT possui três revisões, ou melhor dizendo, três modos de operação: o SPP, o EPP e o ECP. Além do mais, há dois "subconjuntos" incorporados: o Nibble e o Byte.


O Modo SPP (Standard Parallel Port)


O SPP é um modo de compatibilidade, isto é, se os outros modos descritos na sequência deste texto não operarem, o SPP funcionará, afinal, ele preserva praticamente as mesmas definições criadas na interface pra impressoras Centronics dos anos 1970. Uma das poucas diferenças é escrita no próximo parágrafo.

Logo que a interface paralela começou a ficar popular, viu-se que o computador ficava preso a transmissão, pois a impressora era muito mais lenta para processar e imprimir o documento e a CPU tinha que ficar esperando o envio de dados terminar. Para sanar este problema, um buffer de memória cache com alguns Bytes foi adicionado ao chip controlador das impressoras. Com isso, o computador poderia enviar o arquivo a ser impresso direto para a memória da impressora e assim ficar livre e partir para outro processo. Este buffer se tornou padrão, fazendo parte do SPP.

O modo SPP se baseia por três registradores básicos:

Imagem 5 - Os três registradores definidos no SPP


Antes de prosseguirmos para os modos EPP e ECP, vamos entender melhor os dois subconjuntos incorporados à eles:


Nibble

Inicialmente, a interface paralela servia só para enviar dados do computador para a impressora, ou seja, ela era unidirecional. Os únicos meios que a impressora tinha para se comunicar com o computador era pelas linhas "Ocupado", "Selecionar", "Fim do papel" e "Error".

Com a chegada de scanners, câmeras digitais e Zip drives com interface LPT, sentiu-se a necessidade de mudar o funcionamento da porta, já que estes dispositivos precisam mandar dados (fotos, músicas, arquivos, imagens digitalizadas) para o computador. A interface paralela sofreu mais uma modificação, desta vez, para torna-la bidirecional.

As linhas "Ocupado", "Selecionar", "Fim do papel" e "Error" foram utilizadas para enviar dados e não só os comandos de impressoras para o computador. Desta forma, foi necessário modificar os circuitos que controlavam essas linhas para que o computador entendesse quando era enviado um comando ou um dado a ele. O problema é que eram apenas 4 linhas para envio de dados, ou seja, meio Byte (meio Byte é igual a 1 Nibble).

A porta paralela tinha a capacidade de transferir do computador para o periférico conectado 150 Kb/s teóricos e, a comunicação inversa, ou seja, do periférico para o computador era só de 75 Kb/s teóricos devido ao envio de apenas 1 Nibble por vez. Isto fez com que, por exemplo, uma foto de alta qualidade produzida por uma câmera digital, levasse dezenas de minutos para ser transferida para o computador via interface LPT.


Byte

Após a implementação da interface LPT, alguns produtores liderados pela IBM aumentam a capacidade de transferência removendo os drivers das linhas de dados e assim fornecendo comunicação bidirecional (Half-Dulpex) por estas linhas.

Esse modo também é compatível com uma minoria de interfaces pré-IEEE 1284, como aquelas integradas aos computadores IBM PS/2. Por causa disso, às vezes é chamado não oficialmente de modo PS/2. No geral, apenas os modos EPP e ECP o suportam.

Outra mudança foi a taxa de transferência, elevada para 200 kbps.

O Modo EPP (Enhanced Parallel Port)


Este modo foi uma evolução do SPP criada pela Intel, Xircom e Zenith Data Systems. A comunicação entre o processador e o controlador da porta paralela aumentou de 8 para 32 bits e a comunicação entre a porta e o dispositivo conectado passou a ser de 2 Mb/s teóricos (na realidade chegava a 800 Kb/s). O conector não mudou, apenas a velocidade de transferência foi aumentada.

Com o aumento da taxa de transferência, foi necessário reforçar o isolamento do cabo utilizado na porta paralela, portanto muitos dispositivos com suporte a EPP já passaram a ser produzidos com um cabo reforçado. É comum pessoas dizerem que este cabo é "bidirecional", porém, não é bem assim. O modo de funcionamento da porta paralela é o mesmo e a única mudança, como eu já disse, é o isolamento do cabo contra interferências eletromagnéticas. Por a taxa de transferência ser mais alta, o cabo deve ter um isolamento melhor afim de evitar ruídos de EMI (Interferência eletromagnética). Caso seja utilizado o modo EPP com um cabo comum, haverá erros na transferência devido as interferências e a porta passará a funcionar no modo SPP.

O modo ECP (Extended Capabilities Port)


Este modo foi o último desenvolvido afim de melhorar o desempenho da porta LPT. Nesta revisão, para aumentar a taxa de transferência, foi utilizado o algoritmo RLE (Run Length Encoded - Comprimento de Percurso Codificado) para a compactação dos dados, reduzindo em até 64 vezes o tamanho de uma informação para envia-la.

No modo ECP também foi incluído o DMA (Direct Memory Access) para que as transferências possam ser feitas sem o conhecimento do processador, o deixando livre para outros processos. Ao configurar o canal DMA no BIOS do computador, opte por usar o DMA3, pois o DMA1 é o default para muitas placas de som e para a porta paralela, podendo assim, gerar conflitos no funcionamento.

A taxa de transferência foi mantida igual ao padrão EPP e o uso do cabo com isolamento reforçado também é obrigatório. A principal vantagem do modo ECP é não deixar o processador do computador ocupado com os envios e recebimentos de dados por esta interface.

OBSERVAÇÃO: Devemos também falar de compatibilidade! Um computador atual que ainda tenha suporte a porta paralela vem com os três modos de operação e você deverá saber qual modo que o dispositivo conectado à porta trabalha. Se você configurar o modo ECP e o dispositivo conectado trabalha apenas com o modo EPP, ele não irá funcionar corretamente. Para isso foi criada a opção "EPP+ECP" ou EPP&ECP" no BIOS, desta forma, o computador verifica qual o padrão utilizado de forma automática. O modo SPP (o modo mais antigo) só deve ser utilizado caso o dispositivo conectado não funcione com os outros modos, já que, por ser o primeiro modo lançado, o SPP está presente em todos os controladores de porta paralela e é a solução para problemas de compatibilidade.

Para que haja comunicação do hardware com o circuito controlador da porta paralela no computador, também há endereços. A porta paralela é rotulada com a sigla LPT seguida de um número.

Para o LPT1 é utilizado o endereço 378h (378 hexadecimal que vale 888 em decimal)

e, para a LPT2 o endereço 278h (278 hexadecimal que vale 632 em decimal).


Há ainda o endereço 0x3BC, que serve para comunicação com um display monocromático ou impressora (Monochrome Display and Printer Adapter, abreviado MDPA).


Normalmente, os computadores possuem 1 ou 2 portas paralelas e por isso informei apenas o LPT1 e LPT2. Caso seja atribuído o mesmo endereço para duas ou mais portas, haverá um conflito entre elas e nenhum dispositivo conectado nelas irá responder corretamente.

 

Interligando dispositivos, criando redes


Com a porta paralela também foi possível criar redes locais em topologia de anel. Isso começou com a chegada do Windows 95. Bastava ligar um PC no outro e configurar a rede pelo Windows, que já vinha com esta funcionalidade. Veja a imagem da topologia anel abaixo:

Topologia anel

Imagem 6

Alguns detalhes extras sobre esta interface...


CURIOSIDADE: Na Imagem 1 é possível perceber que a estrutura de cor rosa do conector LPT é um plástico, mais especificamente LCP, sigla para Liquid Crystal Polymer, um material muito utilizado em slots e conectores de placas de circuito devido a sua boa rigidez dielétrica e resistência a altas temperaturas. Para saber mais sobre polímeros, CLIQUE AQUI!


A confusão dos conectores "D"


Após a dúvida de um leitor aqui do blog, resolvi dissertar sobre a utilização dos conectores DB e sua relação com as interfaces de comunicação planejadas sobre eles.

Os conectores DB foram inventados pela Cannon. O sistema de identificação da Cannon usa um "D" como prefixo para toda a série (pois o conector possui um formato de letra "D"), seguido de uma letra indicando o tamanho, como pode ser visto na lista abaixo:


-> A: 15 pinos;

-> B: 25 pinos;

-> C: 37 pinos;

-> D: 50 pinos;

-> E: 9 pinos.


A sequência de duas letras vem acompanhada do número real de pinos, seguido pelo gênero (M=macho, F=fêmea). Por exemplo, DB25M indica um conector "D" com um envoltório para 25 pinos contendo 25 contatos machos. A Cannon também produziu conectores com pinos especiais, maiores que os comuns. Posso citar como exemplo a variante DB13W3, que foi utilizada para conexões de vídeo de alta performance. Ela possuía 10 pinos regulares e mais três contatos coaxiais para os sinais de vídeo Red, Green e Blue (RGB).

É provável que, pelo fato do IBM ter grande influência sobre a conexão serial e paralela utilizando estes conectores, tornou-se comum denominar todos eles como sendo "DB", independentemente de serem, na verdade, "DA" "DC" ou "DE". Quando a porta serial do PC começou a usar conectores de 9 pinos, ela foi batizada de "DB9" em vez de "DE9". Essa nomenclatura caiu no gosto popular, ou foi a que 'pegou' entre os leigos, como preferir.

Os conectores DB estão agora definidos por uma norma internacional, a DIN 41652.


Os conectores DE9, DA15, DB25, DC37 e demais variações possuem centenas de utilidades até hoje. Posso até listar algumas delas:

-> interface Game: Utilizada para conectar Joysticks e até mouses muito antigos - utiliza conector DA15;

-> interface LPT: Impressoras e scanners antigos - utiliza o conector DB25;

-> Interface RS-232: Conexão de dados seriais (utilizadas em mouses antigos, anteriores a interface PS/2), que utiliza o conector DE9. A RS-232 também utiliza um conector DB25 em aplicações extremamente antigas.


Como você pode notar em meus exemplos acima, o DB25 foi utilizado tanto em uma interface de comunicação serial (RS-232 primitiva) quanto numa paralela (LPT). Isso se deve aos conectores, que foram projetados pra inúmeras utilidades, não havendo um padrão de uso, portanto, caso você encontre uma placa de expansão com conector DB25, DC37 ou qualquer outro, talvez ele tenha alguma aplicação específica, cabendo a análise por parte do técnico.

No caso do leitor que enviou a dúvida, a placa em questão possuía um conector DB25 e relés do tipo palheta (Reed Relays), além de, claro, alguns chips, sendo um deles uma interface de periféricos programável. Atualmente ainda é comum achar placas deste tipo para aplicações que excedem as utilizações comuns dos conectores DB, como por exemplo a SeaLevel REL-16, que possui 16 reed relays e um conector DC37.

Como eu disse, em pleno 2016 ainda era possível encontrar placas-mãe com suporte a porta paralela, até porque, o controlador desta é componente do Super I/O, um chip relativamente simples e barato de se construir e que está em todas as placas-mãe, seja em um encapsulamento QFP100, QFP128 ou até mesmo integrado a Ponte Sul.

Se você fizer uma pesquisa no Mercado Livre e outros sites de compra pela internet, verá que existem também placas PCI Express x1 e PCI com suporte a uma porta paralela e duas seriais. São placas adaptadoras novas com estas interfaces super antigas!

Porta paraela e seriais em adaptador PCI Express

Imagem 7


Se você gostou do artigo é só curtir e compartilhar! Caso tenha ficado com dúvidas ou queira mandar sugestões, mande um e-mail para hardwarecentrallr@gmail.com. Não fique com dúvidas!

 

FONTES e CRÉDITOS

Texto, diagramas / tabelas e imagens: Leonardo Ritter

Fontes: Passei Direto; wikipedia (somente artigos com fontes verificadas); Biblioteca do Hardware Central.


Última atualização: 07 de Setembro de 2022.

1.727 visualizações