• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Master 2019/2020

Embedded Hardware and Operating Systems

Area of studies: Infocommunication Technologies and Systems
When: 1 year, 3 module
Mode of studies: distance learning
Instructors: Ilya Ivanov
Master’s programme: Internet of Things and Cyber-physical Systems
Language: English
ECTS credits: 4
Contact hours: 2

Course Syllabus

Abstract

We have 4 modules, each with a graded quiz in the end and finally we have one peer reviewed programming assignment The course is actually quite fun at the end when you are playing around with Cooja simulation for IoTs applications. So you can create and simulate your own design for sensor network applications. A lot of features and examples of Contiki and Cooja can be explored via assignments. There are some optional assignments of wireless sensor network applications for students who want to explore more about embedded OS in IoTs applications. https://www.coursera.org/learn/embedded-operating-system
Learning Objectives

Learning Objectives

  • This course is intended for the Master's students, who like practical programming and making IoTs applications! In this course we will talk about two components of a cyber physical system, namely hardware and operating systems. After completing this course, you will have the knowledge of both hardware components and operating systems. You are able to plan and use embedded operating systems in resource-constraint devices for Internet-of-Things (cyber physical system) applications. In addition, you can use Cooja simulation for designing and simulating wireless sensor network applications.
Expected Learning Outcomes

Expected Learning Outcomes

  • • Introduction to Embedded Systems • Design characteristics and challenges • Input/Output devices • Wire communication, ADC/DAC • Sensors, actuators, interrupts vs. polling • Build your own input/output system with the Arduino! • Build your own ADC using Arduino! • Learn how to use serial communication using the Arduino! • Create a timer for polling using the Arduino!
  • • Embedded processors and FPGAs • Main features of embedded processors • Use-cases of micro-controller platforms • Reconfigurable platforms, FPGAs • Embedded processors vs. FPGAs • Practical list of comparison of MCU vs FPGA • A comparison between MCU, FPGA, DSP, ASIC from Atmel
  • • Embedded operating systems • Linux kernel functions and advantages • The microkerne • The modular kerne • Introduction to Contiki • Introduction to TinyOS • Introduction to RIOT OS • In depth reading of the QNX microkernel • The case for using Contiki in sensor networks • TinyOS github & Documentation • RiotOS for IoT
  • • Contiki and Cooja simulation • The Contiki system • Contiki's kernel architecture • Contiki services and libraries • Communication in Contiki • Protothread, multithreading and code sizes • Cooja simulation • Get started with Cooja: Step-by-step
Course Contents

Course Contents

  • Module 1: Introduction to Embedded Hardware
    This week will start from the basic information about Embedded Systems. Specifically, you will learn what are embedded systems and where they are applied as well as the main char-acteristics and challenges of embedded systems. You will discover how embedded systems communicate with the outer world.
  • Module 2: Processing Elements of an Embedded System
    This week we will go into details of what embedded systems consist of. Specifically you learn about the main blocks of any processing element of embedded systems. We will show you what embedded processors consists of and its main features. You will learn what reconfigurable architectures and FPGAs are, and what kind of ready-made platforms you can use to start work-ing with processing elements
  • Module 3: Overview of operating systems and embedded operating systems
    In this week, we start with an overview of operating systems and embedded operating sys-tems for IoT. Primary functionalities of embedded operating systems are discussed. We learn how operating systems work: how memory is managed, how tasks are scheduled, what interrupts are and how they are handled. After this, we deepen our learning with the popular kernels for general and embedded operating systems. Linux (monolithic) kernel, micro kernel and modular kernel are presented. In addition, several popular embedded operating systems for IoT are pre-sented. Concretely, after attending this week, you will able to explain why embedded systems often require an operating system describe how an embedded operating system works such as how memory is managed, how tasks are scheduled and how interrupts are handled. You will be able to differentiate between popular kernels for embedded operating systems. Differentiate be-tween popular embedded operating systems for IoT.
  • Module 4: Contiki OS and Cooja simulation
    In this week, we start to explore the Contiki Os in detail. First we discuss about the Conti-ki system and its kernel architecture. Furthermore, we explore how loadable programs are actu-ally implemented in Contiki. Second, we go through services and libraries in Contiki to see how they are built and when they can be invoked. Third, we discuss communication in Contiki via details of uIp and Rime communication stacks in Contiki. Next, prototheads are discussed to describe how application code is processed in Contiki. Furthermore, APIs of multi-threading is discussed. Last but not least, the Cooja simulator - a simulator for wireless sensor networks based on Contiki is introduced. All steps of installing and applying Cooja for a wireless sensor network applications are presented in detailed via an example application. Concretely, after at-tending this week, you will able to describe how Contiki system and its kernel architecture are built. Distinguish Contiki services and libraries in terms of how they are built, when they are invoked and why they are used. Describe how communication is implemented and supported in Contiki and what protocols Contiki can support. Explore how application's code is processed in Contiki and important functions of API for multithreading in Contiki use Cooja for simulating wireless sensor networks applications.
Assessment Elements

Assessment Elements

  • non-blocking Курс онлайн
    % онлайн курса * 0.1
  • non-blocking Экзамен
    Экзамен проводится в устной форме (опрос по материалам курса). Экзамен проводится на платформе Jitsi (http://meet.miem.hse.ru/). К экзамену необходимо подключиться согласно расписанию ответов, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка Jitsi. Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи менее минуты. Долговременным нарушением связи во время экзамена считается нарушение минута и более. При долговременном нарушении связи студент не может продолжить участие в экзамене. Процедура пересдачи подразумевает использование усложненных заданий. В ходе освоения дисциплины формируются следующие компетенции: УК-1, УК-6, УК-7, УК-8, ОПК-3, ПК-21
Interim Assessment

Interim Assessment

  • Interim assessment (3 module)
    0.5 * Курс онлайн + 0.5 * Экзамен
Bibliography

Bibliography

Recommended Core Bibliography

  • Elk, K. (2019). Embedded Software for the IoT (Vol. Third edition). Boston: De|G Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1975740
  • Современные операционные системы : учеб. пособие, Назаров, С. В., 2010
  • Хамблен Д.О. - Введение во встроенные системы и Windows Embedded CE - Национальный Открытый Университет "ИНТУИТ" - 2016 - 433с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100721

Recommended Additional Bibliography

  • Ball, S. R. (2004). Analog Interfacing to Embedded Microprocessor Systems (Vol. 2nd ed). Amsterdam: Newnes. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=187245
  • Molloy, D. (2016). Exploring Raspberry Pi : Interfacing to the Real World with Embedded Linux. Indianapolis, IN: Wiley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1250212
  • Белевский П.В. - Windows Embedded CE 6.0 R2. Практическое руководство - Издательство "ДМК Пресс" - 2010 - 336с. - ISBN: 978-5-94074-571-6 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1201
  • Микроконтроллеры. Разработка встраиваемых приложений : учеб. пособие для вузов, Васильев, А. Е., 2008