Katana VentraIP

Embedded system

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system.[1][2] It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use.[3] In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.[4]

Modern embedded systems are often based on microcontrollers (i.e. microprocessors with integrated memory and peripheral interfaces), but ordinary microprocessors (using external chips for memory and peripheral interface circuits) are also common, especially in more complex systems. In either case, the processor(s) used may be types ranging from general purpose to those specialized in a certain class of computations, or even custom designed for the application at hand. A common standard class of dedicated processors is the digital signal processor (DSP).


Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase its reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale.


Embedded systems range in size from portable personal devices such as digital watches and MP3 players to bigger machines like home appliances, industrial assembly lines, robots, transport vehicles, traffic light controllers, and medical imaging systems. Often they constitute subsystems of other machines like avionics in aircraft and astrionics in spacecraft. Large installations like factories, pipelines, and electrical grids rely on multiple embedded systems networked together. Generalized through software customization, embedded systems such as programmable logic controllers frequently comprise their functional units.


Embedded systems range from those low in complexity, with a single microcontroller chip, to very high with multiple units, peripherals and networks, which may reside in equipment racks or across large geographical areas connected via long-distance communications lines.

(SCI): RS-232, RS-422, RS-485, etc.

Serial communication interfaces

: I2C, SPI, SSC and ESSI (Enhanced Synchronous Serial Interface)

Synchronous Serial Interface

(USB)

Universal Serial Bus

Media cards (, CompactFlash, etc.)

SD cards

: Ethernet, WiFi, etc.

Network interface controller

: CAN bus, LIN-Bus, PROFIBUS, etc.

Fieldbuses

Timers: , programmable interval timers

Phase-locked loops

(GPIO)

General Purpose Input/Output

and digital-to-analog converters

Analog-to-digital

Debugging: , In-system programming, background debug mode interface port, BITP, and DB9 ports.

JTAG

Interactive resident debugging, using the simple shell provided by the embedded operating system (e.g. Forth and Basic)

Software-only debuggers have the benefit that they do not need any hardware modification but have to carefully control what they record in order to conserve time and storage space.

[10]

External debugging using logging or serial port output to trace operation using either a monitor in flash or using a debug server like the that even works for heterogeneous multicore systems.

Remedy Debugger

An in-circuit debugger (ICD), a hardware device that connects to the microprocessor via a or Nexus interface.[11] This allows the operation of the microprocessor to be controlled externally, but is typically restricted to specific debugging capabilities in the processor.

JTAG

An (ICE) replaces the microprocessor with a simulated equivalent, providing full control over all aspects of the microprocessor.

in-circuit emulator

A complete provides a simulation of all aspects of the hardware, allowing all of it to be controlled and modified, and allowing debugging on a normal PC. The downsides are expense and slow operation, in some cases up to 100 times slower than the final system.

emulator

For SoC designs, the typical approach is to verify and debug the design on an FPGA prototype board. Tools such as Certus are used to insert probes in the FPGA implementation that make signals available for observation. This is used to debug hardware, firmware and software interactions across multiple FPGAs in an implementation with capabilities similar to a logic analyzer.

[12]

John Catsoulis (May 2005). Designing Embedded Hardware, 2nd Edition. O'Reilly.  0-596-00755-8.

ISBN

James M. Conrad; Alexander G. Dean (September 2011). Embedded Systems, An Introduction Using the Renesas RX62N Microcontroller. Micrium.  978-1935-7729-96.

ISBN

Klaus Elk (August 2016). Embedded Software Development for the Internet Of Things, The Basics, The Technologies and Best Practices. CreateSpace Independent Publishing Platform.  978-1534602533.

ISBN

YouTube, ongoing from 2015

Embedded Systems course with mbed

Dan Geer, November 2013

Trends in Cyber Security and Embedded Systems

YouTube, ongoing from 2013

Modern Embedded Systems Programming Video Course

yearly event with conferences, workshops and tutorials covering all aspects of embedded systems and software

Embedded Systems Week (ESWEEK)

at the Wayback Machine (archived 2018-02-11), workshop covering educational aspects of embedded systems

Workshop on Embedded and Cyber-Physical Systems Education