UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

Sistemas Embarcados I

Unidade Ofertante:

FEELT

Código:

31523

Período/Série:

05

Turma:

 

Carga Horária:

Natureza:

Teórica:

45h

Prática:

30h

Total:

75h

Obrigatória:

(X)

Optativa:

( )

Professor(A):

Daniel Pereira de Carvalho

Marcelo Barros de Almeida

Ano/Semestre:

2021/02

Observações:

 

 

EMENTA

Estudo e desenvolvimento de sistemas embarcados microcontrolados.

JUSTIFICATIVA

Trabalhar os elementos de projeto envolvidos no desenvolvimento de sistemas embarcados, tanto no aspecto de hardware como de firmware. Trazer a sistemática do processo de desenvolvimento de hardware microcontrolado, técnicas de codificação eficiente, estratégias de criação de firmware, estudo da plataforma ARM Cortex M, desenvolvimento de hardware microcontrolado, criação de placas e circuitos com ferramentas CAD e arquitetura de computadores.

OBJETIVO

Objetivo Geral:

Esta disciplina tem como objetivo integrar os conceitos apresentados em diversas disciplinas da engenharia Elétrica através do estudo e implementação de hardware e firmware de dispositivos industriais.

  • Visão sistêmica do processo de desenvolvimento de hardware e firmware;
  • Técnicas de codificação eficiente;
  • Estratégias de criação de firmware;
  • Estudo da plataforma ARM Cortex M;
  • Portabilidade.

Objetivos Específicos:

  • Conhecimento detalhado dos principais protocolos de comunicação digital (UART, I2C, SPI);
  • Uso eficiente da linguagem C no desenvolvimento de firmware;
  • Uso e desenvolvimento de hardware e firmware com o emprego de microcontroladores Cortex M;
  • Apresentação de paradigmas diversos de construção de firmwares (voltado a interrupções, super loop, co-rotinas e RTOS);
  • Estratégias para criação de código portável (encapsulamento, ponteiros opacos, abstração de
  • hardware);
  • Projeto de hardware microprocessados;

PROGRAMA

METODOLOGIA

Aulas expositivas com utilização de quadro, datashow e mesa digitalizadora e aulas práticas em laboratório. Recursos e plataformas de comunicação e ensino à distância como Microsoft Teams e Moodle poderão ser utilizados para facilitar a comunicação entre o professor e o estudante e como complementação da carga horária.

 As aulas expositivas cobrem os temas mais complexos ou que exigem maior experiência. As aulas práticas são direcionadas para a plataforma Cortex M (processadores STM32) com atividades periódicas pontuadas, em geral finalizadas dentro do tempo da aula, favorecendo o compartilhamento de experiências por parte do professor.

A Tabela abaixo mostra o cronograma previsto para as aulas teóricas e práticas para um semestre letivo de 15 semanas.

Aula

Conteúdo

Aula 01

T

Apresentação da disciplina.

Aula 01

P

O processo de compilação.

Configuração do ambiente de desenvolvimento.

Aula 02

T

Introdução à arquitetura de computadores.

Arquitetura Cortex M.

Aula 02

P

Microcontroladores STM32 - layout de memória, processo de boot e NVIC.

Aula 03

T

Revisão da linguagem C.

Portabilidade de código e C11.

Toolchains e cross compilers (GNU) para ARM Cortex M.

Aula 03

P

Introdução ao desenvolvimento Bare Metal.

Atividade de programação 01 - STM32 GPIO acionamento de LED.

Aula 04

T

Automatizando o processo de compilação com o Makefile.

Analisando o arquivo objeto realocável.

Aula 04

P

Escrevendo os arquivos de startup e linker script.

Analisando o arquivo de mapa de memória.

Aula 05

T

Efeitos da otimização de código pelo compilador.

Utilização do type qualifier volatile.

Depuração de código.

Aula 05

P

STM32 GPIO - HAL ST, registradores

Atividade de programação 02 - STM32 GPIO leitura de botões por polling.

Aula 06

T

Aprimorando o arquivo Makefile.

Aula 06

P

Atividade de programação 03 - Arquitetura de software STM32 GPIO driver.

Aula 07

T

IDE para desenvolvimento STM32 HAL ST.

Organização do código gerado.

Aula 07

P

Atividade de programação 04 - Arquitetura de software STM32 GPIO HAL (Hardware Abstraction Layer).

Aula 08

T

Interrupções.

Aula 08

P

Atividade de programação 05 - STM32 GPIO interrupções.

Aula 09

T

Race Conditions - o que são e como evitar.

Aula 09

P

STM32 SYSTICK - HAL ST, registradores.

Atividade de programação 06 - STM32 SYSTICK TIMER.

Aula 10

T

Temporizadores avançados - PWM.

Aula 10

P

STM32 TIMERS - HAL ST, registradores.

STM32 ADVANCED TIMERS - HAL ST, registradores.

Atividade de programação 07 - STM32 TIMER PWM.

Aula 11

