Fast and Effective Embedded Systems Design: Applying the ARM mbed [NOOK Book]

Overview

  • A hands-on introduction to the field of embedded systems;
  • A focus on fast prototyping of embedded systems;
  • All key embedded system concepts covered through simple and effective experimentation;
  • An understanding of ARM technology, one of the world’s leaders;
  • A practical introduction to embedded C;
  • Applies ...
See more details below
Fast and Effective Embedded Systems Design: Applying the ARM mbed

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$59.95
BN.com price

Overview

  • A hands-on introduction to the field of embedded systems;
  • A focus on fast prototyping of embedded systems;
  • All key embedded system concepts covered through simple and effective experimentation;
  • An understanding of ARM technology, one of the world’s leaders;
  • A practical introduction to embedded C;
  • Applies possibly the most accessible set of tools available in the embedded world.

 This book is an introduction to embedded systems design, using the ARM mbed and C programming language as development tools.

The mbed provides a compact, self-contained and low-cost hardware core, and the on-line compiler requires no download or installation, being accessible wherever an internet link exists. The book further combines these with a simple "breadboard" approach, whereby simple circuits are built up around the mbed, with no soldering or pcb assembly required.

The book adopts a "learning through doing" approach. Each chapter is based around a major topic in embedded systems. The chapter proceeds as a series of practical experiments; the reader sets up a simple hardware system, develops and downloads a simple program, and immediately observes and tests the outcomes. The book then reflects on the experimental results, evaluating the strengths and weaknesses of the technology or technique introduced, explores how precise the link is between theory and practice, and considers applications and the wider context.



  • The only book that explains how to use ARM’s mbed development toolkit to help the speedy and easy development of embedded systems.
  • Teaches embedded systems core principles in the context of developing quick applications, making embedded systems development an easy task for the non specialist who does not have a deep knowledge of electronics or software
  • All key concepts are covered through simple and effective experimentation

Read More Show Less

Editorial Reviews

From the Publisher

"The authors address a wide range of topics, including digital and analog input and output, interrupts, LCDs, and digital signal processing. The book provides deep insights into computer architecture, memory management, and input/output processes…Overall, this is a great book for computer hobbyists, embedded systems engineers, and students."--ComputingReviews.com, October 28, 2013 "Toulson…and Wilmshurst…explain how to program circuits on ARM's mbed microprocessor-based hardware platform and provide instructions for building a digital-to-analog converter, serial data links, and a liquid crystal display."--Reference and Research Book News, February 2013

Read More Show Less

Product Details

  • ISBN-13: 9780080977690
  • Publisher: Elsevier Science
  • Publication date: 7/3/2012
  • Sold by: Barnes & Noble
  • Format: eBook
  • Pages: 400
  • File size: 8 MB

Meet the Author

Dr Rob Toulson is Director of The Sound and Audio Engineering Research Group at Anglia Ruskin University (ARU). Rob is also Pathway Leader for MSc Audio and Video Technology and he lectures on Electronics and Audio and Music Technology undergraduate pathways. He holds a PhD in the field of digital signal processing (awarded by ARU in 2004) and a first degree in Mechanical Engineering from Loughborough University (1999). Dr Toulson has a number of year’s industrial experience in digital signal analysis, control systems design, rapid prototyping, and model based design, as well as commercial experience in sound engineering and music production. He is supervisor for a number of funded knowledge transfer and research projects at ARU, as well as an active PhD student supervisor.

Tim Wilmshurst is the author of Designing Embedded Systems with PIC Microcontrollers. He has been designing embedded systems since the early days of microcontrollers. For many years this was for Cambridge University, where he led a development team building original systems for research applications - for example in measurement of bullet speed, wind tunnel control, simulated earthquakes, or seeking a cure to snoring. Now he is Head of Electronic Systems at the University of Derby, where he aims to share his love of engineering design with his students.

Read More Show Less

Read an Excerpt

Fast and Effective Embedded Systems Design

Applying the ARM mbed
By Rob Toulson Tim Wilmshurst

Newnes

Copyright © 2012 Rob Toulson and Tim Wilmshurst
All right reserved.

ISBN: 978-0-08-097769-0


Chapter One

Embedded Systems, Microcontrollers and ARM

Chapter Outline 1.1 Introducing Embedded Systems 3 1.1.1 What is an Embedded System? 3 1.1.2 An Example Embedded System 5 1.2 Microprocessors and Microcontrollers 6 1.2.1 Some Computer Essentials 7 1.2.2 The Microcontroller 8 1.3 Development Processes in Embedded Systems 9 1.3.1 Programming Languages: What is so Special about C/C++? 9 1.3.2 The Development Cycle 10 1.4 The World of ARM 11 1.4.1 A Little History 12 1.4.2 Some Technical Detail: What does this RISC Word Mean? 13 1.4.3 The Cortex Core 14 Chapter Review 15 Quiz 15 References 16

1.1 Introducing Embedded Systems

1.1.1 What is an Embedded System?

