Muutke küpsiste eelistusi

E-raamat: Fast and Effective Embedded Systems Design: Applying the ARM mbed

(Freelance technical author and educator), (Professor of Creative Industries at the University of Westminster, London, UK.)
  • Formaat: PDF+DRM
  • Ilmumisaeg: 08-Oct-2016
  • Kirjastus: Newnes (an imprint of Butterworth-Heinemann Ltd )
  • Keel: eng
  • ISBN-13: 9780081009031
  • Formaat - PDF+DRM
  • Hind: 54,59 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Ilmumisaeg: 08-Oct-2016
  • Kirjastus: Newnes (an imprint of Butterworth-Heinemann Ltd )
  • Keel: eng
  • ISBN-13: 9780081009031

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Fast and Effective Embedded Systems Design: Applying the ARM mbed is a fast-moving introduction to embedded systems design, with emphasis on applying the innovative ARM mbed and its web-based development environment. Each chapter introduces a major topic in embedded systems, and proceeds as a series of practical experiments, adopting a learning-through-doing strategy. Minimal background knowledge is needed. C/C++ programming is applied with a step-by-step approach that allows you to get coding quickly.

Once the basics are covered, the book progresses to some hot embedded issues - intelligent instrumentation, networked systems, closed loop control, and digital signal processing. Written by two experts in the field, this book reflects on the experimental results, develops and matches theory to practice, evaluates the strengths and weaknesses of the technology and techniques introduced, and considers applications in a wider context.

New Chapters on: Bluetooth and Wifi communication; Internet communication and control with particular reference to ‘Internet of Things’; Low level programming and controlling communications and timing through direct register addressing; Testing and evaluating the available mbed platforms including the Freescale FRDM (Cortex M0) and the NXP LPC4008 (Cortex M4) boards; and mbed RTOS.

  • Updates all examples and peripheral devices to use the most recent libraries and peripheral products
  • Includes examples with touch screen displays and includes high definition audio input/output with the I2S interface
  • Covers the development process of moving from prototyping to small-scale or mass manufacture with commercial case studies
  • Covers hot embedded issues such as intelligent instrumentation, networked systems, closed loop control, and digital signal processing
