Course No.:2
Course (Category) Code |
Course Name |
Teaching Scheme (Hrs/week) |
Credits Assigned |
|||||||||||
L |
T |
P |
O |
E |
L |
T |
P |
Total |
||||||
MDM2 |
Foundations of Time Triggered architectures |
3 |
0 |
2 |
3 |
8 |
3 |
0 |
1 |
4 |
||||
Examination Scheme |
||||||||||||||
Component |
ISE (%) |
MSE (%) |
ESE (%) |
Total |
||||||||||
MDEC25 |
Theory |
20 |
20 |
60 |
100 |
|||||||||
Laboratory |
80 |
— |
20 |
100 |
||||||||||
Pre-requisite Course Codes, if any. |
Programming ARM : The bare metal way |
|
Course Objective: To develop the ability to create code that is safe and reliable by creating a simple scheduling mechanism |
||
Course Outcomes (CO): At the end of the course students will be able to |
||
MDEC25.1 |
Apply the idea of safe coding techniques in C programming language for designing mission critical applications |
|
MDEC25.2 |
Determine that the written ‘C’ code is modular in nature using ideas similar to OOP’s concepts. |
|
MDEC25.3 |
Understand the need for time triggered scheduling mechanisms by evaluating the need for such mechanisms |
|
MDEC25.4 |
Create a simple embedded OS and apply this scheduler for designing systems |
|
MDEC25.5 |
Understand how to make the code safe and reliable |
|
MDEC25.6 |
Analyze and fix timing issues in embedded ‘C’ code |
|
CO-PO Correlation Matrix (3-Strong, 2-Moderate, 1-Weak Correlation)
|
PO1 |
PO2 |
PO3 |
PO4 |
PO5 |
PO6 |
PO7 |
PO8 |
PO9 |
PO10 |
PO11 |
PO12 |
MDEC25.1 |
2 |
|
3 |
|
|
3 |
|
|
|
|
|
|
MDEC25.2 |
3 |
|
|
|
3 |
|
|
|
|
|
|
|
MDEC25.3 |
3 |
3 |
|
3 |
|
|
|
|
|
|
|
|
MDEC25.4 |
2 |
|
3 |
|
|
|
3 |
|
|
|
|
|
MDEC25.5 |
3 |
|
|
|
|
3 |
|
|
|
|
|
|
MDEC25.6 |
2 |
2 |
|
3 |
|
|
|
|
|
|
|
|
BLOOM’S Levels Targeted (Pl. Tick appropriate)
Remember |
Understand√ |
Apply√ |
Analyze√ |
Evaluate√ |
Create√ |
Theory Component
Module No. |
Unit No. |
Topics |
Ref. |
Hrs. |
1
|
Title |
Introduction and Overview of Embedded Systems |
1 |
04 |
1.1 |
What is an embedded system?, Embedded Systems metrics, Defining reliability and developing software for reliable embedded systems, Why use the C language for designing reliable systems, The super-loop software architecture, Reading and writing to the PORT pins of the microcontroller, Reading and writing data to the PORTS, Changing or Reading a single PORT bit ,Reading and writing a byte to the PORT, Strengths and weaknesses of software delays |
|||
1.2 |
Case study: Central heating controller |
|||
2 |
Title |
Hardware issues affecting reliability and CMSIS |
1 |
06 |
2.1 |
What is an Oscillator? ,Crystal oscillator stability issues, Improving oscillator stability to improve reliability ,Oscillator frequency and machine cycle period, What is CMSIS and some CMSIS functions related to clock and power saving, Driving DC loads and low power loads |
|||
2.2 |
Switch interface (Reliably reading a switch) Case study : Code for counting goats on a milking station with a switch sensor |
|||
3 |
Title |
Adding structure to your code and Real-time behavior |
1 |
06 |
3.1 |
Object Oriented programming with C, Creating file based classes in C without imposing significant memory or CPU load, Example code of O-O-C with project header, Common datatypes and creating user aliases, The purpose of the project header, The purpose of the PORT header, Creating the first structured C code, Restructuring the Goat counting example, The meaning of public, private, static, extern keywords and their implications on reliability of code. |
|||
3.2 |
Meeting real-time Constraints Software requirements while designing an embedded application for an automobile .What are real-time constraints? Implications of real-time systems. Understanding problems associated with the while statement when handling real-time systems. Creating hardware delays. Generating a precise 50ms delay. Creating a portable hardware delay. What is a timeout? The need for timeout. Creating loop timeouts. Testing loop timeouts. Analyzing loop timeouts in the performance analyzer. Using the timeout to make reliable switch interface. Creating hardware timeouts |
|||
4 |
Title |
Creating and using a simple Embedded Operating System |
1 |
10 |
4.1 |
Hard real time systems, The need for accurate timing, Understanding tasks, Communication between tasks, What are event triggered and time triggered interrupts, Comparison of the event triggered and time triggered system, How do we implement a time triggered design, SysTick timer based interrupt at the core of the OS. Using the SysTick interrupt routine, Introducing the simple embedded OS, Setting the tick interval, Saving power using software, Scalability of the simple embedded OS, Characterization of the simple embedded OS |
|||
4.2 |
Case study: Implementing animatronic dinosaur |
|||
5 |
Title |
RS232 |
1 |
12 |
5.1 |
Asynchronous data transmission and baud rates, Software architecture ,Why not to use printf, Strengths and weaknesses, Designing a software real-time clock using the simple embedded OS and sending data to terminal using the serial port |
|||
5.2 |
Case study: Intruder Alarm system |
|||
6 |
Title |
Watchdog timer |
1 |
04 |
6.1 |
What is a watchdog timer, Using a watchdog timer to make a system safe |
|||
7 |
Self-Study |
Material in the Online resources has to be read as told by the instructor for understanding the implementation details of the peripherals. |
Online resource-1 and 2 |
*42 |
Total(Does not include*) |
42 |
Laboratory Component.
Sr. No. |
Title of the Experiment |
1 |
Hello world |
2 |
Switch debounce |
3 |
Switch press count |
4 |
Reliable switch test |
5 |
Loop timeout |
6 |
Software PWM |
7 |
Software PWM multiple duty cycle |
8 |
SysTick implementation |
9 |
Timer delay |
10 |
Traffic lights |
11 |
Watchdog |
12 |
Real time clock with RS232 |
13 |
There are two coding exercises here related to port programming |
14 |
An early prototype of a control system for lowering an aircraft undercarriage |
Text Books
Sr. No |
Title |
Edition |
Authors |
Publisher |
Year |
1 |
Embedded C |
1st |
Michael J. Pont |
Pearson education |
2007 |
Reference Books
Sr. No. |
Title |
Edition |
Author |
Publisher |
Year |
1 |
The C programming Language |
2nd |
Dennis Ritchie and Brian Kernighan |
Pearson education |
2015 |
Online Resource:
1. https://developer.arm.com/documentation/dui0552/a/preface/about-this-book