Digital device testing apparatus and method
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates to automatic testing and, more particularly, to testing a device with a programmed digital computer. 
     2. Description of the Prior Art 
     Intermittent failures in complex digital electronic devices, such as microprocessor-controlled copiers, are extremely difficult to identify and correct. Because the failures occur infrequently, repair personnel must watch large numbers of points for long periods of time merely to observe a single failure; correction of the cause requires repeated observations. Standard cathode ray oscilloscopes transiently monitor only a few points and do not record observed phenomena for later analysis. Chart recorders make a paper record of relatively slow signals not commonly monitored in complex digital devices. 
     Logic analyzers simplify repair by simultaneously watching many points and displaying signals at these points only when prespecified failures occur. An article in Computer Design, March 1981, &#34;Logic Analyzers Simplify System Integration Tasks&#34; pages 119-126 describes displaying signals, at monitored points of a tested device, only when these signals occur within a specified address range or time interval. U.S. Pat. No. 3,831,149, issued Aug. 20, 1974, describes preselection of conditions under which data received from a tested system will be recorded (viz. identity between preset data and test data either records the test data only or starts recording from that time on). A circuit in U.S. Pat. No. 3,927,310, issued Dec. 16, 1975, strobes a display when preselected timing signals occur. In U.S. Pat. No. 3,976,864, issued Aug. 24, 1976, pulses start and stop data signature generation in accordance with preselected patterns and qualifiers which are compared with data conditions in a device under test. Apparatus described in U.S. Pat. No. 3,818,201, issued June 18, 1974, freezes a display of sampled signals upon detection of predetermined coincidences between sampled signals and external keys. 
     The prior art does not show testing apparatus which repeatedly displays portions of signals, at a plurality of test points in a tested digital device selected in accordance with predefined conditions and signals occurring at the test points. 
     SUMMARY OF THE INVENTION 
     A plurality of specified test points in a digital device to be tested supply test signals indicating operations in the tested device. Selected states of selected test point signals define a window during which all of the selected test point signals, including those not having one of the selected states, are displayed. The beginning and end of the window are defined in terms of the signal states at the selected test points, the occurrence of various types of control inputs (such as addresses) from the tested device, the completion of a delay period, the occurrence of a specified number of timing pulses, etc. 
     An operator specifies window criteria by identifying signal sets in a desired sequence. Each signal set includes a criteria-condition code (TO, FROM and intervening required conditions), signal states (i.e., levels at which a test point will meet the criteria), and the test points to be monitored. Each signal set is checked until all requirements are satisfied. The testing apparatus scans all the identified test points until signals at the specified test points match a signal set. Each match is noted until all test signals are scanned. The testing apparatus displays the signals from the test points occurring between a TO criterion and those FROM criteria which follow the completion of any specified intervening conditions. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing testing apparatus connected to a tested device. 
     FIGS. 2A-2F are a map of information stored in the testing apparatus&#39; memory of FIG. 1. 
     FIG. 3 shows the terminal of FIG. 1 and illustrates an input menu. 
     FIGS. 4A and 4B show the terminal input menu and the printer output, respectively, during operation of the apparatus of FIG. 1. 
     FIG. 5 is a waveform diagram illustrating signals present during operation of the tested device and testing apparatus shown in FIG. 1. 
     FIGS. 6 and 7 are flow diagrams tracing the operation of the apparatus of FIG. 1. 
     FIG. 8 is a program module diagram showing the order in which a program controls operation of the testing apparatus of FIG. 1. 
    
    
     DETAILED DESCRIPTION 
     Referring to FIG. 1, a tested device 100 comprises an electronically controlled electromechanical apparatus, such as an electromechanical copier 103 having electrical test signal test point lines 101, and a digital electronic processor 104 for controlling the copier via copier control inputs 112. The processor operation may be monitored via additional condition test point lines 102. The tested device 100 may be any one of a large variety of complex digitally controlled devices; a typical microprocessor-controlled device 100 is the IBM Series III Copier/Duplicator. 
     Testing is facilitated by making available test point lines 101 carrying test point signals from within the copier 103; for example: Fuser Exit, End Copy, etc. The copier 103 is controlled by signals on lines 112 from the processor 104 and operation of the processor is monitored by interpretation of signals on test point lines 102; for example: the current address of the program counter in the processor 104, the number of clock cycles that have occurred (&#34;time&#34;) etc. The signals on the test point lines 101 carrying signals from the copier 103 and on the test point lines 102 indicating the state of the processor 104 are connected to the testing apparatus 105 which controls the processor 104, by a cable 113. Cable 113 connects to an input/output section 110 of testing apparatus 105 which apparatus also includes an arithmetic logic unit 106 connected to a memory 107, to terminal 108 and a printer 109. A control bus 111 supplies signals from the input/output section 110 to the processor 104. An operator at the terminal 108 enters information into the testing apparatus 105 indicating which ones of the test point lines 101 and 102 are to be monitored, and what they are to be monitored for. The information entered via the terminal 108 is stored in the memory 107 and in accordance with a program, also stored in the memory 107, the arithmetic logic unit 106 processes, as data, test point signals present on cable 113. As a result of the processing of the data, signals on selected ones of the test point lines 101 and 102 may appear in real time at either the printer 109 or the terminal 108 for periods of time and under conditions specified by the operator at terminal 108. Alternatively, the signals on test point lines 101 and 102 may be stored in memory 107, or an associated mass storage memory (not shown), for later processing as though the information appears on cable 113 then. Thus a portable mass storage device may record operation of the tested device 100 at a remote location for later transportation to, and analysis by, the testing apparatus 105. Also, the results of the processing may be placed in either the memory 107 or the mass storage for later detailed analysis and repetition in place of, or in addition to, display on the terminal 108 or recording by the printer 109. 
     Referring now to FIGS. 2A through 2F, the arrangement of data in the memory 107 of FIG. 1 will be described. Memory 107 contains information received from a variety of sources including a mass storage. Areas 200-204 of memory 107 represent information available in the memory 107 at various times, but not necessarily at any one time. An operating system 200 controls the interface between the &#34;hardware&#34;, such as the arithmetic logic unit 106, and the input/output controller 110 and other devices such as the printer 109 and the terminal 108. Programs 201 (described in detail below) use primitive commands in the operating system 200 to operate the testing apparatus 105 in accordance with instructions provided by a programmer. A process vector 202, to be described in more detail with reference to FIGS. 2B-2D, includes a number of signal sets defining the types of tests to be performed by the testing apparatus 105 on the tested device 100. The results of the tests are stored in memory 107 in a result vector 203, described with reference to FIG. 2E. Global buffers 204, described with reference to FIG. 2F, provide interim storage areas required during the processing of data by the testing apparatus 105. 
     In FIG. 2B, the process vector 202 includes a series of locations identifying the name assigned by the operator to the particular test being conducted, the date that the test is conducted, the time of the test, header 205, to be described with reference to FIG. 2C, and a number of signal sets 206, to be described with reference to FIG. 2D. In FIG. 2C, the header 205 identifies the number of signal sets provided in the processor vector 202, which ones of the signal sets define the FROM condition, the TO condition and, if provided, the RESET condition (which starts testing from the beginning). In FIG. 2D, the signal sets 206, from which particular conditions may be selected, are shown. Any one of these may be placed in the signal sets 206 of the process vector 202. The signal sets 206 specify test parameters, as will be described below. The BASIC signal set may be either a FROM or TO set defining the beginning or end, respectively, of a window. The state (active or deactive) is specified in the BASIC signal set along with the number of the test point line 101 upon which a test point signal with the desired state is to occur. The NOT signal set specifies states and test point numbers in the same way as a BASIC signal set. A DELAY signal set identifies clock speed (i.e., a time base of one microsecond means a clock rate of one megaHertz). The amount of delay is specified in accordance with the identified time base clock period and, since more than one delay may be specified, the number of the delay to which the set corresponds is also identified in the signal set. The ADDRESS COMPARE signal set similarly permits specification of several addresses either individually or in a separate table of processor addresses. The PULSE COUNTER signal set counts the number of pulses of a specified state occurring at a specified test point. 
     Referring to FIG. 2E, process vector 202 of FIG. 2B generates result vector 203 containing a process name, date and time similar to the process vector 202. The number of result values and the time base selected is followed by the result data sets. Each result data set contains data for displaying or printing one test. This data includes the time at which the test was run, the number of elements in the result and the results of each successful FROM/TO calculation. In FIG. 2F, the global buffers 204 include, among others, an event time buffer which accumulates or counts time events, a common work buffer available for miscellaneous operations, a process definition buffer reserved for processing data, and a menu area used for holding information needed to display to the operator menus at the terminal 108. 
     Set up and operator specification of process operations will be described with reference to FIGS. 3 and 4. In FIG. 3, the terminal 108 includes keys 301 permitting an operator to enter information into the testing apparatus 105 by filling in specified areas of a menu displayed on a screen 300. The screen 300 displays a series of menus showing information required before the tested device 100 can be tested by the testing apparatus 105. Only one of the menus will be described, a large number of menus being required for editing and selection, report options, event timer reporting, test case data scanning, report selection, multiple process operations, etc. Keys 301 permit the operator to move a cursor 303, or other marker, on the screen 300 to positions indicated by blanks and horizontal lines. For example, with the cursor 303 at the blank following the legend &#34;COMMAND INPUT&#34; the operator may enter a command instructing the testing apparatus 105 to perform some other operation, resulting in removal of the menu shown in FIG. 3. If the operator moves the cursor 303 to one of the lines following the legend &#34;S01&#34;, the operator may enter one of the signal set codes defined in the two lines above this position. If the cursor is placed next to one of the legends &#34;D1&#34;, &#34;D2&#34;, &#34;A1&#34;, or &#34;A2&#34;, the operator may enter a number. The space following the words &#34;PROCESS DEFINITIONS&#34; are reserved for entry by the operator of a process vector comprising rows of signal sets which must specify operational information in a certain order and convention, to be described below. In place of keys 301, transparent switches, a light pen or other control may move the cursor 303 on the screen 300 or otherwise assist the operator in entering data. 
     In FIG. 4A, the operator at keys 301 in FIG. 3 has entered the information shown on the screen 300. Next to the legend &#34;S01&#34; he has entered the letter &#34;F&#34; meaning that signal set 1 defines the FROM signal. The letter &#34;T&#34; next to the legend &#34;S03&#34; indicates that the signal set 3 defines the TO signal. Thus, the operator has defined a window for the display of signals defined by the occurrence of the signal set number 1 and ending with the signal set number 3. The entry &#34;2P&#34; next to the legend &#34;S02&#34; indicates that the end of the window, occurring at the time that set 3 is satisfied, will not be recognized until the conditions specified in set 2 are first satisfied. In this case, the set of conditions &#34;S02&#34; requires that two external pulses occur before the window ends. The &#34;N&#34; next to the &#34;Loop to S01&#34; legend is a negative reply to the &#34;(yes/no)&#34; question. While the entries so far have defined the types of conditions which signal sets must satisfy, the signal sets themselves have not been specified. This occurs below the legend &#34;PROCESS DEFINITIONS&#34; where the process vector comprising a series of signal sets appears. The operator has entered as the first signal set &#34;001&#34; the requirement that the window start from the active level of signal A. This is indicated by the entry &#34;1A&#34; meaning that the signal set code for &#34;S01&#34; (i.e., FROM) is defined when signal A is active (&#34;A&#34;). Similarly, the second line indicates that the window ends (&#34;TO&#34;) at the active level of signal B. The third line conditions the occurrence of the &#34;2&#34; condition upon the prior occurrence of two (see &#34;2P&#34; adjacent &#34;S02&#34;) active transitions of signal C. The results appear in FIG. 4B which illustrates the output on printer 109 of testing of lines 101 connected to three points on the copier 103 and processor 104. The window 302 starts at time 10 when signal A becomes active. It ends after time 50 when signal B becomes active following two active transitions 304, 305 of signal C. 
     An additional example of testing of the tested device 100 by the testing apparatus 105 appears in FIG. 5 where the tested apparatus 105 is directly connected to the test points 101: Fuser Exit Switch, End Copy Cycle, Exit Pocket and Address indicating operations in the copier 103 and processor 104. The test operator wishes to watch signals occurring during a narrow time window starting when only the Fuser Exit Switch and Exit Pocket Switch are active and ending when the Exit Pocket Switch signal become deactive following a processor 104 address 1500. If, after this address occurs, the Exit Pocket Switch signal becomes deactive, the copier 103 is operating correctly. If the Exit Pocket Switch signal stays active, there is an error in the operation of the copier 103. Therefore, by monitoring the window 502, the operator detects malfunctions. 
     To initiate this test, the operator must complete the information required on the screen 300 in FIG. 3. The desired operation is a window 502 extending from the coincidence of the active level of line A, deactive level of line B and active level of line C to the one deactive level of line C which follows the occurrence of address 1500. If the menu is on screen 300, the operator enters, adjacent the legend &#34;S01&#34;, an &#34;F&#34; indicating that the first signal set is the FROM condition. He enters, adjacent the legend &#34;S03&#34;, a &#34;T&#34; indicating the TO condition. Adjacent the legend &#34;S02&#34;, &#34;A1&#34; will specify the need to monitor an address prior to recognition of the TO condition. The particular address (in this case &#34;1500&#34;) that is to be monitored is entered by the operator adjacent the legend &#34;A1&#34;. Then, below the legend &#34;PROCESS DEFINITIONS&#34;, the operator identifies the conditions necessary to satisfy each one of the three sets in the process vector. The first line, &#34;1A 001 SIGNAL A&#34;, indicates that the active level of signal A is considered in the determination of whether the FROM condition is satisfied. The second line, &#34;1D 002 SIGNAL B&#34;, indicates that the deactive level of signal B is also considered in the FROM condition. The third and last line, &#34;1A3D 003 SIGNAL C&#34;, indicates that signal C&#39;s active state must be considered for the FROM condition, and that the deactive signal C is necessary for the TO condition. 
     Once the operator has specified the conditions and signal sets, the testing apparatus 105 scans the test point lines 101 for any signal transition, active to deactive, or vice versa. When the first selected (deactive to active) transition of the Fuser Exit Switch line A occurs, the testing apparatus 105 records the time at which the event occurs and the conditions surrounding the recognition of the event in the result vector 203. The other signal sets are then compared to the event. The second signal set (1D 001 SIGNAL A) does not satisfy the event, nor does the third signal set (1A3D 003 SIGNAL C). The next event occurs when the Exit Pocket line C becomes active. This event satisfies none of the three signal sets. The third event occurs when the End Copy Cycle line B becomes deactive. This condition satisfies the second signal set and since the three conditions for the FROM code type are now simultaneously satisfied, the beginning of the window is defined. This is the point at which display of information on lines A, B and C will begin whenever visual observation is requested. The next event, which occurs when address 1500 appears on test point 102 from the processor 104, is a precondition to subsequent recognition of the TO condition. When the End Copy Cycle line B becomes active, it does not satisfy any of the signal sets. However, when the Exit Pocket line C becomes deactive, the conditions for recognition of the third signal set are satisfied and the end of window 502 is defined. If the test point lines 101 and 102 are continually scanned, the information on lines A, B and C will, when requested, repeatedly appear on the printer 109 during the window 502. The information displayed on the printer 109 may simultaneously, or instead, be displayed on the terminal 108 or the result vector may be entered in a mass storage unit for later use. 
     DESCRIPTION OF THE OPERATION 
     While the invention may be built using commercially available logic circuits, the preferred embodiment uses an IBM Series/1 general-purpose minicomputer programmed to provide the necessary controls. The Appendix illustrates the source-code listing of relevant portions of an IBM Series/1 Event Driven Executive program facilitating practice of the invention. If desired, an equivalent program can instead be written for the same, or another machine, in any appropriate high-level language, assembler mnemonics or directly in machine code. The publication Series/1 Digest (Third Edition, September 1978, Form No. G360-0061-2), available from the IBM Corporation, Atlanta, Ga., summarizes the Series/1 system. 
     Operation of the preferred embodiment will now be described by referring to the Appendix and FIGS. 6-8. In FIG. 6, the FIG. 1 tested device 100 test point lines 101 are scanned by the testing apparatus 105 until the selected state (active or deactive) of one of the test point signals (A, B, etc.) specified in the menu by the operator is found. If any one signal with a selected state is found, that signal is checked against the various types of signal sets (criteria and conditions) defined in the menu by the operator to see if it (along with other test point signals) satisfies the sets with which it is associated. If it does not, scanning resumes until a signal state does match a specified set. One defined limit of a display window is recognized in accordance with a match and scanning continues until all the limits of the window are defined. 
     In more detail, scanning of test point signals starts at point A in the FIG. 6 flow diagram and ends at point C when the last defined test point signal has been scanned. Each test point line is scanned once for a signal transition to a selected state on that line. When a signal is found, its state is compared (FIG. 7) against the possible sets of criteria and conditions which were specified in the menu by the operator. If a specified signal state appears and matches a satisfied criteria or condition set, that fact is recorded. The signal state is compared with the next set, whether or not it matches a criteria or element in the current set. When a signal state does not satisfy a criteria or condition in any signal set, the test point lines will be scanned for the next test point signal transition on any test point line and the signal sets will be tested again from the beginning. When the end is reached, execution returns to the beginning. This cycling through the process continues until all the sets of criteria and conditions have been successfully compared with the test point signals. 
     A signal transition initiates in FIG. 7 a comparison of its selected (Active or Deactive) state with the RESET and COPY conditions (if specified) and then, in order, every other selected condition. If a test point signal having a selected state matches criteria in the RESET signal set, execution returns to the start of the program at point A. Assuming that there is no RESET condition, the COPY CYCLE signal set is tested next. When the designated COPY CYCLE signal conditions are found, a counter is incremented and the current time (based on the value of the counter) is stored. The test point signals are then compared against all the selected conditions in turn starting with the BASIC condition and ending with the MULTIPLE TRANSITIONS and ADDRESS COMPARE conditions. If the operator specified a BASIC signal set (FROM, TO, OR, etc.), all of the Active and Deactive signals for all of the elements in that BASIC signal set must be satisfied before the next test point signal is tested. The NOT condition is next if the operator has specified one at this point. When one of the inverted signal levels in the NOT signal set is satisfied, execution moves to the DELAY signal set, if specified. If a DELAY signal set is specified at this point, the delay time put into the menu by the operator must elapse before the next test point signal will be tested. Similarly, in the case of a MULTIPLE TRANSITION signal set, execution will wait for a specified number of transitions of a test point signal at a single test point before the next test point will be tested. If the operator chose an ADDRESS COMPARE signal set, execution will wait for the occurrence of the specified address. When a table of addresses has been specified, execution will wait until one (the first) of the addresses in the table is found. The process ends when the last signal set is satisfied. 
     Result vector memory locations record the matched signal sets and times elapsed between FROM and TO matches. This data ultimately creates a visual representation of test point signal states as a function of time with the FROM and TO times defining window limits. The times when the FROM and TO conditions are recognized are both also internally recorded. The time differences are calculated and stored continuously in sequential locations of an event time buffer area of memory. If a COPY COUNT set is specified, each count increment is associated with a corresponding time buffer location whether or not a time difference occurred. 
     The program in the Appendix performs the operations in the FIGS. 6 and 7 flow diagrams by executing program modules, including those identified in FIG. 8, in the order shown. The functions of the modules are: 
     
         ______________________________________                                    
MODULE MTSDR  FUNCTION PERFORMED                                          
______________________________________                                    
ONE           Executes functions specified                                
              in the menu.                                                
SCN           Scans test points to select                                 
              signal timing transitions.                                  
MAN           Manages data reduction                                      
              processes and storage.                                      
STR           Used by MTSDRMAN to store                                   
              reduced data.                                               
PVC           Used by MTSDRMAN to execute                                 
              process vectors. It, in turn,                               
              uses the modules below.                                     
RST           Processes reset signal sets                                 
              with the aid of MTSDRMCH.                                   
CCY           Processes copy cycle signal                                 
              sets with the aid of MTSDRMCH.                              
SSV           Processes Basic signal sets                                 
              and not signal sets with the                                
              aid of MTSDRMCH and MTSDRTIM.                               
DLY           Processes Delay signal sets.                                
PLS           Processes Multiple Signal                                   
              Transition signal sets with                                 
              the aid of MTSDRMCH.                                        
ADC           Processes Address Compare                                   
              signal sets.                                                
MCH           Matches levels and values                                   
              specified in the menu with                                  
              test point signals.                                         
TIM           Calculates result times.                                    
______________________________________                                    
 
    
     While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention. ##SPC1## ##SPC2## ##SPC3## ##SPC4## ##SPC5## ##SPC6## ##SPC7##