CODE 80190 ACADEMIC YEAR 2023/2024 CREDITS 4 cfu anno 2 ROBOTICS ENGINEERING 10635 (LM-32) - GENOVA 6 cfu anno 2 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA 6 cfu anno 1 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA 5 cfu anno 1 ROBOTICS ENGINEERING 10635 (LM-32) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/04 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° Semester SECTIONING Questo insegnamento è diviso nelle seguenti frazioni: A B TEACHING MATERIALS AULAWEB OVERVIEW 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. AIMS AND CONTENT LEARNING OUTCOMES 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 AIMS AND LEARNING OUTCOMES 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 5 CFU course version, the student will gain the following additional skills: To use a scheduling mechanism within the firmware, allowing for a better software implementation 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 The student will also have acquired: Advanced functional literacy competence Advanced personal competence Advanced social competence Proficiency in advanced project creation Competence in basic project management PREREQUISITES C Programming knowledge is required to follow the course's lessons. TEACHING METHODS 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 development of the final project (project-based learning) will enable the student to work on the skills advanced functional literacy competence advanced personal competence advanced social competence in advanced project creation in basic project management Working students and students with certified DSA, disability or other special educational needs are advised to contact the lecturer at the beginning of the course to agree on teaching and examination arrangements that, while respecting the teaching objectives, take into account individual learning patterns. SYLLABUS/CONTENT 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 5 CFU course version covers these additional contents: Scheduling Development of a simple function scheduling mechanism within the main program Use of scheduling to simplify the project design 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 RECOMMENDED READING/BIBLIOGRAPHY 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. TEACHERS AND EXAM BOARD ENRICO SIMETTI Ricevimento: By appointment, at the Department of Informatics, Bioengineering, Robotics, and Systems Engineering (DIBRIS), via all'Opera Pia 13, 16145, second floor of building "Pino Casalino" (Pavillion E), or online using Microsoft Teams. Exam Board ENRICO SIMETTI (President) FRANCESCO WANDERLINGH GIOVANNI INDIVERI (President Substitute) LESSONS LESSONS START https://courses.unige.it/11160/p/students-timetable Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION Development of a project assigned at the end of the course. Discussion of the project and of the content covered during the lessons. ASSESSMENT METHODS 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 continuous 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 implementation on a real system Exam schedule Data appello Orario Luogo Degree type Note 19/01/2024 09:30 GENOVA Orale 08/02/2024 09:30 GENOVA Orale 30/05/2024 09:30 GENOVA Orale 04/07/2024 09:30 GENOVA Orale 04/09/2024 09:30 GENOVA Orale