Particular communication feature

Message routing through data communication networks

4645874

Abstract

A mechanized system distributing the access, test and communication functions to the point of testing, typically the centralized switching facility serving the telephone loops and equipment to be tested. Computer (200) stores information about each subscriber loop in the geographical area served by a system. Front-end computers (220,221) interact with computer (200) to retrieve pertinent data regarding loops to be tested. Each switching facility in an area includes a loop testing system (e.g., 160) that implements the required functions. The communication functions residing in front-end computers (220,221) and loop testing systems (160,161) are coupled via a data communication network (140) in a manner that allows any front-end computer to communicate with any loop testing system. Users of the system control access and test from consoles having the capability of establishing independent communication paths over the national dial network for interactive tests on loops accessed through standard test trunks. Microprocessor-based circuitry is utilized for numerous system tasks such as signal generation, digital signal processing and controlling sensitive analog measurements. Signal generation includes digital generation of analog waveforms. Signal processing techniques incorporate various digital filters to analyze sample sequences derived from, for example, dial pulses and coin telephone signals. Sensitive analog measurements of loop characteristics are effected with a magnetic current detector that operates over broad current and frequency ranges. Frequency dependent measurements are converted to DC using synchronous demodulation techniques to enhance resolution.


Claims

What is claimed is:

1. In a distributed data communication network for use in a telephone or general data transmission system, a method comprising the steps of

dynamically allocating a return path through said network for each message traversing said network from a message source coupled to said network,

storing a plurality of most recent return paths associated with said source in a message receiver,

transmitting return information to each said message from said receiver over the return path associated with said message, and

if said information is blocked by said network, alternatively transmitting said information over another of said recent return paths.

2. In a data communication system for use in telephone or general transmission networks (140) for transmitting messages between a request computer (e.g., 220) and a response computer (e.g., 14001) connected by a plurality of dynamically allocated paths through said system, each of said messages, upon reception at said response computer, having an identififer (LOGICAL ID) indicative of the logical location of the requesting computer within said system and the path (`up.sub.-- route`) selected for traversing said system, a method comprising the steps of

(A) storing in said response computer a preselected number of the recent paths associated with said identifier,

(B) transmitting a response message over the path selected for traversing said system as determined by the contents of the corresponding request message, and

(C) if step (B) is unsuccessful, alternatively routing said response message over one of said most recent paths.

3. In a data communication system for use in telephone or general transmission networks (140) for transmitting messages between a plurality of request computers (220,221) and a response computer (e.g., 14001), each of said request computers and said response computer being connected by a plurality of dynamically allocated paths, each of said messages, upon arriving at said response computer, having an identifier (LOGICAL ID) indicating the corresponding one of said request computers and the path (`up.sub.-- route`) utilized to traverse said system, a methoc comprising the steps of

storing in said response computer, for each of said messages, a predetermined number of the most recently used paths associated with each said identifier,

sending a response message corresponding to a request message over the path utilized to traverse said system as determined by the contents of said request message, and

upon a transmission failure of said response message, alternatively routing said response message over one of said recently used paths.

4. In a data communication network for use in a telephone or general data transmission system (140) for transmitting messages between originating computers (220,221), each with a logical identifier, and a terminating computer (e.g., 14001), a method comprising the steps of

augmenting each of said messages with a field (LOGICAL ID) containing said identifier indicating the particular originating computer,

dynamically allocating a path (`down.sub.-- route`) through said network as determined by information stored in said originating computer,

transmitting each augmented message over said path,

compiling information (`up.sub.-- route`) to determine a return path as each augmented message traverses said network,

extracting, at said terminating computer, said return path and storing a predetermined number of the most recent ones of said return paths associated with each said identifier,

sending a response corresponding to said each augmented message over said return path, and

upon blockage of said return path, alternatively routing said response over one of said recent ones of said paths.

5. In combination with a distributed data communication network for use in a telephone or general data transmission system linking a message source with a message receiver, circuitry comprising

means (1401-1412, 1421-1468) for dynamically allocating a return path through said network for each message traversing said network from said source,

means (14001-14096) for storing a plurality of the most recent return paths associated with said source in said receiver,

means (14001-14096) for transmitting information for each said message over the return path associated with said each said message, and

means (14001-14096) for alternatively transmitting said information over another of said recent return paths upon a blockage by said network of said return path associated with said each said message.


Description

REFERENCE TO A MICROFICHE APPENDIX

This application contains a set of microfiche appendices, designated A through C, listing programs incorporated in the testing system comprising the subject matter of this disclosure. The total number of microfiche is 16 and the total number of frames is 923.

CROSS-REFERENCE TO RELATED APPLICATIONS

The following U.S. applications, which are assigned to the same assignee as the instant application and filed concurrently therewith, have related subject matter. Certain portions of the system, processes and circuitry herein disclosed are inventions of the below named inventors as defined by the claims in the following patent applications:

(1) "Mechanized Testing of Subscriber Facilities", Ser. No. 399,177 of H. Rubin, since issued as U.S. Pat. No. 4,446,341 on May 1, 1984;

(2) "Data Communication Network", Ser. No. 399,186 of C. L. Coleman-H. Rubin; now U.S. Pat. No. 4,562,436

(3) "Networks for Data Communication", Ser. No. 399,187 of H. Rubin;

(4) "Parallel Bus Protocol", Ser. No. 399,171 of N. R. Fildes;

(5) "System for Accessing and Testing Subscriber Loops", Ser. No. 399,185 of H. Rubin, since issued as U.S. Pat. No. 4,438,298 on Mar. 20, 1984;

(6) "Switching Network for Interactive Access and Testing of Subscriber Loops", Ser. No. 399,188 of H. Rubin, since issued as U.S. Pat. No. 4,467,147 on Aug. 21, 1984;

(7) "Stored Program Controller", Ser. No. 399,175 of H. Rubin;

(8) "Programmable Tester for Measuring Network Characteristics", Ser. No. 399,172 of H. Rubin, since issued as U.S. Pat. No. 4,459,436 on July 10, 1984;

(9) "Programmable Network Tester with Data Formatter", Ser. No. 399,184 of K. B. Kemper-H. Rubin now U.S. Pat. No. 4,525,789.

(10) "Programmable Gain Amplifier", Ser. No. 399,183 of K. B. Kemper;

(11) "Digital Signal Generator", Ser. No. 399,176 of H. Rubin; now U.S. Pat. No. 4,525,795.

(12) "Magnetic Current Sensor", Ser. No. 399,182 of K. B. Kemper; now U.S. Pat. No. 4,536,706.

(13) "Magnetic Current Sensor with Offset and Load Correction", Ser. No. 399,174 of J. M. Brown-K. B. Kemper, since issued as U.S. Pat. No. 4,516,070 on May 7, 1985;

(14) "Magnetic Differential Current Sensor", Ser. No. 399,173 of J. M. Brown, since issued as U.S. Pat. No. 4,517,513 on May 14, 1985;

(15) "Digital Filtering with Monitored Settling Time", Ser. No. 399,189 of H. Rubin;

(16 ) "Dial Pulse Measurement Circuitry", Ser. No. 399,181 of H. A. Miller, since issued as U.S. Pat. No. 4,501,003 on Feb. 19, 1985;

(17) "Coin Telephone Measurement Circuitry", Ser. No. 399,178 of H. A. Miller; now U.S. Pat. No. 4,590,583.

(18) "Dual-port Random Access Memory Arrangement", Ser. No. 399,179 of H. C. Bond-E. H. McFadden-H. A. Miller.

TABLE OF CONTENTS

Technical Field

Background of the Invention

Summary of the Invention

Brief Description of the Drawing

Detailed Description

1.: THE MECHANIZED LOOP TESTING (MLT) ARCHITECTURE

2.: MLT IMPLEMENTATION

2.1: Data Communication Network (DCN)

2.1a: Structure

2.1b: Message Routing

2.1c: Software Design

2.1d: Software Operation

2.2: Loop Testing System (LTS)

2.2a: Structure

2.2b: LTS Operation

2.2.1: LTS Controller

2.2.1a: Access Request Processing

2.2.1a.1: Regular Test Access and MDF Trunk Access

2.2.1a.2: Interactive Access Request Processing

2.2.1a.3: Callback Access Processing

2.2.1b: Test Request Accessing

2.2.1c: LTS Requests

2.2.1d: LTS Controller Circuitry

2.2.2: Port Controller

2.2.3: Precision Measurement Unit (PMU)

2.2.3a: Digital Signal Generator (DSG)

2.2.3b: Magnetic Current Sensor

2.2.3c: Signal Processing

2.2.3d: PMU Controller

2.2.4: LTS Circuits For Establishing Loop Connections

2.3: Front End (FE) System

3.: MLT CIRCUITRY AND PROGRAMS

3.1: DCN Implementation

3.1.1: Circuitry

3.1.2: DCN Programs

3.2.1: LTS Controller Implementation

3.2.1a: LTS Main Controller Circuitry

3.2.1b: LTS Universal Memory

3.2.1c: LTS Serial Data Line Interface

3.2.1d: LTS Programs

3.2.1e: Test Sequences

3.2.2: Port Controller Implementation

3.2.3: PMU Implementation

3.2.3a: DSG Circuitry

3.2.3a.1: DSG Software Considerations

3.2.3a.2: DSG Hardware Considerations

3.2.3b: Magnetic Current Sensor Circuitry

3.2.3c: Digital Processing and Control

3.2.3d: Digital Processing Considerations

3.2.4: Loop Connection Circuitry

3.3: FE System Considerations

TECHNICAL FIELD

This invention relates generally to testing of telecommunication facilities such as telephone loops provided over multipair cables and, more particularly, to a stored program control system which directs a network of distributed processors to access and measure the facilities.

BACKGROUND OF THE INVENTION

In order to test telephone loops, whether for fault diagnosis, preventive maintenance purposes or even to compile statistical information about loop characteristics, three basic functions are required, namely: access, test and communication. These three basic functions can readily be identified for any manual or automatic testing system. For instance, within each system, there are mechanisms for gaining control of a loop to be tested, for connecting to it and for directing appropriate testing activities. Moreover, a two-way communication path exists between testing personnel or equipment interfaces so that selected test activities may be initiated, coordinated and the results collected for analysis. Oftentimes, an automated central controller determines the testing pattern and analyzes results via interpretive algorithms.

One such computer-based system has been described in an article entitled "The Evolution of the Automated Repair Service Bureau with Respect to Loop Testing", published in the Conference Record of the International Symposium on Subscriber Loops and Services, March 1978, pages 64-68 as authored by O. B. Dale. The Automated Repair Service Bureau (ARSB), which supports loop maintenance operations, includes the following maintenance functions: receiving trouble reports from customers; trouble report tracking; generating management reports; and real-time loop testing and fault diagnosis. Thus, within the ARSB framework, there is provided a rapid, convenient method for testing and analyzing test results automatically at the time of customer contact as well as on demand during repair procedures.

In order that the subject matter of the present invention may be elucidated, it is important to elaborate on the ARSB architecture and the capabilities of the above-mentioned testing arrangement within this architecture. The information presented by this overview is set forth in the above-mentioned reference as well as in an article entitled "Automation of Repair Service Bureau", Conference Publication No. 137 of the International Symposium on Subscriber Loops and Services, May, 1976 as authored by R. L. Martin. FIG. 1 indicates that the conventional ARSB comprises a tree-like structure with four major levels. At Level 1 of the tree is a data storage computer (200) which maintains a master data base of up to five million customer line records; the information on these records includes data as to equipment terminating the loop, loop composition, customer telephone number, and so forth. Level 2 is composed of an array of front end (FE) computers (220,221), each of which manages the bulk of the trouble report processing for about 500,000 lines. The users of the system, typically maintenance and craft personnel of the telephone company deploying the ARSB, interact with the system at this level. Level 3 is an array of control computers (240,241) that control access and testing and provide analysis of test results. Level 4 comprises loop testing frames (250,251) which perform the loop accesses and actual test measurements via test trunk connections to switching machines located in geographically-dispersed central offices.

Test requests from users are received and supervised by the FE computers and then performed by algorithms in the control computers and circuitry in the loop testing frames. The tests conducted are based on adaptive algorithms that compose test scripts in real time as a function of the electrical characteristics of the customer's equipment in the idle state. The data used are extracted from the data storage computer and then provided by the FE computers at the time the test request is generated. As testing on a customer's loop proceeds, the test script is continually being revised to reflect the knowledge of the loop which has been gained from the test results. The final test results and analysis are formatted for display to the user by the requesting FE computer. Varying levels of display detail, based on the technical sophistication of the user, are provided.

