Scheda programma d'esame
INDUSTRIAL APPLICATIONS
PIERFRANCESCO FOGLIA
Academic year2023/24
CourseCOMPUTER ENGINEERING
Code910II
Credits9
PeriodSemester 1
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
INDUSTRIAL APPLICATIONSING-INF/05LEZIONI90
PIERFRANCESCO FOGLIA unimap
COSIMO ANTONIO PRETE unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Lo studente avrà la capacità di analizzare e realizzare applicazioni in ambito embedded e industriale, con vincoli sulle risorse e sui tempi di esecuzione, considerando le infrastrutture hardware, le interfacce di programmazione ed i sistemi operativi Real Time. Sarà in grado di dimostrare la conoscenza dell'architettura delle applicazioni embedded/industriali e delle tecniche utilizzate per ottenerne la predicibilità; sarà consapevole delle problematiche relative a costi, consumi e standard.

Per mezzo di attività sperimentali, lo studente acquisirà competenze nell'innovazione di prodotto e di servizio in ambito industriale/embedded, arrivando fino alla realizzazione di prototipi dimostrativi.

Knowledge

The student will have the ability to realize applications in the embedded and industrial domains, with constraints on resources and execution time, by considering hardware infrastructure, programming interfaces and RTOSs; he/she will be able to demonstrate a knowledge of the architecture of embedded/industrial applications and of the techniques utilized to achieve predictability, of the hw and sw components utilized in such domain; he will be aware of issues related to cost, power consumption and standards.

By means of experimental activities, students will acquire skills in product and service innovation in the industrial/embedded field, going as far as the implementation of demonstrator prototypes.

Modalità di verifica delle conoscenze

Lo studente verrà valutato sulla base della capacità di discutere i principali contenuti del corso utilizzando la terminologia appropriata. Lo studente dovrà dimostrare la capacità di mettere in pratica ed eseguire, con consapevolezza critica, le attività illustrate e svolte dal docente durante il corso.

Modalità:

Esame orale finale
Dimostrazione pratica in laboratorio.

Assessment criteria of knowledge

- The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology. - The student must demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the course.

Methods:

  • Final oral exam
  • Final laboratory practical demonstration
Capacità

Lo studente sarà in grado di utilizzare microcontrollori avanzati, anche sfruttando l'interfaccia di programmazione offerta da sistemi operativi Real Time, e di analizzare e realizzare applicazioni che debbano soddisfare  vincoli temporali e di altro tipo.

Attraverso attività sperimentali, lo studente acquisirà inoltre competenze nell'innovazione di prodotto e di servizio in ambito industriale/embedded, arrivando fino alla realizzazione di prototipi dimostrativi.

Skills

The student will be able to utilize state of the art microcontrollers, also with the support of RTOS, and realize applications which satisfy timining and other constraints.    

By means of experimental activities, students will also acquire skills in product and service innovation in the industrial/embedded field, going as far as the implementation of demonstrator prototypes.

Modalità di verifica delle capacità

Le competenze saranno testate attraverso sezioni di laboratorio e la realizzazione di prototipi dimostrativi.

Assessment criteria of skills

Skills will be tested through LAB sections, and in the implementation of demonstrator prototypes.

Comportamenti

Lo studente svilupperà la consapevolezza dell'importanza dei requisiti non funzionali delle applicazioni industriali ed embedded e possiederà una serie di metodologie e tecniche per soddisfare tali requisiti.

Behaviors

The student will develop awareness towards the importance of non-functional requirements of industrial and embedded application, and will possess a set of methodologies and best practice to satisfy such requirements.

Modalità di verifica dei comportamenti

I comportamenti saranno verificati attraverso l'esame orale finale e la dimostrazione pratica finale in laboratorio.

Assessment criteria of behaviors

Behaviours will be tested through  the final oral exam and the final laboratory practical demonstration  

Prerequisiti (conoscenze iniziali)

Conoscenza dei linguaggi di programmazione, conoscenze dei sistemi operativi general purpose e dell'architettura del calcolatore.

Prerequisites

Knowledge of programming languages, general purpose operating system concepts, computer architecture.

Indicazioni metodologiche

Frequenza: Consigliata

Modalità di insegnamento:

Lezioni frontali
Attività di laboratorio

Guida nello sviluppo di progetti
Apprendimento basato su compiti/apprendimento basato su problemi/apprendimento basato su indagini


Attività di apprendimento:

partecipazione alle lezioni

sviluppo di un progetto e di un prototipo
preparazione di  relazioni scritte e loro presentazione
Attività di laboratorio
partecipazione a discussioni
lavoro di gruppo

Teaching methods

Delivery: face to face

Attendance: Advised

Teaching methods:

  • Lectures
  • Lab activities
  • Task-based learning/problem-based learning/inquiry-based learning
  • project work

Learning activities:

  • attending lectures
  • preparation of oral/written report
  • Lab activities
  • participation in discussions
  • group work
