UNIVERSIDADE FEDERAL DE UBERLÂNDIA
  

Timbre

Ficha de Componente Curricular

 

CÓDIGO:

 

COMPONENTE CURRICULAR:

SISTEMAS EMBARCADOS I

UNIDADE ACADÊMICA OFERTANTE:

FACULDADE DE ENGENHARIA ELÉTRICA

SIGLA:

FEELT

CH TOTAL TEÓRICA:

45 horas

CH TOTAL PRÁTICA:

30 horas

CH TOTAL:

75 horas

 

OBJETIVOS

Objetivos Gerais

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.

Objetivos Específicos

  1. Conhecimento detalhado dos principais protocolos de comunicação digital (UART, I2C, SPI).

  2. Uso eficiente da linguagem C no desenvolvimento de firmware.

  3. Uso e desenvolvimento de hardware e firmware com o emprego de microcontroladores Cortex M.

  4. Apresentação de paradigmas diversos de construção de firmwares (voltado a interrupções, super loop, co-rotinas e RTOS).

  5. Estratégias para criação de código portável (encapsulamento, ponteiros opacos, abstração de hardware).

  6. Projeto de hardware microprocessados.

 

Ementa

Estudo e desenvolvimento de sistemas embarcados microcontrolados. Visão sistêmica do processo de desenvolvimento de hardware e firmware; Técnicas de codificação eficiente; Estudo da arquitetura de um microcontrolador; Estratégias de criação de firmware; Portabilidade.

 

PROGRAMA

1. Introdução ao mercado de sistemas embarcados. Possibilidades de inovação e emprego da tecnologia embarcada.

2. Arquitetura de computadores
2.1. Paradigmas RISC e CISC
2.2. Stack pointer, program counter e registros de status
2.3. Modos de endereçamento
2.4. Vetores e tratamento de interrupções
2.5. Dispositivos de memória.
2.5.1. Terminologia de memória;
2.5.2. Princípios de operação da memória;
2.5.3. Memória utilizadas em sistemas embarcados (DRAM, SRAM, ROM, Flash, EEPROM, FRAM)

3. Ferramentas de desenvolvimento (toolchains)
3.1. Ferramentas do toolchain GNU (ar, as, gcc, ld, strip, nm, strings)
3.2. Arquivos de linker e de partida
3.3. Uso de IDEs para desenvolvimento e uso de linha de comando
3.4. Bibliotecas C e código de partida para sistemas embarcados

4. Ferramentas de desenvolvimento ST Microelectronics
4.1. Configuração de pinos/funções no CubeMX. Geração de código.
4.2. Compilação e depuração no System Workbench.

5. Arquitetura ARM Cortex M
5.1. Família Cortex M. Conjunto de instruções Cortex M.
5.2. Arquitetura Cortex M. Registradores comuns do Cortex M. Estados e modos de operação do processador. Inicialização do processador.
5.3. Registros especiais (Control Register, Program Status Register, System Control Block).
5.4. Exceções e interrupções no Cortex M. Controle de interrupções. Prioridades. Entrada e saída de modo interrompido. Contextos de interrupção. Contexto de interrupção com ponto flutuante. Latência de interrupções.
5.5. Mapa de memória.
5.6. Barramentos e DMA.
5.7. Acessos alinhados e não alinhados. Operações atômicas de acesso a bits (bit-band).
5.8. Modos de baixo consumo.
5.9. Proteção de memória.

6. Microcontroladores ARM Cortex STM32
6.1. Visão geral dos controladores STM32.
6.2. GPIO no STM32, conceitos de portas e pinos.
6.3. Uso por pooling para entrada e saı́da.
6.4. Interrupções no STM32.
6.5. Teoria geral sobre UART. UART no STM32. Registros relacionados à UART no STM32. Uso com interrupções. UART com buffer circular.
6.6. Conceitos gerais de timers e PWM. Timers e PWM no STM32.
6.7. RS485 no STM32. Uso de transceiver RS485.
6.8. Conceitos gerais de conversores analógicos digitais (caracterı́sticas, tipos de ADC e seus princípios de funcionamento, circuitos sampling and holding e multiplexação)
6.9. ADC no STM32 (pooling, interrupção e cı́clico via DMA).
6.10. Conceitos gerais do protocolo SPI. Protocolo SPI no STM32.
6.11. Conceitos gerais do protocolo I2C. Protocolo I2C no STM32.
6.12. Conceitos gerais de conversores digitais analógicos (caracterı́sticas, tipos de DAC e seus princı́pios de funcionamento, filtros de reconstrução).
6.13. DAC no STM32.

