Overview
This course introduces students to the design and analysis of computer systems that interact with the built environment. Applications of these systems impact nearly every aspect of modern life. Examples include cell phones, smartwatches, home monitoring systems, medical devices, autonomous (and non-autonomous) vehicles, UAVs, airplanes, submarines and space vehicles. As part of the course, students will learn about architecture, software, and hardware aspects of embedded systems development. The design of systems is a complex multi-objective optimization task, and students will develop an understanding of how to work within the parameters given to meet constraints (e.g. real-time deadlines, memory, disk, connectivity, power, etc.).
Textbook
- Frank Vahid, Tony Givargis, Bailey Miller, Programming Embedded Systems, Zybook.
- To order your book:
- Sign in or create an account at learn.zybooks.com
- Enter zyBook code given the first day of class
- Subscribe
- (Optional) Marilyn Wolf, Embedded System Interfacing: Design for the Internet-of-Things (IoT) and Cyber-Physical Systems (CPS), Elsevier; 2019 Edition.
Lecture Topics
| Topic | Coverage |
|---|---|
| Characteristics of Embedded Systems | 1 week |
| Basic Software Techniques | 2 weeks |
| Parallel Input and Output | 1 week |
| Asynchronous and Synchronous Serial Communications | 1 week |
| Polling, Interrupts, Timers | 3 week |
| Data Acquisition, Sampling Theory and A/D Convertors | 2 weeks |
| Real Time Programming Models and Requirements | 2 weeks |
| Real Time Scheduling | 1 week |
| RTOS’s (FreeRTOS) | 2 weeks |
| Selected topics (Trends, OS and Compiler for ES, etc …) | 1 week |
Laboratory Component
This class has a laboratory component allowing students to gain hands-on experience designing,building, and testing an embedded system. Laboratories throughout the semester build towards a final class project. The final project is at the discretion of the Instruction and may vary from semester to semester. Most recently students build an autonomous car controlled by an SoC implemented as soft IP in an FPGA running FreeRTOS using multiple sensors to control servo motors for the car to follow a track and avoid obstacles.
Learning Outcomes
- Describe the characteristics of embedded systems as well as the challenges related with their design
- Summarize the key components of an embedded system as well as their interactions
- Identify and formalize design goals (cost, power, time-to-market, etc …)
- Choose the right model and tools for capturing and analyze complex embedded systems
- Conduct a project in team and present the results in a fundamental way
- Evaluate a produced design and identify where improvements to the design could be made to improve one or more design parameters
Grading
| Activity | Weight |
|---|---|
| 3 Exams | 20% each |
| Labs | 30% |
| Homework | 10% |
Grading will be on a 90%-80%-70%-60% scale. Curving may be applied based on course average. Unexcused late homework is penalized 25% per day. Extensions to the homework due date will be given for valid reasons that are pre-approved by the instructor before the homework is due. All work should be your own and the extend to which generative AI is allowed on laboratory writeups and coding, and homework will be discussed on the first day of class. It is each students responsibility to know and understand the University of Arkansas Policy on Academic Integrity and the penalties imposed for specific infringements.