Centro Federal de Educação Tecnológica             Celso Suckow da Fonseca – UnED Maria da Graça     Comunicação PC – PC  ...
Introdução    Em 1981, a IBM introduziu nos seus PCs a porta paralela, inicialmente com oobjetivo de conectar as impressor...
Vantagens X DesvantagensPorta    Vantagens              DesvantagensParalela • Mais fácil           • Via de dados (8 pino...
Conectores
Conector DB25PINOS DESCRIÇÃO                      FUNÇÃO                    DIREÇÃO   1   STROBE              DADOS PRONTO...
Conector Centronics   PINOS     DESCRIÇÃO     1        STROBE    2-9       DADOS    10         ACK    11         BUSY    1...
CABO DB25 (PC-PC)                           PINOS           PINOSPC 1                                                     ...
Endereços da porta paralela                  & RegistradoresNome da Porta     Endereço de memória    Endereço da Porta    ...
Envio de DadosOUTPORTB (ENDEREÇO,VALOR)     OUTPORTB (0x378,1)
Pinagem (Dados)      ID           Pino            Decimal                 Binário      D7            9                 128...
Pinagem (Controle)   ID          NENHUMA           C3            C2            C1             C0  PINO         NENHUM     ...
Recebimento de DadosVARIAVEL=INPORTB (ENDEREÇO)      VAR = INPORTB (0x379)
Pinagem (Status)  ID         S7         S6            S5               S4            S3       NENHUMA PINO     11 (Busy)  ...
DLL   Por questões de segurança algumas versões do windows não permitem oacesso direto ao hardware, é necessário um driver...
Programação#include   <stdio.h>#include   <conio.h>#include   <stdlib.h>#include   <windows.h>
Programaçãotypedef short _stdcall (*PtrInp)(short EndPorta);typedef void _stdcall (*PtrOut)(short EndPorta,short valor);
Programaçãoint main(void){   HINSTANCE hLib;   PtrInp inportb;   PtrOut outportb;   int op=0, valor=0;   hLib = LoadLibrar...
Programação      if(hLib == NULL){         printf("Erro. O arquivo inpout32.dllnão foi encontrado.n");         getch();   ...
Programaçãooutportb = (PtrOut) GetProcAddress(hLib,"Out32");   if(outportb == NULL)   {       printf("Erro. A função Out32...
Programação (Enviando)     printf("Deseja enviar agora?n 1 - SIM;n 0 -NAO.");   scanf ("%d", &op);   while (op != 0){     ...
Programação (Recebendo)while (op != 0){        valor=inportb(0x379);        while (valor != 1){              printf ("Nao ...
ProgramaçãoFreeLibrary(hLib);   return 0;}
Dúvidas?
ATENÇÃO!!!   A Porta Paralela está ligada diretamente à placa mãe deseu computador. Muito cuidado ao conectar circuitos el...
Próximos SlideShares
Carregando em…5
×

Comunicação PC - PC via porta paralela

4.224 visualizações

Publicada em

Publicada em: Educação
  • Seja o primeiro a comentar

Comunicação PC - PC via porta paralela

  1. 1. Centro Federal de Educação Tecnológica Celso Suckow da Fonseca – UnED Maria da Graça Comunicação PC – PC Porta Paralela Curso Técnico de Automação IndustrialAlunos: Camilla Vidal, Luiz Filippi Graf, Monique Barros, Sarah Diniz e Tamires de Sá. Professor: Cristiano Fuschilo Turma: 3AATMI
  2. 2. Introdução Em 1981, a IBM introduziu nos seus PCs a porta paralela, inicialmente com oobjetivo de conectar as impressoras. Porém, atualmente essa realidade é diferente,vários periféricos (como exemplos: scanner, câmeras de vídeo, unidade de discoremoví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 quefuncionava muito bem na época. Isso significa que o cabo atual de impressora é ummisto do conector DB25 (padrão IBM) e o conector Centronics de 36 pinos. A partir do sistema operacional Windows 95 tornou-se possível efetuarcomunicação entre dois computadores através da porta paralela, usandoum programa nativo chamado "comunicação direta via cabo". Esta rede é muitosimples de ser implementada, bastando apenas a utilização de um cabo DB25,conectado entre os dois computadores. É, no entanto, necessária uma configuraçãoespecífica nos cabos para que a rede possa funcionar corretamente.
  3. 3. Vantagens X DesvantagensPorta Vantagens DesvantagensParalela • Mais fácil • Via de dados (8 pinos) programação; unidirecional PC−interface; • Mais rápida; • Entrada de sinais para • Interface de fácil interrupção (4 pinos); construção. • Distância máxima pequena entre PC− interface (15m); • Sensível a ruídos.
  4. 4. Conectores
  5. 5. Conector DB25PINOS DESCRIÇÃO FUNÇÃO DIREÇÃO 1 STROBE  DADOS PRONTOS PARA ENVIO SAÍDA 2 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ÍDA18-25 GNG CONECTADO AO TERRA 
  6. 6. Conector Centronics PINOS 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
  7. 7. CABO DB25 (PC-PC) PINOS PINOSPC 1 PC 2 Tenha sempre em mente, que o comprimento máximo do cabo paralelo é desomente 3m. Não utilize um comprimento maior que este, porque terá problemascom perda de dados se tiver transmitindo em alta velocidade. Se precisar de umcabo maior utilize-o com um amplificador de sinais.
  8. 8. Endereços da porta paralela & RegistradoresNome 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 Nome Endereços LPT1 Endereços LPT2 Descrição Envia um byte para Registro de Dados 378h 278h a impressora Ler o Status da Registro de Status 379h 279h impressora Envia dados deRegistro de Controle 37Ah 27Ah controle para a impressora
  9. 9. Envio de DadosOUTPORTB (ENDEREÇO,VALOR) OUTPORTB (0x378,1)
  10. 10. 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 pinodo DB25; e um fio do cabo paralelo, fisicamente. Pinos de 2 à 9 normais, nível lógico alto (1) ativo. A letra D significaregistrador de DADOS, e o número significa a posição do bit no byte.
  11. 11. 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çãodo bit no byte.
  12. 12. Recebimento de DadosVARIAVEL=INPORTB (ENDEREÇO) VAR = INPORTB (0x379)
  13. 13. Pinagem (Status) ID S7 S6 S5 S4 S3 NENHUMA PINO 11 (Busy) 10 (Ack) 12 (Paper End) 13 (Slct out) 15 (Erro) NENHUMPOSIÇÃ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 eS3) são normais, nível lógico alto (1) ativo. A letra S significa registrador de STATUS, e o número significa a posiçãodo bit no byte.
  14. 14. DLL Por questões de segurança algumas versões do windows não permitem oacesso direto ao hardware, é necessário um driver que "converse" com okernel 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 serdireto, 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 sistemaoperacional. Está tudo em um único arquivo de 32KB. Quando criar um programa executável baseado na DLL Inpout32 paraacessar a Porta Paralela no windows, é importante que essa DLL esteja namesma pasta do programa executável. Veja um exemplo de mensagem de erro irritante,exibida quando tentamos executar um programa quenão tem auxílio de um driver para rodar nas versõesdo windows NT/2000 e superiores.
  15. 15. Programação#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <windows.h>
  16. 16. Programaçãotypedef short _stdcall (*PtrInp)(short EndPorta);typedef void _stdcall (*PtrOut)(short EndPorta,short valor);
  17. 17. Programaçãoint main(void){ HINSTANCE hLib; PtrInp inportb; PtrOut outportb; int op=0, valor=0; hLib = LoadLibrary("inpout32.dll");
  18. 18. Programação if(hLib == NULL){ printf("Erro. O arquivo inpout32.dllnão foi encontrado.n"); getch(); }inportb = (PtrInp) GetProcAddress(hLib, "Inp32"); if(inportb == NULL){ printf("Erro. A função Inp32 não foiencontrada.n"); getch(); }
  19. 19. Programaçãooutportb = (PtrOut) GetProcAddress(hLib,"Out32"); if(outportb == NULL) { printf("Erro. A função Out32 não foiencontrada.n"); getch(); }
  20. 20. Programação (Enviando) 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); }
  21. 21. Programação (Recebendo)while (op != 0){ valor=inportb(0x379); while (valor != 1){ printf ("Nao esta havendocomunicacao!n"); } if (valor == 1){ printf ("nnEsta havendocomunicacao!nn"); getch(); } system ("cls"); printf ("nDeseja continuar?n 1 - SIMn 2 -NAO.n"); scanf ("%d", &op); }
  22. 22. ProgramaçãoFreeLibrary(hLib); return 0;}
  23. 23. Dúvidas?
  24. 24. ATENÇÃO!!! A Porta Paralela está ligada diretamente à placa mãe deseu computador. Muito cuidado ao conectar circuitos ele-trônicos a essa porta, pois, uma descarga elétrica ou umcomponente com a polaridade invertida, poderá causardanos irreparáveis ao seu computador, seja coerente.

×