Abstract:
Partner modules are assigned to a plurality of primary modules in a communications system, each partner module being adapted to route signals from the primary module to which it is assigned to a spare module in case the primary module fails. The partner modules preferrably also serve as primary modules for receiving signals from their associated communication lines. As a result, redundancy for a failed primary module is provided by a signal routing architecture that is distributed throughout the communications system.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to communications systems that provide a redundant module for interfacing with communication lines in case of failure of a primary interface module. 
     Conventional communications systems (e.g., telecommunications systems) typically include multiple communication lines that are connected to corresponding primary interface modules for receiving data on the lines. The interface modules are &#34;field replaceable&#34; for servicing and/or replacement in case of failure. The communications system also includes one or more spare (i.e., redundant) modules for connection to the appropriate communication lines in case of failure or servicing of a primary interface module. One known scheme for providing this redundancy uses a dedicated switching module or subsystem to detect the failure of a primary module and connect the spare module in its place to the corresponding communication line. 
     SUMMARY OF THE INVENTION 
     A general aspect of the invention is assigning partner modules to a plurality of primary modules in a communications system, each partner module being adapted to route signals from the primary module to which it is assigned to a spare module in case the primary module fails. The partner modules preferably also serve as primary modules for receiving signals from their associated communication lines. 
     As a result, redundancy for a failed primary module is provided by a signal routing architecture that is distributed throughout the communications system, eliminating the need for an additional dedicated switching module or subsystem. The distributed nature of the routing architecture permits the redundancy to be implemented in the same way in both large communications systems (i.e., systems having many interface modules) and small systems. 
     Preferred embodiments include the following features. 
     In one embodiment, the primary modules are arranged in pairs, and each module in each pair of modules serves as the partner module for the other module in the pair. Each primary module may be paired with another primary module. Alternatively, one of the primary modules may be paired with the spare module, which then serves as the partner module for that primary module. 
     In another embodiment, the primary modules and the spare module are arranged in a loop such that each one of the modules serves as the partner module for an adjacent module in the loop. 
     Each partner module couples signals from the communication line of the associated primary module onto a signal bus if that primary module fails, and the spare module receives the signals from the signal bus. A primary module which also serves as a partner module has a first input coupled to its communication line, and has a second input coupled to the communication line of the primary module with which it is partnered for routing signals from the communication line of that primary module onto the signal bus if the primary module fails. 
     When the spare module serves as the partner of one of the primary modules, the spare module has a first input coupled to the signal bus, and a second input of the spare is coupled to the communication line of the primary module with which the spare is partnered for routing signals from the communication line onto the signal bus (and back to the spare module) if the primary module fails. 
     In yet another embodiment, the primary modules also transmit signals on a second plurality of communication lines, and each partner module couples the spare module to the second communication line of the primary module to which the partner module is assigned in case such primary module fails. 
     Each partner module also detects whether the primary module with which it is partnered has failed, such as by periodically polling, and being polled by, that primary module. Each partner module stores operation configuration information for the primary module with which it is partnered and notifies the spare module of the configuration information when the primary module fails. In response, the spare module assumes the configuration of the failed primary module. 
     Other features and advantages of the invention will be apparent from the following description of the preferred embodiments, and from the claims. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     We first briefly describe the drawings. 
     FIG. 1 is a block diagram of a communications system according to a first embodiment of the invention. 
     FIG. 2 is a block diagram of a communications system according to a second embodiment of the invention. 
     FIG. 3 is a block diagram of a communications system according to a third embodiment of the invention 
    
    
     STRUCTURE AND OPERATIONS 
     Referring to FIG. 1, communications system 10 includes N replaceable primary interface modules 12 1  -12 N  for receiving and processing signals (i.e., data) on N corresponding communication lines 14 1  -14 N . Spare (i.e., redundant) interface module 16 normally does not receive signals on any communication line 14 1  -14 N , but may be connected via auxiliary signal bus 18 in a manner described in detail 10 below to any communication line 14 1  -14 N  in case of failure (or removal) of the corresponding interface module 12 1  -12 N . 
     Interface modules 12 1  -12 N  include signal processors 20 1  -20 N , respectively, for processing the received signals. Module controllers 22 1  -22 N  control the operation of respective signal processors 20 1  -20 N . Fault monitors 24 1  -24 N  monitor the operation of respective signal processors 20 1  -20 N  and module controllers 22 1  -22 N . Each fault monitor has a pass state and a fail state as discussed in detail below. Module controllers 22 1  -22 N  operate with fault monitors 24 1  -24 N  in a manner described in detail below to determine whether signal processors 20 1  -20 N  are operating properly or have failed. Spare module 16 is identical to modules 12 1  -12 N  and includes processor 26, module controller 28, and fault monitor 30. Module controllers 22 1  -22 N , 28 communicate with each other and with a system controller 32 over control bus 34. 
     Each module 12 1  -12 N  is assigned a partner module for detecting the failure or removal of the module 12 1  -12 N  to which the partner is assigned and for diverting signals from the failed/removed module&#39;s communication line to spare interface module 16 via auxiliary signal bus 18. In communications system 10, modules 12 1  -12 N  are arranged in pairs. For example, modules 12 1  -12 2  comprise one pair, modules 12 N-1 , 12 N  another. Each module in each pair serves as the partner module for the other module in the pair. Thus, module 12 2 , besides receiving and processing signals on communication line 14 2 , serves as the partner of module 12 1 . Likewise, module 12 1  is assigned as the partner to module 12 2 . 10 Each interface module 12 1  -12 N , 16 (e.g., module 12 1 ) includes primary switch 36 for selectively coupling signals applied to primary module input 38 to that module s signal processor (e.g., signal processor 20 1 ) under the control of the fault monitor (e.g., fault monitor 24 1 ) of the module. A secondary switch 40 in each module 12 1  -12 N , 16 (e.g., module 12 1 ) selectively couples signals present at the secondary input 42 of that module onto auxiliary bus 18 under the control of the module controller of the module (e.g., module controller 22 1 ). Primary switches 36 of modules 12 1  -12 N  are normally closed to couple signals on communication lines 14 1  -12 N  to respective signal processors 20 1  -20 N  ; secondary switches 40 in modules 12 1  -12 N , on the other hand, are normally open for reasons explained below. Primary and secondary switches 36, 40 in spare module 16 are operated by fault monitor 30 and module controller 28, respectively, and both are normally open. 
     In operation, modules 12 1  -12 N  receive and process signals from communication lines 14 1  -14 N  in a conventional manner as long as all modules 12 1  -12 N  are functioning normally. During normal operation, spare module 16 is idle. Each module 12 1  -12 N  periodically monitors (polls) its partner for faults via control bus 34 and is likewise periodically monitored (polled) for failure by its partner. For example, odd-numbered modules (e.g., modules 12 1  12 N-1 , where N is an even number) are polled by their even-numbered partners (e.g., modules 12 2 , 12 N ) and, if operating correctly, send a response to the even-numbered partners over control bus 34. An odd numbered module determines that its even-numbered partner is operating correctly if the odd-numbered module receives a poll within predetermined time interval. The even numbered module determines that its odd numbered partner is operating properly if the even numbered module receives a response to the poll within the predetermined time interval. This procedure is repeated periodically whenever system 10 is operating. 
     As an example of this polling procedure, consider partner modules 12 1 , 12 2 . When system 10 is started, the module controller in one of these modules (e.g., controller 22 1  in module 12 1 ) polls partner module 12 2  by transmitting a data sequence called a polling protocol to module controller 22 2  If signal processor 20 2  and module controller 22 2  are operating properly, controller 22 2  sends a response indicating such proper operation to module controller 22 1 . Module controller 22 2  periodically sends a reset command to keep the fault monitor in the pass state. 
     Module controller 22 1  analyzes the response to its poll from module controller 22 2  to determine whether the response indicates that module 12 2  is in the pass state. If so, module controller 22 1  repeats the cycle in the same manner described above. Note that the response from module 12 2  constitutes a &#34;poll&#34; of module 12 1 , the &#34;response&#34; to which is the next poll by module 12 1  of module 12 2 . 
     Module failure can be detected in one of two ways during the polling procedure. Again using partner modules 12 1 , 12 2  as examples, module 12 2  is deemed to be malfunctioning if module controller 22 2  either completely fails to respond to the polling protocol from module 12 1  or responds with a fault status. 
     When signal processor 20 2  fails to operate, fault monitor 24 2  detects this failure and sets its status to indicate that processor 20 2  is malfunctioning. Module controller 22 2  learns of the failure by reading the status of fault monitor 24 2  and sends a response to module controller 22 1  indicating a fault status. Module controller 22 2  also sends a set command to fault monitor 24 2  to change its state from pass to fail and cause fault monitor 24 2  to open primary switch 36 in module 12 2 . When module controller 22 1  reads the response from controller 22 2  indicating the fault, it closes the secondary switch 40 in module 12 1 . As a result, signals on line 14 2  are diverted from failed module 12 2 , through secondary switch 40 in its partner module 12 1 , and onto auxiliary signal bus 18. 
     If module controller 22 2  fails to send a reset command to fault monitor 24 2  within a predetermined time, fault monitor 24 2  determines that controller 22 2  has failed and sets itself to the fault state, thereby preventing module 12 2  from responding to subsequent polls from module controller 22 1 . Fault monitor 24 2  then opens primary switch 36 in module 12 1 , decoupling signal processor 20 2  from communication line 14 2 . Module controller 22 1 , upon failing to receive a response within a predetermined time interval, would determine that partner module 12 2   is missing or severely malfunctioning, and close secondary switch 40 in module 12 1 . 
     When module 12 2  has failed (or is removed) as described above, the module controller 22 1  in its partner module 12 1  notifies module controller 28 in spare module 16 and transmits data to module controller 28 that describes the &#34;configuration&#34; of signal processor 20 2  in failed module 12 2 . Each module controller 22 1  -22 N  stores data that describe the configuration of the signal processor in its module and the configuration of the partner module s signal processor. 
     For example, module controller 22 1  stores configuration data for signal processor 20 1  and signal processor 20 2 , and module controller 22 2  likewise stores data on the configurations of signal processors 20 1 , 20 2 . The configuration data for a given signal processor (e.g., signal processor 20 2 ) includes information identifying the interface with the module s communication line 14 2 , the type of process being run on signal processor 20 2 , and the destination in system 10 where the output of signal processor 20 2  is to be sent over line 14 2 . 
     Spare module controller 28 responds to the configuration data from module controller 22 1  by causing spare signal processor 26 to assume the specified configuration and by resetting the response timer in spare fault monitor 30. Primary switch 36 in spare module 16 is then closed by fault monitor 36, thereby completing the rerouting of signals on communication line 14 2  to spare signal processor 26 via auxiliary signal bus 18 without any interruption in service. 
     The rerouting operation is the same regardless of which module in which pair of modules fails. For example, if module 12 N  fails, fault monitor 24 N  opens primary switch 36 in module 12 N , and module controller 22 N-1  closes secondary switch 40 in module 12 N-1 . Module controller 22 N-1  sends the configuration data of signal processor 20 N  to spare module controller 28, which causes spare signal processor 26 to assume that configuration and causes spare fault monitor 30 to close primary switch 36. Data on line 14 N  is thereby routed via partner module 12 N-1  and auxiliary signal bus 18 to signal processor 26 in spare module 16. 
     Other embodiments are within the following claims. 
     For example, the number, N, of interface modules 12 1  -12 N  may be odd rather than even. In this case, spare module 16 would also serve as the partner module for the module not otherwise paired (e.g., module 12 N ). The secondary input 42 of spare module 16 is connected to communication line 14 N  (see FIG. 2). Spare module 16 would poll partner module 12 N  in the same manner as discussed above. If module controllers 22 N , 28 determine that signal processor 20 N  has failed, spare module controller 28 closes secondary switch 40 in spare module 16 and causes spare fault monitor 30 to close primary switch 36, and fault monitor 24 N  causes primary switch 36 of failed module 12 N  to open. Signals on line 14 N  thus are coupled through switch 40 in spare module 16 onto auxiliary signal bus 18 to spare signal processor 26 via spare module switch 36. Module controller 22 N  identifies module 12 N  as the failed module, and spare module 16 assumes the configuration of module 12 N  in response to the configuration data stored in spare module controller 28. 
     Referring to FIG. 2, the distributed switching scheme of the invention can be used with other module configurations. In communications system 100, modules 112 1  -112 N , which receive signals on respective communications lines 114 1  -114 N , are connected in a &#34;loop&#34; configuration with spare module 116. In this arrangement, each module is assigned to be the partner of the two modules (a &#34;client&#34; module and an &#34;agent&#34; module) disposed on each side of the partner module. An agent module controls the secondary switch 140 of its client module. For example, because module 112 2  controls secondary switch 140 of module 112 1 , module 112 2  is the agent of module 112 1 . The secondary switch 140 of module 112 2  is controlled by module 112 3 , and thus module 112 2  is the client of module 112 3 . Likewise, module 112 N  is the agent of module 112 N-1  (not shown). 
     The secondary input 142 of each module applies signals to secondary switch 140 from the communication line of its client module. For example, secondary switch 140 in module 112 2  receives signals from communication line 114 1 . The outputs of all secondary switches 140 are connected to auxiliary signal bus 118. The loop is closed by connecting the primary input 138 of spare module 116 and the secondary input 142 of the first module 112 1  in the loop to auxiliary signal bus 118. As before, during normal operation primary and secondary switches 136, 140 in modules 112 1  -112 N  are normally closed and open, respectively, and both switches 136, 140 in spare module 116 are open. Each module&#39;s switches are controlled by that module s fault monitor (i.e., 124 1  -124 N , 130) and module controller (i.e., 122 1  -122 N , 128) in the same manner as described above, and the agent modules poll their client modules over control bus 134 using the same procedure as discussed above. 
     In operation, when one of the modules (e.g., module 112 1 ) indicates its failure, either by not responding to the poll from its agent module (e.g., module 112 2 ) or responding with a fault status, the response timer in fault monitor 124 1  times-out, causing fault monitor 124 1  to open primary switch 136 of module 112 1 . Module controller 122 2  closes secondary switch 140 of module 112 2  and sends the configuration data of signal processor 120 1  to module controller 128 in spare module 116. Spare module 126 configures spare signal processor 126 according to the configuration data and causes spare fault monitor 130 to close spare module primary switch 136. Secondary switch 128 in spare module 116 is maintained open. The data on communication line 114 1 . is thus routed through module 112 2 , onto auxiliary signal bus 118, and is applied to signal processor 126 in spare module 116. 
     Referring to FIG. 3, the distributed switching architecture of the invention can also be used in a communications system 200 in which interface modules 212 1  -212 N  are connected between network 202 and equipment 204 1  -204 N  via network lines 214a 1  -214a N  and equipment lines 214b 1  -214b N , respectively. The network side includes an auxiliary signal bus 218a, and a separate auxiliary signal bus 218b is provided for the equipment side of the system. 
     Each module 212 1  -212 N  includes a signal processor 220 1  -220 N  and two sets of primary and secondary switches; primary switch 226a and secondary switch 228a on the network side, and primary and secondary switches 226b, 228b on the equipment side. The primary switches 226a, 226b of each module (e.g., module 212 1 ) are controlled by the fault monitor (e.g., fault monitor 224 1 ) and the module controller (e.g.. module controller 222 1 ). respectively, of that module. 
     Any one of interface modules 212 1  -212 N , for example, module 212 N , may be arbitrarily designated as the spare module. Module controller 222 N  and fault monitor 224 N  in designated spare module 212 N  normally decouple module 212 N  from lines 214a N , 214b N  by placing its primary switches 226a, 226b in position &#34;2&#34;. Primary switches 226a, 226b in the active modules (e.g., modules 212 1 , 212 2 ) are normally in position &#34;1&#34; to couple signal processors 220 1 , 220 2  of such interface modules in series with their respective communication lines (e.g., lines 214a l , 214b 1  and 214a 2 , 214b 2 ). Secondary switches 228a, 228b in-all modules 212 1  -212 N  are all normally deactivated in position &#34;1&#34; by module controllers 222 1  -222 N , respectively. 
     Modules 212 1  -212 N  are connected in a &#34;loop&#34; configuration, with each module serving as the agent for one adjacent module and the client for the other adjacent module. For example, module 212 2  is the agent for module 212 1  and is the client of module 212 3  (not shown). Likewise, module 212 1  serves as the agent for module 212 N . 
     When an active module is removed or malfunctions (as detected by, for example, the polling procedure discussed above) the fault monitor in the malfunctioning module opens its pair of primary switches 226a, 226b, and the module controller in the failed module&#39;s agent closes the secondary switches 228a, 228b in its client module, thereby decoupling the failed client module from its equipment and network 202 and coupling the communication lines of the failed module onto auxiliary signal buses 218a, 218b. 
     The module controller in the agent module also notifies module controller 222 N  in spare module 212 N  of the failure of its client and sends the configuration of the signal processor of the failed module to spare module controller 222 N  via control bus 230. Module controller 222 N  configures signal processor 220 N  accordingly and causes fault monitor 224 N  to change switches 226a, 226b to position &#34;3&#34;, thereby coupling signal processor 220 N  to auxiliary signal buses 218a, 218b so that spare module 212 N  replaces the failed module in the system. 
     For example, if module 212 1  fails, the 15 response timer in fault monitor 224 1  times-out and fault monitor 224 1  deactivates primary switches 226a, 226b in module 212 1  to position &#34;2&#34;, decoupling module 212 1  from communication lines 214a 1 , 214b 1 . Module controller 222 2  actuates secondary switches 228a, 226b in module 212 2  to position &#34;2&#34;, thereby coupling signals on communication lines 214a 1 , 214b 1  onto auxiliary signal buses 218a, 218b, respectively. Module controller 222 2  also sends the configuration of signal processor 220 1  to spare module controller 222 N  via control bus 230. 
     Module controller 222 N  sets the configuration of spare signal processor 220 N  to be the same as that of signal processor 220 1  and causes spare fault monitor 224 N  to change primary switches 226a, 226b in spare module 212 N  to position &#34;3&#34;. As a result, the signals on auxiliary buses 218a, 218b are coupled to signal processor 220 N  and spare module 212 N  is inserted between network 202 and equipment 204 1  in place of failed module 212 1 .