Mudanças entre as edições de "STE-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 42: Linha 42:
  
 
=Lab Experiments=
 
=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 [[Embedded_Systems_Experiments_for_the_Telecommunication_Engineering_Undergraduate_Program#Used_Equipment | Experimental Setup]].
 +
We will use the [https://www.arduino.cc/en/Main/ArduinoBoardUno 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. [http://lista.mercadolivre.com.br/arduino-uno-r3 check MercadoLivre].
 +
 +
Arduino's microcontroller is Atmel's ATMega328P. Download its manual [http://www.atmel.com/Images/doc8161.pdf here].
 +
 +
= Syllabus =
 +
 +
{{collapse top| bg=lightyellow | expandir=true | Unit 01 - Get In: Hands on Microcontroller Software}}
 +
 +
== Unit 01 - Get In: Hands on Microcontroller Software ==
 +
 +
=== Introduction to Embedded Systems ===
 +
*Read chapters 1 and 7 of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
 +
 +
=== Embedded Systems Development: Design Principles ===
 +
*[http://www.lisha.ufsc.br/teaching/esl/esd.pdf Embedded Systems Development: Design Principles]
 +
 +
=== General Porpuse Input Output and External Interrupts ===
 
*[[ESTE: General Purpose Input and Output (GPIO) | Lab 01: GPIO - Hello LED]]
 
*[[ESTE: General Purpose Input and Output (GPIO) | Lab 01: GPIO - Hello LED]]
 
*[[ESTE: GPIO and External Interrupts - part 1 | Lab 02: GPIO Interrupts]]
 
*[[ESTE: GPIO and External Interrupts - part 1 | Lab 02: GPIO Interrupts]]
*[[ESTE:_Universal_Assynchronous_Receiver_and_Transmitter_(UART) | Lab 03: UART]]
+
*[[ESTE: GPIO and External Interrupts - part 2 | Lab 03: More GPIO Interrupts]]
*Lab 04: Timers
+
 
*[[ESTE: Analog-to-Digital Converter (ADC) and Sensor Reading | Lab 05: Analog-to-Digital Converters]]
+
=== Serial Communication ===
*Lab 06: Digital-to-Analog Converters
+
*Read chapter 10 of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
 +
*[[ESTE: UART - Serial Communication | Lab 04: UART - Serial Communication]]
 +
 
 +
=== Input/Output Buffers ===
 +
*Read chapter 5 of [http://www.marilynwolf.us/CaC3e/ Wolf, Computers as Components]
 +
*[[ESTE: UART - Interrupts and Circular Buffer | Lab 05: UART - Interrupts and Circular Buffer]]
 +
 
 +
=== Analog-to-Digital Conversion ===
 +
*Read chapter 7 (sections 1 and 2) of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
 +
*[[ESTE: Analog-to-Digital Converter (ADC) and Sensor Reading | Lab 06: Analog-to-Digital Converters]]
 +
 
 +
=== Digital-to-Analog Conversion ===
 +
*Read chapter 7 (section 3) of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
 +
*[[ESTE: Pulse Width Modulation (PWM) | Lab 07: Pulse Width Modulation (PWM)]];
 +
 
 +
{{collapse bottom}}
 +
{{collapse top| bg=lightyellow | expandir=true | Unit 02 - Get Right: Introduction to Real-Time Systems}}
  
* Arduino's microcontroller is Atmel's ATMega328P. Download its manual [http://www.atmel.com/Images/doc8161.pdf here].
+
== Unit 02 - Get Right: Introduction to Real-Time Systems ==
  
=Class log=
+
=== Multitasking ===
 +
*Read chapter 11 of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
 +
*Read chapter 6 (sections 1-4) of [http://www.marilynwolf.us/CaC3e/ Wolf, Computers as Components]
 +
*Read about [http://www.freertos.org/ FreeRTOS]
  
== 02/10: Class 00 - Course Presentation ==
+
=== Real-Time Scheduling ===
*[[STE-EngTel_(Plano_de_Ensino)| Course Plan (Portuguese only)]]
+
*Read chapter 12 of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
*[[Cronograma de atividades (STE-EngTel) | Class Schedule (Portuguese only)]]
+
*Read chapter 6 (sections 5-12) of [http://www.marilynwolf.us/CaC3e/ Wolf, Computers as Components]
*[[Embedded Systems Experiments for the Telecommunication Engineering Undergraduate Program]]
+
*Lab 08: Real-Time Operationg System
*[[Embedded_Systems_Experiments_for_the_Telecommunication_Engineering_Undergraduate_Program#Used_Equipment | Experimental Setup]]
 
*[https://www.arduino.cc/en/Main/ArduinoBoardUno Arduino Uno]
 
** If you want to by one for yourself, [http://lista.mercadolivre.com.br/arduino-uno-r3 check MercadoLivre]. They are available for less than R$50.
 
  
== 02/10: Class 01 - Introduction to Embedded Systems ==
+
{{collapse bottom}}
 +
{{collapse top| bg=lightyellow | expandir=true | Unit 03 - Get Out: Networked Embedded Systems}}
  
*Chapters 1 and 7 of Lee and [http://leeseshia.org/ Seshia, Introduction to Embedded Systems]
+
== Unit 03 - Get Out: Networked Embedded Systems ==
  
== 06/10: Class 02 - Embedded Systems Development: Design Principles ==
+
=== Embedded Networks and Multiprocessors ===
 +
*Read chapter 8 of [http://www.marilynwolf.us/CaC3e/ Wolf, Computers as Components]
 +
 
 +
=== Embedded Networks Seminar ===
 +
*Will be covered by seminars. See Homework 04.
 +
 
 +
{{collapse bottom}}
 +
{{collapse top| bg=lightyellow | expandir=true | Unit 04 - Get Done: Embedded System Design}}
 +
 
 +
== Unit 04 - Get Done: Embedded System Design ==
 +
 
 +
{{collapse bottom}}
 +
 
 +
= Homework =
 +
 
 +
{{collapse top| bg=lightyellow | expandir=true | Homework 01: UART and Input/Output Buffers - Deadline: Nov. 20th, 2015}}
 +
For this homework, each student must:
 +
#Execute [[ESTE: UART - Interrupts and Circular Buffer | Lab 05: UART - Interrupts and Circular Buffer]].
 +
#Implement an UART Loopback Application with the following characteristics:
 +
##Use the Round-Robin With Interrupts architecture (suggestion: model it using a state-machine);
 +
##Use separate input and output buffers with configurable length;
 +
##Modify the application loop to use a delay to simulate data processing for each received byte (see loop pseudo-code bellow);
 +
#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:
 +
##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);
 +
##Define the worst-case departure rate (D, in bytes/second, assume it is, in theory, the inverse of the processing time);
 +
##Compute the utilization of the queue (U=A/D, meaning that U is the amount of bytes going to the queue every second);
 +
##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;
 +
##Plot in this graph curves for different UART bitrates (B={19200,57600,115200}, bps).
 +
#Finally, run the nine configurations of the experiment (PxB) in your board.
 +
##Compare the experimental results to the analytical model;
 +
##Plot the same graph for the experimental results;
 +
##Discuss and justify the differences and/or similarities of the analytical and experimental results.
 +
 
 +
*Use [http://docente.ifsc.edu.br/arliones.hoeller/ste/milli_counter.tgz this timer implementation] to build the processing delay;
 +
 
 +
Pseudo-code for the test application:
 +
<syntaxhighlight lang=c>
 +
void loop() {
 +
  char x = read_from_input_buffer();
 +
  delay(TIME);
 +
  write_to_output_buffer(x);
 +
}
 +
</syntaxhighlight>
 +
 
 +
Students must hand-in the source code used in the experiment and a short report (2 pages max.) consisting of:
 +
#Introduction (describe the problem being studied)
 +
#Analytical model (equations and graph)
 +
#Experimental Setup (Material and Methods)
 +
#Results (the other graph)
 +
#Discussion
 +
 
 +
[http://docente.ifsc.edu.br/arliones.hoeller/templates/lab_report-short.zip This template] can be used to build the report.
  
*[[ESTE: General Purpose Input and Output (GPIO) | Lab 01: GPIO - Hello LED]]
 
*[http://www.lisha.ufsc.br/teaching/esl/esd.pdf Embedded Systems Development: Design Principles]
 
*[[ESTE: GPIO and External Interrupts - part 1 | Lab 02: GPIO Interrupts]]
 
  
 +
{{collapse bottom}}
  
== 16/10: Class 04 - Embedded Systems Development: Design Principles ==
+
{{collapse top| bg=lightyellow | expandir=true | Homework 02: Analog and Digital Interchanges - Deadline: Dec. 4th, 2015}}
  
*[http://www.lisha.ufsc.br/teaching/esl/esd.pdf Embedded Systems Development: Design Principles]
+
{{collapse bottom}}
*[[ESTE: GPIO and External Interrupts - part 1 | Lab 02: GPIO Interrupts]]
 
*[[ESTE: GPIO and External Interrupts - part 2 | Lab 03: More GPIO Interrupts]]
 
  
 +
{{collapse top| bg=lightyellow | expandir=true | Homework 03: Real-Time Operating System - Deadline: Dec. 22nd, 2015}}
  
== 27/10: Class 05 - Embedded Systems Development: Design Principles ==
+
{{collapse bottom}}
  
*Chapter 10 - Edward Lee
+
{{collapse top| bg=lightyellow | expandir=true | Homework 04: Embedded Networks - Deadline: Feb. 5th, 2016}}
*[[ESTE: UART - Serial Communication | Lab 03: UART - Serial Communication]]
 
  
 +
*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
  
== 06/11: Class 06 - Embedded Systems Development: Design Principles ==
+
*Papers:
 +
**Khanafer, M.; Guennoun, M.; Mouftah, H.T., "[http://dx.doi.org/10.1109/SURV.2013.112613.00094 A Survey of Beacon-Enabled IEEE 802.15.4 MAC Protocols in Wireless Sensor Networks]", in Communications Surveys & Tutorials, IEEE , vol.16, no.2, pp.856-876, Second Quarter 2014.
 +
**Min Chen; Jiafu Wan; Gonzalez, S.; Xiaofei Liao; Leung, V.C.M., "[http://dx.doi.org/10.1109/COMST.2014.2368999 A Survey of Recent Developments in Home M2M Networks]", in Communications Surveys & Tutorials, IEEE , vol.16, no.1, pp.98-114, First Quarter 2014.
 +
**Galli, S.; Scaglione, A.; Zhifang Wang, "[http://dx.doi.org/10.1109/JPROC.2011.2109670 For the Grid and Through the Grid: The Role of Power Line Communications in the Smart Grid]", in Proceedings of the IEEE , vol.99, no.6, pp.998-1027, June 2011.
  
*Chapter 5 - Marilyn Wolf
+
{{collapse bottom}}
*[[ESTE: UART - Interrupts and Circular Buffer | Lab 04: UART - Interrupts and Circular Buffer]]
 

Edição das 14h57min de 17 de novembro de 2015

Embedded Systems - 2015-2

Professor: Arliones Hoeller

  • Meetings: Tuesdays, 7:30 am and Fridays 9:40 am at Computing Networks I Lab.
  • Office hours
    • Tuesdays from 10:35 to 11:30
    • Thursdays from 14:25 to 15:20

Grades

Student Lab Reports Vision Specs Impl Intr Final
121000556-5
121003145-0
121001865-9
121000653-7
121003004-7
122002047-8
  • Evaluation Checkpoints:
    • Lab Reports: set of reports of lab experiments.
    • Vision: Build initial version of report containing the Product Vision Document.
    • Specs: Extend the report by adding system specification, analysis, and test plan.
    • Impl: Extend the report describing system implementation and the test results of the tests of initial modules (according to the test plan).
    • Intr: Finalize the report by adding the results of the integration of the modules and related tests.

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 - Deadline: Nov. 20th, 2015

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 - Deadline: Dec. 4th, 2015
Homework 03: Real-Time Operating System - Deadline: Dec. 22nd, 2015
Homework 04: Embedded Networks - Deadline: Feb. 5th, 2016
  • 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