Base Knowledge
Students must have basic knowledge of Digital Systems and Microprocessors, as well as to know how to develop simple programs in C language.
Teaching Methodologies
The curricular unit will be taught through theoretical classes and laboratory classes.
Theoretical classes are essentially expository of the syllabus, using audiovisual means,
with an interactive approach whenever possible.
Laboratory classes will be taught in a laboratory with equipment for developing embedded systems such as power supplies,
signal generators, oscilloscopes, computers, and other electronic components, in order to allow, after theoretical exposition,
to exemplify the subjects by carrying out practical application work.
Learning Results
The objective of this UC is to provide students with knowledge in programming electronic microsystems, commonly referred to as Embedded Systems.
It is intended that students recognize the concept of embedded microsystems in electronic equipment and familiarize themselves with the methodologies and techniques of their programming.
Students must:
– Use programming, compilation and debugging tools to develop electronic microsystem applications;
– Know and understand the operating principles and technologies used in electronic microsystems;
– Know and understand the communication and interface protocols of electronic microsystems;
– Understand the access mechanisms to sensors and actuators in electronic microsystems;
– Recognize, understand and use data from sensors, using analog/digital converters;
– Recognize communication protocols between microsystems and their interconnection with internet of things devices.
Program
Introduction to embedded systems programming:
– definition of the concept, opportunities and challenges;
Study of a microcontroller architecture:
– internal architecture of the processor, notion of registers, internal peripherals of the integrated circuit and notion of interrupts;
Development of applications for electronic microsystems without an operating system (bare metal):
– interaction with peripheral devices by state polling and interruption;
Software development for electronic microsystems:
– development tools and validation and testing methodologies;
Synchronous and asynchronous serial protocols: SPI, I2C, RS232;
Software implementation for electronic microsystems:
– layer model, state machine model, use of static libraries;
Introduction to software engineering tools.
Curricular Unit Teachers
Marco José da SilvaGrading Methods
Student approval is subject to cumulative fulfillment of the following requirements:
- Attendance and attendance requirements follow the Academic Regulations for Higher Professional Technical Courses (CTeSP) IPC, with special cases being considered;
- Exam access requires the student to have obtained a minimum grade in the laboratory component.
- Completion of two assessment tests (A), with equal weighting, one midway through and one at the end of the academic term, and/or an equivalent assessment exam in two parts.
In total 8 out of 20 values. These tests have a minimum grade of 40%;
- Laboratory component (B) – weighted 12 out of 20 values and with a minimum grade of 40%.
The laboratory component involves the preparation and execution of group and/or individual laboratory practical assignments and individual mini-tests in Moodle.
Mini-tests have no minimum score and worth 4 values, while assignments are worth 8 values.
The annotated code developed for each assignment must be submitted at the end of the assignment and may be subject to a defense.
Final Course Grade = A(0...8) + B(0...12)
Minor adjustments to the grading method may be made in consultation with the students.
Internship(s)
NAO
Bibliography
The teaching resources used in the UC will be available on ISEC’s Moodle:
– Slides of theoretical classes;
– Laboratory work statements;
– Links to online technical documentation relating to software development and of electronic components manufacturers in the embedded systems area.
Barr, M. (2018). Embedded C Coding Standard. Createspace Independent Publishing Platform, available online.