Você está na página 1de 26

Comunicao Paralela e Serial

Conceitos

Comunicao
Transmisso de dados (bits)
Computador X Computador
Computador X Perifricos
Perifricos X Computador

Comunicao
Existem inmeras aplicaes para sistemas
que utilizam comunicao:
Serial
Paralela.
Maquinas industriais
Perifricos de computadores
Hardware de controle, entre outros.

Diferena Paralela X Serial


Serial:
Transmisso mais simples
Utiliza apenas um canal de comunicao
Menor velocidade de transmisso

Paralela:
Transmisso mais custosa e complexa
Requer mais de um canal de comunicao
Maior velocidade de transmisso

Porta Paralela
A porta paralela uma interface de comunicao
entre o computador e um perifrico.
So vrios os perifricos que se utilizam desta
porta para enviar e receber dados para o
computador

Scanners
Cmeras de vdeo
Unidade de disco removvel
Outros

Atualmente esta entrando em desuso devido ao


surgimento da interface USB.

Comunicao Paralela
Na comunicao em paralelo, grupos de bits
so transferidos simultaneamente.
Sendo assim, a velocidade de transmisso
acaba sendo muito superior a da porta serial.
Existem 2 tipos de transmisso em Paralela
Transmisso unidirecional:
Transmisso bidirecional:

Comunicao Paralela
Unidirecional
Transmisso unidirecional:
A porta paralela SPP (Standard Parallel Port) pode
chegar a uma taxa de transmisso de dados a
150KB/s.
Comunica-se com a CPU utilizando um BUS de
dados de 8 bits.
Para a transmisso de dados entre perifricos so
usado 4 bits por vez.

Comunicao Paralela
Bidirecional
Transmisso bidirecional:
A porta avanada EPP ( Enhanced Parallel Port )
chega a atingir uma taxa de transferncia de 2
MB/s.
Para atingir essa velocidade, necessrio um cabo
especial.
Comunica-se com a CPU utilizando um BUS de
dados de 32 bits.
Para a transmisso de dados entre perifricos so
usado 8 bits por vez.

Comunicao Paralela
A porta avanada ECP (Enhanced Capabilities
Port) tem as mesmas caractersticas que a EPP
Porm, utiliza DMA (acesso direto memria),
sem a necessidade do uso do processador,
para a transferncia de dados.
Utiliza tambm um buffer FIFO de 16 bytes

Comunicao Paralela
O seu computador nomeia as Portas Paralelas,
chamando-as de LPT1, LPT2, LPT3 etc.,
As Porta fsica padro de seu computador a
LPT1, e seus endereos so: 378h ( para enviar
um byte de dados pela Porta), 378+1h (para
receber um valor atravs da Porta) e, 378+2h
(para enviar dados).
s vezes pode est disponvel a LPT2, e seus
endereos so: 278h, 278+1h e 278+2h, com as
mesmas funes dos endereos da porta LPT1
respectivamente.

Nome da Porta

Endereo de memria

Endereo da Porta

Descrio

LPT1

0000:0408

378 hexadecimal

888 decimal

Endereo base

LPT2

0000:040A

278 hexadecimal

632 decimal

Endereo base

Concectores
O DB25 um conector que fica na parte de trs
do gabinete do computador
atravs deste, que o cabo paralelo se conecta
ao computador para poder enviar e receber
dados.
No DB25, um pino est em nvel lgico 0 quando
a tenso eltrica no mesmo est entre 0 a 0,4v.
Um pino se encontra em nvel lgico 1 quando a
tenso eltrica no mesmo est acima de 3.1 e at
5v.

Conector DB25 Femea

Concector DB25 Macho Paralelo

Funcionamento do DB25 em modo


EPP

Conector Macho 36 Pinos Centronics


O conector macho Centronics 36 pinos faz parte
do cabo da impressora, atravs deste cabo que
a impressora conectada ao computador.
Quando desenvolvemos uma projeto que utilize
uma interface para conectarmos ao computador
poderemos utilizar um conector centronics 36
pinos fmea
Isso faz com que nossa interface aproveite o cabo
da impressora.

Conector Macho 36 Pinos Centronics

Significado de cada pino do conector Centronics 36 pinos


Nmero do Pino

Descrio

Strob

2 ao 9

Dados (D0...D7)

10
11

Ack
Busy

12

Paper End

13

Select Out

14

Auto Feed

