PAUL CORNELIUS
When designing a complex system, one of the most important and difficult decisions is how to implement diagnostic functions. Assuming the system includes a main computer responsible for overall control and for the user interface, one approach is to use additional, embedded microprocessors to assist the main computer with the task of performing diagnostics.
Embedded processors that don’t have a user interface are an effective means of ensuring that system functions are being monitored. They connect only with the main computer, which issues commands to them and receives information from them. A laser-diode test instrument, for example, can be an embedded laser controller that monitors the state of a sensor and shuts off the laser when a fault is detected (see Fig. 1). Three general kinds of faults can be detected by such a laser-diode test system: a failure of the laser diode itself, such as a sudden loss of output power; a failure of the controller, such as not maintaining a laser diode at the correct temperature; or a temporary failure caused by user action, such as opening a safety interlock. The embedded controller checks for all these conditions, protecting the laser diode and guaranteeing that the system is working correctly.
In addition to informing the user via the main computer that a fault has occurred, the embedded controller can also autonomously take any corrective action required by the system (such as shutting off other modules) to prevent catastrophic failure of the laser, damage to accessory optics, or even danger to the user. The fast response of an embedded diagnostic system can be critical to the safety and reliability of the system.
Even for small systems, the safety factor provided by embedded diagnostics can be worthwhile. As the complexity of the system increases, the benefits of multiple, quasi-independent processors become more significant. Each processor can check multiple sensors and fault conditions, and summarize the state of an entire subsystem in a single message to the main computer. The number of signal lines to the main computer is kept to a minimum. The system can respond quickly to any situation because the embedded controllers perform fault handling.
Modular diagnostics
Among the advantages of the embedded approach, perhaps the most significant is modularity. That is, the embedded controllers can be designed early in the development phase of a system and used throughout its product life cycle. During this development phase, the embedded subsystems can be designed and tested independently. In favorable cases they can be purchased from an outside vendor, outsourced, and reused in other projects.
Manufacturing groups and service departments also benefit from a modular design. Individual subsystems can be built, tested, and stocked independently. Troubleshooting, maintenance, and repair are greatly facilitated by modularity because modular diagnostics make it easy to isolate problems to a single subsystem, which can be quickly replaced by a tested spare.
To fully realize these benefits, each module must implement its own diagnostics; otherwise it becomes tied to the rest of the system. If fault detection, for example, is handled by the main computer rather than by the laser-control module, the laser-control module cannot function safely on its own because it depends on an external resource for diagnostics. Such a design cannot readily be used on other projects because the diagnostics must be implemented again each time. Faults cannot easily be isolated because detection occurs in a different module from the one where the fault itself occurred.
A microprocessor running a simple diagnostic and control task will stay on the job continuously. Even if a failure occurs in the main processor, or communications are lost for any reason, the embedded controller continues to operate. With the embedded controllers protecting every module, the reliability of the main computer becomes less important, and therefore it can be selected for its ability to present a good user interface, connect with other computers, and serve its information over an intranet or the Internet. Modern personal computers and their complex operating systems are not well suited to real-time control, but are enormously powerful tools for graphical data presentation and networking. A personal computer (PC), in conjunction with one or more embedded controllers, combines the man/machine interface capability of the PC with the reliability of microcontrollers.
A smarter burn-in system
A laser-diode burn-in system is essentially a laser-diode test system that can monitor several individual laser diodes over thousands of hours to understand their output-power characteristics as a function of applied current over time. To protect individual laser-diode devices, embedded diagnostics can be an important feature of the system. A system can be designed, for example, in which each embedded microprocessor is designed to control a module, called a tray, comprising eight burn-in slots, a temperature sensor, and an interlock safety signal (see Fig. 2). Each burn-in slot consists of a laser-diode drive circuit and a photocell input.
A digital-to-analog converter (DAC) is used to control the laser current, and analog-to-digital converters (ADCs) are used to measure the parameters of interest, such as laser current, laser voltage, and photodetector current. The DACs and ADCs are connected to the microprocessors. Depending upon the number of laser diodes the system can accommodate, the burn-in system consists of a corresponding number of these trays.
The main computer is a PC running the Windows operating system, and interfaced to the collection of trays. Several methods can be used for this interface, depending on the number of embedded controllers in the system. For small systems with only a few embedded controllers, RS-232 is a simple and practical choice. For slightly larger numbers, up to about 30, RS-485 or a universal serial bus (USB) interface can be used. For hundreds of embedded controllers, the best choice is typically a local-area network using transmission control protocol/internet protocol (TCP/IP).
A multichannel temperature controller that is also interfaced to the main computer regulates the temperature of the system. The temperature of each tray can be set independently on command from the main computer.
When the user initiates a burn-in run, the main computer transfers a block of instructions to the embedded controller, setting parameters such as the laser current, the temperature, the duration of the burn-in run, and the time interval between data-collection events. The main computer also commands the temperature controller to establish the correct temperature for the tray.
Once the instructions have been transferred, the embedded controllers, supported by the temperature controller, can perform the entire burn-in procedure with no further intervention. The main computer periodically polls the embedded controllers to download the latest data. Between these downloads, the controllers continually acquire and store data. The interval between downloads can be quite large, as the controllers have sufficient memory on-board to save data over many hours or days. A failure of the main program, even for as long as 72 hours, will not affect the progress of any burn-in run, cause loss of data, or jeopardize the safety of the system.
In this architecture, the embedded controllers perform all diagnostic functions. They monitor their on-board sensors to ensure that the tray is maintained at the proper temperature, and suspend the run in progress if it is not. The embedded controllers can also discontinue the run if the interlock is opened. They verify that the correct amount of current is flowing through the laser diode, verify that the voltage across the diode is within an acceptable range, and ensure that both the diode and the test system is working properly.
In addition, the embedded control software can incorporate rules regarding pass/fail criteria. These criteria are continuously applied during a burn-in run, allowing the embedded controller to terminate a run if the laser diode fails prematurely, for example. If this happens, the slot occupied by the failed diode can be freed for use by another device, optimizing the available burn-in capacity.
In one system using this architecture, 1024 burn-in slots were controlled by 128 embedded processors. Each of the embedded processors checked for multiple fault conditions once per second and the main program polled the status of each processor once every five minutes. Although there were literally thousands of possible points of failure in this system, only a single main computer was required-thanks to the embedded diagnostics.
Such a test instrument is scalable to many thousands of slots simply by adding additional controllers, with no loss of performance or reliability. The independence of the microcontrollers, and their diagnostic capability, can be indispensable to the success of any complex test instrument.❑