Download cs.kennesaw.edu

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.