The loop testing subsystems of the ARSB were arranged to provide an area-based (about 1 million loops) system in order to expedite its introduction and mitigate cost to users. As a result, not all of the testing functions of the standard pre-ARSB facility, known as the Local Test Desk (LTD), were incorporated. For instance, the LTD continued to be used for interactive testing between testers at the LTD and field repair craft. The loop testing subsystem could not be utilized to maintain a connection to the loop under test for a prolonged duration, nor could field repair personnel be guided through a series of steps to diagnose, locate and correct a fault. In short, the loop subsystem was effective only in screening troubles and performing pre-dispatch and post-dispatch testing. Also, not every type of terminal equipment could be tested. For instance, coin telephone features were precluded from testing. Moreover, because the LTD operated within the same environment as the ARSB, the LTD was considered a backup during temporary outages of ARSB so there was no need for redundancy or fail-soft operation in the testing system. Finally, the area-oriented system was not cost effective for single wire centers serving only a few thousand lines.

With the above background, the significant limitations and deficiencies of the conventional ARSB testing system, including those emphasized above, may be summarized as follows: (1) no interactive testing capability with field craft personnel nor customers; (2) inability to test coin telephone stations including such conditions as off-normal totalizers, stuck coin conditions, coin collect and coin return circuitry, and loop-ground resistance; (3) impossible to test and talk over the same test connection; (4) no single- and double-sided resistive fault sectionalization capability; (5) no ability to apply metallic or longitudinal pair identification tones; and (6) no capability to control and monitor concurrent testing operations from a single work station.

Besides the ARSB approach, numerous other automated, but less complex, approaches have been employed to effect loop testing. Typically these have focussed on specialized problem areas, such as rapid-scan procedures to verify the accuracy and quality of splicing operations or simplified checks on easily quantifiable loop parameters like loop insulation resistance or loop impedance at a given frequency for preventive maintenance purposes.

Other automated approaches, with a sophistication comparable to the ARSB approach, have been developed for the purpose of diagnostic testing. One representative prior art system is disclosed in U.S. Pat. No. 4,139,745 issued to Ashdown et al on Feb. 13, 1979. Broadly speaking, the system comprises control means having a programmed digital computer and associated memory, a line test network, at least one user station and an interface for interconnecting these elements and one or more telephone exchanges and the plurality of telephone lines extending from such exchanges.

The line test network is responsive to the digital computer and includes means for generating a plurality of signals for a test cycle. During a cycle, besides DC and noise measurements, AC signals are applied to the three-wire line comprising the tip-ring-ground conductors and longitudinal and metallic response signals are measured. The responses are utilized to provide an indication of the capacitive load across the line which, in turn, may be translated to produce parameters indicative of, for example, line length, type of termination and possible line faults.

However, this prior art system possesses the same shortcomings and limitations summarized above with respect to the ARSB. Moreover, since the system is not comprised of a data base for storing information about line composition, adaptive testing and interpretation of results in view of line configuration information is precluded. In addition, although may users may have access to the system, each testing operation is basically sequential and there is no suggestion that access and testing operations on many different lines within one exchange may be occurring concurrently.

It is clear from a perusal of the prior art portion of the ARSB set forth in FIG. 1 that each grouping of test trunks is served by only one FE computer. In the event of a FE computer outage, the Local Test Desk could, temporarily, satisfy user test requests. However, such reliance reduces system throughput and is inappropriate in a fully automated testing environment. Such a shortcoming is obviated in an architecture that allows a plurality of FE computers to access any particular trunk.

To mitigate these and similar shortcomings, some distributed computer systems require that a cluster of controlling minicomputers communicate with remote entities that typically include microprocessor-based subsystems. However, when the number of such remote entities become large, a significant amount of minicomputer processing time must be devoted to these communication needs, and throughput is again reduced.

Also, packet switching networks may be used advantageously in some situations, but delay times through such networks and the cost of additional remote circuitry can render these solutions unattractive.

With the development of microprocessors, which function autonomously, it becomes feasible to decentralize switching functions and thereby offload many controller computer communication activities to the actual point of switching. Such an arrangement is discussed in U.S. Pat. No. 4,285,037 issued to H. Von Stetten on Aug. 18, 1981; this disclosure is selected as representative of numerous distributed processor switching networks configured for intercomputer communication. In these networks, all distributed processors, generally microprocessors, are connected to one another via a common bus. Communication of messages in the transmitting and receiving directions occurs between the processors in the form of information blocks having address information. A central clock is provided under whose control respective processors are cyclically connected for the emission of an information block and all other processors are connected to the common data bus in the receiving mode. Only the receiver having the specified address then receives the desired message. The processors comprising the system receive information from and transmit messages to associated peripheral or interface devices. For instance, some processors may be coupled to terminals or memories, whereas other processors may connect to communication lines having different baud rate capabilities.

The major shortcomings of such an arrangement include the utilization of a common bus which precludes alternative routing in case of a bus failure and the sequencing procedure allowing only one bus talker at a time. During peak message transfer periods, such an allocation procedure could lead to blocking situations with concomitant throughput delays.

Also, the standard communication sequences between a sender and receiver over a bus are usually replete with segments of no activity on the bus. For instance, after the sender transmits a message, the receiver computes a check word while the sender remains idle. The receiver then returns an acknowledge/negative acknowledge status message. Once the transmitted message is accepted, the sender then determines the next activity while the receiver is now inactive. Techniques have been devised to improve the efficiency of transmission in this simple sender-receiver situation. One such improvement utilizes the time the sender is idle (during check word computation) to effect a determination of the next activity.

The inefficiency is magnified in the situation of a talker communicating with many listeners. During the period in which one receiver is computing a check word, the remaining receivers are idle. If a retransmission is necessary, the inefficiency is compounded. Part of the difficulty occurs because the accept-reject status of a total message is also formulated as a message and returned over the data leads of the bus. Moreover, in situations exemplified by the MLT system, wherein the message propagate time is of the same order as a check word computation, the sender is idle for a significant portion of each transmission activity. This is in contrast to the situation wherein the messages are considerably longer than the check word computations, so the percentage of time the sender is idle is small.

As alluded to above in the summary of ARSB deficiencies, automated testing of coin telephone systems has, in the past, presented severe implementation problems because of the special nature of the coin equipment. Other special loop situations, such as analysis of dial pulses or measurement of nonlinear devices like thermistors, have also presented basically insurmountable implementation difficulties with conventional automated test procedures and equipment. Fortuitously, however, technological advances recently occurred which now make it possible to solve these problems and difficulties. Advances in microcomputing, digital signal processing and measurement technology have provided the motivation for the development of versatile digital signal generators and digital analysis techniques, including digital filtering, which produce rapid and accurate measurements. Unfortunately, however, the majority of subscriber line to be tested are still analog in nature and parameters of interest relate to the frequency-dependent characteristics of the lines. Therefore, a suitable transponder for interfacing the analog lines to the sophisticated digital processing techniques is still a fundamental necessity.

One such transponder arrangement developed for sensitive line current measurements is disclosed in U.S. Pat. No. 4,274,051 issued to J. Condon on June 16, 1981. The invention set forth in this reference utilizes a pair of magnetic structures to produce an output signal when the current on the loop is other than zero. However, because the line currents undergoing measurement with this arrangement were large in magnitude, the errors caused by differences in the hysteresis characteristics between structures were negligible and could be ignored. Such errors, particularly when measuring differential currents, prove to be critical and require compensation to insure accuracy and resolution over the broad operating range expected of the transponder in the digital processing environment.

SUMMARY OF THE INVENTION

In accordance with the illustrative embodiment of the present invention, a data communication network devised for routing high-level messages between a plurality of control computers and numerous response computers utilizes a multitier microprocessor structure and internal interconnecting bus arrangement that provides two alternative paths between the input and output ports of the network. To maintain this degree of redundancy between the remotely located control computers and the data network itself, each control computer supports two independent, dynamically allocated paths which terminate on the network input ports. A unique logical identifier is associated with each computer and this identifier is stored in a header portion of each message compiled and transmitted by a particular control computer. Each microprocessor in the last tier serving as the output of the network extracts the identifier as well as information about the primary return path as stored in the header. The primary path is dynamically compiled as the message traverses the network. Each logical identifier and a plurality of the most recently used paths associated with each identifier are stored in each last tier microcomputer. The primary path is utilized on a first attempt to return a response message and, upon a path failure or blockage, one of the plurality of most recently used paths is selected as an alternative route.

The invention is set forth with particulaity in the appended claims. An understanding of this invention may be obtained with reference to the following detailed description taken in conjunction with the accompanying drawing.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 indicates the architectural arrangement of one conventional automated testing system and, in accordance with an alternative embodiment of the present invention, an arrangement for integrating the distributed Merchanized Loop Testing (MLT) system within the conventional system to expand test capabilities.

FIG. 2 depicts, in overview fashion, a block diagram of the major components comprising the stand-alone Mechanized Loop Testing system, as well as the interconnections among these components.

FIG. 3 depicts a three-tier multiprocessor realization of the Data Communication Network (DCN) shown in block diagram form in FIG. 2.

FIG. 4 illustrates the internal bus structures of the connection matrix and the connection arrays of the DCN.

FIG. 5 shows the flag-field pattern for a representative conventional high level data link protocol and, in particular, the location of the INFORMATION field within the pattern.

FIG. 6 indicates the composition of the INFORMATION field in terms of HEADER parameters and DATA bytes utilized by the MLT system in message routing, loop access and loop test.

FIGS. 7, 8 and 9 show the microcomputer software architecture, in pictorial form, for tiers 1, 2 and 3, respectively, of the DCN. These illustrations are pictorial in the sense that they indicate a logical situation in terms of the number of copies of software utilized to implement the various system tasks.

FIG. 10 depicts the priority of execution of tasks within any of the microcomputers of the DCN. Both the initialization execution (top portion of FIG. 10) and execution with external event interrupts are illustrated.

FIG. 11 depicts, in block diagram form, a realization of the Loop Testing System (LTS) shown pictorially in FIG. 2.

FIG. 12 illustrates the DATA bytes in the INFORMATION field for the regular or main distributing frame access request message as routed through the LTS of FIG. 11.

FIG. 13 illustrates the contents of an interactive request message when both a loop access and a talk path to the Maintenance Center are to be established.

FIG. 14 depicts the message returned from the port controller of FIG. 11 in response to an access request message.

FIG. 15 illustrates those DATA bytes extracted from the message format of FIG. 13 which are then utilized by the TCD task of the LTS controller of FIG. 11 to establish the actual callback path.

FIG. 16 is a depiction of the message format for a test request.

FIG. 17 depicts, in block diagram form, the circuitry comprising one Precision Measurement Unit (PMU) of FIG. 11.

FIG. 18 is a more detailed representation of the PMU controller, AC-DC source generator and digital signal processing portions of the block diagrams of FIG. 17.

FIG. 19 illustrates the arrangement of memory bytes to realize the accumulator of the digital signal generator within the AC-DC source generator of FIG. 17.

FIG. 20 is a diagram, partly in schematic and partly in block form, showing one implementation of the source applique of FIG. 17.

FIG. 21 indicates essential portions of magnetic current sensor circuitry of the detector portion of FIG. 17 whereby loop currents are transformed to equivalent voltages.

FIG. 22 depicts the processing circuitry of the detector of FIG. 17 utilized to filter and scale the equivalent voltages.

FIG. 23 shows a block diagram representation of the measurement processor of FIG. 17.

FIG. 24 indicates the manner in which FIGS. 18, 20, 22 and 23 may be arranged to form a composite representation of FIG. 17.

FIG. 25 indicates that the PMU task provides data to specify which of the many possible test requests is to be selected and, accordingly, appropriate parameters are passed to the measurement cycle controller.

FIG. 26 depicts the sequencing of the measurement cycle controller for each configuration of PMU circuitry.

FIG. 27 illustrates the switch matrices comprising the equipment access network of FIG. 17 as well as the arrangement of various access and test circuits of FIG. 17 at the ports of the equipment access network.

FIG. 28 indicates that: a tier 1 device in the DCN is composed of the circuitry depicted in FIGS. 29 and 30; a tier 2 interface is formed from the circuitry of FIGS. 29 and 30; and a tier 3 circuit comprises the circuitry of FIGS. 29, 32 and 33.

FIG. 29 is a block diagram representation of the CPU circuitry utilized by the three tiers of the DCN.

FIG. 30 is a block diagram illustration of the serial-input, parallel-output communication circuitry of a tier 1 device.

FIG. 31 is a representation in block diagram form of the parallel-to-parallel communication circuitry of a tier 2 interface.

FIG. 32 depicts the parallel-input portion of a tier 3 circuit in block diagram form, whereas FIG. 33 shows the serial-output portion of each tier 3 circuit.

FIGS. 34 through 36 and 38 through 41 are schematics of the various subsystems comprising the CPU circuit of FIG. 29 and include, respectively: the reset circuitry; the interrupt structure; the microcomputer-based processor; address buffer; random access memory; address decoder; and timer, buffer and circuitry identifier arrangements.

FIG. 37 is a timing diagram indicating the levels of the ports of the microcomputer relative to the input clock.

FIG. 42 depicts the signal leads comprising the three external busses and the internal bus shown in FIG. 29

