Embedded Systems Courses at RIT
Roy S. Czernikowski
Department of Computer Engineering
Kate Gleason College of Engineering
Rochester Institute of Technology
and
James R. Vallino
Department of Software Engineering
B Thomas Golisano College of
Computing and Information Sciences
Rochester Institute of Technology
Motivation
• Real-Time and Embedded Systems (RT&E Systems)
straddle and intertwine hardware and software
issues.
• Computer engineering students tend to have the
hardware and computer architecture aspects in
focus but often lack more sophisticated software
methodologies for RT&E Systems.
• Software engineering students have many general
purpose software methodologies at their fingertips
but often lack the hardware background and
appreciation for the special software considerations
for successful development of RT&E systems.
• Wanted to increase interest and employment in
RT&E systems.
RIT’s Approach to RT&E
• Develop a laboratory and a set of three
academic quarter courses to partner
computer engineering and software
engineering students addressing RT&E
Systems.
• Use a studio lecture-lab format having
one computer engineering student and
one software engineering student at each
of the twelve student workstations.
• Course contents and laboratory jointly
developed by a faculty member from
computer engineering and a faculty
member from software engineering.
Course Titles
• Real-Time and Embedded Systems
(offered four times to date)
• Modeling of Real-Time Systems
(offered twice to date)
• Performance Engineering of Real-Time
and Embedded Systems
(offered the first time this spring)
Real-Time & Embedded Systems Course
• Course Topics
–
–
–
–
–
–
–
–
–
–
–
Introduction to Real-Time and Embedded Systems
Microcontrollers
Software Architectures for Real-Time Operating Systems
Requirements and Design Specifications
Decision Tables and Finite State Machines
Scheduling in Real-Time Systems
Programming for a commercial real-time operating system
Development for Embedded Target Systems
Language Support for Real-Time
Real-Time and Embedded Systems Taxonomy
Safety-Critical Systems
Studio Laboratory Equipment
Microcontroller and Binary I/O
Software
• Wind River VxWorks Consumer Devices
platform
• Tornado development environment
• MGTEK 68HC12 Assembler IDE
• Net Support classroom management software
Course Projects
• Microcontroller Programming
– interval timer – used as a tool for 3rd project
• R-T Operating System multi-tasking primitives
– Using VxWorks, learn how to program its concurrency and
synchronization primitives in a transit system simulation or
automated factory
• R-T Operating System performance measurements
– measure jitter of VxWorks software generated pulses (using
microcontroller)
– measure VxWorks’ interrupt response time
• Student designed projects
– e.g. ultrasound distance measurements, target system’s I/O
device characterizations.
Modeling of Real-Time Systems Course
• Course Topics
–
–
–
–
–
–
–
–
–
Introduction to Modeling of Real-Time Systems
Basic Concepts of Real-Time Systems
Basic Concepts of Safety-Critical Systems
Use case analysis for real-time systems
Structural object analysis for real-time systems
Behavioral Analysis using statecharts
Design patterns for real-time and safety-critical systems
Threading and Schedulability
Real-Time Frameworks
Software
• ILogix Rhapsody UML design tool
• Microsoft Visual Studio C++; Gnu C++ tools
Course Projects
• Requirements and Architectural Design
– Create requirements for a consumer device, e.g. DVR,
blood-pressure monitor
• Design and Implementation
– Object structure, statechart design and implementation for a
real-time system, e.g. water chiller control system, fourfunction calculator
• Code Generation
– Automated code generation via Rhapsody of embedded
device, e.g. four-function calculator, garage door opener
• Final Project
– Object and statechart modeling exercise with no
implementation of an embedded device, e.g. power window
controller, reverse vending machine
Performance Engineering of RT&E Course
• Course Topics
– Performance Measurements for Real-Time and Embedded
Systems
– Profiling of program execution in embedded systems
– Exploration of linear control systems
– Interpretation of linear control parameters
– Hardware system description languages (VHDL)
– Hardware-software co-design
Quanser System Inverted Pendulum
Quanser Ball & Balance Beam
Digilent Spartan II FPGA Board
Software
•
•
•
•
•
•
Quanser WinCon real-time executive
Matlab, Simulink
Wind River Windview profiling tools
Gnu profiling tools, e.g. gprof
Xilinx VHDL design software
Digilent FPGA programming tools
Course Projects
• Quanser inverted pendulum and ball-and-balance
beam
– Investigate effects of varying control parameters
– Investigate effects of system loading on control
performance
• Loading and measuring the performance
– Experiment with rate-monotonic scheduling
– Measure performance under varying computational and
network loads on different target platforms
• HW-SW partitioning of JPEG compression between
target system and FPGA board
– Measure execution time differences with different
hardware/software boundaries
– Explore memory constraints and communication
bottlenecks
Equipment Costs
Item
Unit
Cost
Development PC’s
$1300
Diamond Systems
PC104 Targets
1270
Item
Video convertors
Ilogix Rhapsody (20
licenses)
Digilent FPGA
boards
115
Ultrasound sensor
68HC12
microcontroller
100
Station total
Lamp/switch board
50
Unit
Cost
$200
800
35
$3495
Quanser pendulum
7485
Signal generator
310
Quanser ball and beam
8080
Power supplies
75
Tektronix oscilloscope
3300
Project Assessment
• External academic and industrial review
– Lab well-constructed and maintained with state-of-the-art equipment and
software
– Excellent teaming between SE and CompE students… and faculty!
– Performance Engineering course should be more focused
– Alter content of Modeling course toward CompE interests
• Student course evaluations and surveys
Strongly Disagree/ Undecided
Disagree
Strongly Agree/
Agree
2
7
43
Course increased interest in RT&E Systems
12
13
27
Will seek employment in RT&E Systems
5
10
37
Multi-disciplinary partnering helped learning
30% Course helped get a co-op or full-time job
Future Course Directions
• Real-Time and Embedded Systems
– VxWorks kernel-level device driver projects
• Modeling of Real-Time Systems
– Better balance between CompE and SE interests
– Make real-time aspects more explicit
– Consider project with Java Micro Edition and/or VxWorks
• Performance Engineering
–
–
–
–
Student written real-time control system
Better use of VxWorks profiling tools
Expanded investigation of real-time scheduling
Additional FPGA hardware/software co-design projects
• Other Courses
– Real-Time Operating Systems course scheduled for Spring 2006
Future Facility Additions
• USB data acquisition boards
• USB webcams
• Real-time Linux variant
Acknowledgements
• NSF DUE Course, Curriculum and
Laboratory Improvement funding (NSF
DUE-0311269)
• Academic Collaborators
– Prof. Ron Schroeder, Southern Polytechnic State
University
– Prof. Yann-Hang Lee, Arizona State University
• Industrial Evaluators
– Todd Mosher, Alstom Transport Systems
– Chuck Linn, Harris RF Communications
Questions and Answers