Comunicação PC - PC via porta paralela

24
Centro Federal de Educação Tecnológica Celso Suckow da Fonseca – UnED Maria da Graça Curso Técnico de Automação Industrial Alunos: Camilla Vidal, Luiz Filippi Graf, Monique Barros, Sarah Diniz e Tamires de Sá. Professor: Cristiano Fuschilo Turma: 3AATMI Comunicação PC – PC Porta Paralela

Transcript of Comunicação PC - PC via porta paralela

Page 1: Comunicação PC - PC via porta paralela

Centro Federal de Educação TecnológicaCelso Suckow da Fonseca – UnED Maria da Graça

Curso Técnico de Automação IndustrialAlunos: Camilla Vidal, Luiz Filippi Graf, Monique Barros, Sarah Diniz e Tamires de Sá.

Professor: Cristiano FuschiloTurma: 3AATMI

Comunicação PC – PC Porta Paralela

Page 2: Comunicação PC - PC via porta paralela

Introdução Em 1981, a IBM introduziu nos seus PCs a porta paralela, inicialmente com o objetivo de conectar as impressoras. Porém, atualmente essa realidade é diferente, vários periféricos (como exemplos: scanner, câmeras de vídeo, unidade de disco removível...) utilizam dessa porta.

O padrão adotado pela IBM partiu de um fabricante de impressora, a Centronics (conector Anphend) que havia desenvolvido um conjunto de sinais de controle que funcionava muito bem na época. Isso significa que o cabo atual de impressora é um misto do conector DB25 (padrão IBM) e o conector Centronics de 36 pinos.

A partir do sistema operacional Windows 95 tornou-se possível efetuar comunicação entre dois computadores através da porta paralela, usando um programa nativo chamado "comunicação direta via cabo". Esta rede é muito simples de ser implementada, bastando apenas a utilização de um cabo DB25, conectado entre os dois computadores. É, no entanto, necessária uma configuração específica nos cabos para que a rede possa funcionar corretamente.

Page 3: Comunicação PC - PC via porta paralela

Porta Vantagens Desvantagens

Paralela • Mais fácil programação;• Mais rápida;• Interface de fácil

construção.

• Via de dados (8 pinos) unidirecional PC−interface;• Entrada de sinais para

interrupção (4 pinos);• Distância máxima pequena

entre PC− interface (15m);• Sensível a ruídos.

Vantagens X Desvantagens

Page 4: Comunicação PC - PC via porta paralela

Conectores

Page 5: Comunicação PC - PC via porta paralela

PINOS DESCRIÇÃO FUNÇÃO DIREÇÃO 1 STROBE  DADOS PRONTOS PARA ENVIO SAÍDA2 D0  DADO MENOS SIGNIFICATIVO SAÍDA 3 D1 DADO  SAÍDA 4 D2 DADO  SAÍDA 5 D3 DADO  SAÍDA 6 D4 DADO  SAÍDA 7 D5 DADO  SAÍDA 8 D6 DADO  SAÍDA 9 D7 DADO MAIS SIGNIFICATIVO  SAÍDA

10 ACK PERIFÉRICO AVISA QUE DADOS FORAM RECEBIDOS ENTRADA 11 BUSY PERIFÉRICO OCUPADO (NÃO RECEBE NOVOS DADOS)  ENTRADA 12 PAPER END IMPRESSORA SEM PAPEL  ENTRADA 13 SLCT OUT IMPRESSORA SELECIONADA  ENTRADA 14 AUTO FEED AVANÇO DE LINHA  SAÍDA 15 ERROR DISPOSITIVO INCAPAZ DE EXECUTAR TAREFA  ENTRADA 16 INIT SINAL DE RESET  SAÍDA 17 SLCT IN SELECIONAR IMPRESSORA  SAÍDA

18-25 GNG CONECTADO AO TERRA 

Conector DB25

Page 6: Comunicação PC - PC via porta paralela

Conector CentronicsPINOS DESCRIÇÃO

1 STROBE

2-9 DADOS

10 ACK

11 BUSY

12 PAPER END

13 SELECT OUT

14 AUTO FEED

15-18 NÃO CONECTATO

19-30 GROUND

31 INIT

32 ERROR

33 GROUND

34-35 NÃO CONECTATO

36 SELECT IN

Page 7: Comunicação PC - PC via porta paralela

PC 1 PC 2

PINOS PINOS

CABO DB25 (PC-PC)

Tenha sempre em mente, que o comprimento máximo do cabo paralelo é de somente 3m. Não utilize um comprimento maior que este, porque terá problemas com perda de dados se tiver transmitindo em alta velocidade. Se precisar de um cabo maior utilize-o com um amplificador de sinais.

Page 8: Comunicação PC - PC via porta paralela

Nome Endereços LPT1 Endereços LPT2 Descrição

Registro de Dados 378h 278h Envia um byte para a impressora

Registro de Status 379h 279hLer o Status da

impressora

Registro de Controle 37Ah 27AhEnvia dados de controle para a

impressora

Nome da Porta Endereço de memória Endereço da Porta Descrição

LPT1 0000:0408 378 hex. 888 dec. Endereço base

LPT2 0000:040A 278 hex. 632 dec. Endereço base

Endereços da porta paralela& Registradores

Page 9: Comunicação PC - PC via porta paralela

Envio de Dados

OUTPORTB (ENDEREÇO,VALOR)

OUTPORTB (0x378,1)

Page 10: Comunicação PC - PC via porta paralela

Pinagem (Dados)

ID Pino Decimal Binário

