Embedded Systems

Gennaro PERCANNELLA Embedded Systems

0622700026
DEPARTMENT OF INFORMATION AND ELECTRICAL ENGINEERING AND APPLIED MATHEMATICS
EQF7
COMPUTER ENGINEERING
2024/2025



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2022
SPRING SEMESTER
CFUHOURSACTIVITY
648LESSONS
216EXERCISES
18LAB


Objectives
THE COURSE AIMS TO PROVIDE FUNDAMENTAL KNOWLEDGE FOR THE DESIGN AND DEVELOPMENT OF FIRMWARE FOR EMBEDDED SYSTEMS BASED ON ARM MICROCONTROLLERS AND FOR THE CREATION OF FIRMWARE BASED ON STATE MACHINES USING MODEL-BASED METHODOLOGIES.

THE COURSE COVERS DETAILS ON BOTH THE MAIN SOFTWARE ARCHITECTURES AND THE HARDWARE ARCHITECTURE OF ARM MICROCONTROLLERS, INCLUDING MEMORY ORGANIZATION, BUS SYSTEMS, GPIO STRUCTURE, MAIN PERIPHERALS, COMMUNICATION INTERFACES, AND SERIAL PROTOCOLS.

REGARDING INTERFACING WITH EXTERNAL PERIPHERALS AND SYSTEMS, THE COURSE INTRODUCES THE MOST COMMON SYNCHRONOUS AND ASYNCHRONOUS SERIAL INTERFACES AND PROTOCOLS.

THE COURSE, THEREFORE, PROVIDES AN OVERVIEW OF THE MAIN ENVIRONMENTS FOR MODELING AND VALIDATING EMBEDDED SOFTWARE USING MODEL-BASED APPROACHES.

KNOWLEDGE AND UNDERSTANDING:
ARCHITECTURES OF EMBEDDED SYSTEMS. STRUCTURE OF SOFTWARE FOR AN EMBEDDED SYSTEM. DESIGN AND DEVELOPMENT OF FIRMWARE WITH MODEL-BASED APPROACHES. KNOWLEDGE OF THE MAIN METHODS OF INTERFACING WITH DIGITAL SENSORS AND SERIAL INTERFACES, CONTROL OF DIGITAL ACTUATORS, AND CONTROL OF SERVO MOTORS.

APPLIED KNOWLEDGE AND UNDERSTANDING:
USE OF DEVELOPMENT ENVIRONMENTS FOR EMBEDDED SYSTEMS. DESIGN AND IMPLEMENTATION OF APPLICATIONS ON EMBEDDED SYSTEMS. MODELING FIRMWARE USING MODEL-BASED APPROACHES. COMMUNICATION WITH SENSORS BASED ON SERIAL INTERFACES. CONTROL OF SERVO MOTORS.
Prerequisites
FOR THE SUCCESSFULLY ATTENDING THE COURSE IT IS EXPECT THAT THE STUDENT HAS THE FOLLOWING BACKGROUND: KNOWLEDGE OF THE PROGRAMMING LANGUAGE C,
KNOWLEDGE OF THE MAIN SOFTWARE DESIGN AND IMPLEMENTATION APPROACHES, A BASIC KNOWLEDGE OF MATLAB AND SIMULINK,
A BASIC KNOWLEDGE OF PROCESSOR ARCHITECTURE AND MACHINE LANGUAGE,
Contents
UNIT 1 - INTRODUCTION TO EMBEDDED SYSTEMS
(LECTURE/PRACTICE/LAB HOURS 4/0/0)
1 (2 HOURS LECTURE): INTRODUCTION TO EMBEDDED SYSTEMS
2 (2 HOURS LECTURE): EMBEDDED SOFTWARE AND ARCHITECTURES

KNOWLEDGE AND UNDERSTANDING:
UNDERSTANDING THE BASIC CONCEPTS OF EMBEDDED SYSTEMS, MAIN SOFTWARE ARCHITECTURES, DEPENDABLE SYSTEMS, AND REAL-TIME SYSTEMS.

APPLIED KNOWLEDGE AND UNDERSTANDING:
DEFINE THE BASIC ARCHITECTURE OF EMBEDDED FIRMWARE.

