Smart Home and Embedded System Design Class: International graduate student Instructor: Dr.-Ing. Wei, Chao-Huang (魏兆煌) Office: S706-3 E-Mail: drwei@mail.stust.edu.tw Mobile Phone: 0930-937-932 Skype: drwei06 Self Introduction I was born in Hsin-Chu Taiwan 1951, graduated from National Taiwan University with BS degree of Physics, then went to Germany for further study, and received Diplom Informatik degree from Institute of Informatik / Technical University Berlin Germany and Ph.D degree from Institute of Microelectronics in the year 1989. After that I returned to Taiwan and serviced several IT industry companies for about 10 years. Now I’m teacher at department of electrical engineering of Southern Taiwan University of Science and Technology. In recent 6 years I have applied 42 patents and won 44 international invention awards. Smart Home Smart Home Smart Home Smart Home Smart Home Powerline Node 2 (for Lamp) Powerline Node 1 (for DVD) Web Controller Course Schedule Hardware Design (VHDL & Schematic Entry) Software Design (Microprocessor & C) HW & SW Co-design Small Real Time Operating System Ethernet Network Final Project Content What are embedded systems History and development of embedded systems Composition of embedded systems Characteristic of embedded systems Embedded system hardware development Embedded system software development What are embedded systems? Definition: Embedded system : any device that includes a programmable computer but is not itself a generalpurpose computer. Data processing systems except PCs and mainframe computers. Embedded systems are application dedicated computing system. A More Detailed Definition Embedded system are application oriented devices, which should be optimized with hardware and software resources. A special computing system with demand of functionality, reliability, cost, size, and power consumption. Generally, an embedded system consists of 4 parts -embedded microprocessor, peripheral hardware equipment, embedded operating system and user's application program,used for realizing the functions , such as control on other equipment , monitoring or management. Characteristics (1/3) Single-functioned Executes a single program, repeatedly Ex: RFID Reader Tightly-constrained Low cost Low power Small Ex: MP3 Player Characteristics (2/3) Low cost Low power Tens of thousands to millions of units Using a (relatively) suitable processor and small memory size Ex: Calculator Slow speed Fulfilling the requirement is OK Characteristics (3/3) Reactive and real-time Continually reacts to changes in the system’s environment Must compute certain results in real-time without delay Ex: Microwave Oven Firmware Software embedded in hardware devices Characteristic of embedded systems Dedicate for special application Soft-/Hardware, computing and network communication integration Constrain of real-time The embedded system is a specialpurpose system, while the PC is for general applications. Technology integration Use RTOS commonly Constrain of power consumption Usually no difference of system software and application software, Software in ROM. Small system kernel High reliability Resources much less then PC Requirement of special development tools Not market monopoly History and development of embedded systems First microprocessors was presented in 1971, it marks the beginning of the embedded system. View history of embedded systems from 4 respects: Hardware Software Products System architecture History of embedded hardware 1971: Intel 4004, 4-bit microprocessor TI, TMS1000, 4-bit microcontroller ROM, RAM, CPU + I/O port 1980: Intel MCS-51, 8microcontroller 16-bit, 32-bit microprocessor … 1990’s, DSP TMS320C30 History of embedded software Procedure control and monitoring Operating system 1981, Embedded real time kernel VTRX32 1990’s, QNX-4 pSOS, VxWorks, Palm OS, WinCE, Embedded Linux, LynxOS, uCOS, Nucleus… Win Mobile, iOS, Android Architecture develops of embedded system Hardware system Software system 4-bit single chip Real-time control/ monitoring procedure 8-bit/ 16-bit single chip Dedicate system 32-bit special purpose microprocessor General purpose system 32-bit DSP SoC SoPC General structure of an embedded system Software Input I/O Processor Storage I/O Output Embedding a computer Example: Digital camera Digital camera chip Central processor CCD CCD preprocessor Pixel coprocessor D2A A2D lens Input interface JPEG codec Microcontroller Multiplier/Accum Digital signal processor DMA controller Memory controller Display ctrl ISA bus interface UART LCD ctrl Output display Typical embedded system hardware architecture Chip Board Circuit Power Supply CPU Core Interrupt Controler Prescaler Oscillation Circuit Timer Reset Circuit CPU BCU DMA Ports I/O Port A/D Connecting SRAM Connecting DRAM Connecting Flash Connecting ROM Connection for Debugging External Devices USB LCD Pen Keyboard IRDA Others PDA: Handspring Visor Hardware Specs: Operating System: Palm OS version 3.5.2H Processor: 33 MHz Motorola Dragonball VZ (16-bit) Memory: 8 MB RAM, 2M ROM Display: 160x160 pixel, High-Res B&W, 4-bit (16 shades of gray) . Touch Panel Battery: 2 AAA batteries PC Connection : USB, IrDA, UART Expansion Slot: PCMCIA High-End Embedded System Examples Personal digital assistant (PDA). Printer. Cell phone. Automobile: engine, brakes, air condition, etc. Audio Video Recorder/Player. Household appliances. PC Keyboard/Mouse. Software Architecture Application Software Hardware Typical embedded system software architecture (VxWorks) Hardware Independent Software Software tools, application programs TCP/IP VxWorks Libraries I/O System Wind kernel File System Hardware dependent Software BSP Network Driver SCSI Driver Hardware Ethernet Controller Serial Controller Clock Timer SCSI Controller Embedded Operating System Where to use Multi-Task Convenient user's interface Network function Upgrade and advance development Basic functions of operating system Scheduling of multi-task Memory management Hardware resource management Real-time operation Must finish operations by deadlines. Hard real time: missing deadline causes failure. Soft real time: missing deadline results in degraded performance. Many systems are multi-rate: must handle operations at widely varying rates. Fundamental hardware software elements Hardware Embedded processor Memory/Storage Circuits and power supply Interface controller and connector and Software Real time operating system (RTOS) Board Support Package(BSP) Device Driver Protocol Stack Application programs Experiment board for the course DE2 Applications Quartus II Design Software for Hardware Circuits Embedded system software development Programming Languages Assemble, C, Java… Cross compiler A kind program, which compiles the execution code of target machine on another host machine. Development of Graphic User Interface Embedded system software development Programming Languages Assemble, C, Java… Cross compiler A kind program, which compiles the execution code of target machine on another host machine. Procedure of software development C/Assemble Source Code .obj File Library Cross Compiler Linker Debug System Image File Reset & Download OS kernel Device Driver Target Board Download and debugging of execution code Development Platform Download execution code Return debug information Target Platform Summary of Embedded System (1/3) An "embedded system" is any computer system or computing device that performs a dedicated function or is designed for use with a specific embedded software application. Embedded systems may use a ROM-based operating system or they may use a disk-based system, like a PC. But an embedded system is not usable as a commercially viable substitute for general purpose computers or devices. Summary of Embedded System (2/3) A specialized computer system that is part of a larger system or machine. Typically, an embedded system is housed on a single microprocessor board with the programs stored in ROM. Virtually all appliances that have a digital interface -- watches, microwaves, VCRs, cars -- utilize embedded systems. Some embedded systems include an operating system, but many are so specialized that the entire logic can be implemented as a single program. Summary of Embedded System (3/3) The embedded system can be divided into chip, board, and system level. System on chip - Processor including the procedure or the algorithm in one chip. System on board - board contains some core module. System on system - in main computing system.