7. Estratégias de construção de firmware
7.1. Super loop
7.2. Voltado a interrupções
7.3. Máquinas de estados
7.4. Co-rotinas
7.5. Visão geral de um RTOS (Sistema operacional de tempo real).
7.6. MISRA C

8. Projeto com microcontroladores
8.1. Famı́lias lógicas TTL e CMOS
8.1.1. Tensões e correntes de entrada e saı́da
8.1.2. Fan-in, Fan-out
8.1.3. Atrasos de propagação e frequência máxima de operação
8.1.4. Caracterı́sticas e tipos de portas digitais (coletor/dreno aberto, tri-state e totem-pole)
8.1.5. Interfaceamento entre famı́lias lógicas
8.1.6. Cuidados adicionais no uso de pinos CMOS não utilizadas
8.2. Reguladores de tensão
8.3. Desacoplamento
8.4. CAD para projeto eletrônico
8.4.1. Visão geral do uso de ferramenta CAD
8.4.2. Esquemáticos
8.4.3. Biblioteca de componentes
8.4.4. Netlist e lista de materiais
8.4.5. Projeto da placa de circuito impresso
8.4.6. Criação de footprints
8.4.7. Geração de arquivos de fabricação
8.5. Projeto de hardware com controladores STM32
8.5.1. Escolha do controlador e mapeamento dos pinos
8.5.2. Alimentação (digital e analógica)
8.5.3. Desacoplamento
8.5.4. Relógios (clocks)
8.5.5. Roteamento de linhas especiais
8.5.6. Interligação com periféricos diversos
8.6. Montagem e depuração de placas eletrônicas

 

BIBLIOGRAFIA BÁSICA

  1. ALMEIDA, Rodrigo A. de; MORAES, Carlos H. V.; SERAPHIM, Thathyana F. P. Programação de sistemas embarcados: desenvolvendo software para microcontroladores em linguagem C. Rio de Janeiro: Elsivier, 2016.

  2. PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: McGraw-Hill, 2016.

  3. YIU, J. The definitive guide to ARM Cortex-M3 and Cortex-M4 processors. 3. ed. Waltham: Newnes/Elsevier, 2014.

 

BIBLIOGRAFIA COMPLEMENTAR

  1. BACKES, André. Linguagem C: completa e descomplicada. Rio de Janeiro: Elsevier, 2013.

  2. TANENBAUM, Andrew S. Organização estruturada de computadores. São Paulo: Pearson, 2013.

  3. TOCCI, Ronald J. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Education do Brasil, 2011.

  4. OLIVEIRA, André Schneider de; ANDRADE, Fernando Souza de. Sistemas Embarcados - Hardware e Firmware na Prática. São Paulo: Editora Saraiva, 2010. E-book. ISBN 9788536520346. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788536520346/. Acesso em: 13 mar. 2023.

  5. DENARDIN, Gustavo W.; BARRIQUELLO, Carlos H. Sistemas Operacionais de Tempo Real e Sua Aplicação em Sistemas Embarcados. São Paulo: Editora Blucher, 2019. E-book. ISBN 9788521213970. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/ 9788521213970/. Acesso em: 13 mar. 2023.

 

aprovação

 

Prof. Dr. Augusto Wohlgemuth Fleury Veloso da Silveira

Coordenador do Curso de Graduação em Engenharia Elétrica

Prof. Dr. Sérgio Ferreira de Paula Silva

Diretor da Faculdade de Engenharia Elétrica

 


logotipo

Documento assinado eletronicamente por Augusto Wohlgemuth Fleury Veloso da Silveira, Coordenador(a), em 03/05/2023, às 15:40, 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 Sergio Ferreira de Paula Silva, Diretor(a), em 04/05/2023, às 15:21, 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 4460951 e o código CRC 999B6B07.




Referência: Processo nº 23117.080333/2022-16 SEI nº 4460951