290 likes | 414 Views
Plataforma RENESAS, I2C, Smart Card. Acadêmicos: Marlon Lopes, Vinicius Lemos, Bernardo Berra. Objetivo. Implementar solução de leitura e gravação em um smart card utilizando protocolo I2C através da plataforma RENESAS.
E N D
Plataforma RENESAS, I2C, Smart Card Acadêmicos: Marlon Lopes, Vinicius Lemos, Bernardo Berra
Objetivo • Implementar solução de leitura e gravação em um smart card utilizando protocolo I2C através da plataforma RENESAS. • Breve tutorial de Utilização de ambiente de desenvolvimento HEW4 (High-performance Embedded Workshop)
Renesas Renesas
Placa Renesas QSK26A • Área em azul são as portas de expansão da placa utilizadas para mapeamento e implementação do protocolo de comunicação.
Criando o Projeto 1 Ao criar um novo projeto selecionar o kit QSK26A
Criando o Projeto 2 Criar um projeto vazio
Criando o Projeto 3 O wizard de criação automaticamente Inclui arquivos necessários para mapeamento e utilização do hardware.
Criando o Projeto 4 Alterar sessão para M16C_R8C_FoUSB. Uma sessão contem todas as unidades necessárias para gerenciar vários parâmetros, do ambiente tais como opções do HEW debbuger , e tambem usado gerenciar a conexão com a plataforma
Criando o Projeto 5 Alterar modo de conexão para USB e selecionar o arquivo referente ao processador utilizado.
Criando o Projeto 6 Se o dispositivo estiver corretamente conectado via USB, a conexão será estabelecida.
I2C I2C
I2C I2C utiliza somente duas linhas de comunicação denominadas por: serial data (SDA) e serial clock (SCL) . As linhas SDA e SCL carregam somente informações digitais, e portanto operam dentro dos limites de 0 a 5 volts. Para que este sistema funcione corretamente, alguns protocolos bem definidos devem ser obedecidos, como por exemplo: o sinal de start (início da transmissão), o sinal de stop (final da transmissão), etc.
I2C • A LINHA DE CLOCK - esta linha é quem fornece a cadência para que a transmissão serial seja entendida. • Nesta tarefa é a linha de clock quem identifica quando um dado (um bit) pode ser considerado válido - esta situação sempre é definida quando a linha de clock está alta (nível lógico alto). Portanto , sempre que a linha de clock SCL estiver alta , saberemos que a linha SDA possue um dado válido (nível lógico 1 ou 0).
I2C • PROTOCOLO - é um padrão utilizado para que não haja erros na transferência de dados. Para isto são definidas as condições que devem ser reconhecidas (ACKNOWLEDGE). • O sinal de reconhecimento é quem permite a fluência da transferência dos dados. Assim , por exemplo , após a condição de Start e o endereçamento estarem concluídos, o estágio (escravo) selecionado deverá fornecer o sinal de reconhecimento (ACK).
I2C • Hoje o protocolo I2C - pela sua simplicidade - tornou-se um standard em comunicação e tem aplicação nos mais variados produtos , dentre eles: TVs , VCRs , áudio , etc. • Será explicado agora a solução de leitura e gravação em um smart card utilizando protocolo I2C através da plataforma RENESAS. Implementado na linguagem C de programação. I2C
Aplicação Aplicação
Mapeamento Hardware mapeado em memória utilizaremos a área P6 da placa. São 8 pinos equivalentes a 1 Byte. Também é necessário a utilização dos pinos VCC e GND
Aplicação Mapeamento bit a bit da porta P6 da placa. Para implementar o protocolo I2C utilizaremos os pinos p_0 = clock e p_1 = dados. Implementação do mapeamento das portas utilizadas. Macros para alternar sinais nas portas.
Aplicação Start, Stop Sinalização de condição de START e STOP padrao I2C. È necessário um delay entre as trocas de sinal para que seja estabilizado e reconhecido. Codificação do sinal de START. Sinal de dado baixa enquanto o sinal de clock permanece alto. Codificação do sinal de STOP. Sinal de dado levanta enquanto sinal de clock permanece alto.
Aplicação sinais Envio do valor “0,” pois quando o clock esta alto o valor no barramento é um valor válido. Envio do valor “1,” pois quando o clock esta alto o valor no barramento é um valor válido.
Aplicação Ack Nack Após cada byte enviado um sinal de ACK é enviado. Isso sinaliza ao transmissor que o sinal foi recebido com sucesso, e outro byte pode ser enviado. Todos os pulsos de clock incluem um ack. No gráfico de sinal acima se verifica essa afirmação.
Aplicação Envio de dado O envio de um dado segue a seguinte sequencia: O dispositivo master ajusta a condição inicial. O dispositivo master envia 7 bis de endereçamento. O dispositivo master envia o 8o bit, R/W. O dispositivo slave envia o sinal de ACK (Acknowledge). O dispositivo master (ou slave) envia pacotes de 8 bits de dados, sempre seguidos de um sinal ACK enviado pelo dispositivo slave (ou master) confirmando a recepção. O dispositivo master encerra a comunicação.
Aplicação Envio de dado O significado dessa seqüência de bits após o start, é que o periférico responsável pelo dado que será enviado está selecionando o dispositivo para gravação, este por sua vez reconhece essa seqüência e aguarda o byte de endereço para armazenamento e permite acesso a sua área de memoria, e depois de recebido responde com um ACK.
Aplicação Lendo um Dado Seleciona dispositivo para leitura dos dados, dispositivo retorna um ACK. Inicia processo de recebimento dos dados Ao final do processo, a variável “aux2” contem o dado que estava no primeiro endereço de memória no dispositivo.
Dificuldades • Dificuldade ao encontrar delay de ajuste para implementação correta do protocolo I2C.
Bibliografia • NXP Semiconductors. (http://www.nxp.com/products/interface_control/i2c/facts/) • NXP Semiconductors. (http://www.nxp.com/products/all_usermanuals/) • I2C Bus site (http://www.i2c-bus.org/) • Renesas product center (http://www.renesasuniversity.com/scripts/pc2/university/pc_technology_summary.pl?AREA=38&CENTER=13&SID=19797.19807.20051222&cf=pc-university&obj=652)
Bibliografia • Bernardo Berra bernardoberra@gmail.com • Marlon Lopes marlonglopes@gmail.com • Vinicius Lemos viniciusdelemos@gmail.com