EA701 Introdução aos Sistemas Embarcados
FEEC/ Unicamp
Segundo Semestre de 2024
Turma A
Turma U
Prof. Antonio Augusto Fasolo Quevedo
Profa. Wu, Shin - Ting
https://dca.fee.unicamp.br/cursos/EA701/2s2024/
[Site Oficial] [Objetivos] [Período Letivo e Local] [Ementa] [Ementa Detalhada] [Calendário de Atividades] [Auxiliares Didáticos] [Critério de Avaliação] [Referências Técnicas] [Moodle]

Objetivos

A disciplina EA701, de 6 créditos, foi projetada para expandir os conceitos da EA869 (Introdução a Sistemas de Computação) para o campo dos sistemas embarcados. Além disso, visa preparar os alunos para o desenvolvimento de projetos na EA801 (Laboratório de Projetos de Sistemas Embarcados). Durante o curso, exploraremos os refinamentos dos conceitos básicos através das tecnologias atuais, utilizando um microcontrolador da arquitetura ARM.


Período Letivo e Local

O acesso ao LE-30 é permitido para os alunos fora dos horários de aula, mediante identificação na entrada do Bloco E. Antes de sair do laboratório, favor desliguem TODOS os equipamentos sobre as bancadas e arrumem a bancada utilizada. Se forem os últimos, fechem as janelas, desliguem o ar condicionado, e apaguem as luzes.

Seguem-se algumas boas práticas para uso compartilhado das bancadas:

Haverá manuntenção periódica das máquinas que será avisada previamente. Arquivos podem ser removidos.
Ajude-nos manter as bancadas operantes em 24 horas. Quando identificar algum problema nas bancadas, avise o monitor ou o suporte.


Ementa

Linguagem para programação de microcontroladores. Estruturas de dados elementares. Entrada e saída paralela, serial e analógica. Varredura e interrupção. Temporizadores. Conversão A/D e D/A. Sensores e atuadores. Introdução ao projeto de processadores dedicados. Linguagem de descrição de hardware.


Ementa Detalhada

  1. Sistemas embarcados: definição; características; tecnologias e aplicações. Apresentação do IDE e da plataforma de hardware. Microcontroladores: arquiteturas; processadores; barramentos; memória e periféricos. Ferramentas de desenvolvimento (IDE, programadores e depuradores).
  2. Introdução à programação em linguagem C: tipos de dados e modificadores; ponteiros, macros; definições e diretivas; laços; desvios condicionais e funções. Técnicas de depuração.
  3. Memórias: tecnologias; mapeamento e segmentação; alinhamento e ordenação de bytes e estruturas de dados elementares. Acesso e manipulação com C.
  4. Interfaces paralelas: representação física dos bits; características dos sinais físicos; tipos de entrada e saída; condicionamento de sinais; sincronismo e data skew. Configuração, uso e programação de portas de entrada e saída de propósito geral em C; boas práticas para minimizar data skew.
  5. Interrupção e varredura: sinais digitais e detecção de eventos; conceitos de polling, exceções e interrupções; tipos de interrupções e prioridades; mecanismos de tratamento (ciclo de interrupção, rotinas de serviço e uso de pilhas); latência de interrupção; concorrência e regiões críticas. Configuração de interrupções em microcontroladores, suas aplicações e boas práticas para proteger regiões críticas e aumentar a responsividade.
  6. Comunicação serial: conceitos e tipos (síncrona e assíncrona); sincronismo de dados e sincronização de tempo; integridade e controle de fluxo; uso de buffers FIFO e interrupções na comunicação; protocolos UART, SPI e I2C. Configuração e aplicação de periféricos de comunicação serial em microcontroladores.
  7. Temporizadores: estrutura e princípios de operação; mecanismos de exatidão e precisão; recursos de segurança; geração de interrupções periódicas; temporizadores dedicados: modulação por largura de pulso (PWM), captura de eventos (Input Capture), geração de eventos (Output Compare), contadores de pulsos externos, relógio de tempo real (RTC), temporizadores de segurança (Watchdog). Configuração e aplicação de temporizadores em microcontroladores.
  8. Conversores digital-analógicos (D/A) e analógica-digitais (A/D): domínios analógicos e digitais; amostragem e quantização; princípios de conversão; integração de domínios analógicos e digitais; arquiteturas de conversores D/A e A/D; métricas de desempenho; interface analógica; uso de buffers FIFO e interrupções na conversão. Configuração e aplicação de conversores D/A e A/D em microcontroladores.
  9. Controlador de DMA (Acesso Direto à Memória): princípio; tipos de controladores; modos de operação. Configuração e aplicação de DMA para periféricos em microcontroladores.
  10. Sensores e Atuadores: princípios de funcionamento; tipos analógicos e digitais; condicionamento de sinais; circuitos de interfaceamento com microcontroladores (ADC, DAC, PWM, GPIO, SPI, I2C); aquisição de dados e controle de atuadores. Integração de sensores e atuadores em sistemas embarcados.
  11. Comunicação em sistemas embarcados e redes industriais: topologias física e lógica de redes; controle de rede e arbitragem de barramento; sincronização de tempo e sincronismo entre nós; estratégias para garantir determinismo, robustez, segurança, eficiência, integridade e confiabilidade. Configuração e aplicação de periféricos de comunicação determinística (como CAN) em microcontroladores.
  12. Projeto de processadores dedicados: níveis de abstração de hardware; modelagem comportamental com máquinas de estados finitos (FSM); dispositivos de lógica programável (PLDs); linguagens de descrição de hardware, visuais (como captura esquemática) e textuais (como VHDL). Implementação de sistemas digitais dedicados utilizando VHDL.


