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.
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
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.
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
Cabo Paralelo
LEDs
Resistores
Diodos
Capacitores
Circuitos Integrados
Motores de Passo
Transistores
Rel
Foto-transistor e sensores
Matriz de Contato
Display
Fios- Interligao de componentes
Ferro de Solda
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);
}