Programma (contenuti dell'insegnamento)

Il corso si propone di illustrare le tecnologie e le metodologie di progetto per la realizzazione di applicazioni embedded e industriali con vincoli su risorse e tempi di esecuzione. Gli studenti saranno in grado di progettare  applicazioni, considerando tecniche e metodologie per ottenere prevedibilità, le infrastrutture hw, l'utilizzo di sistemi operativi Real Time, e l'utilizzo di librerie sw di astrazione dell'hardware.

In una parte significativa del corso, attraverso attività sperimentali, gli studenti acquisiranno competenze nell'innovazione di prodotto e servizio in ambito industriale/embedded, arrivando fino alla realizzazione di prototipi dimostrativi.

La realizzazione dei prototipi sarà oggetto della valutazione finale.

Programma:

  • principali requisiti delle applicazioni embedded/industriali. Requisiti temporali, fattori che limitano la prevedibilità di un sistema
  • concetti di base: task, architettura di base di un'applicazione industriale, vincoli temporali, WCET, tecniche statiche e dinamiche per WCET, esempi di valutazione dei vincoli temporali per un'applicazione industriale, vincoli di precedenza e vincoli sulle risorse. Timing Anomalies.
  • Metodologie per ottenere la prevedibilità:
  1. Scheduling di Task aperiodici: algoritmi, ottimalità, Acceptance test, vincoli di risorse
  2. Scheduling di Task periodici: algoritmi, ottimalità, condizioni sufficienti, condizioni necessarie e sufficienti, Response Time Analysis, Processor Demand.
  3. vincoli delle risorse: il fenomeno dell'inversione delle priorità. Algoritmi per evitare l'inversione di priorità. Calcolo del tempo di blocco. 
  • Infrastrutture Hw e interfacce di programmazione:
  1. CPU per applicazioni industriali. Esemplificazione con la famiglia ARM Cortex. Microcontrollori
  2. Microcontrollori: ambienti di sviluppo, programmazione, strumenti di debug ed emulatori. Schede di sviluppo. Librerie di livello basso e di astrazione hardware.
  3. Microcontrollori: Gestione dei pin di I/O: polling e interrupt. Comunicazioni seriali e porta com virtuale. Modalità bloccante e non bloccante. API LCD e touchscreen. Implementazione di macchine a stati finiti. Programmazione di altri dispositivi di controllo.
  • Architettura sw e RTOS:
  1. Vantaggio dell'utilizzo di RTOS in applicazioni industriali e architetture sw. Esemplificazione con il sistema operativo FreeRTOS. Task States, algoritmi di schedulazione. API per la gestione dei task. File di configurazione. Timers e Signals. Implementazioni di task periodici, assegnazione delle priorità secondo legge rate monotonic, controlli per la rilevazione di deadline misses e gestione del sysstick overflow. Utilizzo dei segnali e OSdelay. Mutex e counting semaphore . Esempi di applicazione del protocollo di priority inhertance. Architettura di un'applicazione basata su task periodici e aperiodici.
  • Esempio di norme in ambito industriale.
  • Laboratorio sull'innovazione di prodotto e servizio in ambito industriale/embedded
Syllabus

The course aims to explain the technologies and the methodologies that characterize embedded and industrial applications with constraints on resources and execution time. Students will be able to design and realize applications, by considering techniques and methodologies to achieve predictability, hw infrastructures, use of RTOSs, use of hardware abstraction sw libraries.

In a significant part of the course, by means of experimental activities, students will acquire skills in product and service innovation in the industrial/embedded field, going as far as the implementation of demonstrator prototypes.

The implementation of prototypes will be the subject of the final assessment.

Syllabus:

  • main requirements of embedded/industrial applications. Timing requirements, factors limiting predictability of a system
  • basic concepts: tasks, basic architecture of an industrial application, timing constraints, WCET, static and dynamic techniques for WCET, examples of evaluation of timing constraints for an industrial application, precedence and resource constraints. Timing anomalies. 
  • Methodologies to achieve predictability:
    • aperiodic tasks: algorithms, optimality, admittance tests, resource constraints
    • periodic task: algorithms, optimality, sufficient conditions, necessary and sufficient conditions, response time analysis, processor demand.
    • resource constraints: the priority inversion phenomenon. Algorithms for avoiding priority inversion. Computation of blocking time. Stack sharing.
  • Hw infrastructures and programming interfaces:
    • CPUs for industrial applications. Exemplification with the ARM Cortex family. Microcontrollers
    • Microcontrollers: development environments, programming, debugging tools and emulators. Development boards. Low level and hardware abstraction layer libraries.
    • Microcontrollers: Management of I/O pins: polling and interrupts. Serial communications and virtual com port. Blocking and non-blocking mode. LCD and touchscreen APIs. Implementation of finite state machines. Programming of other controller devices.
  • Sw architecture and RTOS:
    • Advantage of using RTOSs in industrial applications and sw architectures. Exemplification with the FreeRTOS OS. Task states, scheduling algorithms. API for tasks management. Configuration file. Timers and signals. Implementations of periodic tasks, Rate Monotonic assignment of priorities, checks for deadline misses and management of systick overflow. Use of signals and OSdelay. Mutexes and counting semaphores. Examples of application of the priority inheritance protocol. Architecture of an  application based on periodic and aperiodic task.  
  • Example of standards in the industrial environment.
  • LABS on product and service innovation in the industrial/embedded field 
Bibliografia e materiale didattico

materiale fornito dal docente.

Libro di testo: G. Buttazzo: Hard Real-Time Computing Systems

Bibliography

material provided by the teacher

G. Buttazzo: Hard Real-Time Computing Systems

Updated: 20/10/2023 21:34