Dinâmica do Curso

A técnica adotada nesta disciplina é o Aprendizado Baseado em Problemas. Um problema é apresentado aos alunos, que têm 4 horas de aula para explorar os conceitos necessários para sua solução. Antes de se dedicarem às atividades práticas, os alunos consolidam os conceitos resolvendo questões de fixação no Moodle, com o apoio do texto do roteiro e das referências e dos instrutores presentes. Após a conclusão das atividades práticas dirigidas, os alunos são desafiados a propor uma variante da solução proposta.

Antes de iniciar um tópico, serão disponibilizados o roteiro e as questões conceituais e práticas relacionadas. O roteiro tem como objetivo fornecer uma visão geral dos conceitos fundamentais e orientar os alunos na consulta de manuais e folhas de dados para a realização das atividades práticas. Os alunos devem iniciar os projetos descritos no roteiro para estimular a curiosidade e a compreensão dos conceitos subjacentes.

As aulas começarão com uma breve introdução ao tópico. É essencial que, até 75% do total das horas de aula, os alunos compreendam os conceitos relevantes e completem as questões de fixação disponíveis no Moodle. Após essa etapa, os alunos devem iniciar as atividades práticas dirigidas, conforme detalhadas no roteiro, e responder às questões levantadas no roteiro através do Moodle. A solução dessas atividades contará com o suporte do PED/docente durante as aulas e do PAD/PED no plantão de dúvidas extra-classe. O prazo para a entrega das atividades práticas é de 8 horas antes da próxima aula.


Calendário de Atividades

Tópico Aula Segundas U(19:00 - 23:00h) Quartas A(8:00 - 12:00h) Roteiro Projetos
Fundamentos de Sistemas Embarcados 1 05/08 07/08 roteiro 1
Linguagem de Programação para Microcontroladores (CMSIS) 3 12/08 14/08 roteiro 2
Varredura e Interrupção (Pilha) 5 19/08 21/08 roteiro 3
Organização de Memória 7 26/08 28/08 roteiro 4
Temporizadores (PIT, SysTick, RTC, HAL) 9 02/09 04/09 roteiro 5
Temporizadores (PWM, IC, OC) 11 09/09 11/09 roteiro 6
Entrada Serial (UART, FIFO) 13 16/09 18/09 roteiro 7
Prova 14 23/09 (PE-26) 25/09 (PE-26) Avaliação 1
Saída/Entrada Paralela (LED RGB, Teclado) 17 30/09 02/10 roteiro 8
Entrada/Saída Analógica (D/A, A/D, DMA, FIFO Circular) 19 07/10 09/10 roteiro 9
Entrada/Saída Analógica (D/A, A/D, DMA, FIFO Circular) 21 14/10 16/10
Sensores e Atuadores (SPI e I2C) 23 21/10 23/10 roteiro 10
Sensores e Atuadores (CAN) 25 04/11 30/10 roteiro 11
HDL 27 11/11 06/11 roteiro 12
29 18/11 13/11
Prova 31 25/11 (PE-26) 27/11 (PE-26) Avaliação 2
Exame Final 31 09/12 (PE-26) 11/12 (PE-26) Exame Final

Auxiliar Didático

Neste semestre, contaremos com o suporte de um PED e dois PADs. Os horários das monitorias presenciais estão listados abaixo. Caso tenha alguma dúvida, você também pode entrar em contato pelo grupo de Whatsapp.
Segunda Terça Quarta Quinta Sexta
8:00 - 9:00     EA701 (turma A)   EA701 (turma B)
9:00 - 10:00     EA701 (turma A)   EA701 (turma B)
10:00 - 11:00     EA701 (turma A)   EA701 (turma B)
11:00 - 12:00     EA701 (turma A)   EA701 (turma B)
12:00 - 13:00          
13:00 - 14:00          
14:00 - 14:00          
14:00 - 15:00          
15:00 - 16:00          
16:00 - 17:00          
17:00 - 18:00          
18:00 - 18:30       Reforço em C (Sérgio)  
18:30 - 19:00   Melvin Melvin Reforço em C (Sérgio)  
19:00 - 19:30 EA701 (turma U) Melvin Melvin Gustavo Gustavo
19:30 - 20:00 EA701 (turma U)     Gustavo Gustavo
20:00 - 21:00 EA701 (turma U)     Gustavo Gustavo
21:00 - 22:00 EA701 (turma U)        
22:00 - 23:00 EA701 (turma U)        

Critério de Avaliação

M = 0.1T + 0.4P + 0.5A,
onde T representa média dos questionários teóricos, P é a média dos questionários práticos, incluindo as tarefas de implementações, e A é a média das duas avaliações. Todos os questionários, tanto teóricos quanto práticos, devem ser realizados em grupos de até 2 pessoas. Eles devem ser respondidos através do Moodle. Cada uma das duas avaliações terá uma duração de 2 horas, correspondendo à metade do tempo de uma aula.

É imprescindível a presença nos horários da aula e a entrega dos questionários no prazo.

Serão aprovados os alunos que satisfizerem as duas condições:

A média final, Mfinal, destes alunos é igual a M.

Exame Final

O exame final cobrirá todos os tópicos abordados durante a disciplina.


Referências Técnicas


Última modificação: Qui Ago 1 17:10:24 -03 2024

"Esta página, assim como todas as páginas sob esta mesma árvore, não é uma publicação oficial da UNICAMP, seu conteúdo não foi examinado e/ou editado por esta instituição. A responsabilidade por seu conteúdo é exclusivamente do autor."

"This page, as well as all pages under this same tree, is not an official publication from UNICAMP; its content has not been verified and/or edited by this institution. The author is solely responsible by its contents."