We are all familiar with the idea of a desktop or laptop computer, and the amazing processing that they can do. These computers are general purpose; we can get them to do different things at different times, depending on the application or program we run on them. At the very heart of such computers is a microprocessor, a tiny and fantastically complicated electronic circuit which contains the core features of a computer. All of this is fabricated on a single slice of silicon, called an integrated circuit (IC). Some people, particularly those who are not engineers themselves, call these circuits microchips, or just chips.

What is less familiar to many people is the idea that instead of putting a microprocessor in a general-purpose computer, it can also be placed inside a product which has nothing to do with computing, like a washing machine, toaster or camera. The microprocessor is then customized to control that product. The computer is there, inside the product; but it cannot be seen, and the user probably does not even know it is there. Moreover, those add-ons that are normally associated with a computer, like keyboard, screen or mouse, are nowhere to be seen. Such products are called embedded systems, because the computer that controls them is embedded right inside. Because they tend to focus on control, in many cases the microprocessors used in embedded systems develop different characteristics from the ones used in more general-purpose machines. They are called microcontrollers. Although much less visible than their microprocessor cousins, microcontrollers sell in far greater volume and their impact has been enormous. To the electronic and system designer they offer huge opportunities.

Embedded systems come in many forms and guises. They are extremely common in the home, the motor vehicle and the workplace. Most modern domestic appliances, like washing machines, dishwashers, ovens, central heating and burglar alarms, are embedded systems. The motor car is full of them, in engine management, security (for example, locking and antitheft devices), air-conditioning, brakes, radio, and so on. They are found across industry and commerce, in machine control, factory automation, robotics, electronic commerce and office equipment. The list has almost no end, and it continues to grow.

Figure 1.1 expresses the embedded system as a simple block diagram. There is a set of inputs from the controlled system. The embedded computer, usually a microcontroller, runs a program dedicated to this application, permanently stored in its memory. Unlike the general-purpose desktop computer, which runs many programs, this is the only program it ever runs. Based on information supplied from the inputs, the microcontroller computes certain outputs, which are connected to things like actuators within the system. The actual electronic circuit, along with any electromechanical components, is often called the hardware; the program running on it is often called the software. Aside from all of this, there may also be interaction with a user, for example via keypad and display, and there may be interaction with other subsystems elsewhere, although neither of these is essential to the general concept. One other variable will affect all that we do in embedded systems, and this is time, represented as a dominating arrow which cuts across the figure. We will need to be able to measure time, make things happen at precisely predetermined times, generate data streams or other signals with a strong time dependence, and respond to unexpected things in a timely fashion.

This chapter introduces or reviews many concepts relating to computers, microprocessors, microcontrollers and embedded systems. It does this in overview form, to give a platform for further learning. We return to most concepts in later chapters, building on them and adding detail. More details can also be found in Reference 1.1.

1.1.2 An Example Embedded System

A snack vending machine is a good example of an embedded system. One is represented in Figure 1.2, in block diagram form. At its heart is a single microcontroller. As the diagram shows, this accepts a number of input signals, from the user keypad, the coin-counting module and the dispensing mechanism itself. It generates output signals dependent on those inputs.