FIGS. 43 through 48 are schematics of the different subsystems comprising the serial-to-parallel portion of a tier 1 device shown in FIG. 30 and include, respectively: read-only memory; talker/listener/controller interface; direct memory access circuits with accompanying data buffer; data link protocol interfaces with associated buffer; and chip select circuitry.

FIGS. 49 through 53 are schematics of the subsystems cooperating to form the parallel-to-parallel portion of a tier 2 interface shown in FIG. 31 and include, respectively: talker/listener interface; direct memory access circuitry; and chip select circuitry.

FIGS. 54 and 55 are schematics of the serial output portion and the programmable interval timer portion, respectively, of a tier 3 circuit shown diagrammatically in FIG. 33.

FIG. 57 is a depiction of the interconnection between a controller and listener explicitly setting forth the serial poll register contents and the major/minor addressing capability of the general purpose bus.

FIG. 58 indicates that: the LTS controller of FIG. 11 is comprised of the circuitry depicted in FIGS. 59, 69 and 72; the port controller of FIG. 11 is a composite of the circuitry shown in FIGS. 59, 69 and 81; the PMU controller of FIG. 17 is formed from the circuitry illustrated in FIGS. 59 and 69; and the digital signal processing circuitry of FIG. 17 is depicted by the block diagram of FIG. 110.

FIG. 59 is a block diagram representation of the CPU circuitry utilized to implement either the LTS main controller, port main controller or the PMU main controller.

FIGS. 60 through 68 are schematics of the different modules forming the basic main controller as depicted by FIG. 59 and include, respectively: the microprocessor and its associated controller as well as bus buffers; timer and bus adapter; bus controller and associated buffers as well as system reset; system oscillator and clock divider; and two types of random access memory.

FIG. 65 depicts the signal leads comprising the external and internal busses shown in FIG. 60.

FIGS. 66 through 68 indicate the memory allocation, including those bank-switched portions, for the LTS controller, the port controller and PMU controller, respectively.

FIG. 69 is a block diagram of the universal memory board which indicates that FIG. 70 provides the schematic diagrams for the data transceiver, address buffer and decoder as well as the bank selector portions of the universal memory whereas FIG. 71 provides the arrangement of memory devices.

FIG. 72 is a block diagram of the data line interface associated with the LTS controller of FIG. 58.

FIGS. 73 through 75 are schematics of the subcomponents comprising the data line interface of FIG. 72 and include, respectively: read-only memory and random access memory realizations as well as address decoding for these memories; synchronous data link protocol controller and associated clock; and reset and data buffer circuitry.

FIG. 76 is a block diagram representation of circuitry arranged to effect a measurement of loop balance.

FIG. 77 incorporates both schematic and block diagram illustrations to indicate the procedure for measuring metallic noise in LOOP, RING ground and TIP ground start central offices.

FIG. 78 indicates an arrangement for detecting a single frequency tone on a subscriber loop.

FIG. 79 presents circuitry for rotary dial analysis.

FIG. 80 is a representation of a circuit utilized to test for receiver off-hook conditions.

FIG. 81 is a block diagram of the port interface associated with the port controller of FIG. 58; this diagram indicates that circuit details relating to the address decoder are given in FIG. 82 whereas FIG. 83 presents random access memory realizations.

FIG. 84 is a block diagram depiction of circuitry comprising the AC portion of the source generator of FIG. 18.

FIG. 85 is a more detailed representation of one AC reference signal generator depicted in FIG. 84.

FIG. 86 is a structure chart indicating the calling linkages among the various processes, output functions and subroutines comprising the programs of the AC generators of FIG. 84.

FIGS. 87 and 91 are flow charts for the RESET process and the DATA ACCEPT subroutine depicted in FIG. 86, whereas FIGS. 88 through 90 provide the flow chart for the NMI process.

FIG. 92 illustrates the data transfer sequence for a variable byte count relating to providing information to the Sequence Single Frequency output function.

FIG. 93 depicts the bit weights to be assigned to the hexidecimal data values for digital signal generation.

FIG. 94 indicates the number and order of transmission of bytes for the various output functions of the source generator.

FIG. 95 is a flow chart of the program implementing the Single Frequency output function.

FIG. 96 is a recasting of FIG. 20 in view of the circuit details presented for the source generator.

FIG. 97 is a flow diagram for the SINCOS subroutine.

FIGS. 98 and 99, in combination, present the flow chart for the Sequence Multifrequency function.

FIGS. 100 through 103 are flow charts for, respectively, Convert Frequency, Zero, T-ON and T-OFF subroutines of the source generator.

FIG. 104 is a memory map for the various software routines utilized to implement the source generator of FIG. 17.

FIG. 105 combines the circuitry of FIGS. 20 and 21 which allow a full elucidation of the operation of the magnetic current sensor circuitry.

FIGS. 106 and 107 present a portion of major saturation hysteresis loop for two magnetic structures implementing a current sensor for matched and mismatched conditions, respectively.

FIG. 108 is a diagram indicating the sequence of operations, as well as their relative timing, for generating a pair of data samples in the measurement processor of FIG. 11.

FIG. 109 depicts circuitry implementing a programmable gain amplifier for autoranging during a measurement cycle.

FIG. 110 is a block diagram of the digital signal processor depicted with reference to the PMU circuitry of FIG. 58.

FIGS. 111 through 114 are schematics of the different subcomponents comprising the digital signal processor of FIG. 110 and they indicate, respectively: random access memory and read-only memory implementations; the dual-port RAM and demultiplexing circuitry to interface the PMU controller to the programmable signal processor of FIGS. 112 and 114; and address decoding circuitry.

FIG. 115 shows the architectural arrangement for the special purpose signal processor implementing the down-loaded signal processing techniques.

FIG. 116 illustrates the boundary alignment for the various registers and busses comprising processor of FIG. 115.

FIGS. 117, 118 and 119 depict the flow diagram of a program for digital filtering DC signals and thereby determine the settled DC values for one to six synchronously demodulated channels.

FIGS. 120 through 123 depict the flow diagram of a program for analyzing coil phone tone bursts in order to test a coin totalizer.

DETAILED DESCRIPTION

1. The Mechanized Loop Testing (MLT) Architecture

The overriding architectural consideration employed in the MLT system is to distribute the access, test and communication functions as closely as possible to the point of testing, which generally is the centralized switching facility serving the subscriber loops to be tested. The deployment of such a distributed architecture minimizes data flow in the system, increases testing accuracy and expands test capabilities.

To place in perspective the description that follows, FIG. 1 illustrates, in overlay fashion, one arrangement for integrating the distributed MLT system within the framework of the ARSB system discussed in the Background Section. In this depiction, it is clear that one embodiment of the MLT system serves as an adjunct to the testing system described earlier. However, the illustrative embodiment of the present invention is best elucidated as a stand-alone system and this arrangement is shown in FIG. 2.

FIG. 2 depicts, in overview fashion, a block diagram of an illustrative embodiment of the MLT architecture arranged in accordance with the present invention. Data storage computer 200 stores information about each subscriber loop existing in the area to be served by the MLT system. For instance, typical types of information accessible in computer 200 include the composition of the subscriber loop, office equipment, outside plant equipment and terminating equipment associated with each loop.

The area served by a MLT system generally encompasses a number of geographically-dispersed wire centers 150 and 151 containing switching machines 170 and 171, respectively. Individual subscriber loops 180, . . . , 183, with associated customer equipment 190, . . . , 193, respectively, are served by wire centers 150,151 and connect to switching machines 170,171. Each wire center 150 or 151 served by the MLT system contains a collocated microprocessor-based Loop Testing System (LTS), 160 or 161, respectively, that also implements access, test and communication capabilities (shown pictorially as components of each LTS 160 or 161 in FIG. 2). The access portion of each LTS 160,161 is arranged with circuitry for establishing a transmission connection, under control of FE computers 220,221, over the national dial network, that is, the Direct Distance Dialing (DDD) network, via facilities 932 and 933 emanating from wire centers 150 and 151, respectively. Switching machines 170, 171 are accessible from LTS 160,161 via test trunks 940,941, respectively.

Front-end (FE) computers 220,221 interact with storage computer 200 to retrieve pertinent data regarding subscriber loops to be tested. Since FE computers 220 and 221 are not necessarily collocated with computer 200, data links 900 and 901, respectively, are provided for intercomputer communication. Direct communication between FE computers 220,221 is accomplished via Parallel Communication Link (PCL) 210 and interposed busses 910,911, respectively.

The communication functions that reside in each LTS 160,161 and in each FE computer 220,221 are coupled via Data Communication Network (DCN) 140. DCN 140 allows any one of FE computers 220,221 to communicate with any LTS 160,161 in any wire center 150,151 served by the MLT system. DCN 140 is also a microprocessor-based distributed processing machine that offloads communication processing for all FE computers 220,221.

The architecture depicted in FIG. 2 allows any FE computer 220,221 to test any customer loop 180, . . . , 183 within the area served by the MLT system. To demonstrate this, the following describes, again in overview fashion, the operation of the illustrative embodiment of the MLT system.

A loop test is typically generated by a request from repair service bureau personnel, typically a maintenance administrator. This user has a console 230,231 with an input/output device, e.g., a keyboard and cathoderay tube (CRT), for interfacing to a FE computer 220,221 via data links 912,913, respectively; the console also includes circuitry 235,236 for communicating over the DDD network via conventional facilities 914 and 915. Several types of CRT masks are available to enable the user to input data (e.g., a telephone number to be tested) and receive output (e.g., test results) from the MLT system. When the user determines a subscriber loop is to be tested, an MLT program resident on FE computer 220 or 221 requests that certain data base information be retrieved from storage computer 200 relating to the characteristics of a loop 180, . . . , or 183 to be tested. This information is utilized by an application process resident on FE computer 220 or 221 that initiates accessing of the loop and then guides loop testing. The application process may contain, for instance, an adaptive loop testing algorithm or it may contain commands to implement interactive test control and other functions similar to that performed with manual testing.

Because of the processing capability available in the microcomputers of LTS 160,161, only high level commands are generated by FE computers 220,221. The first command requests LTS 160 or 161 to access a specified telephone number and, if interactive testing is required, the command also provides the telephone number of the circuitry at the user's console so a callback path may be established. The message compiled by the appropriate FE computer 220 or 221 to implement the command and transmitted over outgoing data line 920 or 921 contains a message field having a parameter that identifies which LTS data link 930 or 931 is to be utilized for intercomputer communication. Any message, including the first one, is routed from FE computer 220 or 221 to DCN 140 via incoming data links 920 or 921 and, after appropriate parsing and reassembly of the message, from DCN 140 to the preselected LTS 160 or 161 via outgoing data link 930 or 931. When access is completed, the response is rerouted through data link 930 or 931, DCN 140 and data link 920 or 921 to the FE computer 220 or 221 that requested the access. Subsequent message transactions that occur between FE computer 220 or 221 and LTS 160 or 161 involve high level requests for tests to be performed, followed by detailed responses containing raw test data (e.g., the amount of current that was measured on loop wires 180, . . . or 183 when a particular source was applied to the loop by LTS 160 or 161). These transactions may be prefaced with oral communications between the maintenance administrator at console 230,231 and the customer serviced by the loop or field craft personnel at a location along the loop. These communications are transacted over DDD callback path and are generally utilized in the interactive test mode to establish appropriate conditions on the loop for test purposes. For example, a craftperson may be requested to short the loop so a DC resistance measurement may be effected. The last request made by FE computer 220 or 221 is to have LTS 160 or 161 disconnect from loop 180, . . . or 183 under test. The number of loops that may be accessed simultaneously at any LTS site and the number of simultaneous tests that may be in progress at a given LTS are discussed in the sequel.

The above overview shows the basic design philosophy of the MLT system and illustrates one distributed processing approach to loop testing. Hardware and software functions are partitioned so that system complexity is reduced to the point where basically independently designed and maintained modules interact via high level commands. The following section describes the individual modules or components of the MLT system in somewhat more detail, but basically still in overview fashion, from both a hardware and software perspective. After this, another pass through each component will complete the detailed description.

2. MLT Implementation

2.1 Data Communication Network (DCN)

2.1a Structure

As indicated in FIG. 2 and alluded to in the foregoing discussion, DCN 140 is structured to route messages between any FE computer 220,221 and any LTS 160,161. The illustrative embodiment of DCN 140 to be described allows from one to twelve FE computers to exchange data with up to seven hundred and sixty eight (768) Loop Testing Systems. (This capacity is determined by anticipated user needs; the total capacity of the architecture of DCN 140, without bus extenders, is actually 1568 data links or, equivalently 1568 Loop Testing Systems.)

FIG. 3 shows a three-tiered multiprocessor realization of DCN 140. Tier 1 serial-in, parallel-out devices 1401, . . . , 1412 are arranged to accept incoming data links 9201, . . . , 9224 on a two data link-per-device basis. For instance, device 1401 in tier 1 interconnects to data links 9201 and 9202. Incoming data links 9201, . . . , 9224 originate from FE computers 220,221 of FIG. 2. In fact, internal data link 9201 is the same link identified as external data link 920, as depicted in FIG. 3. A similar identification may be made between links 921 and 9224.

