Designing embedded systems using patterns

In this second introductory chapter, we consider why ‘traditional’ software design techniques provide only limited support for the developers of embedded applications and argue that software patterns can provide a useful adjunct to such techniques. Introduction Most branches of engineering have a long history. Work in the area of control systems, for example, might be […]
Continue reading…

 

Designing embedded systems using patterns:Patterns for time-triggered embedded systems

Patterns for time-triggered embedded systems We found the software patterns described by Gamma et al. (1995) to be useful. However, they were insufficiently specialized for use with time-triggered embedded systems. We therefore began to assemble a collection of patterns based on our experience with the development of applications for the 8051 and other families of […]
Continue reading…

 

Event-triggered systems

Event-triggered systems Many applications are now described as ‘event triggered’ or ‘event driven’. For example, in the case of modern desktop applications, the various running applications must respond to events such as mouse clicks or mouse movements. A key expectation of users is that such events will invoke an ‘immediate’ response. In embedded systems, event-triggered […]
Continue reading…

 

Time-triggered systems

Time-triggered systems The main alternative to event-triggered systems architectures are time-triggered architectures (see, for example, Kopetz, 1997). As with event-triggered architectures, time-triggered approaches are used in both desktop systems and in embedded systems. To understand the difference between the two approaches, consider that a hospital doctor must look after the needs of ten seriously ill […]
Continue reading…

 

What is a time-triggered embedded system?

In this introductory chapter, we consider what is meant by the phrases ‘embedded system’ and ‘time-triggered system’ and we examine how these important areas overlap. Introduction Current software applications are often given one of a bewildering range of labels: ● Information system ● Desktop application ● Real-time system ● Embedded system ● Event-triggered system ● […]
Continue reading…

 

What is a time-triggered embedded system?:Desktop systems

Desktop systems The desktop / workstation environment plays host to many information systems, as well as general-purpose desktop applications, such as word processors. A common characteristic of modern desktop environments is that the user interacts with the application through a high-resolution graphics screen, plus a keyboard and a mouse (Figure 1.3). In addition to this […]
Continue reading…

 

What is a time-triggered embedded system?:Real-time systems

Real-time systems Users of most software systems like to have their applications respond quickly: the difference is that in most information systems and general desktop applications, a rapid response is a useful feature, while in many real-time systems it is an essential feature. Consider, for example, the greatly simplified aircraft autopilot application illustrated schematically in […]
Continue reading…

 

Learning to think co-operatively:Hardware timeout

Hardware timeout Context ● You are developing an embedded application using one or more members of the 8051 family of microcontrollers. ● The application has a time-triggered architecture, constructed using a scheduler. Problem How do you produce well-defined timeout behaviour so that, for example, you can respond within exactly 0.5 ms if an expected event […]
Continue reading…

 

Learning to think co-operatively:Loop timeout

Loop timeout Context ● You are developing an embedded application using one or more members of the 8051 family of microcontrollers. ● The application has a time-triggered architecture, constructed using a scheduler. Problem How do you ensure that your system will not ‘hang’ while waiting for a hardware operation (such as an AD conversion or […]
Continue reading…