2025

Programação de Sistemas Embebidos

Nome: Programação de Sistemas Embebidos
Cód.: EME13032M
6 ECTS
Duração: 15 semanas/156 horas
Área Científica: Informática

Língua(s) de lecionação: Português
Língua(s) de apoio tutorial: Português, Inglês
Regime de Frequência: Presencial

Objetivos de Desenvolvimento Sustentável

Objetivos de Aprendizagem

Aquisição de competências que permitam o desenvolvimento de sistemas embebidos com ligação ao mundo real. Em particular, os alunos deverão obter conhecimento detalhado sobre: arquitetura dos processadores da família ARM ? Cortex; interface entre o microcontrolador e os possíveis sensores e atuadores; sincronização entre o hardware e o software; programação de sistemas em C/C++; aquisição e processamento de dados. Adquirir capacidade para desenvolver projetos de sistemas embebidos de complexidade média, utilizando ferramentas e técnicas de projeto e verificação.

Conteúdos Programáticos

1. Introdução aos Sistemas Embebidos
Arquitetura de microcontroladores. Processador ARM Cortex-M. Técnicas e ferramentas de projeto.

2. Programação de Sistemas Embebidos
Técnicas de programação e depuração. Drivers de dispositivos. Processos e threads.

3. Introdução ao projeto de sistemas
Fontes de alimentação para sistemas embebidos. Projeto de placas para circuitos integrados.

4. Métodos de Interface com Periféricos
Sincronização hardware/software. Portos de entrada/saída e sua configuração. Interface com motor de passo. Interface UART. Interrupções.

5. Interface de Ondas Temporais
Medição de período, largura de pulso e frequência. Geração de interrupções periódicas, ondas quadradas e PWM.

6. Interfaces Analógicas
Princípios de conversão analógica/digital. Condicionamento de sinal. Filtros.

Métodos de Ensino

O ensino é baseado em aulas teóricas e teórico-práticas. Nas aulas teóricas são transmitidos os principais conceitos teóricos associados à arquitetura de sistemas embebidos incluindo a sua programação e depuração, interfaces de comunicação e gestão de recursos. As aulas teórico-práticas têm como objetivo a familiarização com as ferramentas de projeto. Nestas aulas serão desenvolvidos trabalhos no âmbito dos processadores ARM Cortex. Os projetos a desenvolver nestas aulas aumentam de complexidade ao longo do decurso da disciplina, culminando
com o desenvolvimento autónomo e implementação de um projeto final de média complexidade.

Horário de Dúvidas disponível 2 vezes por semana, em conjuntos de duas horas cada, no gabinete do docente. Utilização de email ou Zoom para tirar dúvidas básicas ou para marcação de outro horário de acompanhamento conveniente a cada aluno.

Avaliação

Os elementos de avaliação são classificados utilizando o intervalo [0,20].
São os seguintes os elementos de Avaliação:

- [Ti] Trabalho i - Nota mínima de 8,5 valores (80%)
(cada trabalho tem um peso pi = {5, 5, 10 , 10, 10, 10, 15, 30, 15, 20})
- [Ex] Exame final (80%)
- [P] Projeto (20%)

O aluno poderá escolher 1 de 2 possíveis regimes de Avaliação, em que a Nota Final [NF] é calculada da seguinte forma:

i) AVALIAÇÃO CONTÍNUA: NF = {soma(Ti x pi)/130} x 0,8 + P x 0,2
Aprovado se NF>= 9,5
Reprovado se NF < 9,5

ii) AVALIAÇÃO FINAL: NF = Ex x 0,8 + P x 0,2
Aprovado se NF>= 9,5
Reprovado se NF < 9,5

Bibliografia

1. ?Embedded Systems: Real-Time Interfacing to Arm® CortexTM-M Microcontrollers?, 3ª Edição, J. W. Valvano, 2013.
2. ?Computers as Components: Principles of Embedded Computing Systems Design?, W. Wolf, 3ª Edição, Morgan Kaufmann, 2012.
3. ?Programming Embedded Systems in C and C++?, M. Barr, O?Reilly, 1999.
5. ?ARM System Developer's Guide: Designing and Optimizing System Software?, A. Sloss, D. Symes, C. Wright, Morgan Kaufman, 2004.
6. ?The Definitive Guide to the ARM Cortex-M3?, J. Yiu, 2ª Edição, Newnes, 2009.
7. ?ARM System-on-Chip Architecture?, S. Furber, 2ª Edição, Addison-Wesley, 2000.

Equipa Docente