The course introduces basics on hardware and software knowledge to understand embedded systems and microprocessors functioning. It covers the basics of interfacing, configuring, and programming embedded systems and communication protocols within the system and allows to acquire practices on software programming of microcontrollers and their hardware interfacing.
To acquire expertise in systems design, this course outlines the architecture and operation of microprocessors and microcontrollers, and introduces methodological and computer tools. It focuses on theoretical aspects (assembly programming, development tools, and co design methodology). An important practical part to implement the techniques learned in class will be done on a related course “Designing an embedded system”.
This course deals two different subjects: The first one deals with the architectures of microprocessors and specific feature of an embedded system. It introduces languages and needed techniques for programming of embedded systems (assembler, C language). The second one deals with communication protocols for interfacing an embedded system with external peripherals (USB, I2C, Bluetooth, ZigBee, Wi-Fi …).
Different programs are developed on an Arduino microcontroller and on NiosII (an embedded microcontroller on FPGA) to illustrate some applications such using I/O devices (LEDs, converter, USB connectors, XBEE module, sensors), with or without concurrent interruptions.