STE-EngTel (página)

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Embedded Systems

Grades

Lab Experiments

The experiments in this course are based on the project Embedded Systems Experiments for the Telecommunication Engineering Undergraduate Program. See this page for the Experimental Setup. We will use the Arduino Uno board as hardware platform, and will be developing software in C/C++ using the GNU compiler with the avrlibc. We have plenty of Arduinos for use in the classroom, but if you can afford, you are encouraged to buy one for yourself to work on the extra-class assignments. They are available for less than R$50. check MercadoLivre.

Arduino's microcontroller is Atmel's ATMega328P. Download its manual here.

Syllabus

Unit 01 - Get In: Hands on Microcontroller Software

Unit 01 - Get In: Hands on Microcontroller Software

Introduction to Embedded Systems

Embedded Systems Development: Design Principles

General Porpuse Input Output and External Interrupts

Serial Communication

Input/Output Buffers

Analog-to-Digital Conversion

Digital-to-Analog Conversion

Unit 02 - Get Right: Introduction to Real-Time Systems

Unit 02 - Get Right: Introduction to Real-Time Systems

Multitasking

Real-Time Scheduling

Unit 03 - Get Out: Networked Embedded Systems

Unit 03 - Get Out: Networked Embedded Systems

Embedded Networks and Multiprocessors

Embedded Networks Seminar

  • Will be covered by seminars. See Homework 04.
Unit 04 - Get Done: Embedded System Design

Unit 04 - Get Done: Embedded System Design

Homework

Homework 01: UART and Input/Output Buffers

For this homework, each student must:

  1. Execute Lab 05: UART - Interrupts and Circular Buffer.
  2. Implement an UART Loopback Application with the following characteristics:
    1. Use the Round-Robin With Interrupts architecture (suggestion: model it using a state-machine);
    2. Use separate input and output buffers with configurable length;
    3. Modify the application loop to use a delay to simulate data processing for each received byte (see loop pseudo-code bellow);
  3. Considering the application as a queue system, where bytes arrive through the serial and leave through the output buffer, analyze this communication problem using the queueing theory utilization theorem:
    1. Define the worst-case arrival rate (A, in bytes/second, remember that an 8N1 serial will send 1 start bit, 8 data bits, and 1 stop bit);
    2. Define the worst-case departure rate (D, in bytes/second, assume it is, in theory, the inverse of the processing time);
    3. Compute the utilization of the queue (U=A/D, meaning that U is the amount of bytes going to the queue every second);
    4. Build a graph where the x axis is the processing time (P={1,4,8}, ms) and the y axis is the minimum buffer size for a 1-second data transfer busrt;
    5. Plot in this graph curves for different UART bitrates (B={19200,57600,115200}, bps).
  4. Finally, run the nine configurations of the experiment (PxB) in your board.
    1. Compare the experimental results to the analytical model;
    2. Plot the same graph for the experimental results;
    3. Discuss and justify the differences and/or similarities of the analytical and experimental results.

Pseudo-code for the test application:

void loop() {
  char x = read_from_input_buffer();
  delay(TIME);
  write_to_output_buffer(x);
}

Students must hand-in the source code used in the experiment and a short report (2 pages max.) consisting of:

  1. Introduction (describe the problem being studied)
  2. Analytical model (equations and graph)
  3. Experimental Setup (Material and Methods)
  4. Results (the other graph)
  5. Discussion

This template can be used to build the report.


Homework 02: Analog and Digital Interchanges

For this homework, each student must:

  1. Execute Lab 06: Analog-to-Digital Converters.
  2. Execute Lab 07: NTC - Negative Temperature Coeficient.
  3. Implement and calibrate a digital thermometer using the NTC 10KOhm Thermistor using an application with the following characteristics:
    1. Use the Round-Robin With Interrupts architecture (suggestion: model it using a state-machine);
    2. Use an ADC buffer to store ADC conversions;
    3. Implement the Steinhart-Hart model for the Thermistor reading and calibrate it;
    4. Implement the Beta model for the Thermistor reading and calibrate it;
  4. Compare the precision of both models and write a report containing:
    1. Introduction (describe the problem being studied)
    2. Analytical models (equations and graphs)
    3. Experimental Setup (Material and Methods)
    4. Results (experimental graphs)
    5. Discussion

This template can be used to build the report.

Homework 03: Real-Time Operating System
Homework 04: Embedded Networks
  • In groups of two, students must choose one of the papers bellow and present a seminar during class. Students must:
    • Hand-in to the Professor an one-page abstract of the paper (72 hours before presentation)
    • Publish for the audience a set of slides (24h before presentation)
    • Present a talk on the paper that must last between 25 and 30 minutes