* A practical introduction to the hottest topic in modern electronics design
* Covers hardware, interfacing and programming in one book
* New material on Embedded Linux for embedded internet systems
In this new edition the latest ARM processors and other hardware developments are fully covered along with new sections on Embedded Linux and the new freeware operating system eCOS. The hot topic of embedded systems and the internet is also introduced. In addition a fascinating new case study explores how embedded systems can be developed and experimented with using nothing more than a standard PC.
Embedded systems engineers / programmers, electronic engineers, control systems engineers, students of electronic and software engineering.
Embedded Systems Design, 2nd Edition
WHAT IS AN EMBEDDED SYSTEM?: What is an embedded system; Inside the embedded system.
EMBEDDED PROCESSORS: 8 bit accumulator processors; Example 8 bit architectures; Microcontrollers; Data processors; INTEL 80286; INTEL 80386DX; INTEL 80486; Intel 486SX and overdrive processors; Intel Pentium; Motorola MC68000; The MC68000 hardware; Motorola MC68020; Motorola MC68030; The MC68040; Integrated processors; RISC processors; The Berkeley RISC model; Sun SPARC RISC processor; The Stanford RISC model; The MPC603 block diagram; Digital signal processors; DSP basic architecture.
MEMORY SYSTEMS: Memory technologies; SRAM; EPROM and OTP; Memory organisation; Parity; Error detecting and correcting memory; Access times; Packages; DRAM interfaces; DRAM refresh techniques; Optimising line length and cache size; Logical versus physical caches; Unified versus Harvard caches; Cache coherency; Case 1: write through; Case 2: write back; Case 3: no caching of write cycles; Case 4: write buffer; Bus snooping; The MESI protocol; The MEI protocol; Big and little endian; Dual port and shared memory; Bank switching; Memory overlays; Shadowing; Example interfaces.
Parallel ports; Timer/counters; 8253 timer modes; MC68230 modes; Timer processors; Real-time clocks; Serial ports; Serial peripheral interface; I2C bus; M-Bus (Motorola); What is an RS232 serial port?; Asynchronous flow control; UART implementations; DMA controllers; A generic DMA controller; DMA controller models; Channels and control blocks; Sharing bus bandwidth; DMA implementations.
INTERFACING TO THE ANALOGUE WORLD: Analogue to digital conversion techniques; Sample rates and size; Codecs; Power control.
INTERRUPTS AND EXCEPTIONS: What is an interrupt?; Interrupt sources; Recognising an interrupt; The interrupt mechanism; MC6800 interrupts; RISC exceptions; Fast interrupts; Interrupt controllers; Instruction restart and continuation; Interrupt latency; Do's and Don'ts.
REAL-TIME OPERATING SYSTEMS: What are operating systems?; Operating system internals; Multitasking operating systems; Scheduler algorithms; Priority inversion; Tasks, threads and processes; Exceptions; Memory model; Memory management address translation; Commercial operating systems; Resource protection; Resource protection; Linux; Disk Partitioning.
WRITING SOFTWARE FOR EMBEDDED SYSTEMS: The compilation process; Native vs. cross-compilers; Run-time libraries; Writing a library; Using alternative libraries; Using a standard library; Porting kernels; C extensions for embedded systems; Downloading.
EMULATION AND DEBUGGING TECHNIQUES: Debugging techniques; The role of the development system; Emulation techniques.
BUFFERING AND OTHER DATA STRUCTURES: What is a buffer?; Linear buffers; Directional buffers; Double buffering; Buffer exchange; Linked lists; FIFOs; Circular buffers; Buffer underrun and overrun; Allocating buffer memory; Memory leakage.
MEMORY AND PERFORMANCE TRADE-OFFS: The effect of memory wait states; Scenario 1 - Single cycle processor with large external memory; Scenario 2 - Reducing the cost of memory access; Making the right decisions.
SOFTWARE EXAMPLES: Benchmark example; Creating software state machines.
DESIGN EXAMPLES: Burglar alarm systems; Digital echo unit.
REAL-TIME WITHOUT A RTOS: Choosing the software environment; Deriving real time performance from a non-real time system; Scheduling the data sampling; Sampling the data; Controlling from an external switch; Problems; Program listing.