UNIT 2 - INTRODUCTION TO THE PROTOTYPING ENVIRONMENT
(LECTURE/PRACTICE/LAB HOURS 6/0/14)
1 (2 HOURS LECTURE): INTRODUCTION TO ARM-M PROCESSORS
2 (2 HOURS LECTURE): INTRODUCTION TO PROGRAMMING ON ARM MICROCONTROLLERS
3 (2 HOURS LECTURE): INTERRUPTS AND HARDWARE TIMERS
4 (2 HOURS LAB): INTRODUCTION TO THE DEVELOPMENT ENVIRONMENT AND CONTROL OF A LED
5 (2 HOURS LAB): READING THE STATE OF A BUTTON
6 (2 HOURS LAB): HANDLING AN INTERRUPT RAISED FROM A BUTTON
7 (2 HOURS LAB): USING HARDWARE TIMERS TO GENERATE PERIODIC INTERRUPTS
8 (2 HOURS LAB): DEVELOPING A FSM-BASED FIRMWARE
9 (2 HOURS LAB): DEVELOPING A FSM-BASED FIRMWARE
10 (2 HOURS LAB): DEVELOPING A FSM-BASED FIRMWARE

KNOWLEDGE AND UNDERSTANDING:
KNOWLEDGE OF THE CHARACTERISTICS OF AN ARM MICROCONTROLLER. UNDERSTANDING FUNDAMENTAL ASPECTS OF PROGRAMMING AN ARM MICROCONTROLLER. UNDERSTANDING THE MAIN METHODS OF INTERFACING WITH BINARY SENSORS AND ACTUATORS (LEDS AND BUTTONS). UNDERSTANDING BASIC CONCEPTS FOR HANDLING HARDWARE INTERRUPTS AND GENERATING PERIODIC INTERRUPTS USING HARDWARE TIMERS.

APPLIED KNOWLEDGE AND UNDERSTANDING:
DESIGN AND DEVELOP SIMPLE FIRMWARE USING INFINITE LOOP AND EVENT-DRIVEN ARCHITECTURES (WITH INTERRUPTS). CONTROL BINARY ACTUATORS AND READ BINARY SENSORS THROUGH POLLING AND INTERRUPTS. CONFIGURE A HARDWARE TIMER TO GENERATE PERIODIC INTERRUPTS. DESIGN AND DEVELOP FIRMWARE BASED ON FINITE STATE MACHINES.

UNIT 3 - PROTOCOLS AND INTERFACES FOR SERIAL COMMUNICATION
(LECTURE/PRACTICE/LAB HOURS 6/0/14)
1 (2 HOURS LECTURE): INTRODUCTION TO SYNCHRONOUS AND ASYNCHRONOUS SERIAL COMMUNICATION. UART INTERFACE
2 (2 HOURS LECTURE): INTRODUCTION TO SYNCHRONOUS AND ASYNCHRONOUS SERIAL COMMUNICATION. UART INTERFACE
3 (2 HOURS LAB): PC/MICROCONTROLLER COMMUNICATION VIA UART
4 (2 HOURS LAB): DEVELOPING AN APPLICATION PROTOCOL BETWEEN TWO BOARDS USING UART
5 (2 HOURS LECTURE): SPI AND I2C
6 (2 HOURS LAB): SERIAL SENSOR DATASHEET
7 (2 HOURS LAB): INTERFACING WITH A SPI SENSOR
8 (2 HOURS LAB): INTERFACING WITH A SPI SENSOR
9 (2 HOURS LAB): INTERFACING WITH AN I2C SENSOR
10 (2 HOURS LAB): INTERFACING WITH AN I2C SENSOR

KNOWLEDGE AND UNDERSTANDING:
BASICS OF SYNCHRONOUS AND ASYNCHRONOUS SERIAL COMMUNICATION. USART INTERFACE. SPI AND I2C PROTOCOLS. INTERFACING WITH SENSORS EQUIPPED WITH I2C AND SPI INTERFACES.

APPLIED KNOWLEDGE AND UNDERSTANDING:
SERIAL COMMUNICATION USING USART. COMMUNICATION WITH SMART SENSORS VIA SPI AND I2C SERIAL PROTOCOLS.

UNIT 4 - ADVANCED TIMERS AND MOTORS
(LECTURE/PRACTICE/LAB HOURS 2/0/4)
1 (2 HOURS LECTURE): ADVANCED TIMERS AND PWM
2 (2 HOURS LAB): CONTROL OF AN LED VIA PWM
3 (2 HOURS LAB): CONTROL OF A SERVO MOTOR WITH PWM

