University Course: Fundamentals of Embedded Systems

Based on:
David E. Simon's - "An Embedded Software Primer" and
Lisa K. Simone's - "If I Only Changed the Software, Why is the Phone on Fire?"

I developed the course (included below) from scratch for the graduate program in biomedical engineering at New Jersey Institute of Technology.

The course was based on the following materials:

Course Text: David Simon: An Embedded Software Primer
Course Suppliment Text: Lisa Simone: If I Only Changed the Software, Why is the Phone on Fire?
Hardware: Texas Instruments MSP430 Experimenters Board
Development Environment: IAR Embedded Workbench Kickstart

These materials were used to create a comprehensive hands-on program with ties to real-life embedded systems experiences.

An Embedded Software Primer: I selected Simon's book because it presents low-level embedded concepts in an easy-to-learn format appropriate for engineering students from different disciplines. It begins with the important hardware concepts, then segues to all the important topicslike timing diagrams, interrupts, buses and memory in a straightforward manner. It also includes testing and debugging information.

The book was well received by the students, who had had absolutely no idea what an embedded system was, even though we discovered together that they all owned tons of them.

If I Only Changed the Software, Why is the Phone on Fire?: I included my book to tighly couple the textbook lessons with appropriate real-life examples. Students learn programming and development but are not exposed to the very debugging techniques when problems arise in those very subsystems. After specific chapters in Simon's book, we discussed the relevant Phone on Fire mystery cement the lessons learned.

TI MSP430 Experimenter's board is a wonderful platform for students to learn more than the basics of embedded systems development. The board has two microprocessors, a touchpad, LCD display, audio chain, speaker, buzzer, several LEDs and pushbuttons, and sockets for a Zigbee antenna. Each student had their own board.

IAR Embedded Workbench Kickstart was provided for free (student version) with nearly all of the functionality available, even including performance profiling. And wonderfully, it runs without a hiccup on both PCs and Macs.

Classroom Environment: I created this course to be low level and hand's on, using NJIT's studio classroom concept. Small classes are held in rooms with a computer at every station, allowing close integration of lecture with lab and hands-on work.


Below is the complete syllabus, lectures, homeworks and references for the course.

If you would like to use this course at your university, please contact me for details at lisa (at) simoneconcepts.com.



Fundamentals of Embedded Systems

Taught at New Jersey Institute of Technology, 2007-2008


Course Information

Course:
Credits:


BME 698 Fundamentals of Embedded Systems
3 credits (3-0-3)


Professor:
Contact:
Websites:

Dr. Lisa Simone
lisa@simoneconcepts.com
Lisa Simone | NJIT | Phone on Fire

Class Documents | Class Schedule

Course Description

The advent of smaller and less expensive electronics has fostered the rapid deployment of medical devices for point-of-care, home diagnostics and wearable applications. This course is an introduction to embedded systems hardware and firmware design as applied to medical instrumentation, focusing on hands-on exercises in Studio format. Students use an Embedded Integrated Development Environment (IDE) for project management, code compilation, link and debugging. This hardware- and software-oriented course will use C language. C experience is not required, although an understanding of a structured language is strongly recommended.

Course Topics

  • Embedded systems and the design process in biomedical applications
  • Hardware fundamentals (gates, timing, memory, DMA, interrupts)
  • Microcontrollers and microprocessors
  • C language refresher
  • Hardware/firmware partitioning
  • Interrupts and the stack
  • Software architecture
  • Real time operating systems
  • Embedded software development tools
  • Testing and debugging techniques
  • Engineering and embedded systems ethics
  • Controlling and accessing hardware (digital I/O, analog-to-digital conversion).
  • Design performance considerations critical for embedded systems (code optimizations, real-time and latency, memory and power constraints).

Students are expected to read chapters before coming to class to understand the concepts being presented. Come prepared with questions.