T

Conversores analógico digital - ADC utilizando polling, interrupção e DMA.

Aula 11

P

STM32 ADC - HAL ST, polling e interrupção.

STM32 DMA - HAL ST.

Atividade de programação 08 - STM32 ADC.

Aula 12

T

STM32 USART - HAL ST, polling, interrupção, DMA e estrutura de dados.

Aula 12

P

Atividade de programação 09 - STM32 USART.

Aula 13

T

Barramentos seriais: I2C e SPI.

Aula 13

P

Atividade de programação 10 - STM32 SPI.

Aula 14

T

Estratégias de construção de firmware: super loop, interrupt driven, co-rotinas e máquinas de estados.

Aula 14

P

Atividade de programação 11 - Fechadura eletrônica.

Aula 15

T

Estratégias de construção de firmware: Sistemas Operacionais de Tempo Real (RTOS).

 

Aula 15

P

Atividade de programação 12 - FreeRTOS / NuttX.

A carga horária total da disciplina é de 75 horas, ou seja, 90 horas-aula. Entretanto, de acordo com o cronograma apresentado estão previstas apenas 75 horas-aula. As 15 horas-aula restantes serão realizadas por meio de atividades assíncronas.

A última semana, será utilizada para atendimento de casos especiais e entrega da ATIVIDADE DE RECUPERAÇÃO.

AVALIAÇÃO

O aprendizado do aluno será acompanhado através da realização de listas de exercícios, questionários para verificação e acompanhamento de aprendizagem, atividades de laboratório e projeto de conclusão da disciplina. A pontuação será distribuída conforme tabelas abaixo

Atividade Laboratório

Valor

ATV1: Configuração do ambiente de desenvolvimento

4

ATV2: Vídeo inicial de uso da placa com pisca led

4

ATV3: GPIO no STM32 por polling

4

ATV4: GPIO no STM32 por interrupção

4

ATV5: UART com interrupção e buffer circulares

4

ATV6: Temporizadores

4

ATV7: Input Capture

4

ATV8: ADC com Polling

4

ATV9: ADC com DMA

4

ATV10: Máquinas de estados

4

ATV11: PWM

4

 

44

 

Verificação e acompanhamento de aprendizagem

Valor

VAC1: Famílias lógicas e reguladores

3

VAC2: Projeto com microcontroladores

3

VAC3: Arquitetura de computadores

3

VAC4: Portabilidade de código

3

VAC5: SPI e I2C

3

VAC6: Dispositivos de memória

3

 

18

 

Projeto Eletrônico

Valor

PRJ1: Documento inicial de requisitos

4

PRJ2: Esquema elétrico e biblioteca de símbolos

7

PRJ3: PCB e biblioteca de footprints

8

PRJ4: Geração de arquivos de fabricação

3

 

22

 

Listas de exercício

Valor

LST1: Arquitetura ARM

8

LST2: Microcontroladores STM32

8

 

16

De acordo com a Resolução CONGRAD 46/2022 ao fim do semestre será disponibilizada aos estudantes que não obtiveram o rendimento mínimo para aprovação e com frequência mínima de 75% (setenta e cinco por cento) no componente curricular uma ATIVIDADE DE RECUPERAÇÃO no valor de 15 pontos. O estudante que realizar a ATIVIDADE DE RECUPERAÇÃO terá limitada a sua nota final em 60 pontos.

 

BIBLIOGRAFIA

Básica

[1] Rodrigo Almeida, Carlos Moraes, and Thatyana Seraphim. Programação de Sistemas Embarcados. Editora Elsivier, 2016.

[2] Joseph Yiu. The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors. Newnes, 2014.

[3] Andrew S. Tanenbaum. Organiza¸c˜ao Estruturada de Computadores. Pearson, 2013.

Complementar

[4] Roger S. Pressman. Engenharia de Software. Uma Abordagem Profissional. McGraw-Hill, 2016.

[5] Elecia White. Making Embedded Systems: Design Patterns for Great Software. O’Reilly Media, 2014.

[6] Eric Sink. Version Control by Example. Pyrenean Gold Press, 2011.

[7] Ben Klemens. 21st Century C: C Tips from the New School. O’Reilly Media, 2014.

[8] James W. Grenning. Test Driven Development for Embedded C. Pragmatic Bookshelf, 2011.

[9] Stephen L. Montgomery. MISRA C: Guidelines for the Use of the C Language in Critical Systems 2012. Misra, 2013.

[10] Randall Hyde. Write Great Code: Volume 1: Understanding the Machine. No Starch Press, 2012

 

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Daniel Pereira de Carvalho, Professor(a) do Magistério Superior, em 14/04/2022, às 13:52, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


logotipo

Documento assinado eletronicamente por Marcelo Barros de Almeida, Professor(a) do Magistério Superior, em 14/04/2022, às 21:50, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 3525558 e o código CRC 751C0B04.




Referência: Processo nº 23117.018223/2022-35 SEI nº 3525558