programação de periféricos controle de acesso cristiano ferreira 20 junho de 2008
TRANSCRIPT
Programação de PeriféricosProgramação de Periféricos
Controle de AcessoControle de Acesso
Cristiano FerreiraCristiano Ferreira
20 Junho de 200820 Junho de 2008
IntroduçãoIntrodução
ApresentaçãoApresentação
CaracterísticasCaracterísticas
Tecnologias abordadasTecnologias abordadas
Periféricos + PlacaPeriféricos + Placa
Requisitos de HardwareRequisitos de Hardware
Mini – ITX Mini – ITX
Sistema Operacional (Debian)Sistema Operacional (Debian)
CatracaCatraca
LCDLCD
Leitora de CartãoLeitora de Cartão
Componentes BásicosComponentes Básicos
DiferencialDiferencial
O que fez ela ser escolhida ? O que fez ela ser escolhida ? Quais seriam as outras alternativasQuais seriam as outras alternativas
Mini - ITXMini - ITX
Mini - ITXMini - ITX
Qual ? Porque foi escolhido ?Qual ? Porque foi escolhido ?
Como foi instaladoComo foi instalado
Sistema OperacionalSistema Operacional
CatracaCatraca
Como funciona?Como funciona?
Interface de comunicaçãoInterface de comunicação
Como funciona?Como funciona?
Modos de acesso.Modos de acesso.
Porta Serial – Pinos de controle Porta Serial – Pinos de controle
void sendDTR() {ioctl(fdttyS0, TIOCMGET, &status);status |= TIOCM_DTR;ioctl(fdttyS0, TIOCMSET, &status);
}
void resetDTR(){ioctl(fdttyS0, TIOCMGET, &status);status &= ~TIOCM_DTR;ioctl(fdttyS0, TIOCMSET, &status);
}
Trecho de código...Trecho de código...
Tipos de LeitorasTipos de Leitoras
Protocolo de comunicaçãoProtocolo de comunicação
Leitora de CartõesLeitora de Cartões
O que é Wiegand?O que é Wiegand?
Como funciona?Como funciona?
Dificuldade de implementaçãoDificuldade de implementação
WiegandWiegand
Wiegand – FormatoWiegand – Formato
Wiegand - TemporizaçãoWiegand - Temporização
Como funcionaComo funciona
Como foi mapeadoComo foi mapeado
LCDLCD
void sendConfigByte(int byte) { int i; int byteAux;
for (i=0;i<2;i++) { if (i==0) { RS_0(); EN_1(); outb(LCD,LPT1); usleep(5); byteAux = byte >> 4; LCD &= 0xF0; LCD |= byteAux; outb(LCD,LPT1); usleep(5); EN_0();
outb(LCD,LPT1); usleep(5000);}
Trecho de código...Trecho de código...
else { RS_0(); EN_1(); outb(LCD,LPT1); usleep(5); byte &= 0x0F; LCD &= 0xF0; LCD |= byte; outb(LCD,LPT1); usleep(5); EN_0(); outb(LCD,LPT1); usleep(5000); } }}
Porque esse trabalhoPorque esse trabalho
Futuras implementaçõesFuturas implementações
ConclusãoConclusão