Tier 3 parallel-in, serial-out processing circuits 14001, . . . , 14096 are arranged to provide outgoing data links 93001, . . . , 93768 on an eight data links-per-circuit basis. Outgoing data links 93001, . . . , 93768 terminate on LTS's 160,161 of FIG. 2. In fact, internal data link 93001 is the same link identified as external link 930, as depicted in FIG. 3. A similar identification may be made between links 931 and 93768.

Tier 2 parallel-in, parallel-out processing interfaces 1421, . . . , 1468 serve to interconnect first tier devices 1401, . . . , 1412 and third tier circuits 14001, . . . , 14096 by means of connecting arrays 141, . . . , 144 and connection matrix 145, shown in block form in FIG. 3. FIG. 4 depicts the actual arrangement of arrays 141, . . . , 144 and matrix 145.

With reference to FIG. 4, array 141 (arrays 142, 143 and 144 are substantially the same as array 141) comprises three similar, but independent busses 14121, 14122 and 14123. Each of these busses 14121, 14122, 14123 implements, in the preferred embodiment, the General Purpose Interface Bus (GPIB) protocol. This protocol is defined in IEEE Standard 488-1978 "Digital Interface for Programmable Instrumentation," a well-known standard in the art of digital communication. Matrix 145, comprising forty-eight similar, but independent busses 145501, 145502, . . . , 145548, also utilizes the GPIB protocol. The interconnections of the various busses are arranged to provide modularity and fail-soft operation of DCN 140, as now explained.

The twelve tier 1 devices 1401, . . . , 1412 of FIG. 3 are partitioned into groups of three devices-per-group. For instance, the first group contains devices 1401, 1402 and 1403. The circuit elements representing these devices have been labeled `1`, `2`, and `3`, respectively, within the pictorial representation of each element. Thus, device 1401 has been designated with a `1`, device 1402 with a `2` and so forth. The numbers below `1`, `2` and `3` in each pictorial representation, that is, `0`, `1` and `2`, are indicative of the logical addresses to be associated with the actual element numbers. These logical designations will be utilized to describe information flow through DCN 140. With the above terminology, it is clear that the second group of devices contains devices 1404, 1405 and 1406; these are actually the fourth (`4`), fifth (`5`) and sixth (`6`) devices having logical designations `0`, `1` and `2`. Any actual designation (A.sub.1) can be converted to a logical designation (L.sub.1) via the relation L.sub.1 =mod (A.sub.1 -1, 3).

In the arrangement of FIG. 3, there are four groups of devices. The devices in each group serve as inputs to a corresponding connecting array 141, . . . , or 144. For instance, devices 1401, 1402 and 1403 of the first group are associated with array 141. Each device in tier 1 controls a unique means for transmitting information to and from its associated connecting array. For example, device 1401 controls transmission means 14101, which typically implements the GPIB protocol.

Up to twelve tier 2 interfaces may be added per tier 1 group, and this maximum is shown in FIG. 3. Since there are four groups and twelve interfaces per group, a total of forty-eight interfaces are present in the architecture of FIG. 3. These interfaces are designated 1421, 1422, . . . , 1468 and correspond to actual interfaces `1` through `48`, respectively. Actual interface designations (A.sub.2) also have logical designations (L.sub.2) `0` through `11` determined by the relation L.sub.2 =mod (A.sub.2 -1, 12).

Each tier 2 interface has three input busses and generates an independent output bus. For instance, interface 1421 is served by busses 14104, 14105 and 14106 and controls bus 14501 on its output. The protocol on these busses is typically the GPIB. The input busses originate from one of the connecting arrays 141, . . . , 144 and the output bus terminates on connection matrix 145.

With the above description, the interconnection provided by arrays 141, . . . , 144 may be described according to the following tables.

                  TABLE I
    ______________________________________
    Array 141
    Bus         Connects to busses
    ______________________________________
    14101       14104, 14107, 14110
    14102       14105, 14108, 14111
    14103       14106, 14109, 14112
    ______________________________________


TABLE II ______________________________________ Array 142 Bus Connects to busses ______________________________________ 14201 14204, 14207, 14210 14202 14205, 14208, 14211 14203 14206, 14209, 14212 ______________________________________

TABLE III ______________________________________ Array 143 Bus Connects to busses ______________________________________ 14301 14304, 14307, 14310 14302 14305, 14308, 14311 14303 14306, 14309, 14312 ______________________________________

TABLE IV ______________________________________ Array 144 Bus Connects to busses ______________________________________ 14401 14404, 14407, 14410 14402 14405, 14408, 14411 14403 14406, 14409, 14412 ______________________________________


The processing circuits 14001, . . . , 14096 of tier 3 are arranged to have an equal association with all devices 1401, . . . , 1412 of tier 1. From one to eight tier 3 circuits are allowed per tier 2 interface; the arrangement of FIG. 3 shows the maximum limit. Consequently, the number of tier 3 circuits that appear is ninety-six, and these circuits are labeled `1` through `96` in the pictorial representations of circuits 14001 through 14096. Corresponding to the actual designations (A.sub.3) `1` through `96` are logical designations (L.sub.3) `0` through `7` which may be derived from the relationship L.sub.3 =mod (A.sub.3 -1, 8). Also, each of the ninety-six tier 3 circuits 14001 through 14096 controls eight contiguous links comprising outgoing data links 93001 through 93768 coupled to LTS's having actual designations `1` through `768` in FIG. 3. Each LTS with an actual designation (A.sub.4) of `1` through `768` has a logical designation (L.sub.4) determined by L.sub.4 =mod (A.sub.4 -1, 8).

FIG. 4 shows that circuits 14001 through 14096 are divided into twelve sets with each set containing eight circuits, and each circuit has four input busses and up to eight output data links. For instance, circuit 14001 is served by input busses 145001 through 145004 originating from matrix 145 and provides output links 93001 through 93008. All input busses 145001 through 145384 associated with circuits 14001 through 14096 implement a parallel protocol, typically the GPIB, whereas output links 93001 through 93768 are serial transmission links. The protocol on the serial links will be discussed later.

The function of matrix 145 is to interconnect busses 14501 through 14548 arriving at its input to busses 145001 through 145384 exiting its output. The data bus means depicted as matrix 145 in FIG. 4 accomplishes this function. Matrix 145 comprises forty-eight similar but independent busses 145501 through 145548 implementing the GPIB protocol. On the input side of matrix 145: incoming bus 14501 connects to internal bus 145501; incoming bus 14502 connects to internal bus 145505; incoming bus 14512 connects to internal bus 145545; incoming bus 145513 connects to internal bus 145502; and so forth.

On the output side of matrix 145: internal bus 145501 connects to outgoing busses 145004, 145008, . . . , 145032; internal bus 145502 connects to outgoing busses 145003, 145007, . . . , 145031; internal bus 145503 connects to outgoing busses 145002, 145006, . . . , 145030; internal bus 145505 connects to outgoing busses 145036, 145040, . . . , 145064; and so forth.

The interconnection arrangement of matrix 145 may be summarized with the aid of a shorthand notation, as follows: if interfaces 1421 through 1468 are represented by the notation i(1), i(2), . . . , i(48), respectively, and the twelve sets comprising circuits 14001 through 14096 by m, m=1, 2, . . . , 12, with m=1 corresponding to circuits 14001 through 14008, and so forth, then matrix 145 maps tier 2 interfaces and tier 3 circuits according to the relation

i(m+12(n-1)),

n=1,2,3 and 4.

For example, with m=1, then interface devices i(1), i(13), i(25) and i(37), corresponding to actual devices 1421, 1433, 1445 and 1457, serve the set containing circuits 14001 through 14008.

2.1b Message Routing

With reference to FIG. 2, data links 920,921 arriving at the input to DCN 140 and outgoing data links 930,931 departing DCN 140 utilize a serial mode of transmission and a protocol that is bit oriented. Information is transmitted over these links in communication elements called frames. The bit pattern of a typical frame is shown in FIG. 5; this pattern is representative of conventional high level data link control type protocols. One example of a conventional link level (oftentimes designated Level II) protocol is the well-known synchronous data link control (SDLC) protocol. With these protocols, the components of a frame include:

(1) an eight bit OPENING FLAG field to indicate the start of a frame;

(2) an eight bit ADDRESS field identifying the receiving station that is controlled by the transmitting station;

(3) an eight bit CONTROL field used by the transmitting station to control the receiving station and by the latter station to respond to the former station;

(4) a variable length INFORMATION field containing the message that is to be transmitted without constraints on length or bit patterns;

(5) a sixteen bit FRAME CHECK field to detect transmission errors; and

(6) an eight bit CLOSING FLAG field to indicate the end of a frame.

Of primary importance in the transmittal of messages within the MLT system is the data contained in the INFORMATION field. In general, MLT messages have the format shown in FIG. 6. The message comprises a HEADER portion and a DATA portion. The HEADER includes a number of bytes to indicate: whether the message is a request or response (`request.sub.-- response`); routing procedure (`up.sub.-- route` and `down.sub.-- route`); the processor which is the source (`up.sub.-- circuit.sub.-- type`) and destination (`down.sub.-- circuit.sub.-- type`); the software task at the source (`up.sub.-- task.sub.-- id`) and the destination (`down.sub.-- task.sub.-- id`); and other bytes to be discussed later. The DATA portion contains a variable number of bytes primarily indicating the type of tests desired and the raw data measured as a result of these tests. These DATA bytes will be discussed in detail later.

Particularly pertinent to message routing in DCN 140 are the `down.sub.-- route` and `up.sub.-- route` bytes. Whenever a message is sent from a FE computer 220 or 221 to a LTS 160 or 161, the `down.sub.-- route` parameter, comprising two bytes, must be parsed in order to guide the message through the three tiers of DCN 140.

As an example, it is supposed that a FE computer 220 or 221 is to interact with an LTS that has an actual designation of `121` in FIG. 3. The actual decimal designation is decremented by one to yield a decimal value of 120 and this is represented in `down.sub.-- route` by the following bit pattern:

    ______________________________________
    bit    15      14     13    12   11    10   9    8
    position
    value  0       0      0     0    0     0    0    0
    bit    7       6      5     4    3     2    1    0
    position
    value  0       1      1     1    1     0    0     0.
    ______________________________________


In general, bit positions 0, 1 and 2 are used by tier 3 circuits 14001 through 14096 to decide which one of its eight associated outgoing data links 93001 through 93768 will be used to transmit the INFORMATION field to the appropriate LTS (`121` in this example). Bit positions 3, 4 and 5 are used by tier 2 interfaces 1421 through 1468 to decide which one of its eight associated tier 3 circuits 14001 through 14096 will receive the INFORMATION field. Finally, bit positions 6, 7, 8 and 9 are used by tier 1 devices to decide which one of its twelve corresponding tier 2 interfaces 1421 through 1468 will receive the INFORMATION field. In this example, parsing of the `down.sub.-- route` two-byte parameter in conjunction with reference to FIGS. 3 and 4 indicates that:

(i) tier 1 device 1401, 1402, . . . or 1412 (say 1403) receiving the frame passes the INFORMATION field to the tier 2 interface having logical address (L.sub.2) of `1` (binary 0001 is equivalent to decimal 1);

(ii) tier 2 interface 1422, corresponding to logical address `1`, receives the INFORMATION field and passes it to the tier 3 circuit having logical address (L.sub.3) of `7` (binary 111 is decimal 7); and

(iii) tier 3 circuit 14016, corresponding to logical address `7`, passes the INFORMATION field, after reassembly into a data link protocol, to the LTS having logical address (L.sub.4) of `0` (000 in binary is decimal 0).

As indicated in FIG. 3, the LTS having logical address `0` at the output of actual tier 3 circuit 14016 is the LTS labeled `121`, as requested.

Whenever any tier 1 device 1401 through 1412 receives a frame on its data link connection to FE computer 220 or 221, this is an indication that the INFORMATION field contained in the frame is to be propagated in the so-called DOWN direction through the MLT architecture of FIG. 2. The parameter in the HEADER portion of the INFORMATION field indicating the ultimate destination is `down.sub.-- circuit.sub.-- type`, which will be discussed later. The specific path through DCN 140 to this destination is found in `down.sub.-- route`, as exemplified above.

A similar protocol is observed for messages traveling in the so-called UP direction of the hierarchy. In UP transmissions, the pertinent HEADER parameters are `up.sub.-- circuit.sub.-- type` and `up.sub.-- route`. As a message is passed DOWN the hierarchy by DCN 140, appropriate return information is saved in `up.sub.-- circuit.sub.-- type` and assembled in `up.sub.-- route` to allow for an orderly progression UP the hierarchy. The bit positions of `up.sub.-- route` are interpreted as follows: (1) bits 4 and 5 are employed by tier 1 devices to indicate the return path on one of two data links associated with each device 1401 through 1412; (2) bits 2 and 3 are used by tier 2 interfaces 1421 through 1468 to return on one of three busses connecting each tier 2 interface to its associated connecting array 141, . . . or 144; (3) bits 1 and 0 are utilized by tier 3 circuits 14001 through 14096 to return on one of four busses connecting each tier 3 circuit to connection matrix 145.

