EMBEDDED SYSTEMS
2° Anno - Secondo Semestre
Frequenza Non obbligatoria
- 9 CFU
- 72 ore
- INGLESE
- Sede di Trieste
- Obbligatoria
- Convenzionale
- Orale
- SSD ING-INF/01
Knowledge and understanding: knowledge of three different modern modalities of h/w, f/w and s/w electronic systems implementation, in particular with reference to digital electronic architectures, programmable digital electronics, and electronics for wireless networks. Applying knowledge and understanding: ability in programming different modern electronic systems, in particular with reference to the design of analog and digital electronic circuits, and the programming of FPGA-based devices with different levels of abstraction. Making judgments: capability of choosing technologies according to electronic system requirements. Communication skills: ability to describe the choices taken during project development. Learning skills: capability to extract useful information from scientific textbooks and reference manuals to design modern electronic systems.
Fundamentals in electronics and programming.
The course is composed by 2 parts (1: MCUs/CPUs bare metal and rtos; 2: electronic lab.) and is provided in the corresponding two versions, 6 ECTSs (1st part) and 9 ECTSs (all the 2 parts). First Part: MCUs/CPUs bare metal and rtos. This part aims at providing an introduction to microcontrollers (MCUs) and their IDEs for bare metal applications, and MCUs and CPUs with RTOS. Firstly, the HW organization of MCU and their main peripherals are presented. Several laboratory activities are envisioned, where some typical applications of embedded systems are developed, using, for what concerns the h/w, STM32 Nucleo, u-blox C030 and NXP FRDM-KL25Z boards, and, as IDEs, STM32CubeIDE, Keil uVision and VS Code. Then, the use of MCUs and CPUs for embedded applications using an RTOS is introduced. In particular, OS's such as FreeRTOS and Embedded Linux are presented, considering aspects such as base level programming (host-target, bootloader, kernel, device driver and fs, boot, toolchain for crosscompilation, boot from scratch and access to peripherals) and user space programming (git for versioning, cmake, access to some peripherals, graphics, debugging); typical applications are developed on STM32 Nucleo and/or BeagleBone boards. Second Part: High speed PCB design and instrumentation control. This part focuses on some fundamental aspects of development and control of electronic instrumentation. Firstly, the main techniques of high speed PCB design are described and some emblematic cases are addressed. Professionals in the sector teach, starting from the electronic scheme, which are the steps to get to the files necessary to produce a PCB. Professional software is used and at the end of this section the students will have all the skills to design multi-layer PCBs, in particular focusing on high speed and RF circuits. Then, the theme of instrumentation control, data acquisition and data processing is considered. Students are given the basics of the most used language for the management of scientific instrumentation, and a level will be reached for which they will be able to control and acquire data from various instruments through the main communication methods.
For parts 1: S. L. Harris, S. M. Harris, Digital design and computer architecture, ARM Edition, Elsevier, 2016; D. A. Patterson, J. L. Hennessy, Computer Organization and design, The hardware/software interface, ARM Edition, Elsevier, 2017. For part 2: Rodríguez-Quiñonez, Oscar Real-Moreno, Graphical Programming Using LabVIEW™ - Fundamentals and advanced techniques; Jeffrey_Kring, Jim, LabVIEW™ for Everyone - Graphical Programming Made Easy and Fun. Documentation is available on the teacher web site.
The course is composed by 2 parts (1: MCUs/CPUs bare metal and rtos; 2: electronic lab.) and is provided in the corresponding two versions, 6 ECTSs (1st part) and 9 ECTSs (all the 2 parts). First Part: MCUs/CPUs bare metal and rtos. This part aims at providing an introduction to microcontrollers (MCUs) and their IDEs for bare metal applications, and MCUs and CPUs with RTOS. Firstly, the HW organization of MCU and their main peripherals are presented. Several laboratory activities are envisioned, where some typical applications of embedded systems are developed, using, for what concerns the h/w, STM32 Nucleo, u-blox C030 and NXP FRDM-KL25Z boards, and, as IDEs, STM32CubeIDE, Keil uVision and VS Code. Then, the use of MCUs and CPUs for embedded applications using an RTOS is introduced. In particular, OS's such as FreeRTOS and Embedded Linux are presented, considering aspects such as base level programming (host-target, bootloader, kernel, device driver and fs, boot, toolchain for crosscompilation, boot from scratch and access to peripherals) and user space programming (git for versioning, cmake, access to some peripherals, graphics, debugging); typical applications are developed on STM32 Nucleo and/or BeagleBone boards. Second Part: High speed PCB design and instrumentation control. This part focuses on some fundamental aspects of development and control of electronic instrumentation. Firstly, the main techniques of high speed PCB design are described and some emblematic cases are addressed. Professionals in the sector teach, starting from the electronic scheme, which are the steps to get to the files necessary to produce a PCB. Professional software is used and at the end of this section the students will have all the skills to design multi-layer PCBs, in particular focusing on high speed and RF circuits. Then, the theme of instrumentation control, data acquisition and data processing is considered. Students are given the basics of the most used language for the management of scientific instrumentation, and a level will be reached for which they will be able to control and acquire data from various instruments through the main communication methods.
Theory: classroom teaching with slides at the University and c/o the Trieste synchrotron radiation facility Elettra; exercises and lab activities: in classroom and in the labs both at the University and c/o Elettra.
The teaching material, including exercises and problems, is made available to students through the Moodle platform and the teacher web site.
Any arrangements for distance learning will be made in accordance with the guidelines laid down by the University.
The exam aims at verifying that the student is confident with MCUs, CPUs and, for the 9 ECTS version, advanced instrumentation for research. For the first part, the exam consists in one project (the student can choose between bare metal and rtos) and an oral/practical examination. For the second part, the exam consists in two practical exercises (4 hours: a practical exercise with Altium (2 hours) and a practical exercise with LabView (2 hours)), no oral examination. Examinees who answer all questions with full marks and demonstrate a brilliant critical knowledge of the course material will be awarded the laude. Further information can be found on the web site of the teacher. In any type of content produced by the student for admission to or participation in an exam (projects, reports, exercises, tests), the use of Large Language Model tools (such as ChatGPT and the like) must be explicitly declared. This requirement must be met even in the case of partial use. Regardless of the method of assessment, the teacher reserves the right to further investigate the student's actual contribution with an oral exam for any type of content produced.
Questo insegnamento approfondisce argomenti strettamente connessi a uno o più obiettivi dell’Agenda 2030 per lo Sviluppo Sostenibile delle Nazioni Unite