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