Tyler C. Folsom
Introduction to the process of specifying and designing embedded systems. Follows the embedded systems development; software and hardware partitioning, processor selection, real-time operating systems, coding in assembly language and C, debugging, and testing. Lab experiments reinforce fundamental concepts using embedded design and debug tools. Prerequisite: CSS 422 or B EE 422; may not be repeated.
RTOS and assembly language will be postponed to CSS 428. Emphasis of CSS 427 is on 8-bit embedded systems that do not use an OS. We will concentrate on Arduino microcontroller systems, including reading schematics. The course is highly project based, with parallel student teams working to make a vehicle drive itself. We are writing software for UWB's Elcano #2. Most of the electrical and mechanical systems for Elcano #1 have already been developed.
Student learning goals
Able to design an embedded system to meet desired needs.
Able to apply mathematics, science and engineering principles.
Able to use representative tools necessary for engineering practice.
Able to function on teams.
Able to communicate orally, read and write documentation.
General method of instruction
Lectures on key concepts combined with reading the text; heavy use of a project mimicking industrial practice.
Knowledge of computer architecture. Ability to program in C. Knowledge of differential equations and basic physics or engineering dynamics. Knowledge of software design methodologies is helpful.
Class assignments and grading
Program simple behaviors on an embedded micro controller using the Arduino IDE. Use Eagle CAD to read schematics to understand how a legacy system is configured. Work on teams to add new functionality to an existing system, using modern software engineering techniques. Readings are assigned from Lee & Seshia "Introduction to Embedded Systems", downloadable from leeseshia.org.
Self-evaluation and evaluations from team members. Results of project. Quizzes and final exam.