Technology Domain of Today and FutureEMBEDDED SYSTEMS
WHAT IS AN EMBEDDED SYSTEM?An embedded system is a special-purpose computersystem designed to perform one or a few dedicatedfunctions. It is usually embedded as part of acomplete device including hardware and mechanicalparts words: In more simpler words: Information processing systems embedded into a larger product
GENERAL CHARACTERISTICS Embedded systems: perform a single or tightly knit set of functions; not usually general purpose.; high-performance and real-time constrained; power, cost, reliability and security are important; Application- Application-specific processor design: Advantages: lower area, power, cost, better security... Disadvantages: Higher development overheads design, compilers, debuggers may delay time to market!
DRIVING FORCES Computing technologies are proliferating to non-computing domains portable units with significant data & control ops. medical instrumentation & imaging, information appliances... Increasing need for product personalization Application domains and user differentiation Device programmability Competitive pressures of "commodity markets“ Time to market (TTM), Time to money (TT$), Product lines, Product differentiation, etc.
APPLICATION AREAS Automotive electronics Avionics Trains Telecommunication Military applications Authentication
APPLICATION AREAS (CONTD.) Consumer electronics Industrial Automation Building Automation
APPLICATION AREAS (CONTD.) Medical systems For example: Artificial eye: several approaches, e.g.: Camera attached to glasses; computer worn at belt; output directly connected to the brain, “pioneering work by William Dobelle”. Previously at [www.dobelle.com] – Translation into sound; claiming much better resolution. [http://www.seeingwithsound.com/etumble.htm]
APPLICATION AREAS (CONTD.) Robotics One of the premier areas of usage of embedded technologies Nano Technology
SMART BEER GLASS Integrates several technologies:Capacitive sensor Radio transmissions for fluid level Sensor technology Magnetic inductance for 8-bit processor power Computer used for calibration Impossible without the computer Contact less Meaningless without the electronicstransmission of power and readings Inductive coil for RF ID activation & power CPU and reading coil in the table. Reports the level of fluid in the glass, alerts servers when close to empty
SMART BEER GLASS Typical embedded solution Integrates several technologies: Radio transmissions Sensor technology Magnetic inductance for power Computer used for calibration Impossible without the computer Meaningless without the electronics
PEDOMETER Obvious computer work: Count steps Keep time Averages etc. Hard computer work: Actually identify when a step is taken Sensor feels motion of device, not of user feet
MOBILE PHONES Multiprocessor 8-bit/32-bit for UI DSP for signals 32-bit in IR port 32-bit in Bluetooth 8-100 MB of memory All custom chips Power consumption & battery life depends on software
MOBILE BASE STATION Massive signal processing Several processing tasks per connected mobile phone Based on DSPs Standard or custom 100s of processors
TELECOM SWITCH Rack-based Control cards IO cards DSP cards ... Optical & copper connections Digital & analog signals
SMART WELDING MACHINE Electronics control voltage & speed of wire feed Adjusts to operator kHz sample rate 1000s of decisions/second Perfect weld even for quite clumsy operators Easier-to-use product, but no obvious computer
SEWING MACHINE User interface Embroidery patterns Touch-screen control ”Smart” Sets pressure of foot depending on task Raise foot when stopped New functions added by upgrading the software
FORESTRY MACHINES Networked computer system Controlling arms & tools Navigating the forest Recording the trees harvested Crucial to efficient work Processors 16-bit processors in a network
OPERATOR PANEL Embedded PC Graphical display Touch panel Joystick Buttons Keyboard But tough enough to be “out in the woods”
CARSFunctions by embedded processing: Multiple networks ABS: Anti-lock braking systems Body, engine, telematics, ESP: Electronic stability control Airbags media, safety Efficient automatic gearboxes Multiple processors Theft prevention with smart keys Up to 100 Blind-angle alert systems ... etc ... Networked together
CARS Large diversity in processor types: 8-bit – door locks, lights, etc. 16-bit – most functions 32-bit – engine control, airbags Form follows function Processing where the action is Sensors and actuators distributed all over the vehicle
INSIDE YOUR PC Custom processors Graphics, sound 32-bit processors IR, Bluetooth Network, WLAN Harddisk RAID controllers 8-bit processors USB Keyboard, mouse
IF YOU WANT TO PLAY Lego mindstorms robotics kit Standard controller 8-bit processor 64 kB of memory Electronics to interface to motors and sensors Good way to learn embedded systems
Characteristics of Embedded Systems Must be dependable dependable, • Reliability R(t) = probability of system working correctly provided that it was working at t=0 • Maintainability M(d) = probability of system working correctly d time units after error occurred. • Availability A(t): probability of system working at time t • Safety no harm to be caused Safety: • Security confidential and authentic communication Security:Even perfectly designed systems can fail if the assumptions about the workload and possible errors turn out to be wrong. Making the system dependable must not be an after-thought, it must be considered from the very beginning
CHARACTERISTICS OF EMBEDDED SYSTEMS Must be efficient Energy efficient Code-size efficient (especially for systems on a chip) Run-time efficient Weight efficient Cost efficient Dedicated towards a certain application Knowledge about behavior at design time can be used to minimize resources and to maximize robustness Dedicated user interface (no mouse, keyboard and screen)
CHARACTERISTICS OF EMBEDDED SYSTEMS Many ES must meet real-time constraints real- A real-time system must react to stimuli from the controlled object (or the operator) within the time interval dictated by the environment. For real-time systems, right answers arriving too late are wrong. real- „A real-time constraint is called hard, if not meeting that constraint could result in a catastrophe“ [Kopetz, 1997]. All other time-constraints are called soft soft. A guaranteed system response has to be explained without statistical arguments
REAL-TIME SYSTEMS Embedded and Real- Time Synonymous? Most embedded systems are embedded real-time Most real-time embedded systems are embedded real- real-time real- real-time
CHARACTERISTICS OF EMBEDDED SYSTEMS Frequently connected to physical environment through sensors and actuators, Hybrid systems (analog + digital parts). Typically, ES are reactive systems systems: „A reactive system is one which is in continual A interaction with is environment and executes at a pace determined by that environment“ [Bergé, 1995] Behavior depends on input and current state state. automata model appropriate, model of computable functions inappropriate.
CHARACTERISTICS OF EMBEDDED SYSTEMS ES are underrepresented in teaching and public discussions: „Embedded chips aren‘t hyped in TV and magazine ads ... [Mary Ryan, EEDesign, 1995] Not every ES has all of the above characteristics. Def.: Def Information processing systems having most of the above characteristics are called embedded systems. Course on embedded systems makes sense because of the number of common characteristics.
CHALLENGES FOR IMPLEMENTATION INHARDWARE Lack of flexibility (changing standards). Mask cost for specialized HW becomes very expensive Trend towards implementation in Software [http://www.molecularimprints.com/Technology/tech_articles/MII_COO_NIST_2001.PDF9]
IMPORTANCE OF EMBEDDED SOFTWARE AND EMBEDDED PROCESSORS“... the New York Times hasestimated that the average Mostaverage American The of the functionalityAmerican comes into contact with about will be implemented in does not drive a BMW!60 micro-processors every day....” software[Camposano, 1996]Latest top-level BMWscontain over 100 micro-processors[Personal communication]
CHALLENGES FOR IMPLEMENTATION IN SOFTWARE If embedded systems will be implemented mostly in software, then why don‘t we just use what software engineers have come up with?
SOFTWARE COMPLEXITY IS A CHALLENGEExponential increase in software complexityIn some areas code size is doubling every 9months [ST Microelectronics, MedeaWorkshop, Fall 2003]... > 70% of the development cost for complexsystems such as automotive electronics andcommunication systems are due to softwaredevelopment[A. Sangiovanni-Vincentelli, 1999] Rob van Ommering, COPA Tutorial, as cited by: Gerrit Müller: Opportunities and challenges in embedded systems, Eindhoven Embedded Systems Institute, 2004
CHALLENGES FOR EMBEDDED SOFTWARE Dynamic environments Capture the required behaviour! Validate specifications Efficient translation of specifications into implementations! How can we check that we meet real-time constraints? How do we validate embedded real-time software? (large volumes of data, testing may be safety-critical)
IT IS NOT SUFFICIENT TO CONSIDER ES JUST AS A SPECIAL CASE OFSOFTWARE ENGINEERING EE knowledge must be available, Walls between EE and CS must be torn down CS EE
EMBEDDED SOFTWARE Firmware Middleware OS / RTOS Development Device Drivers
FIRMWARE – NOT A CORE FIELD FOR CS/IT PROS In computing, firmware is a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user. Example FLASH BIOS, IPOD, PSP, PSP3, Open Firmware in Sun’s & Apple Comps etc. it is also an intimate and vital part of a piece of hardware, and has little meaning outside of that particular hardware.
MIDDLEWARE Middleware is computer software that connects software components or applications. Elaborative - Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications so that they can exchange data. System Process and services. Common Examples web servers, application servers & content management systems. Inter-operatibility - XML, SOAP, Web services, and service- oriented architecture It is a layer of software that lies between the application code and the Run-Time Infrastructure (RTI)
TYPES OF MIDDLEWARE Transaction Processing(TP) Monitors - This provides the tools and an environment to develop and deploy the Distributed Applications. Remote Procedure Call (RPCs) — Client makes calls to procedures running on remote systems. Can be asynchronous or synchronous. Message Oriented Middleware (MOM) — Messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing. Object Request Broker (ORB) — This type of middleware makes it possible for applications to send objects and request services in an object-oriented system. SQL-oriented Data Access — middleware between applications and database servers. Application servers — software installed on a computer to facilitate the serving (running) of other applications. Enterprise Service Bus — An abstraction layer on top of an Enterprise Messaging System.
OS/RTOS A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. Used in embedded systems (programmable thermostats, household appliance controllers, mobile telephones), industrial robots, spacecraft, industrial control, and scientific research equipment. Real Time Computing still under debate.
REAL TIME OPERATING SYSTEMS Design Types Real time system is the system which complete the tasks within the deadline. Event-driven (priority scheduling) designs switch tasks only when an event of higher priority needs service, called preemptive priority. Time-sharing designs switch tasks on a clock interrupt, and on events, called round robin. 1st example of a large-scale real-time operating real- system was the so-called "control program" developed by American Airlines and IBM for the Sabre Airline Reservations System.
DEVICE DRIVERS A device driver, or software driver is a computer program allowing higher-level computer programs to interact with a computer hardware device. A device driver simplifies programming by acting as a translator between a device and the applications or operating systems that use it. The higher-level code can be written independently of whatever specific hardware device it may control. (Embedded C# programming, Micro .Net Framework)
DEVICE DRIVER EXAMPLES Linux device drivers are built into the OS kernel. Windows(TM) .sys files and Linux .ko modules are loadable device drivers. The device drivers can either be built as parts of the kernel or can be built separately as loadable modules. ( Example USB Mass storage type drivers). New age Device Drivers works in User & System modes. Printers: CUPS, Scanners: SANE & Video: Vidix
DEVICE DRIVER DEVELOPMENT Microsoft’s new framework for driver development, called Windows Driver Foundation (WDF). User-Mode Driver Framework (UMDF). The Kernel-Mode Driver Framework (KMDF). Apple’s open-source framework for developing drivers on Mac OS X called the I/O Kit. Linux Device Drivers are developed in C using OEM Specification.
DD IMPLEMENTATION Drivers are used for interfacing with: Printers Video adapters Network cards Sound cards Local buses of various sorts - in particular, for bus mastering on modern systems Low-bandwidth I/O buses of various sorts (for pointing devices such as mice, keyboards, USB, etc.) computer storage devices such as hard disk, CD-ROM and floppy disk buses (ATA, SATA, SCSI) Implementing support for different file systems Implementing support for image scanners and digital cameras
VIRTUAL DEVICE DRIVERS used in virtualization environments. MS-DOS program is run on a Microsoft Windows computer CoLinux on Windows Xen on Linux Virtual Machines (e.g. JVM over embedded devices) Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g. function calls. virtual device driver can also send simulated processor- level events like interrupts into the virtual machine.
DRIVER API’S Advanced Linux Sound Architecture (ALSA) - The standard modern Linux sound driver interface I/O Kit - an open-source framework from Apple for developing Mac OS X device drivers Installable File System (IFS) - a filesystem API for IBM OS/2 and Microsoft Windows NT Network Driver Interface Specification (NDIS) - a standard network card driver API Open Data-Link Interface (ODI) - a network card API similar to NDIS Scanner Access Now Easy (SANE) - a public domain interface to raster image scanner hardware Uniform Driver Interface (UDI) - a cross platform driver interface project Windows Display Driver Model (WDDM) - the new graphic display driver architecture for Windows Vista Windows Driver Foundation (WDF) Windows Driver Model (WDM)