2110682 Embedded and Real-Time Systems

Department of Computer Engineering
Faculty of Engineering, Chulalongkorn University


Course duration    : Jan-April 2019
Lecturer                : Prabhas Chongstitvatana, Prof.
                            office Eng build 4, Floor 18, room 13, tel 022186982,
                            email: prabhas at chula dot ac dot th
Lecture                : Sunday 13.00-16.00 at ENG4 Floor 17

The content of the course is a mixed between hardware and software.  Embedded systems are computer systems with special requirement on constraints such as low power, high integration, real-time. This course explores Embedded systems design. On the hardware side, it includes embedded processors and low level programming, logic design, integrated circuits.  On the software side, it includes Operating systems scheduling and real-time constraints.  Here are the list of topics:
 
Introduction to embedded and real-time systems
Microprocessor
Assembly level programming
Memory, Peripherals and Microprocessor interface
Operating systems and task scheduling
Real-time systems and their requirements
Internet of Things

How we learn

We learn by doing both hardware and software.  The activities include embedded system model construction, some programming, and hands-on session. The assignments will be given out periodically throughout the term. A small project will be given around midterm. Students must present the results of their projects.  At the second half of the semester, a real hardware will be presented.  Students are assigned to design and implement a small embedded system.  The project will be presented in the class. The final exam is "open book" and has an element of system design plus some "pseudo" programming.

old lecture 2018  2017

Announcement

28 Apr 2019   Final exam is a two hour written exam, open book. It is on Sunday 12 May, 1-3pm.  Final project presentation will be followed.

Timetable

January
Introduction    Embedded Processors   Embedded Systems Design
Microprocessors
IOT board (platform for interrupt programming)   demo-rz.txt
example of using IoT board (in Rz):  stopwatch
programming with interrupt   counting events
Assembly language S2 version 1: 32-bit processor  
example of writing assembly language:   find max

Rz language and its compiler
logic design  Basic Logic  
architecture:   Evolution of computer architecture
February
Operating systems and task scheduling  basic OS concepts
Multitask-OS (MOS)  (in assembly)  mos2.txt  (in Rz)  mos-rz.txt
lecture from Matt Welsh, Harvard,   semaphores.pdf
semaphore:  demo from William Stallings, U. of Queensland
implementing semaphores
Cooperative Processes
Cooperative Multitask OS (CMOS)
Project discussion
March
Project presentation
real-time systems RTOS      real-time scheduling
Embedded Systems Communication  
April
Embedded systems practice (Arduino Board)
memory, peripherals and interface  memory and interrupt i/o     peripherals
Actual hardware:  Arduino experiment
Internet of Things: Everything as a service
May
final exam
final project presentation

Homework

1)  Write a program for IoT board to function as Frequency meter.  Reading input from Analog port (10) and calculate the period between "crossing zero" of the wave.  Using that information to compute the frequency.

2) 

. . .

Assignment

Final project

Build and demonstrate an application of embedded system.  You need a "background" story, why your system is necessary, what it does and demonstrate a "prototype" of a working system. It needs not to be complicate. However, don't make a trivial system, for example, the one taken from the workbook. 

In the final presentation, you must give a 10 minutes talk about your system.  A short report (4-5 pages) is required to be submitted detailing your project.  The presentation includes a demonstration of your working system.

Topics (already discussed)
1. controlling a model car via wifi through a PC
2. a mixer music box
3. a rasberry pie board and an arduino board communicate via bluetooth
4. a water tank, water level controller
5. an auto-brightness control
6. a testbed of synchronus communication between a notebook and an arduino board.  the goal is to test speed vs error rate.

I think all projects sound exciting!  We are eager to see the demonstration.

Recommended Textbooks

1. Philip Koopman, Better Embedded System Software, Drumnadrochit Press, 2010, ISBN-10: 0-9844490-0-0.
2. Ball S, Embedded Microprocessor Systems: Real World Design 2nd edition, Newnes 2000
3. Vahid F, Givargis T, Embedded System Design: A Unified Hardware/Software Introduction, Wiley 2002
4. Kopetz H, Real-Time Systems: Design Principles for Distributed Embedded Applications, Kluwer 1997

Additional Materials

Transistor level simulation of an antique CPU.  6502 is used in the iconic Apple II machine.
    http://visual6502.org/JSSim/index.html  

Course Assessment

Assignments            10%
Mid project             30%
Final project           30%
Final exam              30%

Tools


IoT board:  Rz compiler, S21 assembler, simulator (with MOS and input):  iot-rz-19.zip 
s21 tools :    assembler and simulator  s21-3.zip
rz3.6.1 compiler with s21 assembler and simulator  rz361-2.zip
MOS in Rz  mos-rz2.txt   (update 25 Feb 2017)

Acknowledgement

Slides and presentations are kindly permitted by Setha Pan-gnam, Chalermek Intanagonwiwat

last update 28 April 2019