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
(Limpou toda a página)
Etiqueta: anulando
 
(33 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Embedded Systems =
 
  
*'''Professor:''' [[Arliones Hoeller]]
 
*'''Meetings:''' Tuesdays, 13:30 and Fridays 15:40 at Programming Lab.
 
*'''[https://groups.google.com/forum/?hl=pt-BR#!forum/ste29008 Mailing list]'''
 
 
*[[STE-EngTel_(Plano_de_Ensino)| Course Plan (Portuguese only)]]
 
*[[Cronograma de atividades (STE-EngTel) | Class Schedule (Portuguese only)]]
 
 
=Grades=
 
<!--
 
{| class="wikitable"
 
!scope="col"| Student
 
!scope="col"| HW1
 
!scope="col"| HW2
 
!scope="col"| HW3
 
!scope="col"| HW4
 
!scope="col"| Project
 
!scope="col"| Final
 
|-
 
| 121000556-5 || A || A || X || A || A || A
 
|-
 
| 121003145-0 || A || B || X || A || B || A
 
|-
 
| 121001865-9 || B || B || X || A || A || A
 
|-
 
| 121000653-7 || B || C || X || A || A || A
 
|-
 
| 121003004-7 || A || B || X || A || B || A
 
|-
 
| 122002047-8 || A || B || X || A || A || A
 
|}
 
-->
 
 
<!--
 
 
{| class="wikitable"
 
!scope="col"| Student
 
!scope="col"| Lab Reports
 
!scope="col"| Vision
 
!scope="col"| Specs
 
!scope="col"| Impl
 
!scope="col"| Intr
 
!scope="col"| 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 [https://en.wikipedia.org/wiki/Vision_document 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 [[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/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf here].
 
 
 
== Primary Evaluation ==
 
 
{| class="wikitable"
 
!scope="col"| Homework
 
!scope="col"| Deadline
 
|-
 
| Homework 1-3 || May 13th, 2016
 
|-
 
| Homework 4-5 || June 10th, 2016
 
|-
 
| Final Project Design || June 24th, 2016
 
|-
 
| Final Project Implementation || July 22nd, 2016
 
|}
 
 
== Homework ==
 
 
{| class="wikitable"
 
!scope="col"| Homework
 
!scope="col"| Links
 
!scope="col"| Deadline
 
|-
 
| 1. Led Blinking || [[ESTE: General Purpose Input and Output (GPIO)]] || April 15th, 2016
 
|-
 
| 2. Light Keyboard || [[ESTE: GPIO and External Interrupts - part 1]], [[ESTE: GPIO and External Interrupts - part 2]] || April 15th, 2016
 
|-
 
| 3. Light Keyboard the Hard Way || [[ESTE: Light Keyboard from Scrach using GNU GCC and Binutils]]  || April 29th, 2016
 
|-
 
| 4. ADC and Sensors || [[ESTE: Analog-to-Digital Converter (ADC) and Sensor Reading]], [[ESTE: Analog Temperature Sensor 2 (NTC - Negative Temperature Coeficient)]]  || June 3rd, 2016
 
|-
 
| 5. Timer and PWM || [[ESTE: Pulse Width Modulation (PWM)]]  || June 10th, 2016
 
|}
 
 
= 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 ===
 
*[http://www.lisha.ufsc.br/teaching/esl/io.pdf I/O Basics]
 
*[[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 2 | Lab 03: More GPIO Interrupts]]
 
 
=== Serial Communication ===
 
*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]]
 
*[[ESTE: Analog Temperature Sensor 2 (NTC - Negative Temperature Coeficient) | Lab 07: NTC - Negative Temperature Coeficient]]
 
 
=== 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 08: Pulse Width Modulation (PWM)]];
 
 
{{collapse bottom}}
 
{{collapse top| bg=lightyellow | expandir=true | Unit 02 - Get Right: Introduction to Real-Time Systems}}
 
 
== Unit 02 - Get Right: Introduction to Real-Time Systems ==
 
 
=== 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]
 
 
=== Real-Time Scheduling ===
 
*Read chapter 12 of [http://leeseshia.org/ Lee and Seshia, Introduction to Embedded Systems]
 
*Read chapter 6 (sections 5-12) of [http://www.marilynwolf.us/CaC3e/ Wolf, Computers as Components]
 
*Lab 08: Real-Time Operationg System
 
 
{{collapse bottom}}
 
{{collapse top| bg=lightyellow | expandir=true | Unit 03 - Get Out: Networked Embedded Systems}}
 
 
== Unit 03 - Get Out: Networked Embedded Systems ==
 
 
=== 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}}
 
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.
 
 
 
{{collapse bottom}}
 
 
{{collapse top| bg=lightyellow | expandir=true | Homework 02: Analog and Digital Interchanges}}
 
 
For this homework, each student must:
 
#Execute [[ESTE: Analog-to-Digital Converter (ADC) and Sensor Reading | Lab 06: Analog-to-Digital Converters]].
 
#Execute [[ESTE: Analog Temperature Sensor 2 (NTC - Negative Temperature Coeficient) | Lab 07: NTC - Negative Temperature Coeficient]].
 
#Implement and calibrate a digital thermometer using the NTC 10KOhm Thermistor using an application with the following characteristics:
 
##Use the Round-Robin With Interrupts architecture (suggestion: model it using a state-machine);
 
##Use an ADC buffer to store ADC conversions;
 
##Implement the Steinhart-Hart model for the Thermistor reading and calibrate it;
 
##Implement the Beta model for the Thermistor reading and calibrate it;
 
#Compare the precision of both models and write a report containing:
 
##Introduction (describe the problem being studied)
 
##Analytical models (equations and graphs)
 
##Experimental Setup (Material and Methods)
 
##Results (experimental graphs)
 
##Discussion
 
 
[http://docente.ifsc.edu.br/arliones.hoeller/templates/lab_report-short.zip This template] can be used to build the report.
 
 
{{collapse bottom}}
 
 
{{collapse top| bg=lightyellow | expandir=true | Homework 03: Real-Time Operating System}}
 
 
{{collapse bottom}}
 
 
{{collapse top| bg=lightyellow | expandir=true | 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
 
 
*Papers:
 
**Group 1: Thiago Werner e Elton Broering
 
***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.
 
**Group 2: Jean Sant'Ana e Danilo Bedaque
 
***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.
 
**Group 3: Thiago Bonotto e Tiago Teixeira
 
***Khazali, I.; Boulais, M.; Cole, P., "[http://dx.doi.org/10.1109/DASC.2009.5347574 AFDX software network stack implementation — Practical lessons learned]", in Digital Avionics Systems Conference, 2009. DASC '09. IEEE/AIAA 28th , vol., no., pp.1.B.5-1-1.B.5-10, 23-29 Oct. 2009.
 
***Kemayo, G.; Benammar, N.; Ridouard, F.; Bauer, H.; Richard, P., "[http://dx.doi.org/10.1109/ETFA.2015.7301463 Improving AFDX end-to-end delays analysis]", in Emerging Technologies & Factory Automation (ETFA), 2015 IEEE 20th Conference on , vol., no., pp.1-8, 8-11 Sept. 2015.
 
 
{{collapse bottom}}
 
-->
 

Edição atual tal como às 22h50min de 3 de março de 2020