In the example given above for routing in the DOWN direction, it is supposed, as above, that tier 1 device 1403 received the frame under consideration on link 9206, as shown in FIG. 3. This link has logical designation `1`; in fact, the left-hand, incoming data link associated with each tier 1 device is the `1` link whereas the other link is designated `0`, by convention. Before routing the INFORMATION field to tier 2 interfaces, the logical designation is converted to binary and bits 5 and 4 are filled with the binary representation--in this case 01. Tier 2 interface 1422 received the message on bus 14109 from array 141 (FIG. 4); this bus is designated by a logical `0`; in fact, the three busses entering a tier 2 interface from an array 141 through 144 are labeled `0`, `1` and `2` starting with the right-most bus. Then, before sending the message to tier 3 circuit 14016, bits 3 and 2 are given the values 0 and 0, respectively (`0` in decimal converts to 00 in two-bit binary). Finally, since tier 3 circuit 14016 receives the message on its logical `3` bus from matrix 145 (again, the right-most bus is logical `0` and the left-most bus in logical `3`), bit positions 1 and 0 are filled with 1 and 1, respectively (`3` in decimal converts to 11 in binary). To summarize for this example, the LTS having actual address A.sub.4 =121 receives a frame with the `up.sub.13 route` parameter of HEADER filled as follows:

    ______________________________________
    bit      7     6       5   4     3   2     1   0
    position
    value    --    --      0   1     0   0     1    1.
    ______________________________________


(Bit positions 6 and 7 generally have values but are not pertinent to the immediate discussion and, therefore, have been shown without values).

As indicated in FIG. 3, each tier 1 device 1401, . . . , or 1412, receives two data links at its input. Since the typical MLT system is implemented with twelve on-line FE computers, each FE computer 220 or 221 supports two data links at its output. To provide a degree of redundancy for fail-soft operation, FE computers 220,221 and tier 1 devices 1401-1412 are interconnected so that there are two possible paths between each FE computer 220 or 221 and DCN 140. For example, FE computer 220 supports the two data links 9201 and 9219 that terminate on tier 1 devices 1401 and 1410, respectively. Similarly, FE computer 221 implements two data links which terminate on devices 1412 and 1409. With such a Fe-to-DCN connection arrangement, if one of the FE-to-LTS paths comprising the input data links 9201-9224 and DCN 140 fails during a transaction, it is possible to re-route the results from the given LTS to the appropriate FE computer over the alternate path. The folowing procedure implements the the alternate routing technique.

Each FE computer 220,221 is initialized with a unique identifier. This identifier is stored as part of the `logical.sub.-- id` byte of the message HEADER, as dipicted in FIG. 6, for all messages originated by the associated FE computer. The `logical.sub.-- id` is not related to the actual physical connection to DCN 140. Thus, if a FE computer fails and is replaced by a backup computer, the backup inherits the identifier of the FE computer being replaced.

As a message travels DOWN the hierarchy, information about the return path is stored in `up.sub.-- route`, as described above. When the message reaches the designated one of the tier 3 circuits 14001-14096, the completed `up.sub.-- route` byte and associated `logical.sub.-- id` byte may be extracted. Each tier 3 circuit maintains a table containing the two most recently used upward paths for each `logical.sub.-- id`. Since the instruction routines controlling FE computers 220,221 generally distribute information transmissions equally through DCN 140, the table for a given FE computer, at any one time, will contain `up.sub.-- route` information on the two most recent paths needed to reach the particular FE computer in UP transmissions.

If an upward message connot reach the destination FE computer via its `up.sub.-- route` information because of a primary path blockage, the message is marked as failed and sent back to the originating Tier 3 circuit. The table entry for the same `logical.sub.-- id` is accessed and the `up.sub.-- route` information is replaced with the alternate or secondary `up.sub.-- route` path. If any subsequent failures occur, the message is then discarded.

In some situations, it is possible that the two most recent entries in the table do not correspond to the `up.sub.-- route` byte in the UP message. This occurs in situations where long-term craft activities are in progress, such as pair identification with an identifier tone provided by the MLT system. If a message fails to traverse the UP path on its first attempt, then either path in the table may be used as an alternate route.

2.1c Software Design

Each microprocessor executing within DCN 140 runs under supervision of its own ROM-based operating system. However, each separate operating system is identical, so only this one operating system, designated OS, requires explanation.

The OS provides a multitasking environment so that the operations performed by individual modules comprising the three-tiers of DCN 140 can be partitioned into a series of suboperations called "tasks". Each task is dedicated to handling a specialized activity. The OS is arranged to insure that the appropriate task gains control of its associated microprocessor and commences execution of its programmed sequence when a particular activity is requested. For example, one task resident in DCN 140 is designed to handle GPIB activity; this task executes whenever a bus transfer is required over any one of the numerous GPIB-type busses embedded within DCN 140. Whenever a bus transfer is completed and no other transfers are required, the bus transfer task relinquishes control of its microprocessor, and other scheduled tasks are now free to execute and satisfy requests for other activities. If no activities are scheduled, the OS is in its wait state, testing for a flag; a flag is set whenever a particular activity, and its associated task, await execution.

The microcomputer architecture, in pictorial form, for each tier of DCN 140 is shown in FIGS. 7, 8 and 9 for tier 1, tier 2 and tier 3, respectively. There are, at most, six types of tasks implemented by any particular microcomputer within the hierarchy of DCN 140.

Five of these tasks are shown in FIG. 7, which depicts the architectural arrangement for tier 1 device 1401 (the remaining tier 1 devices 1402 through 1412 have essentially the same architectural arrangement as device 1401 and, therefore, device 1401 is taken as representative). The task designated SERIAL DATA within elements 11405 and 11406 of FIG. 7 controls the activity associated with information transfer over serial data links 9201 and 9202, respectively. This task (i) parses incoming frames (FIG. 5) received over a data link 9201 or 9202, extracts the contents of the INFORMATION field, and stores the contents in a buffer memory within the controlling microprocessor that is accessible to other tasks; and (ii) performs the inverse to parsing on outgoing frames, that is, constructs a frame for transmission by extracting the contents of buffer memory to form the INFORMATION field of the frame and augments this field with the other fields (FIG. 5) needed for the serial protocol on links 9201 and 9202.

The task labeled PARALLEL OUTPUT within element 11407 controls the transfer of information over parallel-oriented bus 14101 and, when required, serves as the bus master. Information requiring transfer is extracted from or stored in buffer memory accessible by other tasks.

The ADMINISTRATION task, represented by element 11409, performs all non-operational functions required in the local environment. For instance, ADMINISTRATION controls sanity and diagnostic testing and the reporting of trouble. With reference to FIG. 6, ADMINISTRATION utilizes `up.sub.-- circuit.sub.-- type`, `down.sub.-- circuit.sub.-- type`, `up.sub.-- task.sub.-- id` and `down.sub.-- task.sub.-- id` for communicating with other MLT microcomputers to synchronize testing among the various modules.

The DUMP MEM task, represented by element 11411, waits a certain period after a reset or restart operation and determines if a snapshot of tier 1 memory is to be sent to a FE computer 220 or 221.

The BROADCAST task, depicted by element 11412, replicates a message for transmission in parallel to tasks having a plurality of appearances within a particular tier or, in this case of tier 1, to SERIAL DATA tasks 11405 and 11406. Replication reduces throughput time by allowing several slow serial transfers to proceed in parallel.

Tasks are defined so that the programs executing in the microcomputers of DCN 140 are relatively independent of the hardware they control. To accomplish this, generally each hardware component having input or output (I/O) capability has both a hardware driver and a software buffer that accompany the sole task controlling that I/O capability. Upon system initialization, a unique memory block is defined for each I/O hardware component; this block is known only to the hardware driver and software buffer associated with each I/O request. To service an I/O request, the buffer routine fills the appropriate memory block with control parameters and signals the driver to start I/O processing. The I/O operation is completed by the driver at interrupt level.

Whereas the only connection between the hardware driver and buffer software is the common memory block, the only connection between the driver and the associated task is a flag or semaphore that is set by the driver when its activity requires execution. The task awaits the occurrence of the semaphore, after which the task is scheduled by OS. In this manner, a task never communicates directly with a hardware driver.

With reference to FIG. 7, the driver and software buffer functions associated with the incoming links 9201 and 9202 and outgoing bus 14101 may be identified. For instance, INPUT DRIVER 11401 and INPUT BUFFER 11403, interposed between incoming data link 9201 and SERIAL DATA task 11405, perform the desired buffering on incoming link 9201. To transmit a message between SERIAL DATA task 11405 and BUFFER 11403, the task makes a function call and passes appropriate parameters (e.g., the memory address of the assigned memory block and the address of the completion semaphore) to the function. The function that is called is referred to as the buffer routine, and it is this routine that is represented pictorially by element 11403 in FIG. 7.

From FIG. 7 it may also be observed that INPUT BUFFER 11404 and INPUT DRIVER 11402 serve to interface SERIAL DATA TASK 11406 and incoming data link 9202, whereas OUTPUT BUFFER 11408 and OUTPUT DRIVER 11410 service PARALLEL OUTPUT task 11407 and parallel-oriented bus 14101.

The one task remaining to be defined is the PARALLEL INPUT task represented by elements 11427, 11428 and 11429 in FIG. 8; this figure pictorially represents tier 2 interface 1421 (the remaining tier 2 interfaces 1422 through 1468 have essentially the same architectural arrangement as interface 1421 and, therefore, interface 1421 is taken as representative). The PARALLEL INPUT task organizes message transfers across the parallel-input busses 14104, 14105 and 14106 via the individual tasks 11427, 11428 and 11429, respectively. These three PARALLEL INPUT tasks run under control of PARALLEL OUTPUT task 11407 of FIG. 7, which is the bus master. INPUT DRIVER and INPUT BUFFER pairs 11421,11424; 11422,11425; and 11423,11426 serve basically the same function as INPUT DRIVER and INPUT BUFFER pairs 11401,11403 (or 11402,11404) of FIG. 7, that is, they indirectly couple PARALLEL INPUT tasks 11427, 11428 and 11429 to incoming parallel busses 14104, 14105 and 14106, respectively. The primary difference lies in the parallel bit orientation of busses 14104, 14105 and 14106 as contrasted to the serial protocol of links 9201 and 9202.

ADMINISTRATION task 11430, PARALLEL OUTPUT task 11431, DUMP MEM task 11434 and BROADCAST task 11435 of FIG. 8 are the equivalent of ADMINISTRATION task 11409, PARALLEL OUTPUT task 11407, DUMP MEM task 11411 and BROADCAST task 11412 of FIG. 7.

FIG. 9 depicts, in pictorial fashion, the architecture of tier 3 within DCN 140. The four elements labeled 114009 through 114012 represent the PARALLEL INPUT task associated with incoming, parallel-oriented busses 145001 through 145004, respectively. Each PARALLEL INPUT task performs in essentially the same manner as each PARALLEL INPUT task 11427, 11428 or 11429 of FIG. 8. In addition, each PARALLEL INPUT task is indirectly coupled to its associated hardware via an INPUT DRIVER and INPUT BUFFER, as depicted by element pairs 114001,114005; 114002,114006; 114003,114007; and 114004,114008. These pairs operate basically the same as INPUT DRIVERS and INPUT BUFFER pairs 11421,11424; 11422,11425; and 11423,11426 of FIG. 8.

The eight elements designated 114014 through 114021 represent the SERIAL DATA task associated with outgoing, serially-oriented links 93001 through 93008, respectively. These eight tasks are equivalent to SERIAL DATA task 11405 and 11406 of FIG. 7. Also, each SERIAL DATA task is buffered from its associated hardware via an OUTPUT DRIVER and OUTPUT BUFFER, as depicted by the eight element pairs 114022,114030; . . . ; 114029,114037. These eight element pairs are the counterpart to INPUT DRIVER and INPUT BUFFER pairs 11401,11403 and 11402,11404 of FIG. 7.

Finally, ADMINISTRATION task 114013, DUMP MEM task 114038 and BROADCAST task 114039 of FIG. 9 serve to control tier 3 microcomputers in a manner equivalent to tasks 11409, 11411 and 14112 of FIG. 7 or tasks 11430, 11434 and 11435 of FIG. 8.

