Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Presented By: Max Paulk, Warren McClure, Eric Roberson, Jonathan Green, & Zane Johnston. What is an (Embedded) “System”? System: - is an arrangement in which all units work together according to a fixed plan, program, or set of rules. Embedded System: - a system in which both hardware & software work together to carry out a limited set of tasks within the domain of a larger system (which is typically not a “computer”) Examples of an Embedded System ...embedded systems are everywhere! Embedded Systems vs. Computers Embedded Systems: ● ● “Like Computers” Consist Mainly Of: ○ CPU ○ Memory ○ I/O Capabilities Computers: ● ● Can and do contain Embedded Systems (ex. disk drive arm) Very complex architecture and system operation. Designing Embedded Systems requires us to think in new “dimensions”. ● In General-Purpose Computing, we (generally) know the capabilities of the hardware. ● In Embedded Systems, we face new challenges (in terms of development) such as: ○ different/unknown hardware capabilities (changes w/domain). ○ deep comprehension of underlying hardware is required (ex. endianness). ○ tremendous constraints under which embedded systems must function (ex. *Power, CPU Speed, Memory, Weight, Uncontrolled/Harsh Operating Environments). ○ signal timing (random events from outside world & routine events from within system). Overview of Embedded Hardware ❏ Off-the-shelf embedded system hardware ❏ Configurable hardware ❏ Custom-designed embedded hardware Off-the-shelf Embedded Systems Hardware ❏ ❏ ❏ Microcontrollers are mainly used for simple control applications. Like a general-purpose processor, a microcontroller is programmable and can access a variety of peripherals. Unlike a general-purpose processor, it has a smaller memory address space, and its software cannot be changed by the consumer. ROM - Read-Only Memory for stored programs and constants. - Non-Volatile. SRAM - Static, Read Only Memory for in-program manipulation, data, etc… - Volatile Memory. Microprocesso r Watchdog Timer - Provides a fail safe mechanism for potential problems. Clock - This clock runs at a much slower speed than the clocks we are used to. Input/Output *(NOTE: to make circuitry small/fast, microcontroller ISAs are generally stack based) Configurable Hardware ❏ Some applications are so specialized that no off-the-shelf microcontroller can do the job, designers can then employ a Programmable Logic Device (PLD). ❏ PLDs come in three general varieties } { - Programmable Array Logic (PAL) - Programmable Logic Arrays (PLAs) - Field-Programmable Gate Arrays (FPGAs) ● (PALs) - ● (PLAs) - ● (FPGAs) - consist of memory elements and multiplexers. They can implement any logic function based on the values supplied in their memory cells. PALs/PLAs are programmed by blowing fuses. Their outputs are sum-of-products functions of their respective input. PAL vs PLA vs FPGA Custom-designed Embedded Hardware Application-specific integrated circuits (ASIC) ● fully customized ● eliminates wasted functionality ● conserves energy and space Design perspectives: ● behavioral: what needs to be accomplished? ● structural: which components best fit the needs of the system? ● physical: how must the components be placed on the chip to maximize efficiency? Overview of Embedded Software ❏ Embedded systems memory organization ❏ Embedded operating systems ❏ Embedded systems software development Embedded Systems Memory Organization Embedded system memory organization differs from the memory organization of generalpurpose computers in two ways: ❏ ❏ The first reason is that most embedded systems are time constrained. The second reason is the variability and diversity of memory architectures. Most systems employ a hierarchical memory system. ❏ A single embedded system can contain RAM, ROM, and flash memory. ❏ These system employ a small and fast memory device to store the frequently used code and data, where less frequently used data is stored in a big low speed memory device. ❏ This is called the cache. Embedded Operating Systems Embedded operating systems differ from general-purpose operating systems in two important ways. ❏ The first way is that embedded operating systems allow direct hardware access, unlike general-purpose operating systems. ❏ The second way is an embedded operating system’s responsiveness to events is clearly defined and understood. These operating systems are made to do a specific task and do them efficiently. ❏ Example of this would be an ATM. Embedded Systems Software Development ❏ The development of application programs is a very repetitive process. ❏ Most of the successful development techniques are using prototypes, where the prototype is presented to users for comment and review. ❏ Background Debug Mode (BDM) and Joint Test Action Group (JTAG) ❏ In-circuit emulator (ICE) helps find the bugs of the system more easily. ❏ ICE board are expensive but pay for themselves in the long run. ❏ Tool support like compilers, assemblers, and debuggers. Conclusion ➔ ➔ ➔ ➔ ➔ We encounter hundreds of embedded systems every day. The design and programming of these systems requires us to think in different ways about hardware, software, and operating systems. Programming Embedded Systems requires a deep understanding of hardware, and the ability to think in terms of timing and events. “Mastery of the principles of computer organization and architecture is essential to success in this field”. (Null, p. 626) Microcontrollers, (SOC)’s, and PAL/PLA/FPGAs are all types of embedded hardware. It can be more economical to buy than build the micro-controller/processor for an embedded system, but it all depends on the task at hand. Not all embedded systems require an operating system, but for those that do, important considerations in operating system selection include: memory footprint, responsiveness, licensing fees, and adherence to standards. Embedded system software development is typically more controlled and linear than general application software development, and systems are subjected to rigorous testing because the costs associated with their failure is so great. Resource(s): Textbook: ❏ Null, Linda, and Julia Lobur. "Chapter 10: Topics In Embedded Systems." The Essentials of Computer Organization and Architecture, Fourth Edition. 4th ed. Burlington, MA: Jones & Bartlett Learning, 2015. (597-631). Print.