Sei sulla pagina 1di 5

Master Course Syllabus

School of Engineering and Computer Science


Washington State University Vancouver

CS 466
Embedded Systems
3 Semester Hours
(2 lecture hours, 3 laboratory hours)

Course Instructor
Ken Wade (adjunct faculty)
Office Hours: After class each class meeting
Phone:
E-Mail: ss124@comcast.net or ken.wade@comcast.net

Class Hours
Tuesday (lecture) 1745-1925 hours VELS 18
Thursday (lab) 1745-2015 hours VELS 101

Catalog Description
Design and development of real-time and dedicated software systems with
an introduction to sensors and actuators.
Prerequisite Courses
CS 360 – Systems Programming
Prerequisite Topics
o Proficiency with the C programming language
o Basic digital logic design
o Microprocessor systems and interfacing
o Operating systems concepts including concurrent programming,
process synchronization and memory management.
Measured Course Outcomes
Students taking this course will:
1. Choose an appropriate scheduling algorithm and use it to schedule
tasks in a real-time operating system, meeting the real time constraints
of the system (contributes to performance criterion E-1).
2. Use synchronization primitives to control communications between
tasks with different priorities in a real-time operating system
(contributes to performance criterion A-2).
3. Design, implement and debug an embedded or real-time software
program which controls external devices and interprets data from
external sensors (contributes to performance criterion E-2 and B-5).
Required Textbooks
David Simon, An Embedded Software Primer, Addison-Wesley, 1999,
ISBN 0-201-61569-X
Jean J. Labrosse, MicroC/OS-II - The Real-Time Kernel, R&D Books
(Miller Freeman), ISBN 0-87930-543-6
Reference Material
Embedded Systems Journal (various articles specified)

Grading

Homework 40%
Presentation 5%
Midterm 15%
Project 15%
Final 25%

Major Topics Covered in the Course


Review of microprocessor system architectures
Hardware architectures of embedded systems
Software architecture of embedded systems
Real-time operating systems (RTOS)
Networking in embedded systems
Real-time system specifications
Debugging real-time systems
Security & protection for embedded systems
Object-oriented design in RTOS
Advanced topics in embedded systems
Laboratory Projects
The students are required to implement embedded computer systems that
sample a variety of sensors and actuators, constructing hardware or
software interfaces to the sensors and actuators. Students also learn to
use logic analyzers and digital oscilloscopes.

Programming Project Area Weeks


Lab Project #1 Writing a finite state machine based firmware 1
task to overcome switch bounce based on
the article provided from the Embedded
System Journal article provided. Students
must understand tradeoffs of doing this
functionality in firmware or hardware.

Lab Project #2 Using the code developed in project #1,


bring up the MicroC/OSII RTOS system
on the Z-World processor and verify via
testing with the digital ocilliscope provided
that the task can correctly overcome switch
bounce in this RTOS environment.

Lab Project #3 The objective of this project is to blink one of


the LED’s on the Rabbit microprocessor
development board as fast as possible.
Extra credit is given for the fastest and
next fastest blink rates.

Lab Project #4 This is a difficult real world project to identify


a shared data/reentrancy problem.

Real queue code is presented and the


students are required to do whatever is
necessary to expose the defect. When
exposed, students are required to fix the
defect in 3 different ways and explain
tradeoffs.

This is difficult to show and students


will realize that real world data sharing
problems can be subtle and work “most”
of the time.

Lab Project #5 Students are introduced to permanent


magnet stepper motors and a Darlington
motor driver ASIC. Students are required
to wire up and then develop code to drive
two stepper motors CW or CCW at
various speeds. Students learn the
principles behind the system timer tic.

Lab Project #6 This project takes most of the rest of the


course. Students are required to control
two stepper motors from a Rabbit and
then coordinate two other stepper motors
from a similar Rabbit. Each Rabbit is
running the MicroC/OSII RTOS and the
student must determine how to
coordinate separate tasks across
processor boundaries as well as on the
same microprocessor. The task is to
move a small elevator up and down as
quickly as possible without gaining or
losing steps because the steppers are
open loop. Prizes (extra points) are
given to the winning teams.

Lab Project #7 A lab project in which students are


Introduced to logic analyzers both in
timing and state mode. The concept
of looking back into “negative time” is
stressed and the power of triggering is
thoroughly discussed.

Lab Project #8 Students are required to communicate


over a SPI bus to a temperature sensor.
This is a digital sensor so no A/D is
needed.

CSAB Category Content

FUNDAMENTAL ADVANCED FUNDAMENTAL ADVANCED

Computer
Data Organization
0 0 0 1
Structures and
Architecture
Algorithm
Concepts of
&
0 2 Programming 0 0
Software
Languages
Design
Oral and Written Communications
A single assignment is dedicated to an oral presentation. Students must
obtain pre-approval from the instructor of a topic of interest in embedded
systems. Student presents a PowerPoint based slide presentation of 10 to
20 minutes and must answer questions from the instructor and other
students. Students are graded on the presentation and their ability to
answer questions.
Social and Ethical Issues
This course contains no significant coverage of social and ethical issues.
Theoretical Content

This course contains no significant theoretical content.


Problem Analysis
For the programming projects, students determine requirements for the
programs in consultation with the instructor and must perform sufficient
analyses of the requirements to arrive at an effective program design.
Solution Design
Programming projects require the student to perform substantial design to
arrive an implementation that fulfils the functional requirements and is both
robust and well organized. Typically, the final programming project
consists of >500 lines of code, some of which may be assembly language.
CC2001
This course provides coverage of topics in the following areas (hours
listed are minimums):

OS4. Scheduling and dispatch [core] 3


OS9. Real-time and embedded systems [elective] 16
SE12. Specialized systems development [elective] 4

Course Coordinator: Dick Lang


Last Updated: January 3, 2009
Syllabus Version Number: 1.2

Potrebbero piacerti anche