A hungry customer may approach the machine and start jabbing at the buttons or feeding in coins. In the first case, the keypad sends signals back to the microcontroller, so that it can recognize individual keys pressed and then hook these key values together to decipher a more complex message. The coin-counting module will also send information on the amount of money paid. The microcontroller will attempt to make deductions from the information it receives and will output status information on the liquid crystal display. Has a valid product been selected? Has enough money been paid? If yes, then it will energize an actuator to dispense the product. If no, it will display a message asking for more money or a re-entry of the product code. A good machine will be ready to give change. If it does dispense, there will be sensors on the mechanism to ensure that the product is available, and finally that the action is complete. These are shown in the diagram as gate position sensors. A bad machine (and haven't we all met these?) will give annoying or useless messages on its display, demand more money when you know you've given the right amount, or leave that chocolate bar you desperately want teetering on a knife-edge, not dropping down into the dispensing tray.

What has been described so far is a fairly conventional machine. We can, however, take it further. In modern vending systems there might be a mobile communications feature which allows the vending machine to report directly to the maintenance team if a fault is diagnosed; they will then come and fix the fault. Similarly, the machine might report stock levels through mobile or Internet communications to allow the service team to visit and replenish whenever supplies run low.

This simple example reflects exactly the diagram of Figure 1.1. The microcontroller accepts input variables, makes calculations and decisions with this, and generates outputs in response. It does this in a timely manner, and correct use of time is implicit in these actions. There is in this case a user interface, and in a modern machine there is a network interface. While the above paragraphs seem to be describing the physical hardware of the system, in fact it is all controlled by the software that the designer has written. This runs in the microcontroller and determines what the system actually does.

1.2 Microprocessors and Microcontrollers

Let us go back to the microcontroller, which sits at the heart of any embedded system. As the microcontroller is in essence a type of computer, it will be useful for us to get a grasp on basic computer details. We do this in complete overview here, but return to some of these features in later chapters.

1.2.1 Some Computer Essentials

Figure 1.3 shows the essential elements of any computer system. As its very purpose for existence, a computer can perform arithmetic or logical calculations. It does this in a digital electronic circuit called the arithmetic logic unit (ALU). The ALU is placed within a larger circuit, called the central processing unit (CPU), which provides some of the supporting features that it needs. The ALU can undertake a number of simple arithmetic and logic calculations. Which one it does depends on a code which is fed to it, called an instruction. Now we are getting closer to what a computer is all about. If we can keep the ALU busy, by feeding it a sensible sequence of instructions, and also pass it the data it needs to work on, then we have the makings of a very useful machine indeed.

The ability to keep feeding the ALU with instructions and data is provided by the control circuit which sits around it. It is worth noting that any one of these instructions performs a very simple function. However, because the typical computer runs so incredibly fast, the overall effect is one of very great computational power. The series of instructions is called a program, normally held in an area of memory called program memory. This memory needs to be permanent. If it is, then the program is retained indefinitely, whether power is applied or not, and it is ready to run as soon as power is applied. Memory like this, which keeps its contents when power is removed, is called non-volatile memory. The old-fashioned name for this is read only memory (ROM). This latter terminology is still sometimes used, even though it is no longer accurate for new memory technology. The control circuit needs to keep accessing the program memory, to find out what the next instruction is. The data that the ALU works on may be drawn from the data memory, with the result placed there after the calculation is complete. Usually this is temporary data. This memory type therefore need not be permanent, although there is no harm if it is. Memory that loses its contents when power is removed is called volatile memory. The old-fashioned name for this type of memory is random access memory (RAM). This terminology is still used, although it conveys little useful information.

To be of any use, the computer must be able to communicate with the outside world, and it does this through its input/output (I/O). On a personal computer this implies human interaction, through things like the keyboard, visual display unit (VDU) and printer. In an embedded system, at least a simple one, the communication is likely to be primarily with the physical world around it, through sensors and actuators. Data coming in from the outside world might be quickly transferred to the ALU for processing, or it might be stored in data memory. Data being sent out to the outside world is likely to be the result of a recent calculation in the ALU.

Finally, there must be data paths between each of these main blocks, as shown by the block arrows in the diagram. These are collections of wires, which carry digital information in either direction. One set of wires carries the data itself, for example from program memory to the CPU; this is called the data bus. The other set of wires carries address information and is called the address bus. The address is a digital number that indicates which place in memory the data should be stored in, or retrieved from. The wires in each of the data and address buses could be tracks on a printed circuit board or interconnections within an IC.

One of the defining features of any computer is the size of its ALU. Simple, old processors were 8 bit, and some of that size still have useful roles to play. This means that, with their 8 bits, they can represent a number between 0 and 255. (Check Appendix A if you are unfamiliar with binary numbers.) More recent machines are 32 or 64 bit. This gives them far greater processing power, but adds to their complexity. Given an ALU size, it generally follows that many other features take the same size, for example memory locations, data bus, and so on.

As already suggested, the CPU has an instruction set, which is a set of binary codes that it can recognize and respond to. For example, certain instructions will require it to add or subtract two numbers, or store a number in memory. Many instructions must also be accompanied by data, or addresses to data, on which the instruction can operate. Fundamentally, the program that the computer holds in its program memory and to which it responds is a list of instructions taken from the instruction set, with any accompanying data or addresses that are needed. Such code is sometimes called machine code, to distinguish it from other versions of the program that we may also develop.

(Continues...)



Excerpted from Fast and Effective Embedded Systems Design by Rob Toulson Tim Wilmshurst Copyright © 2012 by Rob Toulson and Tim Wilmshurst. Excerpted by permission of Newnes. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Read More Show Less

Table of Contents

INTRODUCTION 1 EMBEDDED SYSTEMS, MICROCONTROLLERS and ARM 2 INTRODUCING the MBED 3. DIGITAL INPUT and OUTPUT 4. ANALOG OUTPUT 5. ANALOG INPUT 6 FURTHER PROGRAMMING TECHNIQUES 7. STARTING with SERIAL COMMUNICATIONS 8. LIQUID CRYSTAL DISPLAYS 9. INTERRUPTS, TIMERS and TASKS 10 MEMORY and DATA MANAGEMENT 11 An INTRODUCTION to DIGITAL SIGNAL PROCESSING 12 ADVANCED SERIAL COMMUNICATIONS 13 An INTRODUCTION to CONTROL SYSTEMS 14 LETTING GO of the MBED LIBRARIES 15 EXTENSION PROJECTS APPENDIX A: SOME NUMBER SYSTEMS APPENDIX B: SOME C ESSENTIALS APPENDIX C: MBED TECHNICAL DATA APPENDIX D: PARTS LIST APPENDIX E: The TERA TERM TERMINAL EMULATOR

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)