Salta al contenuto principale della pagina


CODE 80190
  • 4 cfu during the 2nd year of 10635 ROBOTICS ENGINEERING (LM-32) - GENOVA
  • 6 cfu during the 2nd year of 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
    LANGUAGE English
  • SEMESTER 1° Semester


    An embedded system is a computer-equipped electronic circuit designed to perform a specific, embedded function on a platform that manages control with different design constraints such as cost of production, size, and energy consumption. The course will provide the skills needed to design these systems, demonstrating how the same technologies can be used for the realization of modern electronic devices.



    What is an embedded system and what are its main characteristics. Introduction to the basic hardware needed for the realization of an embedded system. Architectures of processing systems. Specific architectures for embedded systems. Specific tools for developing code for embedded systems. Programming embedded systems. Communication protocols. Scheduling


    The active participation to the course lessons (theoretical lessons and lab activities) will allow the student to gain the following skills (for the 4 CFU course version):

    • To know what are embedded systems, which are their main architectures, and their main applications
    • To know how to program an embedded system based on a microcontroller
      • To know how to use the developer tools to compile and download the code
      • To know how to configure and program the main peripherals (digital I/O, timers, ADC, PWM, SPI, UART)
    • To have basic knowledge on how to design an embedded system
      • To be able to identify the main requisites in terms of resources (memory, I/O, communication bandwidth, computational power)
      • To be able to identify the peripherals needed for the specific application

    At the end of the 6 CFU course version, the student will gain the following additional skills:

    • To implement a binary or ascii serial protocol, allowing the microcontroller to interface with a PC
    • To use a scheduling mechanism within the firmware, allowing for a better software implementation


    C Programming knowledge is required to follow the course's lessons.


    The teaching modalities are as follows:

    • A few initial lessons to introduce embedded systems and their architectures
    • The following lessons are structured with an initial part where the new argument is presented and then a lab activity where the students work and implement the firmware on a dedicated development board (dsPIC based).

    Students are usually subdivided in about 8/10 groups of 3/4 people each and a continous assessment will be made on the developed exercises.

    Lessons attendance is mandatory.


    The content of the 4 CFU course is the following one:

    • What is an embedded system and what are its main characteristics
    • Introduction to the basic hardware needed for the realization of an embedded system
      • What is a PCB and what is an integrated circuit
      • Logic gates and combinatorial circuits
      • Latches, Flip flops and sequential circuits
    • Architectures of processing systems
      • Basic architecture of a PC
        • What is a communication BUS, the memory, the CPU and the control unit, what is a register and what is an ALU
      • Specific architectures for embedded systems
        • ASIC and ASSP
        • PLD, CPLD and FPGA
        • Microcontrollers and DSP
        • Differences between PC and embedded system architectures
    • Specific tools for developing code for embedded systems
    • Programming embedded systems
      • Peripherals programming
        • Digital I/O 
        • Oscillator configuration and timers usage
        • Sensor acquisition through analog-digital conversion (ADC)
        • Motor control through PWM signal generation 
      • Communication with other devices
        • SPI bus to communicate with another microcontroller
        • UART communication with a PC
      • Interrupt and event-based programming


    The 6 CFU course version covers these additional contents:

    • Communication protocols
      • ASCII communication protocols (NMEA like)
      • Binary communication protocols
      • Handling communication problems such as frame detection, error handling
    • Scheduling
      • Development of a simple function scheduling mechanism within the main program
      • Use of scheduling to simplify the project design



    Slides will be available through aulaweb. In general, notes taken during the module and the slides available on aulaweb will be sufficient to prepare the exam.

    The following books can be used for further reading on embedded systems:

    • Q. Li, C. Yao, Real-Time Concepts for Embedded Systems, CMP Books, 2003. (ISBN:1578201241).
    • D. E. Simon, An Embedded Software Primer, Addison-Wesley Professional, 1999. (ISBN: 020161569X).  
    • T Noergaard. 2013. A Comprehensive Guide for Engineers and Programmers, Embedded Systems Architecture (2 ed.). Newnes, Newton, MA, USA.
    • Peter Hintenaus. 2014. Engineering Embedded Systems: Physics, Programs, Circuits. Springer Publishing Company, Incorporated.


    Exam Board

    ENRICO SIMETTI (President)


    GIOVANNI INDIVERI (President Substitute)


    Class schedule

    All class schedules are posted on the EasyAcademy portal.



    Development of a project assigned at the end of the course. Discussion of the project and of the content covered during the lessons.


    At the end of the course, the student must be able to design and write the firmware of an embedded system in compliance with the technical specifications. The evaluation will be 30% on the continous assessment during the lessons and 70% on the final project.

    The following items will be part of the evaluation:

    • whether the firmware respects the given technical specifications
    • the student's ability to discuss the proposed software solution
    • the knowledge of the different peripherals
    • the possible problems that might be encountered in extending the project to an implementation on real system

    Exam schedule

    Date Time Location Type Notes
    25/01/2023 09:30 GENOVA Orale
    17/02/2023 09:30 GENOVA Orale
    13/06/2023 09:30 GENOVA Orale
    04/07/2023 09:30 GENOVA Orale
    06/09/2023 09:30 GENOVA Orale