Document Sample
Motivation Powered By Docstoc
					Embedded Systems Courses at RIT
       Roy S. Czernikowski
       Department of Computer Engineering
       Kate Gleason College of Engineering
         Rochester Institute of Technology
          James R. Vallino
       Department of Software Engineering
          B Thomas Golisano College of
       Computing and Information Sciences
        Rochester Institute of Technology
• Real-Time and Embedded Systems (RT&E Systems)
  straddle and intertwine hardware and software
• 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
• 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
• Wind River VxWorks Consumer Devices
• 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
   – 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
• 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, four-
     function 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
    – 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
•   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
   – Investigate effects of varying control parameters
   – Investigate effects of system loading on control
• 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
           Equipment Costs
Item                Unit     Item                     Unit
                    Cost                              Cost
Development PC’s     $1300   Video convertors          $200
Diamond Systems       1270   Ilogix Rhapsody (20        800
PC104 Targets                licenses)
Digilent FPGA          115   Ultrasound sensor           35
68HC12                 100   Station total            $3495
Lamp/switch board       50   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
       – 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   Strongly Agree/
     Disagree                       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
• NSF DUE Course, Curriculum and
  Laboratory Improvement funding (NSF
• Academic Collaborators
   – Prof. Ron Schroeder, Southern Polytechnic State
   – Prof. Yann-Hang Lee, Arizona State University
• Industrial Evaluators
   – Todd Mosher, Alstom Transport Systems
   – Chuck Linn, Harris RF Communications
Questions and Answers