FIGS. 7, 8 and 9 are pictorial in the sense that they indicate a logical situation in terms of the number of copies of software utilized to implement the tasks. For example, the tier 3 architecture of FIG. 9 indicates there are four distinct PARALLEL INPUT tasks 114009 through 114012 and eight distinct SERIAL DATA tasks 114014 through 114021. Actually, there is only one copy of the PARALLEL INPUT program and one copy of the SERIAL DATA program stored in microcomputer 14001. There are four distinct read/write (R/W) memory regions or stacks dedicated to PARALLEL INPUT tasks and eight distinct R/W stacks dedicated to SERIAL DATA tasks. The state of each task is kept in the appropriate stack. The OS retains parameters indicating where, within each stack, the task should commence execution of an activity request.

The environment described immediately above basically defines the concept of a multitasking operating system. In terms related to tier 3 interfaces, multitasking obtains because four independent PARALLEL INPUT programs are executed from within four distincts environments by the central processing unit of each microcomputer, namely, the four PARALLEL INPUT tasks 114009 through 114012. Similar remarks apply to the eight SERIAL DATA tasks 114014 through 114021 of FIG. 9.

2.1d Software Operation

To understand how each of the microcomputers embedded in DCN 140 operates in terms of an unfolding sequence in time, processing circuit 1401 of FIG. 7 is considered as exemplary. As previously discussed, there are six application tasks and their interaction with the OS to consider. However, the concepts may be readily conveyed by presenting the interaction of a subset of these tasks, namely, SERIAL DATA, PARALLEL OUTPUT and ADMINISTRATION, as now discussed. At system startup, the OS commences execution by: (i) initializing its associated internal random-access memory; (ii) organizing memory blocks to serve as message buffers and placing these buffer locations onto a list called the FREE buffer list; (iii) scheduling each task to run according to a preselected priority; and (iv) shifting execution to the SCHEDULER program. Since the only tasks that have been scheduled to this point in the execution are those arranged in preselected order, the SCHEDULER finds that the first task, designated Task 0, is READY to RUN. Task 0 controls the incoming data link having logical designation `0`, so with reference to FIG. 7, Task 0 is identified as SERIAL DATA task 11405 and its associated data link is line 9201.

Just prior to transferring execution to Task 0, the SCHEDULER identified the stack to be associated with Task 0. Once the stack location is identified, execution of Task 0 commences from the first program statement. Since Task 0 controls a serial data link (link 9201 having logical designation `0` in FIG. 7), the task begins by making a system call to OS to obtain an unused message buffer from the FREE list of buffers and then sets up data link INPUT BUFFER 0 program (element 11403 of FIG. 7) to receive data into the now allocated buffer. Task 0 then initializes link 9201 by arranging and sending a data link start-up message. Task 0 finally relinquishes control of the central processing unit (CPU) of its associated microcomputer by making a system call to OS.

The OS SCHEDULER program is entered again and, since the initialization program of OS has made all tasks READY to RUN, Task 1, having the next highest priority, is READY to RUN. The CPU is arranged to execute in the stack environment of Task 1, and control is then passed to Task 1. Task 1 begins to execute from the first statement in its program.

Since Task 1 controls data link `1`, (link 9202 in FIG. 7), it executes essentially the same program as did Task 0, the only difference being that the stack areas in memory have different locations. A view of the stack associated with Task 0 at this point in the execution of Task 1 indicates a wait state in which data link 9201 is set up to receive data and a data link start-up message has been transmitted. In contrast, the stack of Task 1 indicates that link 9202 is quiescent. However, upon relinquishment of the CPU by Task 1, its associated stack is also primed in the wait state.

The SCHEDULER program finds Task 2 READY to RUN. This task is the one depicted as PARALLEL OUTPUT task 11407 of FIG. 7 and controls parallel-oriented bus 14101. Basically the same program sequencing occurs in Task 2 as in the prior task executions. The CPU is arranged to operate in the stack environment of Task 2, and begins by executing from the first statement in the so-called GPIB program since bus 14101 is presumed to implement the GPIB protocol. A message buffer is obtained from the OS, and the OUTPUT DRIVER-OUTPUT BUFFER interface is arranged for message transmission or reception. Task 2 then relinquishes control of the CPU.

Since Task 3 is READY to RUN, the SCHEDULER program sets up the CPU to execute in the stack environment of Task 3. In FIG. 7, Task 3 may be identified with ADMINISTRATION task 11407. The instructions of Task 3 call OS to arrange for OS to schedule an execution of the so-called ADMIN program only when certain events occur. Task 3 also arranges for a timeout of about 15 seconds to schedule the ADMIN program for execution. ADMIN resets a timer whenever timeout occurs. If this timer signal is not reset in this manner, the tier 1 device 1401 is considered to have lost its sanity and a RESET of the microcomputer occurs upon expiration of the timer interval.

As suggested above, the task numbers indicate the order of priority in execution, with Task 0 having the highest priority and Task 3 the lowest. The execution of tasks in the sequence described above presumes no external event interrupted the progression through task executions, and the time diagram in the top half of FIG. 10 depicts such a sequence. It is possible, however, to have an external event interrupt the top-down sequencing. For instance, if data link 9201 had a message to send in the DOWN direction prior to the execution of Task 3, then Task 0 would execute before Task 3 even executed for the first time.

As an example demonstrating external event interrupts and one that is exemplary of the typical operation of a tier 1 device, it is supposed that the four tasks discussed in the above example have RUN and the OS is in the state of awaiting the posting of a flag to indicate a task is READY to RUN (i.e., the rightmost state in the top diagram of FIG. 10). It is further supposed a message is now received over data link 9201 for transmission to LTS 161 (FIG. 3). With reference to the bottom time diagram of FIG. 10 and the numerals associate with the various periods of execution of the individual tasks, the following sequencing occurs:

(1) A message is received over data link 9201 or `0`, and INPUT DRIVER 11401 signals OS that Task 0 should execute.

(2) Task 0 begins to execute to verify the message via the high level protocol acceptance technique.

(3) At interrupt level, a message is received across bus 14101. Task 2 is made READY to RUN, but execution is precluded until Task 0 relinquishes control of the CPU. The message on bus 14101 is headed UP the hierarchy, say over link 9202.

(4) At the completion of the verification phase and message reception by Task 0, the message is sent to Task 2 since the `down.sub.-- circuit.sub.-- type` field in the HEADER indicated a LTS was the ultimate message destination. During this interval, the OS SCHEDULER begins execution. Now Task 2 has the highest priority that is in the READY to RUN state, and control is passed to Task 2.

(5) Task 2 processes the message sent to it by Task 0, and begins sending output over GPIB bus 14101 to the tier 2 interface indicated in the `down.sub.-- route` field of HEADER. Now the message previously received for UP direction transmission may be processed by Task 2 before relinquishing control of the CPU. A signal is sent so that Task 1 may be made READY to RUN, and control is passed to OS.

(6) The SCHEDULER sees that Task 1 is the highest priority task that is READY to RUN, and passes control to Task 1.

(7) Task 1 processes the message available through Task 2 and sends the message, properly formatted, over data link 9202. Control is passed back to OS.

(8) The output previously initiated over bus 14101 is now completed so Task 2 is made READY to RUN and OS passes control to Task 2.

(9) Task 2 effects follow-up processing by freeing the message buffer for use elsewhere by the microcomputer and relinquishes control of the CPU.

(10) No task is presently READY to RUN until the interrupt handler for data link `1`, via INPUT DRIVER 11401, signals OS that transmission UP link `1` is now complete, whereupon Task 1 should be executed. Control is passed to Task 1.

(11) Task 1 performs clean-up operations for its recent transmission over data link `1`. OS is again given control.

(12) The SCHEDULER continues to execute until another I/O activity in the microcomputer indicates that a particular task should RUN.