KNOWLEDGE AND UNDERSTANDING:
KNOWLEDGE OF ADVANCED TIMERS ON ARM-M AND FUNCTIONALITIES TO GENERATE A PWM SIGNAL. PRINCIPLES OF OPERATION AND CONTROL OF A SERVO MOTOR.

APPLIED KNOWLEDGE AND UNDERSTANDING:
GENERATION OF A PWM SIGNAL THROUGH TIMERS. CONTROL OF LED INTENSITY WITH PWM. CONTROL OF A SERVO MOTOR.

UNIT 5 - MODEL-BASED DESIGN
(LECTURE/PRACTICE/LAB HOURS 4/0/10)
1 (2 HOURS LECTURE): MODEL-BASED DESIGN
2 (2 HOURS LECTURE): INTRODUCTION TO MATLAB STATEFLOW AND EMBEDDED CODER
3 (2 HOURS LAB): MODELING AN FSM WITH STATEFLOW
4 (2 HOURS LAB): MODELING AN FSM WITH STATEFLOW
5 (2 HOURS LAB): TESTING AND VALIDATION IN STATEFLOW
6 (2 HOURS LAB): PROGRAMMING THE BOARD USING EMBEDDED CODER AND STATEFLOW
7 (2 HOURS LAB): PROGRAMMING THE BOARD USING EMBEDDED CODER AND STATEFLOW

KNOWLEDGE AND UNDERSTANDING:
KNOWLEDGE AND UNDERSTANDING OF THE MAIN METHODOLOGIES FOR DESIGNING AND DEVELOPING FIRMWARE BASED ON FSM THROUGH MODEL-DRIVEN APPROACHES.

APPLIED KNOWLEDGE AND UNDERSTANDING:
KNOWLEDGE OF THE SIMULINK STATEFLOW ENVIRONMENT. DESIGN, DEVELOP, AND VALIDATE (THROUGH AUTOMATIC TESTING) AN FSM USING MODEL-DRIVEN APPROACHES. AUTOMATIC CODE GENERATION THROUGH THE MATLAB ENVIRONMENT.

UNIT 7 - PROJECT
(LECTURE/PRACTICE/LAB HOURS 0/0/8)
1 (8 HOURS LAB): SESSIONS DEDICATED TO THE FINAL PROJECT

KNOWLEDGE AND UNDERSTANDING:
UNDERSTANDING ISSUES RELATED TO THE DESIGN OF AN EMBEDDED SYSTEM THROUGH MODEL-DRIVEN APPROACHES.

APPLIED KNOWLEDGE AND UNDERSTANDING:
DESIGN, DEVELOP, AND VALIDATE FIRMWARE USING THE KNOWLEDGE ACQUIRED DURING THE COURSE.

(TOTAL LECTURE/PRACTICE/LAB HOURS 22/0/50)
Teaching Methods
THE COURSE CONSISTS OF FRONTAL LECTURES AND EXERCISES IN THE CLASSROOM AND IN THE LABORATORY. PART OF THE EXERCISE HOURS IS DEVOTED TO THE REALIZATION OF A TEAM PROJECT.
Verification of learning
THE JUDGEMENT OF THE STUDENT IS BASED ON EITHER THE REALIZATION OF TEAM PROJECT AND AN ORAL EXAM. THE JUDGEMENT WILL CONSIDER THE FOLLOWING POINTS:
KNOWLEDGE OF THE EMBEDDED SYSTEM ARCHITECTURES, THE MAIN HARDWARE COMPONENTS AND THE PROBLEMS IN REALIZING SOFTWARE FOR EMBEDDED SYSTEMS.
ABILITY TO DESIGN, DEVELOP AND TEST SOFTWARE FOR EMBEDDED SYSTEMS.
ABILITY TO WORK IN A TEAM TO REALIZE SOFTWARE FOR EMBEDDED SYSTEMS.
ABILITY TO DEFINE REQUIREMENTS, ARCHITECTURE AND DESIGN CHOICES TO REALIZE SOFTWARE FOR EMBEDDED SYSTEMS.
Texts
MASTERING STM32 - CARMINE NOVIELLO

SOFTWARE ENGINEERING - IAN SOMMERVILLE (10TH EDITION)

THE TEACHING MATERIAL IS AVAILABLE ON THE UNIVERSITY E-LEARNING PLATFORM (HTTP://ELEARNING.UNISA.IT) ACCESSIBLE TO STUDENTS USING THEIR OWN UNIVERSITY CREDENTIALS.
More Information
THE COURSE IS HELD IN ITALIAN
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2024-10-23]