D7 9 128 10000000

D6 8 64 01000000

D5 7 32 00100000

D4 6 16 00010000

D3 5 8 00001000

D2 4 4 00000100

D1 3 2 00000010

D0 2 1 00000001

Cada bit do byte enviado à Porta Paralela está relacionado com um pino do DB25; e um fio do cabo paralelo, fisicamente. Pinos de 2 à 9 normais, nível lógico alto (1) ativo. A letra D significa registrador de DADOS, e o número significa a posição do bit no byte.

Page 11: Comunicação PC - PC via porta paralela

Pinagem (Controle)

ID NENHUMA C3 C2 C1 C0

PINO NENHUM 17 (Slct In) 16 (Init) 14 (Auto Feed) 1 (Strobe)

POSIÇÃO 7 6 5 4 3 2 1 0

BYTE 0 0 0 0 1 1 1 1

C0, C1, C3 são invertidos, ou seja, nível lógico baixo (0), ativo. Apenas o C2é normal, nível lógico alto (1), ativo. A letra C significa registrador de CONTROLE, e o número significa a posição do bit no byte.

Page 12: Comunicação PC - PC via porta paralela

Recebimento de Dados

VARIAVEL=INPORTB (ENDEREÇO)VAR = INPORTB (0x379)

Page 13: Comunicação PC - PC via porta paralela

Pinagem (Status)

ID S7 S6 S5 S4 S3 NENHUMA

PINO 11 (Busy) 10 (Ack) 12 (Paper End) 13 (Slct out) 15 (Erro) NENHUM

POSIÇÃO 7 6 5 4 3 2 1 0

BYTE 0 1 1 1 1 1 1 1

S7 é invertido, ou seja, nível lógico baixo (0) ativo. Os outros (S6, S5, S4 e S3) são normais, nível lógico alto (1) ativo. A letra S significa registrador de STATUS, e o número significa a posição do bit no byte.

Page 14: Comunicação PC - PC via porta paralela

Por questões de segurança algumas versões do windows não permitem o acesso direto ao hardware, é necessário um driver que "converse" com o kernel desse sistema para ter acesso às portas físicas do computador. Nas versões do windows 95/Me e 98 não há restrição, e o acesso pode ser direto, portanto, não há necessidade do uso de drives. A maneira mais fácil de resolver este problema é através da DLL: Inpout32.dll Dentro dessa DLL já estão inclusas as rotinas: in e out para acesso as portas, e também o driver que faz a comunicação com o núcleo do sistema operacional. Está tudo em um único arquivo de 32KB. Quando criar um programa executável baseado na DLL Inpout32 para acessar a Porta Paralela no windows, é importante que essa DLL esteja na mesma pasta do programa executável.

DLL

Veja um exemplo de mensagem de erro irritante, exibida quando tentamos executar um programa que não tem auxílio de um driver para rodar nas versões do windows NT/2000 e superiores.

Page 15: Comunicação PC - PC via porta paralela

#include <stdio.h> #include <conio.h>#include <stdlib.h> #include <windows.h>

Programação

Page 16: Comunicação PC - PC via porta paralela

typedef short _stdcall (*PtrInp)(short EndPorta);

typedef void _stdcall (*PtrOut)(short EndPorta, short valor);

Programação

Page 17: Comunicação PC - PC via porta paralela

int main(void){ HINSTANCE hLib; PtrInp inportb; PtrOut outportb; int op=0, valor=0;

hLib = LoadLibrary("inpout32.dll");

Programação

Page 18: Comunicação PC - PC via porta paralela

if(hLib == NULL){ printf("Erro. O arquivo inpout32.dll não foi encontrado.\n"); getch(); } inportb = (PtrInp) GetProcAddress(hLib, "Inp32");

if(inportb == NULL){ printf("Erro. A função Inp32 não foi encontrada.\n"); getch(); }

Programação

Page 19: Comunicação PC - PC via porta paralela

outportb = (PtrOut) GetProcAddress(hLib, "Out32");

if(outportb == NULL) { printf("Erro. A função Out32 não foi encontrada.\n"); getch(); }

Programação

Page 20: Comunicação PC - PC via porta paralela

printf("Deseja enviar agora?\n 1 - SIM;\n 0 - NAO."); scanf ("%d", &op); while (op != 0){ outportb(0x378,1); printf ("\nEsta enviando sinal!\n"); getch (); outportb(0x378,0); system("cls"); printf("Deseja enviar novamente?\n 1 - SIM;\n 0 - NAO."); scanf ("%d", &op); }

Programação (Enviando)

Page 21: Comunicação PC - PC via porta paralela

Programação (Recebendo)while (op != 0){ valor=inportb(0x379); while (valor != 1){ printf ("Nao esta havendo comunicacao!\n"); } if (valor == 1){ printf ("\n\nEsta havendo comunicacao!\n\n"); getch(); } system ("cls"); printf ("\nDeseja continuar?\n 1 - SIM\n 2 - NAO.\n"); scanf ("%d", &op); }

Page 22: Comunicação PC - PC via porta paralela

Programação

FreeLibrary(hLib); return 0; }

Page 23: Comunicação PC - PC via porta paralela

Dúvidas?

Page 24: Comunicação PC - PC via porta paralela

A Porta Paralela está ligada diretamente à placa mãe de seu computador. Muito cuidado ao conectar circuitos ele-trônicos a essa porta, pois, uma descarga elétrica ou um componente com a polaridade invertida, poderá causar danos irreparáveis ao seu computador, seja coerente.

ATENÇÃO!!!