15 ao 18

No conectato

19 ao 30

GROUND

31
32

Init
Error

33

GROUND

34 a 35

No conectato

36

Select In

Lista de alguns componentes utilizados para


desenvolver os circuitos

Cabo Paralelo

LEDs
Resistores
Diodos
Capacitores

Lista de alguns componentes utilizados para


desenvolver os circuitos

Circuitos Integrados
Motores de Passo
Transistores
Rel

Lista de alguns componentes utilizados para


desenvolver os circuitos

Foto-transistor e sensores
Matriz de Contato
Display
Fios- Interligao de componentes
Ferro de Solda

Windows e Porta Paralela


Por questes de segurana as verses do
windows NT/2000 e XP no permitem o
acesso direto ao hardware
necessrio um driver que "converse" com o
ncleo (kernel) desse sistema para ter acesso
s portas fsicas do computador.
Nas verses do windows 95/Me e 98 no h
restrio e o acesso pode ser direto, portanto,
no h necessidade do uso de drives.

Windows e Porta Paralela


A maneira mais fcil de resolver este problema
atravs da DLL Inpout32.dll disponvel para download
na URL :
http://www.logix4u.net/inpout32.htm.

Dentro dessa DLL j esto inclusas as


rotinas: in e out para acesso as portas, e tambm o
driver que faz a comunicao com o ncleo do sistema
operacional.
Est tudo em um nico arquivo de 32KB.
Quando criar um programa executvel baseado na DLL
Inpout32 para acessar a Porta Paralela no windows
NT/2000 ou XP, importante que essa DLL esteja na
mesma pasta do programa executvel.

Windows e Porta Paralela


necessrio o usurio tambm ativar a porta
atravs do aplicativo USERPORT.
Existe 2 formas de executar este aplicativo:
Copie o arquivo UserPort.SYS para o diretrio
%WINDIR%\SYSTEM32\DRIVERS e execute o arquivo
UserPort.EXE, ou
Execute o arquivo UserPort.exe com o drive na linha
de comando, utilizando o arquivo UserPort.sys como
argumento:
C:\UserPort.EXE X:\SeuDiretorio\UserPort.SYS

Selecione o endereo na porta correspondente e


clique em Start

Windows X Porta Paralela


Driver para acessar a Porta Paralela no
Windows 2000 e XP (SP1 e SP2)
http://www.rogercom.com/pparalela/DriverNT_2000_XP.zip

Outros Downloads:
http://www.rogercom.com/download/Downloads.htm

#include <stdio.h>
//printf() entre outras.
#include <conio.h> //getch().
#include <windows.h> //Necessrio para: LoadLibrary(), GetProcAddress() e HINSTANCE.
//Declarao dos ponteiros para funo.
typedef short _stdcall (*PtrInp)(short EndPorta);
typedef void _stdcall (*PtrOut)(short EndPorta, short valor);
int main(void)
{ HINSTANCE hLib; //Instncia para a DLL inpout32.dll.
PtrInp inportb; //Instncia para a funo Imp32().
PtrOut outportb; //Instncia para a funo Out32().
//Carrega a DLL na memria.
hLib = LoadLibrary("inpout32.dll");
if(hLib == NULL) //Verifica se houve erro.
{ printf("Erro. O arquivo inpout32.dll no foi encontrado.\n");
getch();
return -1;
}
//Obtm o endereo da funo Inp32 contida na DLL.
inportb = (PtrInp) GetProcAddress(hLib, "Inp32");
if(inportb == NULL) //Verifica se houve erro.
{ printf("Erro. A funo Inp32 no foi encontrada.\n");
getch();
return -1;
}
//Obtm o endereo da funo Out32 contida na DLL.
outportb = (PtrOut) GetProcAddress(hLib, "Out32");
if(outportb == NULL) //Verifica se houve erro.
{
printf("Erro. A funo Out32 no foi encontrada.\n");
getch();
return -1;
}
//Uso das funes outportb() e inportb():
printf("Pressione uma tecla para ligar o pino D0.\n");
getch();
outportb(0x378,1); //Ativa o pino D0 do Registro de Dados da porta paralela.
printf("Pressione uma tecla para desligar o pino D0.\n");
getch();
outportb(0x378,0); //Desativa os pino do Registro de Dados da porta paralela.
FreeLibrary(hLib); //Libera memria alocada pela DLL.
return(0);
}