# Patent

## Title
Complementary boundary-scan cell

## Abstract

This application is a continuation of application Ser. No. 07/763,954 filed Sep. 23, 1991, entitled "Fault Detection and Diagnosis for Printed Circuit Boards" by High F. Spence, Daniel P. Burris and Robert A. Houston, now abandoned.

## Background
This invention relates to electronic test equipment, and more particularly to an apparatus for testing printed circuit boards using thermographic imaging.

As electronic circuits have become more complex, advances have been made in testing them for faults. Automatic test equipment (ATE) systems have been developed to make specified measurements on electronic circuits and to interpret the results to locate and identify failures.

Printed circuit boards (PCB's) have become especially difficult to test because of the number of components and the difficulty of isolating and accessing them. Traditional guided probing techniques become especially problematic, especially in terms of time consumption, when testing PCB's. One attempt to make the testing more efficient is the use of "bed of nails" test fixtures, which gain access to internal nodes of a circuit board simultaneously. However, even these techniques have not completely overcome problems associated with isolating components and testing their interaction. Also, the fixturing is difficult especially for PCB's having surface mounted devices, coatings, or double sided mounting.

A recent alternative to guided probing and bed of nails testing has been the use of thermographic imaging. Infrared energy emitting from an operating PCB under test produces a unique thermographic image which can be compared with the image of a PCB that is known to be in good operation.

A problem with existing infrared testing systems for PCB's is that the thermal images have required subjective interpretation by a skilled technician. These interpretation difficulties have prevented wide use of thermal information for ATE testing.

Another problem with existing infrared red testing systems is that it is difficult to accurately determine the emissivity of the circuit board under test. Emissivity is a measure of a surface's ability to radiate energy, referenced to that of a perfect, or "blackbody" surface. To accurately determine the temperature of an object from measurements of radiated energy, the emissivity of the object's surface must be known. The problem of determining temperature is made more difficult when the object has areas of different emissivity, such as is the case with PCB's where the devices on the PCB may be plastic, ceramic, bare metal or treated metal. Even components of the same type may have different emissivities on different PCB's.

A need exists for an improved, easy to use, method for producing and diagnosing thermographic images.

One aspect of the invention is a method for detecting and diagnosing faults of a printed circuit board. The circuit board is placed in a controlled environment, such that environmental radiation is minimized. Power is supplied to the circuit board to simulate operation of its components. Emissivity data representing the emissivities of the components is obtained, as well as a thermal image of the circuit board while under power. The thermal image is corrected for varying emissivities of the PCB components, such that a emissivity-corrected thermal image is obtained. Data from this corrected thermal image is input to an artificial neural network, which has been previously trained such that thermographic input results in certain output representing a known fault.

In the preferred embodiment, the image is preprocessed, such that the thermal data is converted to device space data, in which particular locations are associated with a thermal feature at that location for input to the neural network. The neural network is trained with a fault list, in which certain thermographic input data is associated with outputs representing component faults. The neural network has an input layer for receiving thermal image data, a hidden layer for applying weight values associated with temperature profiles of known failed components, and an output layer for indicating failed components of a circuit board under test. The weights of the hidden layer may be adjusted during training in accordance with the fault list.

An improved method for obtaining emissivity data of the circuit board involves capturing a first thermal image while the circuit board is in thermal equilibrium, capturing a second thermal image while the circuit board is illuminated, calculating a difference image between the first and the second images, and using this difference image to determine an emissivity map of at various points on the circuit board. Equations for determining the emissivity map are described herein.

A technical advantage of the invention is that efficient testing of PCB's and diagnosis of their faults may be accomplished in a rapid and low cost manner. Speed of testing is improved by the ability to rapidly locate components that, when failed, cause changes in the temperature profile of the PCB. Rules and relationships for associating thermal features to physical faults may be easily developed.

FIG. 1 is a block diagram of an ATE system with units for thermal imaging and neural network interpretation.

FIG. 2 illustrates flow of data used to prepare data for the neural network of FIG. 1.

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent disclosure, as it appears in the Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever.

FIG. 1 is a block diagram of an automatic test equipment (ATE) system in accordance with the invention. The main components of the system are a test enclosure 11, an infrared source 12, an infrared camera 13, an image processing unit 14, a control computer 15, and an artificial neural network unit 16.

In alternative embodiments, the tasks performed by image processing unit 14, control unit 15, and neural network 16 could be performed on a single computer system, programmed for these various tasks.

Although the system of FIG. 1 is illustrated as a stand-alone system, it could also be used in conjunction with a more comprehensive ATE system that permits other diagnostic techniques, such as guided probing. However, for purposes of this description, "testing" refers to the thermographic imaging process described herein.

Enclosure 11 contains a test fixture 11a, upon which a printed circuit board (PCB) 10 is mounted during testing. Enclosure 11 encloses the test fixture 11a so that the environment around PCB 10 may be controlled. Thus, PCB 10 is protected from air currents that may affect its thermal characteristics and from heat from test personnel or other nearby objects. Also, enclosure 11 provides a means for repeatable alignment of PCB 10 and camera 13. The interior of enclosure 11 is treated to provide a uniform thermal environment. A window 11b in enclosure 11 is thermally transparent so that camera 13 may receive emitted radiation from PCB 10. A door 11c provides access to enclosure 11.

A power supply 11c provides power to PCB 10 during testing. Power supply 11c and other signal sources necessary to provide typical operating conditions for PCB 10 are located outside enclosure 11, and connect to PCB 10 via appropriate electrical connections into enclosure 11.

Infrared source 12 provides infrared illumination of PCB 10 to determine emissivity of components, using a real time emissivity map generation method described below. Other methods for determining emissivity may be used, which may not require infrared source 12.

Infrared camera 13 is part of a conventional thermographic imaging system, which produces electrical signals that may be used to generate a thermographic image showing the infrared radiation from PCB 10. An example of a suitable imaging system is the CCT-9000 manufactured by UTI, which forms a 640.times.512 pixel image with each pixel represented by 10 bits of data. Camera 13 is positionable to permit viewing of the component side of PCB 10. Proper alignment permits measurement of the thermal features of each component of PCB 10.

Image processing unit 14 receives the output of camera 13 and generates a thermographic images of PCB 10. The primary tasks of image processing unit 14 are to preprocess the image and to generate an emissivity map of PCP 10. As explained below, the emissivity map is used to correct thermal image measurements.

A monitor 17 permits the thermal image to be viewed by test personnel. It also permits the testing to be performed interactively with a test operator, by displaying maps of the PCB 10 and indicating failed components. Also, neural network training is facilitated by interactive input and output via monitor 17 and input means 18, wherein input means is any standard input device such as a keyboard.

In the preferred embodiment, image processing unit 14 preprocesses the image to optimize its informational value and to reduce the volume of data. This preprocessing can include, but is not limited to, image filtering, subtraction with previous images, code compression, or reduction to "device space" records. The latter consist of separate records of the thermal features of each component of PCB 10, and are explained in further detail below in connection with FIG. 2. Image processing unit 14 may be implemented using a conventional computer system programmed to perform the above tasks.

Control unit 15 is a computer system, or dedicated control system, programmed to provide an interactive interface with a test operator. It controls the events that occur during testing and operates in communication with image processing unit 14 and neural network 16. A bus 19 permits data communication between the various units of the test system.

Artificial neural network 16 receives data representing the thermal image, or its reduced form, from image processing unit 14. The configuration of neural network 16 is conventional, consisting of a network of processing elements connected to each other. It may be implemented as a hardware or software neural network, such as specialized processors, dedicated circuitry, and optical processing. The description below is in terms of a conventional computer system programmed to perform neural network operations.

Neural network 16 is trained to match input data representing thermal features of PCB 10 with stored data, such that the output represents a particular fault. A hidden layer of processing elements responds to temperature profiles resulting from failed components, with weights being set during training, as described in further detail below. The output of each processing element is a function of the inputs to the processing element. A typical equation that describes the operation of each processing element is:

, where x.sub.i and x.sub.j are elements of the vector that includes both network inputs and outputs of the processing elements. The nonlinear function, g, is typically some saturation or limiting function.

Operation of the system of FIG. 1 is based on the assumption that thermal images of similar PCB's are similar and that certain faults cause changes in component dissipation, such that these changes are observable. A number of different kinds of faults can affect the thermal signature of the PCB. In the case of internal device damage, several device technologies, such as CMOS, often present a low impedance across the power supply under failure conditions. Such an unusual draw of power causes the device to become significantly hotter than normal. Other failed devices may open their connections to the power source and run cooler than normal. Outputs stuck and high or low levels may change the heat dissipation pattern of the PCB. In the case of shorted output nodes, if the output of a device drives a low impedance (short) it will dissipate additional power and become hotter. The amount of increased power dissipated will depend on whether the short is to ground, a power supply, or to another output. The effect of the short may be to change the power dissipation of several components as the stuck signal is propagated. A short in a resistance network, such as those around an operational amplifier, will likely change the power dissipation of all the resistors. In the case of a change in an output toggling rate, the power dissipation of much of modern logic is a function of the rate of transition of the outputs. The more often the outputs of a logic device change, the more power it dissipates. Though a particular failed device might not change its temperature significantly, if it affects power dissipation of other devices by inhibiting or provoking their output toggling rates, this effect will be observed. In the case of power supply failure, power source overvoltage and undervoltage can change the power dissipation patterns on the circuit card. The thermal image caused by this problem should point to the power supply. In the case of signal contention, two devices driving the same signal line will cause increased power dissipation in both devices when attempted output levels are different. In the case of impending failures or intermittent failures, sometimes a device becomes erratic and begins to dissipate more heat than normal. As indicated, both devices and their interconnections may affect the temperature profile of the circuit board, and both are referred to herein as "components".

FIG. 2 illustrates the data associated with each PCB to be tested. An image file 21 is the data representing the thermographic image of PCB 10. A topology file 22 is data representing the location and dimensions of devices and other physical components of PCB 10. The fault list file 23 is a collection of faults, which is combined with associated thermographic data for use in training neural network 16.

As indicated in FIG. 2, the image file is corrected with emissivity data 24 to obtain a corrected image data file 25. This step is based on the premise that emissivity data of PCB 10 must be obtained before a "true" thermal image of its components can be acquired. This emissivity data represents variations in emissivity over PCB 10 and its components. Without correction for emissivity data, the temperature measurements would result in components such as a metal cap, appearing cooler than an equivalent ceramic package.

The obtaining of emissivity data from PCB 10 may be accomplished using various known techniques. One known method for determining an emissivity map for complex objects such as a PCB is to measure the radiated energy of the object at two known temperatures. However, one aspect of the invention is an improved method of obtaining an emissivity map. In general, this method is based on the equivalence of emissivity and absorption coefficients and involves processing both absorbed and reflected radiation. Radiant energy striking an object is either absorbed, reflected, or transmitted. This relationship can be expressed in terms of the energy at any point, (x,y), on the image as:

, where E.sub.I, E.sub.R, E.sub.A, and E.sub.T represented energy that is incident, reflected, absorbed, and transmitted, respectively. The assumption is made that PCB 10 is opaque, thus the last term of the above equation is 0, such that:

The above equation can be normalized by the incident energy to obtain a relationship between the absorption and reflection coefficients at any point:

, where the reflection coefficient, p, is: ##EQU1## and the absorption coefficient, .alpha., is: ##EQU2##

Because the absorption value is equal to the emissivity value, the above equation may be rewritten in terms of emissivity, .epsilon., as:

To obtain an emissivity map, a point of high reflectance, (x.sub.o, Y.sub.o), on PCB 10 is identified. This point can be either a bare metal surface on PCB 10, or a small reflective target attached to PCB 10. If PCB 10 is uniformly illuminated with infrared radiation of the same spectral range as used to obtain temperature measurements, the measured energy at point (x.sub.o, y.sub.o) is approximately: ##EQU3## . For highly reflective surfaces, E.sub.R =E.sub.I.

Because of the uniform light source, the energy density is assumed to be uniform over the entire surface of PCB 10. The incident energy density can be assumed to be approximately equal to the measured peak energy density at any point on PCB when it is illuminated. Using this peak value of reflected energy, the emissivity at any point of PCB 10 can be obtained from: ##EQU4## The preceding equation represents the emissivity map for PCB 10 in the absence of any additional contributions to the measured energy. However, the measured energy from PCB 10 includes both reflected energy and radiated energy. Thus, the measured energy from PCB 10 is: reflection (x,y) +E.sub.radiated (x,y)

For an object at thermal equilibrium with its environment, the last two terms of the above equation form an image that is a function of the environment. These two terms together form a basis thermal energy map of PCB 10, or:

The emissivity map is obtained from measurement, using the following equation: ##EQU5##

A more general variation of the preceding equation for .epsilon. can be used to obtain the emissivity map where an object of known emissivity is on PCB 10. The requirement of an object of high reflectance in the image is relaxed. The equation is: ##EQU6##

Consistent with the above theoretical discussion, a method for using the system of FIG. 1 to obtain an emissivity map is performed as follows. As a first step, PCB 10 is placed in enclosure 11, such that extraneous reflection and convection air currents are minimized. PCB 10 is not powered during this step, and is at thermal equilibrium with the environment. An image, C(x,y), is captured by infrared camera 13. This image contains all contributions of the environment surrounding PCB 10.

Next, PCB 10 is briefly illuminated with a uniform, low level radiation from infrared source 12 and is viewed by camera 13. The infrared illumination provides considerably more energy than is radiated by PCB 10 under power. The illumination interval is short, and no significant heating of the object occurs. The result is a second image, I(x,y).

Next, the difference image, R(x,y), between I(x,y) and C(x,y) is calculated, using any processing unit, such as image processing unit 14. In a first variation of the method for determining emissivity, the next two steps are obtaining an emissivity map by finding the maximum value of R(x,y), and applying equation (1) above. In a second variation of the method, the next two steps are finding the value of R(x,y) at a known point, and applying equation (2) above.

Once the emissivity map is acquired, the actual test sequence is performed. Power is applied to PCB 10 and appropriate electrical stimulus is applied. At least one thermal image is obtained. In the preferred embodiment, several images are obtained at different intervals during warm-up, which avoids the effect of temperature "smearing" as the temperature stabilizes. The infrared energy emitted by PCB 10 is captured by camera 13 and converted to digital form by image processing unit 14. The result is an image data file, as indicated in FIG. 2.

The image file is then corrected for variation in thermal emissivity. The emissivity map is combined with the thermal image data to produce an emissivity corrected data file. The equation for the correction is: ##EQU7## . The temperature profile of PCB 10 can be obtained from E.sub.blackbody.

The image data file 25 contains a large volume of information. As explained above, to avoid working with this large volume, image processing unit 14 preprocesses the image data to compact the information. One means for compacting the data is to convert "pixel space" to "device space". Every significant region of PCB 10 is uniquely identified by the device that resides there. Each device is considered a coordinate in "device space". The distance along each coordinate is a measure of a thermal feature of the associated device. The thermal feature of a device may be peak temperature, temperature integrated over an area, peak gradient, or some other temperature-related measure. Ideally, the thermal feature that provides the greatest discrimination of faults is selected. PCB 10 may then be described by a list of devices and the values of the thermal feature of each. The compacted thermal information of PCB 10 represented in the "device space" permits the use of a relatively small neural network 16.

Referring again to FIG. 2, a physical map, or topology data file 22, is used to obtain device space data file 26 from the thermal image. Once device space data file 26 is obtained, the thermal feature data is presented to neural network 16, which has been previously trained with examples of possible faults that may occur in PCB 10. Each component of PCB 10 is associated with an output of neural network 16. The output value indicates whether the associated component has a fault. A number of tests may be performed with different data sets to test for different types of faults.

The use of neural network 16 to develop diagnostic relationships and rules for associating thermal features with faults is an alternative to the more traditional development of rules using empirical methods. In the latter approach, relationships and rules are manually derived from the data, and require someone experienced in observing and stating significant relationships.

The capability of a neural network such as neural network 16, to learn complex relationships by example, may be used to relate thermal patterns to device faults. An initial training period for each type of PCB to be tested is needed, in which neural network 16 is trained using a training set of thermal features and known faults. The training set is developed by using PCB's with known faults. To create the training set, the thermal image of each faulted PCB is acquired and converted to device space data. This data is matched to fault data. Thus, the training set consists of thermal signatures of each faulted PCB, along with the fault associated with that signature.

A technique known as backpropagation is used for training neural network 16. In this algorithm, examples of thermal patterns and associated known faults are presented to the neural network 16. The network produces an output that is a function of the information stored in the network weights and the input. The error between the actual output (predicted fault) and the desired output (known fault) is back propagated through neural network 16 to correct the weights and reduce the error. Training is halted when the error has been reduced to an acceptable level. Other known training algorithms may be used.

Appendix A sets out the programming for an artificial neural network in accordance with the invention. It is written in the C programming language, but any other suitable language may be used. This programming is executed by a computer that is part of neural network 16, or as stated above, may be executed on a multi-purpose computer that also performs the tasks of image processing unit 14 or control unit 15 or both.

As shown in Appendix A, a number of data structures are declared for the neural net variables. The Input.sub.-- Data structure contains the temperature features of the PCB being operated on, which may be a PCB 10 under test or a PCB with a known faults being used for training purposes. The Physical.sub.-- Map structure contains the topology of the PCB 10 under test, The Data.sub.-- Set structure contains a stored collection of data sets of faults associated with thermographic data.

A main routine calls various initialization and input/output subroutines, as well as a subroutine for neural network operation. More specifically, the Initialize subroutine reads a map file by calling a subroutine Read.sub.-- Map.sub.-- File, defines the hidden layer, and prints a display screen. A Pause.sub.-- Options subroutine displays commands available in a "pause" mode, specifically, LoadData, Step, DumpWts, and LoadWts commands, which result in loading a data file, stepping to a next data set, and saving weight values, respectively.

The Initialize.sub.-- Wts subroutine initializes weights and biases for the neural network. The Display.sub.-- Screen subroutine generates a display of the neural network and output decisions. The Update.sub.-- Display subroutine generates a display of the physical map of PCB 10. The subroutine Mode Line displays commands choices that exist in all modes, such as "quit", "train" and "pause/run". These and other commands are handled by the Keyboard.sub.-- Command subroutine, which tests for key depressions and takes appropriate action. Additional command include a command for reading a data file to load temperature data, Read.sub.-- Data.sub.-- File, a command for loading weight values, Read.sub.-- Wts.sub.-- File, and a command for saving weight values, Write.sub.-- Wts.sub.-- File.

The run time operation of the programming has three modes, as indicated by the Status.sub.-- Line subroutine. The status may be "mean squared error", "iterations", or "set number". The mean square error mode indicates the error resulting when the neural network output is compared to an expected output. This mode is useful during training. The iterations mode is also used during training and permits weights to be adjusted to reduce the error to a desired value. Once a desired set of weights is determined, the subroutine Write.sub.-- Wts.sub.-- File is used to save it. The set number mode indicates the present data set being tested.

During neural network operation, the subroutine Get.sub.-- Next.sub.-- Data.sub.-- Set is called to fetch the next input/output data set from a stored collection of data sets. The Update.sub.-- Network subroutine has two options. A first option performs forward processing to indicate a failed component from a previously trained network. A second option permits weights to be adjusted for training purposes.

Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiments, as well as alternative embodiments, will be apparent to persons skilled in the art. It is, therefore, contemplated that the appended claims will cover all modifications that fall within the true scope of the invention. ##SPC1##

## Claims

1. A method for detecting and diagnosing faults of an object, comprising the steps of: substantially in thermal equilibrium with its ambient environment, by capturing a basis thermal image, illuminating said object, capturing an illumination image while said object is illuminated, calculating a difference image between said basis thermal image and said illumination image, and using said difference image to determine an emissivity map at various points on said object; varying emissivities on said object, such that an emissivity-corrected thermal image is obtained; artificial neural network, wherein said neural network has been previously trained to provide a certain output when said data is associated with a known fault; and object.

2. The method of claim 1, and further comprising the step of preprocessing said emissivity-corrected thermal data, such that said emissivity-corrected thermal data is converted to device space data, in which particular locations are associated with a thermal feature at that location for input to said neural network.

3. The method of claim 1, wherein said object is an electronic circuit, and wherein said heating step is accomplished by applying power to said circuit.

4. The method of claim 1, wherein said substep of using said difference image to calculate an emissivity map comprises finding a maximum value of said difference image at a point of high reflectance on said object, and calculating the value of said difference image at said point of high reflectance.

5. The method of claim 4, further comprising the step of calculating the ratio of said difference image and said value of said difference image at said point of high reflectance.

6. The method of claim 1, wherein said substep of using said difference image to calculate an emissivity map comprises determining a point of known emissivity on said object and calculating a value of said difference image at said known point.

7. The method of claim 6, further comprising the step of calculating the ratio of said difference image and said value of said difference image at said known point.

8. A method of acquiring emissivity-corrected data representing thermal measurements at locations on an object, comprising the steps of: substantially in thermal equilibrium with its environment, by capturing a basis thermal image while said object is not substantially illuminated by an external source, capturing an illumination image while said object is illuminated by an external source, calculating a difference image between said illumination image and said basis thermal image, and using said difference image to determine said emissivity map at various points on said object; while said circuit is heated; for varying emissivities at different locations on said object, such that emissivity-corrected thermal image data is obtained.

9. The method of claim 8, wherein said object is an electronic circuit, and wherein said heating step is accomplished by applying power to said circuit.

10. The method of claim 8, wherein said step of using said difference image to determine an emissivity map comprises finding a maximum value of said difference image, wherein said maximum value represents a point of high reflectance on said object.

11. The method of claim 10, wherein said step of using said difference image to determine an emissivity map further comprises the step of calculating the ratio of said difference image and said maximum value.

12. The method of claim 8, wherein said step of using said difference image to determine an emissivity map comprises determining a value of said difference image at a point of known emissivity on said object.

13. The method of claim 12, wherein said step of using said difference image to determine an emissivity map further comprises the step of calculating the ratio of said difference image and said value of said difference image at said point of known emissivity.