Embedded Systems An Integrated Approach

Embedded Systems: An Integrated Approach is exclusively designed for the undergraduate courses in electronics and communication engineering as well as computer science engineering. This book is well-structured and covers all the important processors and their applications in a sequential manner. It...

Descripción completa

Detalles Bibliográficos
Autor principal: Das, LyLa B. (-)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Noida : Pearson India 2012.
Colección:Always learning.
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009820527406719
Tabla de Contenidos:
  • Cover
  • Contents
  • Preface
  • About the Author
  • Part I: Design Aspects of Embedded Systems
  • Chapter 0: Basics of Computer Architecture and the Binary Number System
  • 0.1 Basics of Computer Architecture
  • 0.1.1 The Block Diagram of a Computer
  • 0.1.2 The System Bus
  • 0.1.3 The Processor
  • 0.1.4 System Clock
  • 0.1.5 Memory
  • 0.1.6 The I/O System
  • 0.2 Computer Languages
  • 0.2.1 Machine Language, Assembly Languageand High Level Language
  • 0.2.2 Comparison
  • 0.3 RISC and CISC Architectures
  • 0.4 Number Systems
  • 0.4.1 The Decimal System
  • 0.4.2 The Binary Number System
  • 0.4.3 The Hexadecimal Number System
  • 0.5 Number Format Conversions
  • 0.5.1 Conversion from Decimal to Binary
  • 0.5.2 Conversion from Decimal to Hexadecimal
  • 0.5.3 Converting from Binary to Hexadecimal
  • 0.5.4 BCD Numbers
  • 0.5.5 ASCII Code
  • 0.5.6 Representation of Negative Numbers
  • 0.6 Computer Arithmetic
  • 0.6.1 Addition of Unsigned Numbers
  • 0.6.2 Addition of Packed BCD Numbers
  • 0.6.3 Addition of Negative Numbers
  • 0.6.4 Subtraction
  • 0.6.5 Packed BCD Subtraction
  • 0.6.6 Subtraction of Signed Numbers
  • 0.6.7 Addition of Numbers of Different Lengths
  • 0.7 Units of Memory Capacity
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 1: Introduction to Embedded Systems
  • Introduction
  • 1.1 Application Domain of Embedded Systems
  • 1.2 Desirable Features and General Characteristics of Embedded Systems
  • 1.3 Model of an Embedded System
  • 1.4 Microprocessor vs Microcontroller
  • 1.4.1 Microprocessor Unit (MPU)
  • 1.4.2 Microcontroller Unit (MCU)
  • 1.5 Example of a Simple Embedded System
  • 1.6 Figures of Merit for an Embedded System
  • 1.7 Classification of MCUs: 4/8/16/32 Bits
  • 1.7.1 ASIC: Application Specific Integrated Circuit
  • 1.7.2 FPGA (Field Programmable Gate Array)
  • 1.7.3 DSP Processors.
  • 1.8 History of Embedded Systems
  • 1.9 Current Trends
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 2: Embedded Systems-The Hardware Point of View
  • Introduction
  • 2.1 Microcontroller Unit (MCU)
  • 2.1.1 The Processor
  • 2.1.2 The Harvard Architecture
  • 2.2 A Popular 8-bit MCU
  • 2.2.1 General Purpose I/O (GPIO)
  • 2.2.2 Clock
  • 2.2.3 Power on Reset
  • 2.2.4 Brown Out Reset
  • 2.2.5 Timers and Counters
  • 2.2.6 Watchdog Timer
  • 2.2.7 Real-time Clock (RTC)
  • 2.2.8 Stack
  • 2.2.9 Interrupts
  • 2.2.10 DMA
  • 2.2.11 Communication Ports
  • 2.3 Memory for Embedded Systems
  • 2.3.1 Semiconductor Memory
  • 2.3.2 Random Access Memory (RAM)
  • 2.3.3 Dynamic RAM (DRAM)
  • 2.3.4 ROM (Read Only Memory)
  • 2.3.5 Caches
  • 2.4 Low Power Design
  • 2.5 Pullup and Pulldown Resistors
  • 2.5.1 Floating State of an Input
  • 2.5.2 Pulldown and Pullup Resistances
  • 2.5.3 Open Collector/Open Drain Gates
  • 2.5.4 Weak and Strong Pullup
  • 2.5.5 High Impedance State, Hi-Z
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 3: Sensors, ADCs and Actuators
  • Introduction
  • 3.1 Sensors
  • 3.1.1 Temperature Sensors
  • 3.1.2 Light Sensors
  • 3.1.3 Proximity/Range Sensors
  • 3.1.4 Encoders
  • 3.1.5 Humidity Sensors
  • 3.1.6 Other Sensors
  • 3.2 Analog to Digital Converters
  • 3.2.1 ADC Interfacing *
  • 3.3 Actuators
  • 3.3.1 Displays
  • 3.3.2 Motors
  • 3.3.3 Optocouplers/Opto Isolators
  • 3.3.4 Relays
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 4: Examples of Embedded Systems
  • Introduction
  • 4.1 Mobile Phone
  • 4.1.1 Block Diagram
  • 4.1.2 The Cellular Concept
  • 4.1.3 Multiple Access
  • 4.1.4 Frequency Re-use
  • 4.1.5 Handoff (Handover)
  • 4.1.6 Spread Spectrum Techniques
  • 4.1.7 Set Up and Maintanence
  • 4.1.8 Conclusion
  • 4.2 Automotive Electronics.
  • 4.2.1 Electronic Fuel Injection (EFI)
  • 4.2.2 Anti-lock Braking System (ABS)
  • 4.2.3 Electronic Stability Control
  • 4.2.4 Adaptive Cruise Control
  • 4.2.5 Airbag Deployment
  • 4.2.6 Automotive Navigation Systems
  • 4.2.7 Conclusion
  • 4.3 Radio Frequency Identification (RFID)
  • 4.3.1 RFID Architecture
  • 4.4 Wireless Sensor Networks (WISENET)
  • 4.4.1 Applications
  • 4.5 Robotics
  • 4.5.1 Sensors
  • 4.5.2 Actuators
  • 4.5.3 Embedded Intelligence
  • 4.5.4 Types of Robots
  • 4.5.5 Open Loop and Closed Loop Systems
  • 4.5.6 Designing an Autonomous Robotic System
  • 4.6 Biomedical Applications
  • 4.7 Brain Machine Interface
  • 4.7.1 Block Diagram
  • 4.7.2 Stages of a BMI
  • 4.7.3 End Device
  • 4.7.4 Important Milestones
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 5: Buses and Protocols
  • Introduction
  • 5.1 Defining Buses and Protocols
  • 5.1.1 Processor-memory Bus
  • 5.1.2 Peripheral Buses
  • 5.1.3 Embedded Processors/Microcontrollers
  • 5.1.4 Parallel vs Serial Buses
  • 5.1.5 Serial Communications
  • 5.1.6 Bus Arbitration
  • 5.2 On-board Buses for Embedded Systems
  • 5.2.1 The I2C Protocol
  • 5.2.2 The SPI Bus
  • 5.3 External Buses
  • 5.3.1 The USB
  • 5.3.2 The Firewire Port
  • 5.3.3 The Standard Serial Port
  • 5. 3.4 RS 422/RS 485
  • 5.3.5 Ethernet
  • 5.4 Automotive Buses
  • 5.4.1 Controller Area Network (CAN)
  • 5.5 Wireless Communications Protocols
  • 5.5.1 WLAN (IEEE 802.11)
  • 5.5.2 IEEE 802.15 for WPAN
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 6: Software Development Tools
  • Introduction
  • 6.1 Embedded Program Development
  • 6.1.1 The Initial Steps
  • 6.1.2 The Integrated Development Environment
  • 6.1.3 Code Editor
  • 6.1.4 GUI
  • 6.1.5 Compiler
  • 6.1.6 Assembler
  • 6.1.7 Builder
  • 6.1.8 Disassembly
  • 6.1.9 Linker
  • 6.1.10 Simulator.
  • 6.2 Downloading the Hex File to the Non-volatile Memory
  • 6.2.1 Out of Circuit Programming
  • 6.2.2 In System Programming (ISP)
  • 6.2.3 Porting an OS to an Embedded Board
  • 6.2.4 Emulator
  • 6.2.5 ICE (In-Circuit Emulator)
  • 6.3 Hardware Simulator
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Part II: Software Design Aspects
  • Chapter 7: Operating System Concepts
  • Introduction
  • 7.1 Embedded Operating Systems
  • 7.2 Network Operating Systems (NOS)
  • 7.3 Layers of an Operating System
  • 7.4 History of Operating Systems
  • 7.5 Functions Performed by an OS (Components of an OS)
  • 7.5.1 Processor Management
  • 7.5.2 Memory Management
  • 7.5.3 IO Management
  • 7.5.4 File Management
  • 7.5.5 Multiprogramming
  • 7.5.6 Protection and Security
  • 7.5.7 Network Management
  • 7.6 Some Terms Associated with Operating Systems and Computer Usage
  • 7.6.1 Low Level Software Utility
  • 7.6.2 Boot Loader
  • 7.6.3 User Interface
  • 7.6.4 Application Programming Interface (API)
  • 7.6.5 POSIX
  • 7.7 The Kernel
  • 7.7.1 Types of Kernels
  • 7.8 Tasks/Processes
  • 7.8.1 Task (Process) Control Block
  • 7.8.2 Multitasking
  • 7.8.3 Task (Process) Scheduling
  • 7.8.4 CPU and IO Bound Tasks
  • 7.8.5 Selection of a Scheduling Algorithm
  • 7.8.6 CPU Scheduler and Resource Manager
  • 7.9 Scheduling Algorithms
  • 7.9.1 Pre-emption
  • 7.9.2 Assumptions
  • 7.9.3 Non-preemptive Methods of Scheduling
  • 7.9.4 Shortest Job Next (SJN)
  • 7.9.5 Pre-emeptive Scheduling Strategies
  • 7.10 Threads
  • 7.11 Interrrupt Handling
  • 7.11.1 Interrupts and Task Switching
  • 7.12 Inter Process (Task) Communications (IPC)
  • 7.12.1 Task/Process Communication Methods
  • 7.13 Task Synchronization
  • 7.13.1 Parallelism aka concurrency
  • 7.13.2 The Race Condition
  • 7.13.3 Critical Section
  • 7.13.4 The Readers 'Writers' Problem
  • 7.13.5 Deadlocks.
  • 7.14 Semaphores
  • 7.14.1 Binary Semaphores
  • 7.14.2 Counting Semaphores
  • 7.14.3 Binary Semaphore vs Mutex
  • 7.15 Priority Inversion
  • 7.15.1 Solutions
  • 7.16 Device Drivers
  • 7.16.1 Reading a Key Pressed Using a Keyboard Driver
  • 7.16.2 Purpose of a Device Driver
  • 7.16.3 Device Driver Design
  • 7.17 Codes/Pseudo Codes for OS Functions
  • 7.17.1 Multitasking
  • 7.17.2 Mutex, Semaphore and Mailbox
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Chapter 8: Real-time Operating Systems
  • Introduction
  • 8.1 Real-time Tasks
  • 8.1.1 Terms and Defintions
  • 8.1.2 Scheme of a Time Constrained Task Execution
  • 8.1.3 Types of Real-time Tasks
  • 8.2 Real-time Systems
  • 8.3 Types of Real-time Tasks
  • 8.3.1 Periodic Tasks
  • 8.3.2 Aperiodic Tasks
  • 8.3.3 Sporadic Tasks
  • 8.3.4 Preemptible/Non-preemptible Tasks
  • 8.4 Real-time Operating Systems
  • 8.5 Real-time Scheduling Algorithms
  • 8.5.1 Off Time Scheduling (Pre-run-time Scheduling)
  • 8.5.2 On Line Scheduling
  • 8.6 Rate Monotonic Algorithm
  • 8.7 The Earliest Deadline First Algorithm
  • 8.7.1 Disadvantages of EDF
  • 8.8 Qualities of a Good RTOS
  • Conclusion
  • Questions
  • Exercises
  • Chapter 9: Programming in Embedded C
  • Introduction
  • 9.1 Embedded C
  • 9.1.1 The Header File
  • 9.1.2 Serial Communication
  • 9.2 PIC Programming Using MPLAB
  • Conclusion
  • Key Points of this Chapter
  • Questions
  • Exercises
  • Part III: Popular Microcontrollers Used in Embedded Systems
  • Chapter 10: ARM-The World's Most Popular 32-bit Embedded Processor (Part I - Architecture and Assembly Language Programming)
  • Introduction
  • 10.1 History of the ARM Processor
  • 10.1.1 The ARM Core
  • 10.1.2 The ARM Microcontroller
  • 10.1.3 RISC vs CISC
  • 10.1.4 Advanced Features
  • 10.1.5 Architecture Versions
  • 10.1.6 ARM CORTEX
  • 10.1.7 The Features of ARM Which Makes it 'Special'.
  • 10.2 ARM Architecture.