Patterns for Time-Triggered Embedded Systems : Building Reliable Applications with the 8051 Family of Microcontrollers

Overview

'These patterns stand as an example of how much more can be done with patterns than is commonly attempted. Patterns at their best bridge the gap between problem and solution. They connect human needs and emotions with technology. And they open up new possibilities for people who just have a problem to solve.'
—from the Foreword by Kent Beck

This book provides the first comprehensive set of software patterns to support the development of embedded software systems. With a focus on reliability, it discusses ...

See more details below
Available through our Marketplace sellers.
Other sellers (Other Format)
  • All (3) from $108.17   
  • Used (3) from $108.17   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$108.17
Seller since 2012

Feedback rating:

(56)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Acceptable
2001 This is an ex-library book and may have the usual library/used-book markings inside. This book has hardback covers. In fair condition, suitable as a study copy. No dust ... jacket., 2050grams, ISBN: 9780201331387. *****PLEASE NOTE: This item is shipping from an authorized seller in Europe. In the event that a return is necessary, you will be able to return your item within the US. To learn more about our European sellers and policies see the BookQuest FAQ section***** Read more Show Less

Ships from: Lincoln, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
$174.50
Seller since 2014

Feedback rating:

(267)

Condition: Good
Possible retired library copy, some have markings or writing. May or may not include accessories such as CD or access codes.

Ships from: Chatham, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$188.50
Seller since 2012

Feedback rating:

(1)

Condition: Like New
Lebanon, Indiana, U.S.A. 2001 Hardcover 1st Edition As New in Fine jacket Book The book looks like new, unread and clean. Edges are sharp and fine. No tears or creases. No ... stains, writing or reminder marks. The binding is straight and tight. The book itself is very nice. Comes withunsealed CD-Rom. Read more Show Less

Ships from: Mississauga, Canada

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by
Sending request ...

Overview

'These patterns stand as an example of how much more can be done with patterns than is commonly attempted. Patterns at their best bridge the gap between problem and solution. They connect human needs and emotions with technology. And they open up new possibilities for people who just have a problem to solve.'
—from the Foreword by Kent Beck

This book provides the first comprehensive set of software patterns to support the development of embedded software systems. With a focus on reliability, it discusses techniques for the design and implementation of software for embedded applications based on the popular 8051 microcontroller family.

You will find more than seventy software patterns, complete with guidelines to help you apply these techniques in your own projects. The author offers practical materials and advice advice for rapidly creating a wide range of different embedded applications. Using a substantial number of detailed examples, ranging from simple to complex systems, this book covers:

  • the design & implementation of complete scheduler operating systems for embedded applications involving one or more microcontrollers
  • creation of user interfaces with components including switches, keypads, LED displays and LCDs
  • effective use of networking and communication protocols
  • design of monitoring and control systems using, for example, PID algorithms and PWM


Features:

  • extensive examples which illustrate how the patterns described may be applied in real-world projects
  • an associated WWW site with a collection of detailed case studies
  • accCD-ROM containing:
    • full source code in C for all patterns & examples, including a number of complete schedulers
    • an evaluation version of industry-standard Keil C compiler & hardware simulator, allowing examples to be tested without the need to purchase additional hardware




Read More Show Less

Product Details

  • ISBN-13: 9780201331387
  • Publisher: Addison-Wesley
  • Publication date: 7/12/2001
  • Series: ACM Press Series
  • Pages: 1024
  • Product dimensions: 7.66 (w) x 9.56 (h) x 2.10 (d)

Read an Excerpt

PREFACE:

Embedded software is ubiquitous. It forms a core component of an enormous range of systems, from aircraft, passenger cars and medical equipment, to children's toys, video recorders and microwave ovens. This book provides a complete and coherent set of software patterns to support the development of this type of application.

The remainder of this preface attempts to provide answers to more detailed questions which prospective readers may have about the contents.

I What are the key features of this book?

The focus is on the rapid development of software for time-triggered, embedded systems, using software patterns. The meaning of 'time triggered' is explained in Chapter 1; software patterns are introduced in Chapter 2.

The systems are all based on microcontrollers, from the widely used 8051 family. This vast family of 8-bit devices is manufactured by a number of companies, including Philips, Infineon, Atmel, Dallas, Texas Instruments and Intel. The range of different 8051 microcontrollers available is reviewed in Chapter 3.

