1.1.1 Definition and functions
All of us are familiar with personal computers (PCs), laptop computers, workstation computers, supercomputers and so on. All computers have a common feature; they contain both hardware and software, integrated and packaged into one device. In hardware, modern computers have microprocessors and programmable integrated circuits to perform computing functions. In software, computers have both machine-level instructions and advanced programming languages to produce layers of program structure composed of firmware, the operating system and application programs.
In industry control systems are used in a large range of applications. For example, in factories, chemical reactors can be connected to a computer to monitor the volumes of solutions; in petrol stations, fuel pumps are connected to computers to display the volumes and prices of fuel taken; in supermarkets, cameras are connected to computers to monitor customersā activities. All of these examples are defined as computer control.
In computer control, the computers playing the role of controller are neither inside the controlled devices nor incorporated into the controlled systems. In this case, both the input and output ports are connected to the devices or systems to be controlled. Using these interfaces, computers can read and send digital data to and from the controlled device/system. With such communications, computers fulfil their control functions.
In the 1970s, modern computers with microprocessors and programmable integrated-circuits first became available, and industries started using them in some production processes. However, there were very few applications where the computers were not incorporated into the controlled system. In most cases, both hardware and software were built into the systems, becoming system components; in other words, they were embedded control systems.
The first recognizable embedded control system was the Autonetics D-17 guidance computer for the Minuteman II missile, delivered in 1966. This was the first built with integrated circuits for processor and memory. In 1978, the National Engineering Manufacturers Association of America released a standard for a programmable microcontrollers including single-board computers, numerical controllers and logic controllers able to perform control instructions. About 10 years later, in the late 1980s, microprocessor chipsets were produced, and embedded controls became widely applicable. As modern computer and electronic techniques developed in the following years, embedded control has become the most important industrial control technology available.
An embedded control system is a specially organized computer system designed for some dedicated control function or task. Its distinct feature is that its input/output system is not connected to an external computer; the microprocessor that controls the system is actually embedded in the input/output interface itself. Though the hardware differences between an embedded controller and a standard computer are obvious, the differences in software are also substantial. While most computers are based on operating systems requiring large memory size, such as the Windows or Linux operating systems, the typical embedded control system uses a smaller operating system, which has been developed to provide a simple and powerful graphical user interface (GUI).
Although in embedded control, the central processing unit (CPU) will mainly run independently of any supervisory controller, it is always linked to other parts of the controlled system to obtain digital status information. In this sense, embedded control can be consider as a subset of the overall data acquisition process.
In summary, an embedded control system refers to the computer hardware and software which are physically embedded within a large industrial process or production system. Its function is to maintain some property or relationship to other components of the system, in order to achieve the overall system objective. Embedded control systems are designed to perform a specific control task, rather than multiple tasks as a general-purpose computer does. Embedded control systems are not always separate devices or components, but are often integral to the controlled devices. The software designed for embedded control systems comprises embedded firmware, embedded operating systems, and special application programs. Compared with general computer software packages, embedded system software is rather smaller in size, and thus able to run with limited hardware resources, and without the keyboard and screen needed for most applications. Usually, the embedded control software is stored in memory chips rather than on a hard disk. Due to these differences, embedded control systems have achieved wide applicability in industry world-wide.
1.1.2 Architectures and elements
The architecture of an embedded control system consists of hardware and software elements (Figure 1.1). The hardware architecture provides interconnection for all hardware components. The software architecture allocates sequences of programs to specific general-purpose microprocessors. The architecture configuration largely depends upon the ingenuity of the architect. One factor impacting performance is whether a given function of the controlled system is implemented as hardware or software. In an embedded control system, especially in a distributed embedded system, the hardware and software are divided into several groups that run multiple processes concurrently; we define each of these groups as a module.
(1) The hardware architecture of embedded control systems
Embedded control systems are generally developed on the customerās hardware, and often require high quality and reliability, and compatibility with real-time controls. Many use distributed architectures, on which a large number of processes are able to run concurrently. Such systems will commonly have several different types of general-purpose microprocessors, microcontrollers and application-specific integrated circuits (ASIC), all interconnected with communication links to work with embedded software. It is crucial that each process can be executed with a variety of hardware modules and software programs.
The core of an embedded control system is a microprocessor, designed to operate a set of machine instructions, including firmware and boot-code, which are stored in the hardware memory. Another important hardware component is the microcontroller, typically a CPU core for the processing functions, together with a bus interface for communication with memory components and external or peripheral devices.
To provide flexibility, an embedded control system normally has some ASIC chips in addition to the microprocessor. An ASIC chip is designed for a specific application, rather than being a general-purpose CPU, since it does not incur the overhead of fetching and interpreting instructions stored in memory. ASIC chips can be based on standard cells, gate arrays, field-programmable gate arrays (FPGAs), or complex programmable logic devices (CPLDs). Embedded control systems employing reconfigurable hardware such as FPGA and CPLD are referred to as reconfigurable embedded systems. Reconfigurable systems can provide higher performance and flexibility to adapt to changing system needs at lower cost. Dynamically reconfigurable embedded control systems exploit the reconfiguration ability of programmable devices at run-time to obtain further cost saving.
An embedded control system should have storage elements; typically software executed by microprocessors or microcontrollers. For data storage, the microprocessor or microcontroller can include various types of memories, such as random access memory (RAM), read-only memory (ROM) or flash memory. Flash memory can be erased and reprogrammed in blocks instead of being programmed one byte at a time.
For transmitting and receiving data between devices and components, the microprocessor, microcontroller, ASIC and other devices may utilize various types of serial interfaces, parallel interfaces or buffers. Buffers are used by microprocessor to store operating data temporarily.
(2) The software architecture of embedded control systems
Many embedded control systems are required to fit real-time or multiple-process environments. Real-time or multiple-process operating systems are defined in the software, allowing the system to perform in a general-purpose control environment. Real-time operating systems, in comparison with non-real-time operating systems, offer much shorter response times. In multiple-process non-real-time operating systems, each process restarts the running of other processes of the same or lower priority level, and the response time can be much longer.
An embedded control system normally executes software in which the user interface is used as a system interface. A program package for application software is a necessary component of embedded control system software architecture. This application software runs under the control of a real-time operating system (RTOS) and is partitioned into one or more threads or tasks. A thread or task is an independent object of executable software that shares the control of the microprocessor with other defined threads or tasks within the embedded control system.
Embedded system software exists in many forms; such as software in a network router, or system software in a controlled device. Implementing a particular function in software provides flexibility, since it is more easily modified than hardware. Implementing a particular function in hardware, however, is generally performs faster. Hardware implementation may also reduce demand on microprocessors and, so speed up software execution.
The firmware and boot-code are also important parts of embedded system software, since they contain its configuration parameters. These allow an embedded control system to access and configure the system by setting its values. Different processes can run in different modules, which can work together if the configuration parameters of this sys...