Upload
rafael-borges
View
10
Download
3
Embed Size (px)
DESCRIPTION
Comunicação Paralela e seria (Microcontroladores)
Citation preview
Comunicação Paralela e Serial
Conceitos
Comunicação
• Transmissão de dados (bits)
– Computador X Computador
– Computador X Periféricos
– Periféricos X Computador– Periféricos X Computador
Comunicação
• Existem inúmeras aplicações para sistemas que utilizam comunicação:
– Serial
– Paralela. – Paralela.
• Maquinas industriais
• Periféricos de computadores
• Hardware de controle, entre outros.
Diferença Paralela X Serial
• Serial:– Transmissão mais simples
– Utiliza apenas um canal de comunicação
– Menor velocidade de transmissão– Menor velocidade de transmissão
• Paralela:– Transmissão mais custosa e complexa
– Requer mais de um canal de comunicação
– Maior velocidade de transmissão
Porta Paralela
• A porta paralela é uma interface de comunicação entre o computador e um periférico.
• São vários os periféricos que se utilizam desta porta para enviar e receber dados para o computadorcomputador– Scanners– Câmeras de vídeo– Unidade de disco removível – Outros
• Atualmente esta entrando em desuso devido ao surgimento da interface USB.
Comunicação Paralela
• Na comunicação em paralelo, grupos de bits são transferidos simultaneamente.
• Sendo assim, a velocidade de transmissão acaba sendo muito superior a da porta serial.acaba sendo muito superior a da porta serial.
• Existem 2 tipos de transmissão em Paralela
– Transmissão unidirecional:
– Transmissão bidirecional:
Comunicação Paralela Unidirecional
• Transmissão unidirecional:
– A porta paralela SPP (Standard Parallel Port) pode chegar a uma taxa de transmissão de dados a 150KB/s. 150KB/s.
– Comunica-se com a CPU utilizando um BUS de dados de 8 bits.
– Para a transmissão de dados entre periféricos são usado 4 bits por vez.
Comunicação ParalelaBidirecional
• Transmissão bidirecional:– A porta avançada EPP ( Enhanced Parallel Port )
chega a atingir uma taxa de transferência de 2 MB/s.
– Para atingir essa velocidade, é necessário um cabo – Para atingir essa velocidade, é necessário um cabo especial.
– Comunica-se com a CPU utilizando um BUS de dados de 32 bits.
– Para a transmissão de dados entre periféricos são usado 8 bits por vez.
Comunicação Paralela
• A porta avançada ECP (Enhanced Capabilities Port) tem as mesmas características que a EPP
• Porém, utiliza DMA (acesso direto à memória), sem a necessidade do uso do processador, sem a necessidade do uso do processador, para a transferência de dados.
• Utiliza também um buffer FIFO de 16 bytes
Comunicação Paralela
• O seu computador nomeia as Portas Paralelas, chamando-as de LPT1, LPT2, LPT3 etc.,
• As Porta física padrão de seu computador é a LPT1, e seus endereços são: 378h ( para enviar um byte de dados pela Porta), 378+1h (para um byte de dados pela Porta), 378+1h (para receber um valor através da Porta) e, 378+2h (para enviar dados).
• Às vezes pode está disponível a LPT2, e seus endereços são: 278h, 278+1h e 278+2h, com as mesmas funções dos endereços da porta LPT1 respectivamente.
Nome da Porta Endereço de memória Endereço da Porta Desc rição
LPT1 0000:0408 378 hexadecimal 888 decimal Endereço base
LPT2 0000:040A 278 hexadecimal 632 decimal Endereço base
Concectores
• O DB25 é um conector que fica na parte de trás do gabinete do computador
• É através deste, que o cabo paralelo se conecta ao computador para poder enviar e receber dados. dados.
• No DB25, um pino está em nível lógico 0 quando a tensão elétrica no mesmo está entre 0 a 0,4v.
• Um pino se encontra em nível lógico 1 quando a tensão elétrica 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, é através deste cabo que a impressora é conectada ao computador.
• Quando desenvolvemos uma projeto que utilize • Quando desenvolvemos uma projeto que utilize uma interface para conectarmos ao computador poderemos utilizar um conector centronics 36 pinos fêmea
• 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
Número do Pino Descrição
1 Strob
2 ao 9 Dados (D0...D7)
10 Ack
11 Busy
12 Paper End
13 Select Out
14 Auto Feed
15 ao 18 Não conectato
19 ao 30 GROUND
31 Init
32 Error
33 GROUND
34 a 35 Não 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• Transistores
• Relê
Lista de alguns componentes utilizados para
desenvolver os circuitos
• Foto-transistor e sensores
• Matriz de Contato
• Display• Display
• Fios- Interligação de componentes
• Ferro de Solda
Windows e Porta Paralela
• Por questões de segurança as versões do windows NT/2000 e XP não permitem o acesso direto ao hardware
• É necessário um driver que "converse" com o • É necessário um driver que "converse" com o núcleo (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.
Windows e Porta Paralela
• A maneira mais fácil de resolver este problema é através da DLL Inpout32.dll disponível para download na URL :– http://www.logix4u.net/inpout32.htm.
• Dentro dessa DLL já estão inclusas as rotinas: in e out para acesso as portas, e também o 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 windowsNT/2000 ou XP, é importante que essa DLL esteja na mesma pasta do programa executável.
Windows e Porta Paralela
• É necessário o usuário também ativar a porta através do aplicativo USERPORT.
• Existe 2 formas de executar este aplicativo:– Copie o arquivo UserPort.SYS para o diretório
%WINDIR%\SYSTEM32\DRIVERS e execute o arquivo %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 endereço 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> //Necessário para: LoadLibrar y(), GetProcAddress() e HINSTANCE.//Declaração dos ponteiros para função.typedef short _stdcall (*PtrInp)(short EndPorta);typedef void _stdcall (*PtrOut)(short EndPorta, short valor);int main(void){ HINSTANCE hLib; //Instância para a DLL inpout32 .dll.
PtrInp inportb; //Instância para a função Imp32(). PtrOut outportb; //Instância para a função Out32().//Carrega a DLL na memória.hLib = LoadLibrary("inpout32.dll");if(hLib == NULL) //Verifica se houve erro.{ printf("Erro. O arquivo inpout32.dll não foi enc ontrado.\n");
getch();return -1;
}//Obtém o endereço da função Inp32 contida na DLL.inportb = (PtrInp) GetProcAddress(hLib, "Inp32");if(inportb == NULL) //Verifica se houve erro.{ printf("Erro. A função Inp32 não foi encontrada. \n");
getch();return - 1;return - 1;
}//Obtém o endereço da função Out32 contida na DLL.outportb = (PtrOut) GetProcAddress(hLib, "Out32");if(outportb == NULL) //Verifica se houve erro.{ printf("Erro. A função Out32 não foi encontrada .\n");
getch();return -1;
}//Uso das funções 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 d e Dados da porta paralela.FreeLibrary(hLib); //Libera memória alocada pela DL L. return(0);
}