By way of a shorthand notation, which is similar to the actual high-level language utilized to program the tasks, the routing algorithms realized in device 1401 may be summarized as follows:

    ______________________________________
    (i)      Routing Algorithm for Task 0 and Task 1:
             if (`down --circuit --type` = DCN --1){
             pass message to local ADMINISTRATION
             task;
             }
             else { destination = bits 6, 7, 8 and 9
             of `down --route`;
             set `up --route` bits 4 and 5;
             pass message to PARALLEL OUTPUT
             task;
             }
    (ii)     Routing Algorithm for Task 2:
             if (`up --circuit --type` = DCN --1){
             pass message to local ADMINISTRATION
             task;
             }
             else { if (`up --route` bits 4, 5 = 00 {
             pass message to SERIAL DATA 0;
               }
             else { pass message to SERIAL
             DATA 1;
               }
             }
    ______________________________________


In each of these routing algorithms, the symbolic notation DCN.sub.-- 1 has been utilized. As alluded to earlier in this section, generators of messages can indicate not only the destination (`down.sub.-- route` and `up.sub.--route`) but also the microcomputer type within the hierarchy of the MLT system. DCN.sub.-- 1 is one type and refers to tier 1 devices of DCN 140. Other types that may be referenced in bytes `down.sub.-- circuit.sub.-- type` or `up.sub.-- circuit.sub.-- type` include: MLT.sub.-- CNTLER for FE computer 220 or 221; DCN.sub.-- 2 for tier 2 interfaces and DCN.sub.-- 3 for tier 3 circuits of DCN 140; LTS.sub.-- CNTLER for the LTS controller, PORT.sub.-- CNTLER for port controller and PMU.sub.-- CNTLER for precision measurement unit controller; these latter three controllers are found in LTS 160 or 161.

As indicated in Section 2.1a with reference to FIG. 4, the busses serving as inputs to and outputs from connecting arrays 141-144, as well as the array busses themselves, implement the GPIB protocol. Similarly, the input and output busses associated with matrix 145 utilize the GPIB protocol. In the case of an array 141, . . . , or 144, it is evident from FIG. 4 that each tier 1 device controls an output GPIB bus that has twelve talker/listeners. For instance, bus 14101 is controlled by tier 1 device 1401 and the twelve T/L networks on bus 14101 serve as inputs to interfaces 1421-1432, respectively. Within this GPIB framework, it is necessary to provide an embedded protocol for connecting a plurality of T/L networks to a controller on the same GPIB bus so that messages may be transmitted efficiently and message overhead is mitigated in return of message accept/reject status information. The particular PARALLEL OUTPUT task and the associated PARALLEL INPUT task accomplished the embedded protocol. Further discussion of this second-level protocol is held in abeyance until GPIB circuitry and software are presented.

2.2 Loop Testing System (LTS)

2.2a Structure

Referring again to FIG. 2, it is shown pictorially that wire-center based LTS 160 (LTS 161 is substantially the same) performs communication, loop access and loop testing functions. LTS 160 is actually an arrangement of loosely coupled microprocessors organized to perform these functions. The term "loosely coupled" is used herein to denote an organization of processors that share no common memory but communicate by passing messages over serial or parallel oriented channels.

FIG. 11 shows a block diagram of LTS 160. LTS controller 2000 is responsible for communications with DCN 140 (FIG. 2), via serial data link 930, and for local control of other LTS subcomponents, including: precision measurement unit (PMU) 2101, 2102 and 2103; port controller 2200; talk circuits 2301 through 2306; direct distance dialer (DDD) circuit 2400; ringing distributor 2500; and portions of equipment access network (EAN) 2700. Each of these subcomponents is explained as the discussion proceeds.

LTS controller 2000 and port controller 2200 are linked with interconnect bus 20001, which typically supports a parallel-oriented protocol such as the GPIB. Port controller 2200 is responsible for the loop access function is that it provides tip, ring and sleeve control for connections to so-called "no-test" trunks 940 that enable the MLT system to interface to switching machine 170 (FIG. 2). A no-test trunk is one that provides the ability to interconnect to any customer line 180 or 181 in a bridging mode. One such test trunk is shown as TIP 1-RING 1 pair 9401 with its corresponding sleeve lead S1 lead 9417 in FIG. 11.

PMU's 2101 through 2103 are also interconnected to LTS controller with bus 20001. Each PMU 2101, 2102 or 2103 is a general purpose testing circuit that is used to make measurements on customer loops 180 and 181. Each LTS 160 may contain from one to three PMUs. The maximum number is depicted in FIG. 11. PMU 2101 (PMU 2102 or 2103 is similar) accesses a customer loop 180 or 181 through a serial arrangement comprising, for example: wire pair 21010 emanating from PMU 2101; equipment access network 2700; wire pair 28010 serving as the input to port device 2801; and port device 2801, which is an interface to no-test trunk pair 9401. EAN 2700 serves to interconnect any PMU 2101, 2102 or 2103 to any port device 2801, . . . or 2816 under control of both LTS controller 2000, via bus 20002, and port controller 2200, via bus 22001. The L CONTROL 2701 portion of EAN 2700 connects to bus 20002, whereas the P CONTROL 2702 portion of EAN 2700 connects to bus 22001.

LTS controller 2000, port controller 2200 and PMUs 2101 through 2103 are each self-contained microprocessor modules. Because of the relative independence of these microprocessor modules, the MLT system is modular so that wire centers (150 or 151 of FIG. 2) ranging from one thousand to one hundred thousand customer loops can be served by augmenting the basic system. Thus, as a wire center grows, more PMUs can be added (up to three per LTS), up to sixteen port circuits can be accommodated (the maximum of sixteen is shown in FIG. 11 as circuits 2801 through 2816), and EAN 2700 can be expanded. Hence the largest size LTS can have up to sixteen loops simultaneously accessed for testing and can time share three identical PMUs to perform requested tests. The separation of the testing function, access function and communication function allows for the simultaneous operation of these functions, thereby maximizing throughput for a given testing traffic load.

2.2b LTS Operation

With reference to FIG. 11, LTS controller 2000 implements a serial-oriented protocol function on incoming data link 930. Received messages, in the form shown in FIG. 5, are parsed to obtain the INFORMATION field as shown in FIG. 6, and then interpreted in LTS controller 2000. An access request is typically the first message received, as indicated in the `down.sub.-- task.sub.-- id` byte of the HEADER by the binary equivalent of ACCESS and in the `request.sub.-- response` byte as REQUEST in binary representation. This message causes LTS controller 2000 to initialize an area of its RAM to track and time the request as well as to generate a parallel-protocol message for passage over bus 20001 to port controller 2200. The information utilized in construct this latter message is found in the DATA portion of the INFORMATION field of FIG. 6. For instance, the first byte (byte 1) may be, symbolically, `ACC.sub.-- NOTEST`. This indicates that the type of access desired is a connection to a "no-test" trunk. Another byte would indicate the `switch.sub.-- type` to inform port controller 2200 of the type of switching machine (e.g., an electronic central office or a cross-bar office). The next several bytes list the telephone number of the customer loop to be accessed. Based on message content, port controller 2200 proceeds to access the loop specified in the message by attaching trunk dialer 2650 (see FIG. 11) to a free port 2801 through 2816, dialing the telephone number, and attaching busy/speech detector 2600 to determine whether the loop is idle.

Presuming loop access is obtained, port controller 2200 sends a response across GPIB 20001. This response proceeds in the UP direction and, accordingly, appropriate INFORMATION field bytes must be filled. With reference to FIG. 6, the `request.sub.-- response` byte has the entry RESPONSE in binary form placed in the HEADER. In the DATA portion, byte 1 has an entry that echos the test code which, in this case, is `ACC.sub.-- NOTEST`. This is to indicate that the completed request conforms to the desired request. The second byte (byte 2) indicates the `status` of the request and the third byte (byte 3) indicates the `port.sub.13 number`. For the instant example, these bytes might read, symbolically as `ACC.sub.-- COMPLETE` and `PORT.sub.-- 1` to indicate that port 2801 of FIG. 11 has a connection established to the loop associated with the telephone number sent in the DOWN direction.

At this point in the operation, the loop is accessed, and LTS 160 awaits subsequent requests, typically to effect testing. Most test requests require the services of one PMU 2101, 2102 or 2103. However, some requests can be satisfied by either LTS controller 2000 or port controller 2200 and their associated circuitry. Test requests are coded so that LTS controller 2000 can determine which LTS circuits can satisfy the request. LTS controller 2000 therefore acts as a resource manager for the entire LTS 160.

In order to proceed with the operational description of LTS 160, it is necessary to discuss its component parts in some detail. Attention is focussed first on LTS controller 2000, followed by port controller 2200 and PMU 2101 and, finally, the remaining circuitry of LTS 160 shown in FIG. 11.

2.2.1 LTS Controller

LTS controller 2000 is a microcomputer-based system also running under the same operating system (OS) a DCN 140. Again, the software controlling the microcomputer is partitioned into tasks, and tasks communicate with each other by signaling each other or by sending messages to one another via facilities provided by OS. In LTS controller 2000, the tasks are as follows:

(a) SERIAL DATA task controls data link 930 and implements a high level data link protocol on all messages passing onto or coming from physical data link 930. All tasks that must transmit data over link 930 do so by sending the data as a message to the SERIAL DATA task. This task is equivalent to the SERIAL DATA task 114014 of FIG. 9 associated with DCN 140. All messages entering LTS 160 and destined for a specific task in LTS controller 2000 must pass through SERIAL DATA.

(b) PARALLEL DATA task controls the transmission and reception of messages over parallel-oriented bus 20001 shown in FIG. 11. All tasks that must transmit data over bus 20001 to port controller 2200 or to PMU's 2101-2103 do so by sending the data as a message to the PARALLEL DATA task. Similarly, data received from controller 2200 or units 2101-2103 pass through the PARALLEL DATA task. This task is equivalent to the PARALLEL OUTPUT task 11407 of FIG. 7 associated with DCN 140.

(c) ACC task processes requests for access to trunks 9401 through 9416 of FIG. 11 and requests for establishment of callback paths via the national direct distance dialing (DDD) network as implemented by DDD circuit 2400. The processing of requests for loop access includes the formatting of messages to port controller 2200, where the access is actually performed, and the setting up of a timeout over the access activity in port controller 2200. The ACC task indirectly sends a message for loop access to port controller 2200 by sending the message to the PARALLEL DATA task. Requests to DDD circuit 2400 are transmitted over bus 20002.

(d) TST task controls the processing of test requests on a given port, selected from one of the ports 2801 through 2816, once that port has accessed a loop for testing. There are sixteen TST tasks, one for each possible port 2801, . . . , 2816. The TST tasks are not bound to a particular port number in a fixed manner, but may be assigned to any individual port 2801-2816 over a long period of time. For example, for the duration of a given loop access, TST 7 task may be assigned to port 2803. When the access to port 2803 is dropped, TST 7 task may be assigned to port 2801. Once the assignment is made, it is fixed for the duration of the loop access. This dynamic assignment allows processing priority to be evenly distributed among ports 2801-2816. TST task software either performs the test request itself or arranges for the test to be performed by either port controller 2200 or PMU's 2101-2103. TST task also provides a timeout function for the request.

(e) TCD task controls the dialing for talk circuits 2301-2306. This task can manipulate DDD circuit 2400 and thereby arrange a callback to, typically, a craftsperson at the facility designated the Maintenance Center which contains the I/O terminals 230,231. The callback feature is required to implement the combined talk/test procedures of the MLT system whereby a craftsperson can be in speech communication with either a customer or another craftsperson over a loop accessed for testing. The maintenance administrator at the Maintenance Center can enter a test request as a MLT system user, have that test run by LTS 160 while the talk path is broken, and when the test is completed, have the talk path restored by LTS 160. These are two TCD tasks in LTS controller 2000 software so that two dialing operations may be concurrently in progress.

(f) ADMINISTRATION task provides all administrative functions in LTS 2000. These functions include: sending to FE computer 220 or 221 a request for data base download when LTS 160 is reset and processing this downloaded data base; responding to echo messages from ADMINITRATION task of DCN 140; and providing an interface during self-diagnostic checking.

(g) DIAGNOSTICS task provides self-testing capabilities that are used to diagnose LTS controller 2000 hardware problems. DIAGNOSTICS task interfaces to ADMINISTRATION task, via the OS message passing facility, to request and receive the reservation of LTS 160 hardware for use in conducting self-tests.

(h) DUMP MEM task arranges for the transmission of a snapshot of LTS controller 2000 memory when a malfunction occurs.

At system startup or when a system reset occurs, operating system OS initializes its tables, places all message buffers on a "free queue" of buffers, initializes all system semaphores or inter-task signals, and makes each task READY to execute (RUN). The OS then calls a hardware and software initialization function. Tables are kept in permanent memory and define the state of the equipment configuration to be associated with the particular LTS 160. For instance, the number of PMU's 2101-2103 configuring the particular MLT system is one such table parameter. These tables are accessed for initialization. Next, the task scheduling function, again called the SCHEDULER, is executed. Program execution in LTS 160 is similar to that of the DCN 140 once the SCHEDULER is called. Thus, execution is transferred from the SCHEDULER to the highest priority task which is READY to RUN. At startup, all tasks are READY, and the SERIAL DATA task has the highest priority. Execution of SERIAL DATA enables the hardware receiver associated with link 930 and causes a transmission of a data link start-up message to DCN 140 in the high level protocol format. The SERIAL DATA task then relinquishes control of the CPU in LTS controller 2000. The OS is now free to select another task for execution.

The PARALLEL DATA task has the next highest priority and executes so as to enable its associated hardware for two-way communication on bus 20001. Control is again passed to the OS once the task is initialized.

All the other tasks eventually RUN and initialize themselves and their associated hardware. The tasks then await some activity requiring their specialized services. Usually they wait to receive a message buffer or for a semaphore to be posted. It may also be that a particular task is waiting for a timeout to occur before regaining control of the CPU. For example, ADMINISTRATION waits for about seven seconds before gaining control after its initialization; this task then sends a data base download request to FE computer 220 or 221 by passing the message to SERIAL DATA for transmission over data link 930.

The download data messages from FE computer 220 or 221 pass through the SERIAL DATAL task and are routed accordingly to data in the INFORMATION field. Download messages have LTS.sub.-- CNTLER (LTS controller) names in `down.sub.-- circuit.sub.-- type` byte and ADMINISTRATION task in the `down.sub.-- task.sub.-- id` byte. Consequently, the routing function in LTS controller 2000 realizes that the INFORMATION field is to be processed in LTS controller 2000 itself and sends the message, via OS, to ADMINISTRATION task. This task processes the message by passing the data that appears in the DATA portion of the message. Download messages identify the number of equipment types installed at the particular LTS 160 site and the present status of the equipment (AVAILABLE, OUT.sub.-- OF.sub.-- SERVICE, and so forth). These messages also organize ports 2801-2816 into trunk groups, specify dialer types associated with talk circuit 2301-2306, and so on. After configuration information has been downloaded, LTS 160 is prepared to process access and test requests.

2.2.1a Access Request Processing

Access request messages have LTS controller 2000 specified in the `down.sub.-- circuit.sub.-- type` of the message header symbolically as LTS.sub.-- CNTLER and the ACC task in the `down.sub.-- task.sub.-- id` symbolically as ACC. The SERIAL DATA task routing function transmits the access message to the ACC task.

The format of the DATA portion of the INFORMATION field of FIG. 6 has two possible arrangements depending on the type of access desired. Four types of access are allowed:

(i) a regular test access of customer loop 180, . . . , 183; the INFORMATION field is exemplified in FIG. 12;

(ii) a main distribution frame (MDF) trunk access as also exemplified by FIG. 12;

(iii) a regular test access plus a callback to the Maintenance Center; the INFORMATION field is exemplified in FIG. 13; and

(iv) a callback of the Maintenance Center that is to be associated with a specified test access already in effect at LTS 160 site; FIG. 13 also depicts the corresponding INFORMATION field.

Processing for each of these types of access is covered next.

2.2.1a.1 Regular Test Access and MDF Trunk Access

Regular test access requires that circuitry and equipment within switching machine 170 be manipulated according to the type of central office (e.g, cross-bar or electronic). MDF trunk access requires only that local memory tables be updated with entries disclosing, in effect, that the trunk circuit is being attended to by craft personnel. MDF trunks are not automatically connected to a customer loop, but require interaction and manipulation by a craftsperson located at the MDF.

The ACC task begins to RUN when a message is sent to it. In the immediate case, the message is a REQUEST for either a test trunk or MDF trunk access. A memory table is used to store pertinent information about the REQUEST; such information includes the address of the REQUEST message, memory locations for the storage of the address of a RESPONSE message, and whether a callback is required for this REQUEST. The access code (regular, designated by NOTEST access, or MDF access), the switching machine type, the trunk group containing the loop under test and the telephone number of the customer are placed as data in the message buffer. The address of the original REQUEST message and the address of the table used to store information about the REQUEST are also placed in the message HEADER, in the `up.sub.-- 1parameter` and `up.sub.-- 2parameter` locations, so that the response of port controller 2200 can be identified with the present REQUEST. The message is then sent to PARALLEL DATA task for transmission to port controller 2200. A timeout is started on the activity of port controller 2200 and ACC task relinquishes control of the CPU.

When port controller 2200 completes its processing of the access request, it returns a RESPONSE message to ACC task by sending the message across the PARALLEL DATA task. ACC task is identified in the `up.sub.-- route` of the message HEADER and the routing function in PARALLEL DATA task sends the message to ACC task. ACC task associates the RESPONSE message with the original request message by checking for the address of the original request message and of the temporary storage table used for the request. The access response message has the format shown in FIG. 14. The `status` byte indicates whether the access was successful or not. If it was unsuccessful or if LTS controller 2000 had timed out on port controller 2200 request, a RESPONSE message is formed and sent to SERIAL DATA task for transmission UP the hierarchy. The temporary table used to store data for the failed request is now made available for use with another access REQUEST that may have arrived.

If port controller 2200 passes a RESPONSE that indicates an access has been obtained, ACC task attempts to close a relay embedded within equipment access network (EAN) 2700 (FIG. 11) to one of the ports 2801-2816 selected for loop access. If this operation fails, trouble counters are stroked against the selected port 2801-2816 and EAN 2700 and the aforementioned failure sequence is followed again. If relay closure is successful, ACC task selects an idle TST task to control testing on the selected port, arranges to have a memory space called the port control table filled with information about the access, and makes the chosen TST task READY to execute. Port control table information includes the address of the orignal request message, the address of the results buffer received from port controller 2200, whether the access is of long or short holding time, a timeout value to be used to timeout the access before it is automatically dropped, the logical identifier of the FE computer that requested the access, and an identifier that allows the FE computer to associate the access with a results buffer internal to the FE computer. ACC task is now finished with its processing of this access request, and makes its temporary table available for use with a new access request. The return of a RESPONSE message is the responsibility of the TST task, and will be covered in a later section. This convention has been adopted because the original REQUEST message may have a test REQUEST appended to the access REQUEST.

2.2.1a.2 Interactive Access Request Processing

The interactive access request message of FIG. 13 is used when a loop access is desired together with a talk path to a craftsperson in the Maintenance Center. The request message format is basically the same one used for a regular test access, as per FIG. 12, except that a callback telephone information has been appended and the `request.sub.-- code` is symbolically designated ACC.sub.-- INTR (as contrasted to ACC.sub.-- NOTEST or ACC.sub.-- MDF of FIG. 12). The ACC task processes the so-called "regular loop portion" of the message as outlined above. However, besides formatting and sending a message to port controller 2200, a message is also sent to one of the TCD tasks. This latter message contains the callback telephone number appearing in the original DOWN route REQUEST message as is shown in FIG. 15. The ACC task now waits to receive two RESPONSE messages, namely, one from port controller 2200 and one internally from TCD task. A timeout is started on these activities.

The TCD task starts to RUN as soon as it can be scheduled after ACC task relinquishes control of the CPU. TCD task receives messages sent to it and begins to execute its dialing algorithm. The task also attempts to acquire one of talk circuits 2301-2306. If no circuit 2301-2306 is available, the callback sequence fails and a message to this effect is sent to ACC task. If one of the circuits 2301-2306 is available, TCD task attempts to acquire either a dial pulse dialer or in-band dialer for use with the available talk circuit. The dialer is represented in FIG. 11 by DDD circuit 2400. The dialer type depends on the central office equipment used to terminate the talk circuit, which appears to the central office switching machine as a station set on a customer loop. The dialer type is a parameter contained in the download data sent from the FE computer to LTS 160 as part of the startup sequence discussed above. If there is no dialer circuit 2400 available, either because it is presently in use or out of service, the callback sequence is terminated, the selected talk circuit is released and made available for use on another callback request, and a failure message is sent to ACC task.

If dialer circuit 2400 is acquired, the callback digits D1, D2, . . . , D12 are passed to a dialing program, and the digits are dialed. The dialing occurs at the interrupt level since dialing takes between 1 and 10 seconds to complete and, consequently, TCD task gives up control of the CPU for the dialing interval at least. When dialing is complete, an interrupt handler posts a semaphore to signal TCD task that it should return and continue its processing. Before having relinquished control of the CPU, TCD task started a timeout on the dialing activity. If this timeout expires before notification of dial completion, TCD task arranged to free its associated equipment, namely, one of the talk circuits 2301-2306 and dialer 2400, and generates a failure message for ACC task.

If dialing successfully completes, TCD task frees dialer 2400 circuitry, and enables the allocated talk circuit 2301-2306 for the detection of a handshake signal called "KEY-ZERO". The craftsperson at the Maintenance Center is required to depress the "0" key on the in-band signaling pad of the telephone set to signal LTS 160 that the callback has been successfully received at the Maintenance Center. The TCD task starts a timeout for the reception of the KEY-ZERO signal by the talk circuit hardware, and if the timeout expires before the signal is received, the callback is aborted, and the failure procedure outlined above is initiated. If the KEY-ZERO signal is detected by the talk circuit, the callback sequence is completed, and an indication of this is formatted and returned to ACC task. The message contains information identifying the talk circuit 2301, . . . , or 2306 utilized.

The ACC task can receive RESPONSE messages from TCD task and port controller 2200 in either order since the activities of callback and loop access are synchronous with respect to each other. After both responses arrive, ACC task completes its processing of the access request by checking `status` results and either sending a message to FE computer 220,221 or by connecting the allocated port from ports 2801-2816 and the selected talk circuit from circuits 2301-2306 through EAN 2700. If the loop access failed, or if the attempt to connect the allocated port fails, a failure message is returned to the corresponding FE computer, and LTS 160 equipment on the failed arrangement is relinquished. If the connect attempt fails for the allocated talk circuit, the talk circuit equipment is freed, trouble counters are strobed, and a TST task is selected for loop access in the manner described above. If the callback attempt is successful, the loop access is successful, and the connection through EAN 2700 is successful, a TST task is selected to oversee testing on the loop, and ACC task completes its processing with basically the same procedure as described above for the "loop access only" case.

2.2.1a.3 Callback Access Processing

There are instances when a Maintenance Center administrator needs to talk to either a customer or to an outside repair person after the customer loop has been successfully accessed for testing. In these instances, LTS 160 receives basically the same message of FIG. 13 except that the `request.sub.-- code` is, symbolically, ACC.sub.-- DDD and the port 2801-2816 to be associated with the callback in the `down.sub.-- parameter` byte of the HEADER.

The ACC task begins to execute when this message is received. It formats a message for TCD task as outlined above for the interactive test case, sends the message and waits for a RESPONSE. A timeout is started to time the callback request. The TCD task processes this message exactly as described above, and returns its response to ACC task. No message from port controller 2200 is expected in this case, so ACC task proceeds to send a message to the FE computer associated with the ACCESS request or to attach one to talk circuits 2301-2306 to the specified port, depending on the `status` returned from the callback activity.

The description to this point in this section has covered in some detail the action of ACC task and TCD task. It should be recalled that these software functions operate in a multitasking environment, and that at any instant, ACC task can be processing several access requests that are in different states of completion. However, TCD task is designed to process one dialing request at a time. To insure efficient throughput, there are two TCD tasks within the software of each LTS controller 2000. Consequently, two dialing activities can be going on in LTS controller 2000 concurrently. Since there are two dialer types, namely, dial pulse and an in-band, in LTS 160 for dialing over the national telephone network, two TCD tasks insures the maximum dialing activity may occur.

2.2.1b Test Request Processing

An active TST task has a private memory table that it uses to conrol testing on a given port. Entries in this table include the address for a request message or addresses for a series of messages and the corresponding address or addresses for the responses. TST task is first activated by the action of ACC task, which attaches both a request buffer and a response buffer to the table. Then TST task begins a timeout of the loop access; if the timeout expires before the loop access is dropped by request, the loop access is automatically dropped by LTS controller 2000. This timeout prevents the loss of use of LTS 160 circuitry such as talk circuits 2301-2306 and ports 2801-2816 in cases where FE computer 220 or 221 failures occur. One of the requests that can be made of TST task is that of restarting the timeout activity on a loop under test so that any access may be held for longer than the initial timeout value if required.

After initiating the timeout activity on loop access, TST task processes any request message in the table as follows. A `current count` variable that has been preset by ACC task has a value equal to the number of bytes taken by the access request data. In addition, each message buffer has a field called `nbytes` that contains a count of the number of bytes of meaningful data contained in the buffer. If `current count` equals `nbytes`, the message contained only the ACCESS request, and TST task arranges to send the response message associated with the initial ACCESS request in the UP direction. If, however, current count is less than `nbytes`, then test requests have been included with ACCESS request, and TST task proceeds to process those other requests. This processing activity is described in the subsequent paragraphs. For each test request found in the request message, TST task arranges for the request to be performed, collects the response in the associated response message buffer, and when the last request has been processed, returns the response message to the FE computer 220 or 221 making the requests. If the last request processed was not one to drop the test access, TST task then waits for the arrival of a new message containing test requests. In this way, the FE computer guiding the testing can request tests to be performed, analyze results and determine the next test to be performed according to its embedded adaptive test algorithms.

Whenever the associated FE computer 220 or 221 transmits a new message of test requests DOWN the hierarchy for a loop already accessed via a particular LTS port 2801-2816, that message is received by the SERIAL DATA task and routed to the appropriate TST task. The HEADER portion `down.sub.-- parameter` byte contains the port identifier, and a dynamic table in LTS controller 2000 is used to determine the specific TST task governing activity on a specific port.

The TST task is scheduled to RUN when the new request message is sent to it. The TST task attaches the message to the temporary table referred to above, and sets `current count` equal to the size of the message HEADER. Consequently, `current count` has the offset of the first byte after the message HEADER, which is the first request in the present message. This is depicted in FIG. 16. A message buffer is now obtained from OS, attached to the table, and used to accumulate response to the requests specified in the REQUEST message.

Before processing any test requests, TST task determines if a DDD callback is associated with the loop under test. If so, the callback path is placed in the so-called HOLD mode so that testing can be performed on the loop while the callback path is still held up. The talk circuit `mode` (either HOLD, TALK or MONITOR) is saved for restoration upon completion of test request processing. In this way, tests are performed on a loop with an associated callback, and the loop is subsequently restored to the callback state that existed prior to receipt of the request message. The callback state can be changed by a request in the message that simply causes LTS controller 2000 to change the value of the remembered state. When the remembered state is restored, a new state is actually effected for the callback path.

The TST task divides test requests into two categories, namely, those that can be performed by either LTS controller 2000 or port controller 2200, and those that require the services of one PMU 2101-2103. If the request is to be performed by a PMU 2101-2103, TST task attempts to have allocated to it an idle PMU. If no PMU is available, a `status` of BUSY is set for the test request, no further processing of requests is carried out for the current request message, and the accumulated responses are returned to the FE computer supervising the testing. If, however, a PMU is allocated to the TST task, a message buffer is obtained from OS, the PMU request is formatted in this buffer, and the buffer is sent to PARALLEL DATA task for transfer to the PMU. A timeout is started on the request. If the timeout expires before the PMU returns the test results, a timeout failure status is recorded in the results buffer, further processing of requests in the present buffer is terminated, and the accumulated results are returned to the supervising FE computer. If the PMU returns the test results within the time limit, the status and results data are stored in the associated results buffer, `current count` is incremented by the number of bytes required for the just processed test, and TST task determines if the request message contains another test request. This determination is made by comparing `current count` with the `nbytes` field in the request message. Since `current count` is incremented with each request processed, it eventually equals or exceeds `nbytes`, and processing for the present request message is terminated; the buffer of the accumulated response is returned to the proper FE computer.

If the request is determined to be one that LTS controller 2000 can respond to directly, it does so, and accumulates the response in the associated response buffer. `Current count` is incremented appropriately. If the request requires the services of port controller 2200, a new message buffer is obtained from OS, a request message is formatted for port controller 2200, and the message is sent to PARALLEL DATA task for transfer to port controller 2200. A timeout is initialized by PARALLEL DATA task, and if it expires before the responses from port controller 2200 is received, the timeout sequence is executed, as outlined above for the timed-out PMU request. If the response is received within the time limit, the response buffer is updated with the results, `current count` is incremented by the appropriate amount, and processing continues for the next test request, if any.

The above discussion shows the LTS controller 2000 is capable of processing concatenated test requests received in a single request message. The only restriction is that the responses to all requests must fit into the response message buffer. As each message is processed, a PMU 2101-2103 is attached to TST task, if necessary. This PMU remains associated with TST task for the duration of processing of the present request message, but is freed for use by another TST task for servicing another loop accessed on another port when processing is completed for the present request message.

As mentioned earlier, LTS 160 can be equipped with up to sixteen ports 2801-2816 and therefore can support concurrent testing on sixteen loops. Sixteen instances of TST task allow this processing to occur, and OS is the multitasking support for the simultaneous testing.

The timeout mechanisms described in the above paragraphs of this section serve to insure that resources of LTS 160 are not lost to the system in cases where errors occur. For example, without a timeout facility, if a PMU should reset in the middle of a test request, the loop access, the associated port equipment and any associated talk circuit would be permanently stuck awaiting a response that could never occur. All this equipment would be unavailable to the MLT system in the sense that it could not be used again because of its permanent BUSY status. The timeout facility overcomes errors of this sort by causing error routines to execute and free associated equipment. The overall timeout on the loop access, started by TST task as soon as loop access is completed, overcomes the error condition that prevails when TST task is awaiting the next request message for the FE computer, but that computer fails. Since the knowledge of the FE computer regarding access prior to system failure is most likely lost, the next message may never arrive. LTS 160 resources are likewise lost in this case without the timeout mechanism because this equipment cannot be used by other FE computers, or indeed, by one that failed and is now back on-line.

2.2.1c LTS Requests

With the presentation of the above structure and operation and the introduction of certain nomenclature, it is now appropriate to present a list of requests, including other access or test types, processed by a typical LTS 160. The list shows the subsystems, that is, PMU 2101-2103, LTS controller 2000 or port controller 2200, that actually perform