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...
Autor principal: | |
---|---|
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.