The course is hands-on. Students are expected to demonstrate knowledge of the microprocessor development device and development environment individually. It is advised that you install the software on your laptop and bring that laptop to class each session, and work directly from your laptop. Studio computers are available during class, but not 24 hours.


Syllabus and Required Information

Grading

Assignments and guidelines for deliverables will be made available via email and the website throughout the term. You are responsible for monitoring your email for timely messages.

  • 40% - Labs, homework, quizzes, individual participation, attendance
  • 30% - Exams
  • 30% - Project
  • Quizzes are unannounced and may cover any information covered in class.
  • Exams cover all material covered in class.

Homework and Assignments

  • HW0 - Embedded Devices in Your Life
  • HW1 - Medical Device Hardware Components
  • HW2 - Software Signal Processing
  • HW3 - Understanding Timers
  • HW4 - Engineering Documentation: Block diagrams and engineering design documentation for proposed projects
  • Project proposal Guidelines.
  • Project HW1 - Project Overview and Functional Description
  • Sample of good project description and how it is different from technical specs: ReadMyHeart Handheld ECG-EKG Monitor
  • Project HW2 - Project Architecture and Design
  • Final Project Documentation template is here- 1 per TEAM.

Lectures and Class Documents

Assignment Related Information, Templates


Guidelines


Information about Design

Visit the Embedded Systems Design and Embedded Systems Programming Online Archive for a searchable library of relevant and useful embedded design information. This *free* magazine is one of the best in the field - sign up online for a copy.

Visit Jack Gannsle's Embedded Systems website - many short, great articles on different aspects of embedded systems, including what it's like to work in the field. Jack's articles are fun and easy to read.

Visit Dr. Simone's External Website on Embedded Systems for a variety of related topics, newsletters, stories, history, and links.


Week # Topics
1 - Introduction to Embedded Systems (Simon Ch 1)
- The design process, embedded systems
- MSP430 Overview
- Hardware Fundamentals (Simon Ch 2)
- HW0 - Embedded devices in your life.
2 - Software Fundamentals I
- IAR Embedded Workbench: In-class installation
- "MSP430FG4618/F2013 Experimenterís Board User's Guide" (slau213a-1.pdf) - Simon Ch 2 Problems
- Review "program shell" template for C programs
3 - Advanced Hardware Fundamentals (Simon Ch 3)
- IAR Embedded Workbench Configuration
4 - Experimenters Board Schematic Elements
- Lab 1: Flashing the LED, in class
5 - Software Fundamentals II
- Embedded Software Development Tools (Simon Ch 9)
- Understanding the MSP430x2013 Mix Signal Microcontroller - Simulate all SW Fundamentals II snippets
6 - Interrupts (Simon Ch 4)
- Timers
- Lab 2: Flashing LEDs II
- Simon Ch 4,9 problems
7 - In class - Lab 2.
- Discuss/propose project ideas
- Discuss Simone "Phone on Fire" Ch 1
8 - Exam 1 (All lectures, Simon Ch 1-4, Simone Ch 1-2).
- Discuss Simone "Phone on Fire" Ch 2
- Project teams formed
9 - Controlling Interrupt Frequencies
- Architecture (Simon Ch 5)
- Debugging Techniques (Simon Ch 10)
- Project Proposals Ideas
- Discuss Simone "Phone on Fire" Ch 3
- Simon Ch 5, 10
10 - In class project proposal work
- Discuss Simone "Phone on Fire" Ch 4
- Project HW1 and HW2 (team)
11 - Controlling and Accessing Hardware
- Lab 3 - Processing Analog Inputs
- In class Lab 3. Pictures here
12 - Accessing Hardware II: LCD Displays
- Serial Communication
13 - Special Topics (Simon Ch 8.6-8.7)
- In class exerise: Performance and Profiling
- Exam 2: Covering everything since Exam 1
- LCD display HW
14 - In class Project work
- Performance and Profiling HW
15 - In-class Project Demonstrations
- Project Write-ups due

© 2006-2008 Lisa Simone