“Projeto e implementação em C/C++ para microprocessador embarcado de sistema para aquisição/envio de sinais AD/DA, com comunicação I2C”

UFSC/CTC/PPGEEL, 2014/2

EEL 410143 – Programação de Sistemas Embarcados

Prof. Eduardo Augusto Bezerra

 

O objetivo do projeto final da disciplina é o desenvolvimento de um software em C/C++ para realizar a funcionalidade indicada na Figura 1.

Figura 1. Diagrama de blocos do projeto final.

Descrição, requisitos, dicas e observações:
  • Desenvolver um ÚNICO software (pode ser composto por diversos arquivos .h e .cpp), que deverá:
    • Realizar a leitura do sinal de entrada do conversor A/D (proveniente do gerador de funções a esquerda na Figura 1);
    • Realizar o envio das leituras para uma outra placa, utilizando o protocolo I2C;
    • Realizar a recepção de dados de uma outra placa, utilizando o protocolo I2C;
    • Enviar os dados (sinal recebido do gerador de funções) via I2C para o conversor D/A, visando apresentação em um osciloscópio (a direita na Figura 1).
  • O software deve ser projetado de forma a ser utilizado em ambos kits da Figura 1, sem a necessidade de nenhum tipo de configuração especial. O software deverá ficar em laço infinito, recebendo dados do conversor A/D do gerador de funções, e enviando dados para a segunda placa, via interface I2C. Esse mesmo software deverá, também, permanecer recebendo dados da interface I2C, e enviando esses dados para o conversor D/A do osciloscópio.
  • Dicas para desenvolvimento de aplicações I2C no kit renesas.
  • Dicas diversas e manuais do processador e kit renesas.
  • Dicas sobre o kit, incluindo os periféricos e programas em C.
  • O software precisa ser desenvolvido utilizando classes, herança, e outros mecanismos de orientação a objetos, conforme discutido nas aulas da disciplina (ver exemplo “Hello World! C++“).

Desafios e questões a serem resolvidas:

  • Antes da implementação, os alunos deverão realizar um estudo na documentação disponível do kit da renesas, de forma a verificar a viabilidade para implementação do projeto proposto. Questões a serem respondidas incluem:
    • É possível realizar a amostragem do gerador de funções (ex. taxa de amostragem, disponibilidade de conversores A/D, …)?
    • É possível implementar o protocolo I2C? Existe um módulo I2C pronto para uso no processador da renesas (pinos I2C), ou é mais simples implementar a comunicação utilizando diretamente os pinos do conector de extensão do kit (pinos de I/O genéricos)?
    • É possível realizar o envio do sinal amostrado para o osciloscópio (ex. taxa de amostragem, disponibilidade de conversores D/A, …)?
  • Caso algum módulo não possa ser implementado na plataforma disponível, o projetista deverá propor e implementar soluções alternativas. Por exemplo, se não for possível utilizar o conversor A/D para realizar a amostragem do gerador de funções, poderia ser utilizado o potenciometro disponível no kit para emular o funcionamento do gerador de funções.
  • De forma semelhante, todas as tentativas mal sucedidas de utilização de recursos de programação da linguagem C++ (devido a limitações do compilador), também devem ser relatadas.
  • Os alunos poderão pegar um segundo kit renesas com o professor, visando os testes com a intereface I2C.
  • Atenção!! Antes de realizar qualquer ligação elétrica entre placas (I2C), e nos equipamentos de teste (gerador de funções e osciloscópio), o professor deve ser consultado para evitar possíveis danos.
  • Preparar uma documentação (relatório técnico) descrevendo a arquitetura do sistema, ferramentas utilizadas, e o fluxo utilizado para o desenvolvimento do software. Incluir comentários sobre a experiência ao utilizar orientação a objetos na implementação do sistema. Quais as vantagens e desvantagens? Quais recursos foram utilizados? Quais recursos gostaria de ter utilizado, e não foi possível devido as limitações do compilador? Porquê gostaria de ter utilizado (ou usou) determinados recursos? Reuso de módulos? Organização do código fonte? A documentação é parte fundamental da avaliação, e deverá ser preparada de forma a possibilitar futuras alterações no software desenvolvido.

Avaliação e entrega:

  • O trabalho é individual.
  • A entrega do trabalho será realizada no moodle até o dia 08/set às 7:00 da manhã.
  • A apresentação dos trabalhos será realizada, também, no dia 08/set, a partir das 08:00 (ou em data anterior a ser combinada entre aluno e professor).
  • Cada apresentação terá uma duração máxima de 15 minutos. Durante a apresentação, o aluno deverá apenas responder as questões do professor, fornecendo eventuais explicações para as estratégias adotadas.