Embedded systems are one of the foundational elements of todays evolving and growing computer technology. From operating our cars, managing our smart phones, cleaning our homes, or cooking our meals, the special computers we call embedded systems are quietly and unobtrusively making our lives easier, safer, and more connected. While working in increasingly challenging environments, embedded systems give us the ability to put increasing amounts of capability into ever-smaller and more powerful devices.
Embedded Systems: A Contemporary Design Tool, Second Edition introduces you to the theoretical hardware and software foundations of these systems and expands into the areas of signal integrity, system security, low power, and hardware-software co-design. The text builds upon earlier material to show you how to apply reliable, robust solutions to a wide range of applications operating in todays often challenging environments.
Taking the users problem and needs as your starting point, you will explore each of the key theoretical and practical issues to consider when designing an application in todays world. Author James Peckol walks you through the formal hardware and software development process covering:
Stressing the importance of security, safety, and reliability in the design and development of embedded systems and providing a balanced treatment of both the hardware and the software aspects, Embedded Systems: A Contemporary Design Tool, Second Edition gives you the tools for creating embedded designs that solve contemporary real-world challenges.
CSE 474/ EE 474 Intro Embedded Systems (4)
An introductory course in the specification, design, development, and test of real time embedded system software. Use of a modern embedded microcomputer or microcontroller as a target environment for a series of laboratory projects and a comprehensive final project. Prerequisite: CSE 143.
(a) An ability to apply knowledge of mathematics, science, and engineering. Four of the five laboratories require the student to assess and analyze the assignment, then apply basic engineering knowledge to either solve the problem or state why (based upon their analysis) they are unable to fully satisfy the requirements. (H)
(c) An ability to design a system, component or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability. Four of the five laboratories assign a particular design problem to be solved. Students will design and implement interrupt service routines, hard real time systems, and solutions to constrained real world problems in the laboratory. The final project brings all of the concepts together through the development of a (simplified) real world project. Each of the design projects provides a high-level requirements specification and a design specification for the problem that must be solved. For the final project, the students are given only a set of requirements and they must interpret the requirements and implement the design specification. (M)
(f) An understanding of professional and ethical responsibilities. Ethics and professional behavior are strongly stressed throughout the course. Students will discuss the societal and ethical impacts of developing embedded systems for consumer products, including safety, privacy, security, and reliability. Also considered are issues such as copyrights, national and international patents, licensed material, intellectual property, plagiarism, citing sources for material or idea, and using published algorithms and designs. (M)
(g) An ability to communicate effectively. All of the lab projects will require write-ups. Additionally, each student in a design team must explain their design and the operation of their portion of each project. (M)
(h) The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental and societal context. Lecture material routinely stresses the need for designs to consider international markets and the need to satisfy international standards, including those for safety and health. (L)
(k) An ability to use the techniques, skills and modern engineering tools necessary for engineering practice. The laboratory assignments routinely require the use of contemporary software engineering tools and techniques. (M)
Prerequisites: ELEN E3910 or COMS W3843 or the equivalent. Embedded system architecture and programming. I/O, analog and digital interfacing, and peripherals. Weekly laboratory sessions and term project on design of a microprocessor-based embedded system including at least one custom peripheral. Knowledge of C programming and digital logic required. Lab required.
The goal of this class is to introduce you to issues in hardware/software interfacing, practical microprocessor-based system design issues such as bus protocols and device drivers, and practical digital hardware design using modern logic synthesis tools. You will put all of this to use in the lab where you will be given the opportunity to implement, using a combination of C and the SystemVerilog hardware description langauge, a small embedded system.
This is a lab course done in two parts. During the first part of the class, each student will implement the same "canned" designs designed by the instructor and be given substantial guidance. These are meant as an opportunity for you to learn the development tools and basic concepts. In the second part of the class, you will divide up into teams and each will design and implement a comparable project of their own with guidance from the instructor and TAs.
This course is a capstone in which students will integrate their knowledge of digital logic, programming, and system design to produce a real system. It is intended to complement ELEN 4340, Computer Hardware Design. 4840 focuses more on system-design issues and include a large section on hardware/software integration. Students in 4840 will use gates, processors, peripherals, software, and operating systems as building blocks.
CSEE 3827, Fundamentals of Computer Systems or the equivalent. You must understand digital logic design. Prior experience with hardware description languages, FPGAs, or embedded processors is not required.
COMS 3157, Advanced Programming or the equivalent. Specifically, C programming experience. While 4840 will teach you advanced aspects of embedded C programming, you need to come in with significant C experience.
COMS W4823, Advanced Digital Logic Design. While not a formal prerequisite, you are strongly encouraged to take it. In it, you will learn advanced logic design and HDL coding, both of which are crucial to success in 4840.
Also create a .tar.gz file (see the online documentation for the `tar' program to see how to create such a file. Briefly, create a file called `myfile' with the names of all the files you want to include in the archive and run tar zcf project.tar.gz `cat myfiles` to create the archive.) that just includes the files necessary to build your project, such as I did for the labs.
Mark Zwolinski.
Digital System Design with SystemVerilog.
Prentice-Hall, 2010.
SystemVerilog is relatively new, so there are not too many books out there for it. This is one of the betterones. It focuses on the sythesizable subset of the language and also discusses test benches.Examples, etc., are available from theAuthor's web site..
James K. Peckol.
Embedded Systems: A Contemporary Design Tool.
Wiley, 2008.
Many embedded system books are too idiosyncratic or incomplete for mytaste, but this one does a nice job coveringeverything from digital circuit design to interprocess communicationin real-time operating systems. It only discusses theVerilog language and only in an appendix.