Time-triggered techniques are the usual choice in safety-related applications, where reliability is a crucial design requirement. However, the need for reliability is not restricted to systems such as drive-by-wire passenger cars, aerospace systems or monitoring systems for industrial robots: even at the lowest level, an alarm clock that fails to sound on time or a video recorder that operates intermittently may not have safety implications but, equally, will not have high sales figures. The patterns presented here allow time-triggered techniques to be simply and cost-effectively applied in virtually anyembedded project.

The applications discussed in detail must carry out tasks or respond to events over time intervals measured in milliseconds. This level of response can be economically and reliably achieved, even with an 8-bit microcontroller, using the approaches discussed in this book.

The software is implemented entirely in 'C'. All of the examples in the book appear, in full, on the enclosed CD.

The book is supported by a WWW site which includes, among other features, a wide range of detailed case studies, additional technical information and links to sources of further information (...

Read More Show Less

Table of Contents

Foreword
Preface
Introduction 1
1 What is a time-triggered embedded system? 3
2 Designing embedded systems using patterns 15
Pt. A Hardware foundations 27
3 The 8051 microcontroller family 29
4 Oscillator hardware 53
5 Reset hardware 67
6 Memory issues 81
7 Driving DC loads 109
8 Driving AC loads 148
Pt. B Software foundations 159
9 A rudimentary software architecture 161
10 Using the ports 173
11 Delays 193
12 Watchdogs 215
Pt. C Time-triggered architectures for single-processor systems 229
13 An introduction to schedulers 231
14 Co-operative schedulers 254
15 Learning to think co-operatively 297
16 Task-oriented design 316
17 Hybrid schedulers 332
Pt. D The user interface 359
18 Communicating with PCs via RS-232 361
19 Switch interfaces 397
20 Keypad interfaces 433
21 Multiplexed LED displays 449
22 Controlling LCD panels 465
Pt. E Using serial peripherals 491
23 Using 'I[superscript 2]C' peripherals 493
24 Using 'SPI' peripherals 520
Pt. F Time-triggered architectures for multiprocessor systems 537
25 An introduction to shared-clock schedulers 539
26 Shared-clock schedulers using external interrupts 553
27 Shared-clock schedulers using the UART 608
28 Shared-clock schedulers using CAN 675
29 Designing multiprocessor applications 711
Pt. G Monitoring and control components 725
30 Pulse-rate sensing 727
31 Pulse-rate modulation 741
32 Using analogue-to-digital converters (ADCs) 756
33 Pulse-width modulation 807
34 Using digital-to-analog converters (DACs) 840
35 Taking control 860
Pt. H Specialized time-triggered architectures 891
36 Reducing the system overheads 893
37 Increasing the stability to the scheduling 931
38 What this book has tried to do 941
39 Collected references and bibliography 946
App. A: The design notation and CASE tool 957
App. B: Guide to the CD 980
App. C: Guide to the WWW site 982
Index 985
Read More Show Less

Preface

Embedded software is ubiquitous. It forms a core component of an enormous range of systems, from aircraft, passenger cars and medical equipment, to children's toys, video recorders and microwave ovens. This book provides a complete and coherent set of software patterns to support the development of this type of application.

The remainder of this preface attempts to provide answers to more detailed questions which prospective readers may have about the contents.

I What are the key features of this book?

The focus is on the rapid development of software for time-triggered, embedded systems, using software patterns. The meaning of 'time triggered' is explained in Chapter 1; software patterns are introduced in Chapter 2.

The systems are all based on microcontrollers, from the widely used 8051 family. This vast family of 8-bit devices is manufactured by a number of companies, including Philips, Infineon, Atmel, Dallas, Texas Instruments and Intel. The range of different 8051 microcontrollers available is reviewed in Chapter 3.

Time-triggered techniques are the usual choice in safety-related applications, where reliability is a crucial design requirement. However, the need for reliability is not restricted to systems such as drive-by-wire passenger cars, aerospace systems or monitoring systems for industrial robots: even at the lowest level, an alarm clock that fails to sound on time or a video recorder that operates intermittently may not have safety implications but, equally, will not have high sales figures. The patterns presented here allow time-triggered techniques to be simply and cost-effectively applied in virtually anyembedded project.

The applications discussed in detail must carry out tasks or respond to events over time intervals measured in milliseconds. This level of response can be economically and reliably achieved, even with an 8-bit microcontroller, using the approaches discussed in this book.

The software is implemented entirely in 'C'. All of the examples in the book appear, in full, on the enclosed CD.

The book is supported by a WWW site which includes, among other features, a wide range of detailed case studies, additional technical information and links to sources of further information (http://www.engg.le.ac.uk/books/Pont).

II How do you build time-triggered embedded systems?

The time-triggered systems in this book are created using schedulers. Briefly, a scheduler is a very simple 'operating system' suitable for use in embedded applications (see Chapter 13 for a detailed introduction to this topic). A range of complete scheduler architectures for applications involving a single microcontroller is described and illustrated (Chapters 14 to 17). Complete source code for a number of different schedulers is included on the CD.

Like an increasing number of applications, many of the systems presented here involve the use of more than one microcontroller: a range of shared-clock scheduler architectures that can support this type of application is described (Chapters 25 to 29). Many of these systems make use of popular serial standards, including the CAN bus and RS-485.

A selection of more specialized scheduler architectures is also presented (in Part H). This includes a 'stable' scheduler that can provide very precise timing over long periods, a scheduler optimized to run a single task and general-purpose schedulers designed for low-power and/or low-memory applications (see Chapters 36 and 37).

III What other topics are discussed in the book?

All embedded systems involve some hardware design and suitable hardware foundations are presented. These include designs for oscillator and reset circuits and techniques for connecting external ROM and RAM memory (see Chapters 4, 5 and 6). These also include interface circuits suitable for use with low- and high-voltage DC and AC loads (see Chapters 7 and 8).

Suitable software foundations are also presented, including a simple architecture for embedded applications (Chapter 9), techniques for controlling port pins (Chapter 10), techniques for generating delays (Chapter 11) and techniques for using watchdog timers (Chapter 12).

A key part of the user interface of some embedded applications is an RS-232 link to a desktop or notebook PC, while many other embedded systems have a user interface created using an LCD or LED display along with a small collection of switches and/or a keypad. Techniques for working with these different interface components are presented in Chapters 18 to 22.

Many modern different peripheral devices (LCDs, LED displays, EEPROMs, A-D and D-A devices and so on) now have a serial interface, with the result that these devices can be connected to a microcontroller without consuming large numbers of port pins. Complete software libraries for the two main serial communication protocols (I2C and SPI) are presented in Chapters 23 and 24.

Techniques suitable for use in condition monitoring and control applications are presented in Part G. This includes a discussion of 'PID control'. Again, detailed code libraries are provided (Chapter 30 to Chapter 35).

IV Who should read this book?

I had three main groups of people in mind as I wrote this book:

  • Software engineers with previous experience of desktop systems now beginning to work with embedded systems.
  • Hardware engineers who wish to understand more about the software issues involved in the development of embedded systems.
  • University and college students on 'electronic and software engineering', 'software engineering', 'computer science', 'electronic engineering' or similar programmes who are taking advanced modules in embedded systems.


It must be emphasized that this book is not intended for those requiring an introduction to programming and it is expected that readers will have previously developed 'desktop' software applications, using C, C++ or a similar high-level language. Readers with less experience in this area may find it useful to have a copy of an introductory book on 'C', such as Herbert Schildt's Teach Yourself C (Schildt, 1997)1 by their side as they read this book.

Similarly, some familiarity with the principles of software design is assumed. Here, some experience with 'object-oriented' design, and 'process-oriented' design ('structured analysis') will be useful. Readers with less experience in this area may find it useful to have a copy of my previous introductory book on software design (Pont, 1996) by their side.

Finally, some very basic electronics knowledge is also useful. Readers without hardware design experience may find it useful to hav available a copy of The Art of Electronics (Horowitz and Hill, 1989).

V What type of microcontroller hardware is used?

The market for microcontrollers is vast. Most current estimates suggest that, for every processor sold for a desktop PC, 100 microcontrollers are sold for embedded systems.

As the sub-title suggests, this book focuses on the 8051 family of microcontrollers, which was originally developed by Intel, but is now produced, in more than 300 different forms, by a wide range of companies, including Philips, Infineon, Atmel and Dallas. The use of the 8051 family is no accident. Together, sales of this vast family are estimated to account for more than 50% of the 8-bit microcontroller market and to have the largest share (around 30%) of the microcontroller market as a whole.

Note that in this book I consider not only recent versions of the 'standard' 8051 (4 ports, 40/44 pins: e.g. the Atmel 89C52; Dallas 89C420; Infineon C501; Philips 89CRD2), but the full range of modern devices, including the 'small' 8051s (two ports, 20/24 pins: e.g. the Atmel 89C4051; Philips 87LPC764) and the 'extended' 8051s (up to ten ports, ~100 pins, CAN, ADC, etc. on chip: e.g. Infineon C509; Infineon C515c; Dallas 80c390).

VI What's on the CD?

The CD includes complete source code files for all the software patterns: as mentioned above, all of this code is in the 'C' programming language.

The source code for these patterns is fully compatible with the industry-standard Keil C compiler. An evaluation version of this compiler, and a complete hardware simulator, is also included on the CD: this allows the majority of the patterns to be explored on a desktop PC without the need to purchase or construct any hardware at all.

Finally, data sheets (in PDF format) for a large number of 8051 microcontroller are also included on the CD.

VII What about the WWW site?

There is a WWW site associated with this book, at the following URL: http://www.engg.le.ac.uk/books/Pont

On this site you will find:

  • A set of detailed case studies describing the application of the techniques discussed in this book in a series of small and large projects.
  • Bug reports and code updates (please see section X, which follows).
  • Further code samples.
  • Links to other relevant sites.


VIII Is the code 'free ware'?

The code included in this book took many years to produce. It is not 'free ware' and is subject to some simple copyright restrictions. These are as follows:

  • Having purchased a copy of this book, you are entitled to use the code listed in this book and included on the CD in your projects, should you choose to do so. If you use the code in this way, then no run-time royalties are due. However, I would appreciate it if you acknowledged the source of the code in the product documentation.
  • If there are ten developers in your team using code adapted from this book, please purchase ten copies of the book.
  • You may not, under any circumstances, publish any of the source code included in the book or on the CD, in any form or by any means, without explicit written authorization from me. If you wish to publish limited code fragments then, in most circumstances, I will grant this permission, subjec acknowledgement accompanying the published material. If you wish to publish more substantial code listings, then payment of a fee may be required.
Please contact me for further details.

IX How should this book be read?

While writing this book, I had two types of reader in mind: those who like to read a book from cover to cover and those who prefer to treat a book like this as a reference source, to be first skim read and then opened, as needed, during the course of a project.

To match the needs of the cover-to-cover readers, the material follows in a logical order, from the introductory and foundation material, through to more advanced material. To make it easy to read in this way, I have tried to ensure that the delivery of information is as sequential as possible: that is, that the material needed to understand (say) Chapter 14 is presented in Chapters 1 to 13.

For use as a work of reference, I suggest that readers first read (or at least skim) the introductory chapters (1 and 2, plus 3, 9, 13 and 25): together, these chapters will provide a good overview of the material presented elsewhere in the book.

X What about bug reports and code updates?

There is huge amount of code involved in this project, both in the book itself and on the associated CD. I have personally tested all of the code that appears here. Nonetheless, errors can creep in.

If you think you have found a bug, please first check the WWW site (see earlier section VII), to see if anyone else has picked up the error: if they have, a code correction will have been made available.

If you have found a bug not listed on the WWW site, please send me an e-mail (the address is at the end of this preface) and I will do my best to help.

I will be also be pleased to mention anyone who spots a bug in subsequent editions.

XI What about other reader comments?

I began my first 8051 project in 1986 and I have tried to write the book that I needed at this time. Only you can tell me if I have succeeded.

I would appreciate your comments and feedback. For example, should the book be longer? Shorter? What other areas should I cover? What should I miss out? Would you like to see a future edition focusing on a different family of microcontrollers? If so, which one?

To ensure that any future editions continue to provide the information you need, I would be delighted to hear of your experiences (good or bad) using the book. I can be contacted either by post (via the publishers, please), or much more efficiently by e-mail at the address given at the end of this Preface.

I'll do my best to respond personally and promptly to every communication.

XII Credit where credit is due

The material presented here has evolved substantially in the three years since I began work on this project. The creation and subsequent development of this material would not have been possible without the help and support of a great many people.

In particular, I would like to thank:

  • Kent Beck (Three Rivers Institute) for providing the Foreword and introducing me to Ray.
  • The Engineering and Physical Sciences Research Council (EPSRC) and the (then) Science and Engineering Research Council (SERC), which have funded most of my research in this area.
  • Staff at a r UK and European organizations who have employed me as a consultant and / or attended my training courses in software development over the last decade and from whom I - in turn - have learned an enormous amount about embedded systems, software design and programming.


Various people associated with the EuroPlop (1999) conference:

  • Fiona Kinnear (then at Addison-Wesley) for suggesting that I should attend.
  • My 'shepherd', Ward Cunningham, for making me revise my submission to take into account more of the ideas and philosophy of this book: as Ward predicted, the revised version provoked much useful debate.
  • All the people who took the time to comment on my draft patterns: of these people, Kent Beck deserves a particular mention as he provided numerous constructive comments and general support.
  • The members of the Midlands Patterns Group for numerous helpful suggestions and ideas.


Various people who have acted as reviewers during the evolution of this text:

  • Michael Jackson (University of Wolverhampton) for invaluable comments on my early ideas for the first version of this book.
  • Chris Hills (Keil Software), Niall Murphy (PanelSoft) and David Ward (The Motor Industry Research Association), who provided many useful comments on the first complete draft of this book.
  • Mark Banner (University of Leicester) for providing useful comments on several of the final draft chapters.


Various people at the University of Leicester:

  • Members of the 'Frankenstein' group for inviting me to give my first talk on patterns and, through their enthusiasm and feedback, fi presented here had some validity.
  • Royan Ong, who has taught me a great deal about hardware design over the last two years.
  • Dave Dryden and Andy Willby for feedback on my hardware designs.
  • Andrew Norman, for creating the first version of the SPI library in Chapter 24 and - more generally - for finding numerous 'features' in my designs and code since 1992.
  • James Andrew, Adrian Banks, Mark Banner, Mathew Hubbard, Andrei Lesiapeto, Hitesh Mistry, Alastair Moir, Royan Ong, Chinmay Parikh, Keiron Skillett, Robert Smith, Thomas Sorrel, and Neil Whitworth, for destructive testing of many of the code examples.
  • The people who 'saved my life' when my computer went up in smoke in March 2000, when the first draft of this book was (over)due at the publishers, in particular Andy Willby and Jason Palmer.
  • Other members of staff for help and advice during the course of this project, including Declan Bates, Dave Dryden, Chris Edwards, Ian Jarvis, Fernando Schlindwein and Maureen Strange.
  • Ian Postlethwaite, for allowing me time to complete this large project.


Bob Damper (University of Southampton) who introduced me to the challenges of speech recognition using the 8051 family in the mid-1980s.

People at Keil Software:

  • Reinhard Keil, for his support and for providing an updated CD at the last minute.
  • Chris Hills, for much useful advice.


The members of various e-mail pattern and microcontroller lists for numerous helpful comments and suggestions.

Various people at Addison-Wesley Longman and Pearson Education:

  • Sally Mortimore (then of AWL) for letting me constantly chan this book.
  • Alison Birtwell for stepping courageously into Sally's shoes when Sally could take it no longer.
  • Katherin Ekstrom for answering all my e-mails.
  • Penelope Allport, for smooth management of the final production process.
  • Helen Baxter, for careful copy editing.
  • George Moore, for proof reading the final, vast, document.
  • Isobel McLean, for the index.
  • Everyone at Pantek, for the typesetting.


Gordon Pont and Andrew Pont for proof reading.

Last, but not least:

  • Sarah, for supporting me throughout the last three years.
  • Fiona, Mark, Siobhan and Clare, for teaching me how to fly kites.
  • Anna, Nick and Ella, for numerous Friday nights.
  • Lisa and Mike, for Tuscany.
  • Cass and Kynall Washington, for always being there.
  • Radiohead, for keeping me sane.


Michael J. Pont
Great Dalby, May 2001
M.Pont@leicester.ac.uk



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
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted April 9, 2003

    good case for cooperative scheduling

    The author makes a good case for cooperative scheduling however it is buried rather deeply in the concept of 'patterns' which is just a format for presenting information in the book rather than anything to do with programming. I read halfway through the book before I figured out that 'patterns' had distracted me from learning what I wanted thus the emphasis on 'patterns' was self defeating in my instance. Once you get past that, there was good information, though VERY short, on cooperative scheduling, which is the jewel of the book.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

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