Introduction xv
PART I Essentials of Embedded Systems, Using the mbed
Chapter 1 Embedded Systems, Microcontrollers, and ARM
3(16)
1.1 Introducing Embedded Systems
3(5)
1.1.1 What Is an Embedded System?
3(2)
1.1.2 An Example Embedded System
5(1)
1.1.3 A Second Example System: A Word on Control Systems and the Segway
6(2)
1.2 Microprocessors and Microcontrollers
8(3)
1.2.1 Some Computer Essentials
8(2)
1.2.2 The Microcontroller
10(1)
1.3 Development Processes for Embedded Systems
11(2)
1.3.1 Programming Languages---What's So Special About C/C++?
11(1)
1.3.2 The Development Cycle
12(1)
1.4 The World of ARM
13(6)
1.4.1 A Little History
13(2)
1.4.2 Some Technical Detail---What Does This RISC Word Mean?
15(1)
1.4.3 The Cortex Core
16(1)
Chapter Review
17(1)
Quiz
17(1)
References
18(1)
Chapter 2 Introducing the mbed
19(18)
2.1 Introducing the mbed
19(6)
2.1.1 mbed and mbed-Enabled
19(1)
2.1.2 The mbed LPC1768
20(1)
2.1.3 The mbed LPC1768 Architecture
21(2)
2.1.4 The LPC1768 Microcontroller
23(2)
2.2 Getting Started With the mbed: A Tutorial
25(4)
Step 1 Connecting the mbed to the PC
25(1)
Step 2 Creating an mbed Account
25(1)
Step 3 Running a Program
26(2)
Step 4 Compiling the Program
28(1)
Step 5 Downloading the Program Binary Code
29(1)
Step 6 Modifying the Program Code
29(1)
2.3 The Development Environment
29(8)
2.3.1 The mbed Software Development Kit and API
29(1)
2.3.2 Using C/C++
30(1)
2.3.3 The mbed Application Board
30(3)
Chapter Review
33(1)
Quiz
34(1)
References
35(2)
Chapter 3 Digital Input and Output
37(32)
3.1 Starting to Program
37(5)
3.1.1 Thinking About the First Program
37(3)
3.1.2 Using the mbed API
40(1)
3.1.3 Exploring the while Loop
41(1)
3.2 Voltages as Logic Values
42(2)
3.3 Digital Output on the mbed
44(3)
3.3.1 Using Light Emitting Diodes
44(2)
3.3.2 Using mbed External Pins
46(1)
3.4 Using Digital Inputs
47(4)
3.4.1 Connecting Switches to a Digital System
47(1)
3.4.2 The DigitalIn API
48(1)
3.4.3 Using if to Respond to a Switch Input
49(2)
3.5 Digital Input and Output With the Application Board
51(3)
3.6 Interfacing Simple Optodevices
54(7)
3.6.1 Optoreflective and Transmissive Sensors
54(1)
3.6.2 Connecting an Optosensor to the mbed
55(1)
3.6.3 Seven-Segment Displays
56(2)
3.6.4 Connecting a Seven-Segment Display to the mbed
58(3)
3.7 Switching Larger DC Loads
61(4)
3.7.1 Applying Transistor Switching
61(2)
3.7.2 Switching a Motor With the mbed
63(1)
3.7.3 Switching Multiple Seven-Segment Displays
64(1)
3.8 Mini Project: Letter Counter
65(4)
Chapter Review
65(1)
Quiz
65(2)
References
67(2)
Chapter 4 Analog Output
69(22)
4.1 Introducing Data Conversion
69(1)
4.1.1 The DAC
69(1)
4.2 Analog Outputs on the mbed
70(6)
4.2.1 Creating Constant Output Voltages
71(1)
4.2.2 Saw Tooth Waveforms
72(3)
4.2.3 Testing the DAC Resolution
75(1)
4.2.4 Generating a Sine Wave
75(1)
4.3 Another Form of Analog Output: Pulse Width Modulation
76(2)
4.4 Pulse Width Modulation on the mbed
78(13)
4.4.1 Using the mbed Pulse Width Modulation Sources
78(1)
4.4.2 Some Trial Pulse Width Modulation Outputs
79(1)
4.4.3 Speed Control of a Small Motor
80(2)
4.4.4 Generating Pulse Width Modulation in Software
82(1)
4.4.5 Servo Control
83(2)
4.4.6 Producing Audio Output
85(3)
Chapter Review
88(1)
Quiz
88(1)
References
89(2)
Chapter 5 Analog Input
91(20)
5.1 Analog-to-Digital Conversion (ADC)
91(5)
5.1.1 The ADC
91(1)
5.1.2 Range, Resolution, and Quantization
92(2)
5.1.3 Sampling Frequency
94(1)
5.1.4 Analog Input With the mbed
95(1)
5.2 Combining Analog Input and Output
96(4)
5.2.1 Controlling LED Brightness by Variable Voltage
96(2)
5.2.2 Controlling LED Brightness by PWM
98(1)
5.2.3 Controlling PWM Frequency
99(1)
5.3 Processing Data From Analog Inputs
100(3)
5.3.1 Displaying Values on the Computer Screen
100(1)
5.3.2 Scaling ADC Outputs to Recognized Units
101(1)
5.3.3 Applying Averaging to Reduce Noise
102(1)
5.4 Some Simple Analog Sensors
103(2)
5.4.1 The Light-Dependent Resistor
103(1)
5.4.2 Integrated Circuit Temperature Sensor
104(1)
5.5 Exploring Data Conversion Timing
105(2)
5.5.1 Estimating Conversion Time and Applying Nyquist
105(2)
5.6 Mini Projects
107(4)
5.6.1 Two-Dimensional Light Tracking
107(1)
5.6.2 Temperature Alarm
108(1)
Chapter Review
108(1)
Quiz
108(1)
References
109(2)
Chapter 6 Further Programming Techniques
111(24)
6.1 The Benefits of Considered Program Design and Structure
111(1)
6.2 Functions
111(1)
6.3 Program Design
112(3)
6.3.1 Using Flow Charts to Define Code Structure
112(2)
6.3.2 Pseudocode
114(1)
6.4 Working With Functions on the mbed
115(6)
6.4.1 Implementing a Seven-Segment Display Counter
116(2)
6.4.2 Function Reuse
118(1)
6.4.3 A More Complex Program Using Functions
119(2)
6.5 Using Multiple Files in C/C++
121(4)
6.5.1 Summary of the C/C++ Program Compilation Process
122(1)
6.5.2 Using #define, #include, #ifndef, and #endif Directives
122(3)
6.5.3 Using mbed Objects Globally
125(1)
6.6 Modular Program Example
125(4)
6.7 Working With Bespoke Libraries
129(6)
Chapter Review
133(1)
Quiz
134(1)
References
134(1)
Chapter 7 Starting with Serial Communication
135(36)
7.1 Introducing Synchronous Serial Communication
135(2)
7.2 SPI
137(7)
7.2.1 Introducing SPI
137(1)
7.2.2 SPI on the mbed and Application Board
138(1)
7.2.3 Setting Up an mbed SPI Master
138(2)
7.2.4 Creating a SPI Data Link
140(4)
7.3 Intelligent Instrumentation
144(4)
7.3.1 Introducing the SPI-Linked ADXL345 Accelerometer
145(1)
7.3.2 Developing a Simple ADXL345 Program
145(3)
7.4 Evaluating SPI
148(1)
7.5 The I2C Bus
149(6)
7.5.1 Introducing the I2C Bus
149(2)
7.5.2 I2C on the mbed
151(1)
7.5.3 Setting Up an I2C Data Link
152(3)
7.6 Communicating With I2C-Enabled Sensors
155(4)
7.6.1 The TMP102 Sensor
155(3)
7.6.2 The SRF08 Ultrasonic Range Finder
158(1)
7.7 Evaluating I2C
159(1)
7.8 Asynchronous Serial Data Communication
160(4)
7.8.1 Introducing Asynchronous Serial Data
160(1)
7.8.2 Applying Asynchronous Communication on the mbed
161(3)
7.8.3 Applying Asynchronous Communication With the Host Computer
164(1)
7.9 USB
164(3)
7.9.1 Introducing USB
164(1)
7.9.2 USB Capability on the mbed
165(1)
7.9.3 Using the mbed to Emulate a USB Mouse
166(1)
7.9.4 Leaving USB for Now
167(1)
7.10 Mini Project: Multinode I2C Bus
167(4)
Chapter Review
167(1)
Quiz
168(1)
References
169(2)
Chapter 8 Liquid Crystal Displays
171(28)
8.1 Display Technologies
171(3)
8.1.1 Introducing Liquid Crystal Technology
171(1)
8.1.2 Liquid Crystal Character Displays
172(2)
8.2 Using the PC1602F LCD
174(9)
8.2.1 Introducing the PC1602F Display
174(1)
8.2.2 Connecting the PC1602F to the mbed
175(1)
8.2.3 Using Modular Coding to Interface the LCD
176(1)
8.2.4 Initializing the Display
177(1)
8.2.5 Sending Display Data to the LCD
178(2)
8.2.6 The Complete LCD.cpp Definition
180(1)
8.2.7 Using the LCD Functions
181(1)
8.2.8 Adding Data to a Specified Location
182(1)
8.3 Using the mbed TextLCD Library
183(2)
8.4 Displaying Analog Input Data on the LCD
185(2)
8.5 Pixel Graphics---Implementing the NHD-C12832 Display
187(6)
8.6 Color LCDs---Interfacing the uLCD-144-G2
193(3)
8.7 Mini Project: Digital Spirit Level
196(3)
Chapter Review
197(1)
Quiz
198(1)
References
198(1)
Chapter 9 Interrupts, Timers, and Tasks
199(36)
9.1 Time and Tasks in Embedded Systems
199(2)
9.1.1 Timers and Interrupts
199(1)
9.1.2 Tasks
199(1)
9.1.3 Event-Triggered and Time-Triggered Tasks
200(1)
9.1.4 Working in "Real Time"
200(1)
9.2 Responding to External Events
201(2)
9.2.1 Polling
201(1)
9.2.2 Introducing Interrupts
202(1)
9.3 Simple Interrupts on the mbed
203(2)
9.4 Getting Deeper Into Interrupts
205(6)
9.4.1 Interrupts on the LPC1768
208(1)
9.4.2 Testing Interrupt Latency
208(1)
9.4.3 Disabling Interrupts
209(1)
9.4.4 Interrupts From Analog Inputs
210(1)
9.4.5 Conclusion on Interrupts
211(1)
9.5 An Introduction to Timers
211(2)
9.5.1 The Digital Counter
212(1)
9.5.2 Using the Counter as a Timer
212(1)
9.5.3 Timers on the mbed
213(1)
9.6 Using the mbed Timer
213(4)
9.6.1 Using Multiple mbed Timers
214(2)
9.6.2 Testing the Timer Maximum Duration
216(1)
9.7 Using the mbed Timeout
217(5)
9.7.1 A Simple Timeout Application
217(2)
9.7.2 Further Use of Timeout
219(1)
9.7.3 Timeout Used to Test Reaction Time
220(2)
9.8 Using the mbed Ticker
222(4)
9.8.1 Using Ticker for a Metronome
223(2)
9.8.2 Reflecting on Multitasking in the Metronome Program
225(1)
9.9 The Real-Time Clock
226(1)
9.10 Switch Debouncing
226(3)
9.11 Where Do We Go From Here? The Real-Time Operating System
229(2)
9.11.1 The Limits of Conventional Programming
229(1)
9.11.2 Introducing the Real-Time Operating System
230(1)
9.11.3 A Mention of the mbed RTOS
231(1)
9.12 Mini Projects
231(4)
9.12.1 A Self-contained Metronome
231(1)
9.12.2 Accelerometer Threshold Interrupt
231(1)
Chapter Review
232(1)
Quiz
233(1)
References
233(2)
Chapter 10 Memory and Data Management
235(20)
10.1 A Memory Review
235(3)
10.1.1 Memory Types
235(1)
10.1.2 Essential Memory Technologies
235(3)
10.2 Introducing Pointers
238(2)
10.3 Using Data Files With the mbed
240(4)
10.3.1 Reviewing Some Useful C/C++ Library Functions
241(1)
10.3.2 Defining the mbed Local File System
241(1)
10.3.3 Opening and Closing Files
242(1)
10.3.4 Recovering a "Lost" mbed
243(1)
10.3.5 Writing and Reading File Data
243(1)
10.4 Example mbed Data File Access
244(3)
10.4.1 File Access
244(1)
10.4.2 String File Access
245(1)
10.4.3 Using Formatted Data
246(1)
10.5 Using External SD Card Memory With the mbed
247(3)
10.6 Using External USB Flash Memory With the mbed
250(2)
10.7 Mini Project: Accelerometer Data Logging on Exceeding Threshold
252(3)
Chapter Review
253(1)
Quiz
254(1)
References
254(1)
PART II Moving to Advanced and Specialist Applications
255(184)
Chapter 11 Wireless Communication --- Bluetooth and Zigbee
257(40)
11.1 Introducing Wireless Data Communication
257(6)
11.1.1 Some Wireless Preliminaries
257(3)
11.1.2 Wireless Networks
260(1)
11.1.3 A Word on Protocols
261(2)
11.2 Bluetooth
263(11)
11.2.1 Introducing Bluetooth
263(1)
11.2.2 The RN-41 and RN-42 Bluetooth Modules
264(1)
11.2.3 Getting to Know the RN-41
265(3)
11.2.4 Simple Bluetooth: Sending mbed Data to a PC
268(1)
11.2.5 Simple Bluetooth: Receiving Bluetooth Data From a PC
269(1)
11.2.6 More Advanced Bluetooth: Communicating Between Two mbeds
270(4)
11.2.7 Evaluating Bluetooth
274(1)
11.3 Zigbee
274(15)
11.3.1 Introducing Zigbee
274(2)
11.3.2 Introducing XBee Wireless Modules
276(1)
11.3.3 Linking to the XBee From a PC
277(2)
11.3.4 Configuring an XBee Pair
279(1)
11.3.5 Implementing a Zigbee Link with XBee and the mbed
279(5)
11.3.6 Introducing the XBee API
284(1)
11.3.7 Applying the XBee API
285(3)
11.3.8 Conclusion on Zigbee and Further Work
288(1)
11.4 Mini Projects
289(8)
11.4.1 Bluetooth Mini Project
289(1)
11.4.2 Zigbee Mini Project
289(1)
Chapter Review
289(1)
Quiz
290(1)
References
290(7)
Chapter 12 Internet Communication and Control
297(26)
12.1 Introduction to Internet Communication
291(1)
12.2 The Ethernet Communication Protocol
291(6)
12.2.1 Ethernet Overview
291(1)
12.2.2 Implementing Simple mbed Ethernet Communications
292(3)
12.2.3 Ethernet Communication Between mbeds
295(2)
12.3 Local Area Network Communications With the mbed
297(8)
12.3.1 Local Area Network Essentials
297(3)
12.3.2 Using the mbed for Ethernet Network Communications
300(3)
12.3.3 Using the mbed as an HTTP File Server
303(2)
12.4 Using Remote Procedure Calls With the mbed
305(4)
12.4.1 Controlling mbed Outputs With Remote Procedure Calls
306(2)
12.4.2 Using Remote Procedure Call Variables
308(1)
12.5 Using the mbed With Wide Area Networks
309(4)
12.6 The Internet of Things
313(10)
12.6.1 The Internet of Things Concept
313(3)
12.6.2 Opportunities and Challenges for Internet of Things Systems
316(1)
12.6.3 mbed and the Internet of Things
316(3)
Chapter Review
319(1)
Quiz
320(1)
References
321(2)
Chapter 13 Working With Digital Audio
323(42)
13.1 An Introduction to Digital Audio
323(1)
13.2 USB MIDI on the mbed
324(6)
13.2.1 Sending USB MIDI Data From an mbed
324(3)
13.2.2 Reading USB MIDI Data on the mbed
327(3)
13.3 Digital Audio Processing
330(4)
13.3.1 Input and Output of Digital Audio Data With the mbed
330(2)
13.3.2 Signal Reconstruction
332(2)
13.4 Digital Audio Filtering Example
334(6)
13.4.1 Implementing a Digital Low-Pass Filter on the mbed
336(3)
13.4.2 Digital High-Pass Filter
339(1)
13.5 Delay/Echo Effect
340(2)
13.6 Working With Wave Audio Files
342(8)
13.6.1 The Wave Information Header
342(3)
13.6.2 Reading the Wave File Header With the mbed
345(2)
13.6.3 Reading and Outputting Mono Wave Data
347(3)
13.7 High-Fidelity Digital Audio With the mbed
350(11)
13.7.1 Texas Instruments TLV320 Audio Codec and the I2S Protocol
351(1)
13.7.2 Outputting Audio Data From the TLV320
352(4)
13.7.3 High-Fidelity Wave File Player
356(3)
13.7.4 High-Fidelity Audio Input (Recording)
359(2)
13.8 Summary on Digital Audio and Digital Signal Processing
361(1)
13.9 Mini Project: Portable Music Player
361(4)
Chapter Review
361(1)
Quiz
362(1)
References
362(3)
Chapter 14 Letting Co of the mbed Libraries
365(24)
14.1 Introduction: How Much Do We Depend on the mbed API
365(1)
14.2 Control Register Concepts
366(1)
14.3 Digital Input/Output
367(6)
14.3.1 LPC1768 Digital Input/Output Control Registers
367(1)
14.3.2 A Digital Output Application
368(2)
14.3.3 Adding a Second Digital Output
370(1)
14.3.4 Digital Inputs
371(2)
14.4 Getting Deeper Into the Control Registers
373(4)
14.4.1 Pin Select and Pin Mode Registers
373(2)
14.4.2 Power Control and Clock Select Registers
375(2)
14.5 Using the DAC
377(2)
14.5.1 LPC1768 DAC Control Registers
377(1)
14.5.2 A DAC Application
378(1)
14.6 Using the ADC
379(7)
14.6.1 LPC1768 ADC Control Registers
380(1)
14.6.2 An ADC Application
381(3)
14.6.3 Changing ADC Conversion Speed
384(2)
14.7 A Conclusion on Using the Control Registers
386(3)
Chapter Review
386(1)
Quiz
386(1)
References
387(2)
Chapter 15 Hardware Insights: Clocks, Resets, and Power Supply
389(30)
15.1 Hardware Essentials
389(4)
15.1.1 Power Supply and the mbed
389(4)
15.2 Clock Sources and Their Selection
393(9)
15.2.1 Some Clock Oscillator Preliminaries
393(1)
15.2.2 LPC1768 Clock Oscillators and the mbed Implementation
394(2)
15.2.3 Adjusting the Clock Configuration Register
396(2)
15.2.4 Adjusting the Phase-Locked Loop
398(3)
15.2.5 Selecting the Clock Source
401(1)
15.3 Reset
402(3)
15.3.1 Power-On Reset
403(1)
15.3.2 Other Sources of Reset
404(1)
15.4 Toward Low Power
405(4)
15.4.1 How Power Is Consumed in a Digital Circuit
405(2)
15.4.2 A Word on Cells and Batteries
407(2)
15.5 Exploring mbed Power Consumption
409(5)
15.5.1 LPC1768 Current Consumption
410(1)
15.5.2 Switching Unwanted Things Off!
411(1)
15.5.3 Manipulating the Clock Frequency
412(1)
15.5.4 LPC1768 Low-Power Modes
413(1)
15.6 Getting Serious About Low Power; the M0/M0+ Cores and the Zero Gecko
414(5)
15.6.1 The M0 Cortex Core
414(1)
15.6.2 The EFM32 Zero Gecko Starter Kit
414(2)
Chapter Review
416(1)
Quiz
416(1)
References
417(2)
Chapter 16 Developing Commercial Products With mbed
419(20)
16.1 Embedded Systems Design Process
419(3)
16.2 Using mbed-Enabled Platforms in Commercial Products
422(5)
16.3 Implementing the mbed Architecture on a Bespoke Printed Circuit Board
427(1)
16.4 Programming the LPC1768 Directly
428(5)
16.5 Case Study: Irisense Temperature Logger With Touch Screen Display
433(3)
16.6 Closing Remarks
436(3)
Chapter Review
436(1)
Quiz
437(1)
References
437(2)
Appendix A Some Number Systems 439(8)
Appendix B Some C Essentials 447(20)
Appendix C mbed Technical Data 467(6)
Appendix D Parts List 473(4)
Appendix E Using a Host Terminal Emulator 477(6)
Index 483
Tim Wilmshurst has designed numerous embedded and electronic systems, including systems in climatic monitoring, earthquake research, wind tunnels, and autonomous vehicles. He is the author of several textbooks on embedded system design. In his teaching, Tim advocates learning through doing” and problem-based learning. He has been Head of Electrical Engineering at Botswana Polytechnic, Senior Design Engineer at Cambridge University, and Head of Electronics at Derby University. He is now a freelance technical author and educator.

Rob Toulson is a Visiting Professor at the University of Westminster, as well as founder and director of RT Sixty, a company that develops innovative applications for the audiovisual and music industries. His expertise covers a broad range of fields, including mobile application development, digital signal processing, embedded systems, musical acoustics, music production, and interactive sound design.