WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for providing delayed start-up of an activity monitor in a distributed I/O system    
United States Patent6226762   
Link to this pagehttp://www.wikipatents.com/6226762.html
Inventor(s)Foote; Garritt W. (Austin, TX); Mehta; Pratik (Austin, TX)
AbstractA modular distributed I/O system includes a computer coupled to module banks through a network bus. A module bank includes a communication module, terminal bases, and I/O modules. The adjoined terminal bases form a local bus mastered by the communication module. The I/O modules connect to the local bus through terminal bases. I/O modules are pluriform and programmable. The communication module maintains a memory image of the configuration state of each I/O module resident in the module bank. A memory image persists when an I/O module is removed from its terminal base. The memory image is used to configure a new I/O module which is inserted into the same terminal base. The communication module monitors for communication failure on the network bus, and is configured to capture the state of the module bank and automatically restore this captured state after a power-loss event. The terminal bases realize a local bus which includes a parallel bus, a serial bus, and an address assignment bus. Each terminal base receives a value from a preceding terminal base, increments this value, and asserts the increment value to a succeeding terminal base. Each terminal base is automatically assigned an physical proximity address. An I/O module controls read/write access to its register space by a semaphore mechanism which supports multi-threaded processing. The I/O module latches an ungranted semaphore request and assumes a self-exclusion state upon releasing the semaphore wherein the semaphore is reserved for the communication module.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6226762
System and method for providing delayed start-up of an activity monitor in

     a distributed I/O system - US Patent 6226762 Drawing
System and method for providing delayed start-up of an activity monitor in a distributed I/O system
Inventor     Foote; Garritt W. (Austin, TX); Mehta; Pratik (Austin, TX)
Owner/Assignee     National Instruments Corporation (Austin, TX)
Patent assignment
All assignments
Publication Date     May 1, 2001
Application Number     09/062,677
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 20, 1998
US Classification     714/48 709/224 710/18
Int'l Classification     G06F 015/173 H02H 003/05 H03K 019/003 H04B 001/74 H04L 001/22
Examiner     Wright; Norman M.
Assistant Examiner     Revak; Christopher A.
Attorney/Law Firm     PC, Hood; Jeffrey C. Conley, Rose & Tayon
Address
Parent Case    
Priority Data    
USPTO Field of Search     714/51 714/43 714/48 714/55 714/47 714/44 714/815 714/56 370/257 370/258 370/450 370/451 370/452 710/109 710/18 710/19 709/223 709/224
Patent Tags     providing delayed start-up activity monitor in distributed i/o
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
6032271
Goodrum

Feb,2000

[0 after 0 votes]
5444855
Thompson
710/107
Aug,1995

[0 after 0 votes]
5185693
Loftis
700/82
Feb,1993

[0 after 0 votes]
4814984
Thompson
709/209
Mar,1989

[0 after 0 votes]
4799052
Near
370/451
Jan,1989

[0 after 0 votes]
4747100
Roach

May,1988

[0 after 0 votes]
4387425
El-Gohary
709/225
Jun,1983

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A method for providing delayed start-up of an activity monitor in a distributed I/O system, the distributed I/O system comprising a computer, at least one module bank coupled to the computer, and a network bus coupled between the computer and the at least one module bank, the module bank including a communication module, one or more I/O modules, and a local bus, wherein the local bus couples the communication module with the one or more I/O modules, the method comprising:

the computer sending a monitor enable command to enable activity timer monitoring by the communication module;

the communication module receiving the monitor enable command, wherein the communication module does not begin the timer in response to receiving the monitor enable command;

the communication module detecting subsequent network traffic on the network bus after said receiving the monitor enable command;

the communication module starting the activity timer in response to said detecting subsequent network traffic on the network bus and in response to having received the monitor enable command.

2. The method of claim 1, further comprising:

detecting a period of inactivity on the network bus which exceeds a threshold after said starting the activity timer;

reading configuration values from a memory in response to detecting said period of inactivity on the network bus which exceeds said threshold;

writing said configuration values to the one or more I/O modules after said reading.

3. The method of claim 2, wherein said detecting a period of inactivity on the network bus indicates a communication failure condition.

4. The method of claim 1, wherein each of said one or more I/O modules includes one or more channels, wherein said memory stores a database including configuration values for one or more channels of a selected one or more I/O modules;

wherein said reading configuration values comprises reading said configuration values for said one or more channels of said selected one or more I/O modules.

5. The method of claim 1, wherein, in response to receiving the monitor enable command, the communication module waits for said subsequent network traffic before starting the activity timer.

6. The method of claim 1,

starting an application program in the computer after said sending a monitor enable command to enable activity timer monitoring by the communication module;

the application program loading;

the application program generating said subsequent bus activity on the network bus after the application program loading.

7. The method of claim 6, wherein, in response to receiving the monitor enable command, the communication module waits for said subsequent network traffic before starting the activity timer;

wherein the communication module waits during the application program loading.

8. A distributed I/O system which provides user-defined configuration values to a module bank in case of a communication failure condition, the distributed I/O system comprising:

a computer system, wherein the computer is configured to generate a monitor enable command;

a network bus coupled to the computer system;

a module bank coupled to the network bus, wherein the module bank includes a communication module coupled to the network bus, and one or more I/O modules coupled to said communication module, wherein said communication module includes:

non-volatile memory configured to store said user-defined configuration values;

signal detection logic configured to detect a first occurrence of signal activity on said network bus in response to said monitor enable command received from said computer system;

an activity timer configured to measure the time duration of periods of signal inactivity on said network bus, wherein said activity timer is started in response to said first occurrence of signal activity detected by said signal detection logic after receipt of said monitor enable command from said computer system, wherein said activity timer is configured to assert the communication failure condition in response to a period of signal inactivity which persists for longer than a pre-defined timeout value.

9. The distributed I/O system of claim 8, wherein said computer system is configured to send said monitor enable command to said communication module in response to first user input.

10. The distributed I/O system of claim 9, wherein said computer is operable to set said timeout value by sending a timeout modification command to said communication module in response to second user input.

11. The distributed I/O system of claim 8,

wherein said communication module is configured to read said user-defined configuration values from said non-volatile memory in response to said communication failure condition;

wherein said communication module is operable to configure said one or more I/O modules with said user-defined configuration values in response to reading said user-defined configuration values.

12. The distributed I/O system of claim 11, wherein each of said one or more I/O modules includes one or more channels, wherein said user-defined configuration values contains configuration settings for selected ones of said one or more I/O modules, and selected ones of said one or more channels of said selected I/O modules.

13. The monitor system of claim 12, wherein said non-volatile memory stores a plurality of module enable flags and a plurality of channel enable flags for selecting one or more I/O modules and one or more channels for configuration updating in response to the communication failure condition.

14. A method for providing delayed start-up of an activity monitor in a distributed I/O system, the distributed I/O system comprising a computer, at least one module bank coupled to the computer, and a network bus coupled between the computer and the at least one module bank, the module bank including a communication module, one or more I/O modules, and a local bus, wherein the local bus couples the communication module with the one or more I/O modules, the method comprising:

the computer sending a monitor enable command to enable activity timer monitoring by the communication module;

the communication module receiving the monitor enable command, wherein the communication module does not begin the timer in response to receiving the monitor enable command;

the communication module detecting network traffic on the network bus in response to the communication module receiving the monitor enable command;

the communication module enabling the activity timer in response to said detecting network traffic on the network bus;

detecting a period of inactivity on the network bus which exceeds a threshold after said enabling the activity timer;

reading configuration values from a memory in response to detecting said period of inactivity on the network bus which exceeds said threshold;

writing said configuration values to the one or more I/O modules after said reading.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates to the field of distributed I/O systems, and more particularly, to a modular networked I/O system including a host computer and one or more module banks coupled via a network bus.

DESCRIPTION OF THE RELATED ART

In order to more efficiently and effectively address the problems associated with distributed sensing and control, providers of I/O devices and systems have evolved toward solutions which adhere to a common set of principles which include modularity, ease of configuration, and network operability.

For example, the 1794 Flex I/O product line manufactured by Allen-Bradley, a Rockwell Automation Business, comprises a modular I/O system for distributed applications. For more information concerning the Flex I/O product line refer to the Flex I/O Product Data Publication 1794-2.1 which is hereby incorporated by reference.

Another example is offered by the OpenLine.TM. product line manufactured by Grayhill, Inc. The OpenLine.TM. I/O system is a modular distributed control and data acquisition system. For more information concerning the OpenLine.TM. family of products refer to the OpenLine Product Data Bulletin #738 which is hereby incorporated by reference.

Prior art modular distributed I/O systems typically include a host computer coupled to one or more module banks through a network bus. The host computer sends command and configuration information to the module banks, and receives sensor data and status information from the module banks through the network bus. Each module bank generally includes a communication module, a plurality of terminal bases, and a plurality of I/O modules. The terminal bases couple together to form a communications backplane. The communication module generally couples to the first terminal base of the succession of terminal bases. The I/O modules are interchangably inserted into terminal bases. Each terminal base includes a host of connectors which provide the corresponding I/O module with connectivity to field devices. The communication module mediates communications between the network bus and the I/O modules comprising a module bank. The I/O modules occur in a variety of types for performing analog and/or digital I/O operations.

As mentioned above, the host computer sends configuration information to an I/O module in order to customize the functionality of the I/O module. However, a fundamental problem associated with the prior art distributed I/O systems is that this configuration information programmed into an I/O module is lost when the I/O module is removed from its terminal base. The time and effort expended in tuning the I/O module's configuration is wasted. Thus, a need exists for a modular distributed I/O system with the capacity to more adequately maintain I/O module configuration even during the physical absence of the I/O module from its terminal base.

In addition to the physical removal of an I/O module, configuration information may be lost in response to the loss of power to the I/O module. Thus, it would be very desirable to provide a method for (a) capturing the configuration state of an I/O module, and (b) restoring the captured configuration state to the I/O module, or to another I/O module of similar type, after a power-loss event.

Another issue of concern in modular distributed I/O systems, and in networked systems in general, is to provide mechanisms for safely and reliably responding to failures in network bus communications. To this end, it is desirable to provide within each communication module an activity monitor for sensing communication failure conditions on the network bus. Furthermore, since the distributed I/O system is controlled by a software application which runs on the host computer, there may be a period of network bus inactivity during the initial start-up phase while the host computer loads the software application. It is desirable that the activity monitors within the communication modules not interpret this initial period of network bus activity as a communication failure condition.

The primary function of the communication module is to mediate communications between the network bus and the local bus formed by the adjoined terminal bases. In order to maximize the communication capacity over the local bus, it is necessary for the local bus architecture to be optimized. In particular, since an I/O module may be interchangably inserted into any terminal base, a need exists for an automatic mechanism of assigning addresses to terminal bases. Furthermore, since the I/O modules, in the course of their operation, may send and receive different types of data, a need exists for a partitioned local bus architecture where distinct sections of the local bus are dedicated for different types of data transfer.

In response to continuing improvements in CPU and memory technology, communication modules are increasingly able to perform more sophisticated types of processing under software control. In view of the fact that the module bank may include multiple I/O modules of different types, a need exists for a communication module with multi-threaded processing capacity,

In order to perform the sensing and/or control tasks for which it is designed, an I/O module includes internal registers which may be read/written by the communication module as well as the I/O module. Thus, a mechanism for controlling read/write access to the internal registers is needed, and especially such a mechanism as would be compatible with the requirements of a communication module with multi-threaded processing capability.

SUMMARY

The problems and needs discussed above in the context of prior art modular distributed I/O systems are solved by the system and methods of the present invention. In particular, the present invention contemplates a method for maintaining the continuity of configuration information among multiple I/O modules which successively occupy a common slot (i.e. terminal base) in a distributed I/O system. The distributed I/O system includes a computer system coupled to at least one module bank. The module bank includes a communication module and one or more terminal bases which are in electrical contact with the communication module. The module bank also includes one or more I/O modules which are attached to corresponding terminal bases.

The method for maintaining configuration continuity includes the following steps. An I/O module is inserted into a terminal base of a module bank. The communication module reads configuration information stored in the I/O module. The stored configuration information comprises a data structure which serves to describe the functional characteristics and factory default settings for the I/O module. The communication module stores the configuration information in non-volatile memory as a "virtual module structure". Furthermore, the communication module monitors configuration updates which are supplied to the I/O module and updates the stored configuration information (i.e. virtual module structure) accordingly. The virtual module structure is maintained as a continuous image of at least a subset of the registers within the I/O module. When the I/O module is removed and a subsequent I/O module is inserted into the same slot (terminal base), the communication module determines if the subsequent I/O module is compatible with the stored configuration information. If the subsequent I/O module is determined to be compatible with the stored configuration information, the configuration information is used to configure the subsequent I/O module. Thus, configuration continuity is maintained between the first I/O module and the second I/O module.

It is noted that the communication module continues to update the stored configuration information after the first I/O module has been removed and before the subsequent I/O module has been inserted. In other words, the communication module detects messages targeted for the first I/O module even in the physical absence of the first I/O module, and updates the virtual module structure to correspond to the contents of the configuration registers of the first I/O module which would have prevailed if the first I/O module has not been removed.

The present invention further contemplates a method for providing a user-defined configuration state to a module bank where the module bank is comprised in an I/O system. The I/O system includes a computer and the module bank coupled by a network bus. The module bank comprises a communication module and one or more I/O modules coupled to the communication module. The method includes the following steps. First, the module bank is configured with a desired state. In the preferred embodiment of the invention, the desired state is established by a series of configuration messages sent by the computer to the communication module and the I/O modules which comprise the module bank. After the desired state of the module bank has been established, the computer sends a state capture command to the communication module in response to user input. The communication module captures the state of the communication module and the one or more I/O modules which comprise the module bank in response to the state capture commands. The captured state information is stored into non-volatile memory within the communication module. Then the captured state information is used to restore the state of the module bank in response to an event. In particular, the communication module configured the one or more I/O module with the captured state information in response to the event. In the preferred embodiment of the invention, the event is defined to be a loss of power to the module bank.

It is noted that the method also includes the step of configuring the communication module to perform the state restoration. Thus, the communication module performs the state restoration in response to the event only if the communication module has been pre-configured to do so.

The present invention also contemplates a method for providing delayed start-up of an activity monitor comprised with the distributed I/O system. As described above, the distributed I/O system includes a computer coupled to at least one module bank through a network bus. The module bank includes a communication module coupled to one or more I/O modules through a local bus. The method includes the following steps. The computer sends a monitor enable command to the communication module which enables the communication module to perform activity monitoring on network bus. However, the activity timer associated with the activity monitoring function is not actually started in response to the enable command. The activity timer is started when the communication module detects subsequent network traffic on the network bus, i.e. after having received the monitor enable command.

The communication module uses the activity timer to measure the time duration of period of network bus inactivity. When the communication module determines a period of inactivity which exceed a threshold after having started the activity timer, the communication module reads configuration values from memory, and writes the configuration values to the one or more I/O modules. The communication module assumes that a communication failure conditions exists on the network bus when the threshold-exceeding period of activity is determined. It is noted that this method of delaying start-up of the activity monitor allows a software application to be invoked or loaded into memory after the assertion of the monitor enable command. Since the software application typically generates the subsequent network traffic on the network bus, the method of the present invention prevents the intervening network bus inactivity from being interpreted as a communication failure condition.

Additionally, the present invention contemplates an I/O system with improved communication capabilities including a communication module, one or more I/O module, and a physical bus coupled between the communication module and each of the one or more I/O modules. The physical bus includes a parallel bus and a serial bus. The communication module is a master of the physical bus. Each of the one or more I/O modules includes memory. The memory of each I/O module is accessible to the communication module through the parallel bus. In addition, each of the I/O module includes non-volatile memory for storing a module information structure (MIS) which describes the corresponding I/O module. The communication module is operable to read the MIS of each of the I/O modules when the I/O module is coupled to the physical bus. The reading of the MIS is performed through the serial bus.

The system also includes one or more terminal bases which couple together to form the physical bus. The I/O modules are coupled to respective ones of the terminal bases. Each of the terminal bases includes a predecessor connector and a successor connector. The predecessor connector is adapted for coupling to a preceding terminal base or to the communication module, and the successor connector is adapted for coupling to a succeeding terminal base. The predecessor connector provides physical bus connectivity to the preceding terminal base, and the successor connector provides physical bus connectivity to the succeeding terminal base. The terminal bases are coupled together into a linear succession, and the predecessor connector of a first terminal base of the linear succession is coupled to the communication module.

According to the present invention, the physical bus includes an address assignment bus where the address assignment bus includes a plurality of address assignment lines. Each terminal base of the linear succession is operable: to receive an integer value asserted on the address assignment lines of its predecessor connector, to increment the integer value, and to assert the incremented integer value on the address assignment lines of its successor connector. Since the communication module asserts a fixed constant value on the address assignment lines coupling between said communication module and said first terminal base, each terminal base of the linear succession may be associated with a unique integer value based on physical proximity to the communication module. In the preferred embodiment of the invention, a terminal base uses the incremented integer value asserted on its successor connector as it assigned address. Any I/O module inserted into the terminal base inherits the address of its terminal base. It is noted that in an alternate embodiment of the invention, a terminal base uses the integer value receives on it predecessor connector as it assigned address.

The present invention further contemplates a method for controlling read/write access to the register space of an I/O module in a distributed I/O system. The distributed I/O system includes a computer system coupled to a module bank. The module bank includes a communication module coupled to one or more I/O modules. The method includes the following steps. A first process executing in the communication module requests access to the register space of an I/O module. The access request comprises initiating a read operation on a semaphore register associated with the I/O module. The I/O module determines if any process executing on the communication module already has access to the register space of the I/O module. The communication module grants register space access to the first process with information indicating whether any process previously executing in the communication module already has access to the register space of the I/O module. The first process may use the information to affect its register access behavior.

When the information indicates that a previous process already has access to the register space of the I/O module, the first process may force the previous process to release access by performing a semaphore release write operation to the I/O module. This strategy is preferred when the first process is known to be a high priority process relative to the previous process. When the first process is a lower priority process relative to the previous process, the first process may assume the strategy of waiting until the previous process releases access to the register space of the I/O module. In particular, the first process may repeatedly request access to the register space of the I/O module until the information indicates that no other process executing in the communication module currently controls access to the register space of I/O module.

In addition to the communication module, the I/O module itself may access the register space of the I/O module. Thus, the I/O module grants register space access to the communication module only when it does not currently control the register space. If a process requests access to the register space while the I/O module controls the register space, the I/O module will (a) deny the access request, and (b) store an indication of the access request asserted by the first process. When the I/O module subsequently releases the register space, the I/O module will be unable to regain access to the register space until a process executing on the communication module has requested, gained, and released access to the register space of the I/O module.

In order to provide an informed determinism to the access control mechanism, the I/O module is configured to store a semaphore request time parameter which specifies the maximum time duration the I/O module control access to the register space after a request for access has been asserted by the communication module. The communication module reads the semaphore request time parameter from the I/O module preferably when the I/O module is inserted into the module bank. Thus, a process which requests access to the register space of an I/O module and is denied may optimally determine the times of subsequent access requests. For example, a "least effort" strategy dictates that having been denied an access request, a process should perform a subsequent access request after the semaphore request time elapses, since the I/O module will have released access to the register space within this time.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:

FIG. 1A illustrates a first embodiment of the modular distributed I/O system of the present invention;

FIG. 1B illustrates a second embodiment of the modular distributed I/O system of the present invention;

FIG. 2 illustrates a typical module bank 110 according to the present invention;

FIG. 3A illustrates network module 200 in isolation from the module bank 110;

FIG. 3B illustrates an alternate embodiment of network module 200 herein referred to as network module 200B;

FIG. 4A provides a top view of an isolated terminal base 220;

FIG. 4B provides a left side view of the terminal base 220;

FIG. 4C provides a right side view of the terminal base 220;

FIG. 4D provides a perspective view of terminal base 220;

FIG. 5 illustrates network module 200 and several terminal bases 220 according to the present invention mounted onto a DIN Rail 230;

FIG. 6 is an abstracted block diagram of the modular distributed I/O system according to the present invention showing the patterns of connectivity within and surrounding a typical module bank 110;

FIG. 7 is an abstracted block diagram of the MDIO system of FIG. 1A according to the present invention;

FIG. 8 presents a wiring diagram for an 8 channel analog input module;

FIG. 9 presents a wiring diagram for an 8 channel analog output module;

FIG. 10 illustrates an input isolation circuit for a 16 channel discrete input module;

FIG. 11 illustrates an input isolation circuit for an 8 channel universal discrete input module;

FIG. 12 is a table of the physical signal lines included in the local bus of the present invention;

FIG. 13 is an abstracted diagram of the local bus architecture for an I/O module bank 110 according to the present invention;

FIG. 14 is a state diagram of the semaphore mechanism of the present invention;

FIG. 15 is a flowchart of the method by which the network module 200 accesses the register space(s) of an I/O module 210 according to the present invention;

FIG. 16, collectively comprising FIGS. 16A and 16B, illustrates the organization of the module information structure (MIS) according to the present invention;

FIG. 17 is a flowchart of the watch dog feature according to the present invention;

FIG. 18A illustrate the Snap Shot Capture and Enables feature according to the present invention;

FIG. 18B illustrate the method of Snap Shot Restoration according to the present invention;

FIG. 18C illustrates the default Power-Up Configuration Sequence according to the present invention in the case the Snap Shot Feature is not enabled;

FIG. 19A illustrates the Hot Insertion, Auto-Configuration, and Hot-Swap Features of the present invention; and

FIG. 19B illustrates the method by which the network module 200 maintains a virtual module structure even in the absence of the corresponding physical I/O module 210.

While the invention is susceptible to various modifications and alternative forms specific embodiments are shown by way of example in the drawings and will herein be described in detail. It should be understood however, that drawings and detailed descriptions thereto are not intended to limit the invention to the particular form disclosed. But on the contrary the invention is to cover all modifications, equivalents and alternatives following within the spirit and scope of the present invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

FIG. 1A illustrates a first embodiment of the modular distributed I/O system of the present invention. The modular distributed I/O (MDIO) system comprises a computer 100, and a plurality of module banks 110 for performing field distributed I/O operations. The MDIO system can include up to 25 module banks 110. FIG. 1A depicts three module banks labelled 110A through 110C. The computer 100 is coupled to the I/O module banks 110 through a network bus 120. In this first embodiment, the network bus 120 preferably comprises an RS-485 serial bus.

In the present embodiment, the total cable distance between the computer 100 and all module banks 110A to 110C can be up to 4000 feet (nominal).

FIG. 1B illustrates a second embodiment of the modular distributed I/O system of the present invention. As with the first embodiment, the second embodiment includes computer 100 and module banks 110. However, in the second embodiment, network bus 120 is reserved for coupling the I/O modules 210 together, while a short range bus is employed to couple computer 100 with the first module bank 110. The short range bus preferably comprises an RS232 bus.

FIG. 2 illustrates a typical module bank 110 according to the present invention. The module bank 110 includes a network module 200 and a plurality of I/O modules 210. FIG. 2 depicts three I/O modules labelled 210A through 210C. The I/O modules 210 are configured to perform basic I/O operations such as analog current measurement, analog current sourcing, thermocouple temperature measurement, discrete input sensing, discrete output signal generation, and so forth. The I/O modules 210 are inserted into terminal bases 220 as indicated by the exploded view of I/O module 210B and terminal base 220B. FIG. 2 depicts three terminal bases 220A, 220B, and 220C.

The I/O modules 210 and terminal bases 220 are physically universal in the sense that any I/O module 210 can be inserted into any terminal base 220, provided a keying mechanism on the terminal base 220 is set to the universal position. Alternatively, the keying mechanism on a terminal base 220 may be set so that the terminal base 220 accepts only a certain type of I/O module 210. Each terminal base 220 includes a host of convenient external connectors for wiring to field devices. When an I/O module 210 is inserted into a terminal base 220, the I/O module 210 is electrically coupled to the external connectors of the terminal base 220. As the terminal bases 220 are coupled together and coupled to the network module 200, altogether they form a high-speed local bus that efficiently transfers data between the I/O modules 210 and the network module 200. The module bank 110 can include up to nine I/O modules 210.

FIG. 3A illustrates network module 200 in isolation from the module bank 110. The network module 200 includes a network bus connector 201 for coupling to the network bus 120, and a local bus connector 202 for communication with I/O modules 210. The network module 200 mediates communications between computer 100 and the I/O modules 210. Thus, the network module 200 is also referred to as a communication module. In addition, the network module 200 receives external power through power connector 203, and supplies power to the I/O modules 210 through the local bus which includes lines for power and ground. Since each network module 200 typically has its own power source, each module bank 110 may be operated independently. In a typical scenario, one module bank may be powered down for re-wiring of field devices, while the remaining module banks are powered and fully operational.

FIG. 3B illustrates an alternate embodiment of network module 200 herein referred to as network module 200B. In addition to network bus connector 201, local bus connector 202, and power connector 203, network module 200B includes a short range bus connector 204. Network module 200B is employed in the first module bank 110A of the second embodiment illustrated in FIG. 1B. The remaining module banks 110 in FIG. 1B employ network module 200 described above. In particular, the short range bus connector 204 of module 200B couples directly to the short range bus 121 to achieve connectivity with computer 100. Furthermore, the network bus connector 201 of network module 200B couples to network bus 120, thereby achieving connectivity to the remaining network modules 200. The network modules 200 of the remaining module banks, e.g. 110B and 110C, couple to the network bus 120 through their respective network bus connectors 201.

Network module 200B includes a bi-directional repeater to forward signals from short range bus 121 to network bus 120, and vice versa. The bi-directional repeater advantageously allows computer 100 to employ a low power device to drive short range bus 121.

FIG. 4A provides a top view of an isolated terminal base 220. The terminal base 220 includes a DIN Rail Clip 301. With the DIN rail clip 301 in its unlocked position, the terminal base 220 may be mounted onto a standard DIN rail (see FIG. 5). As long as the DIN Rail clip 301 is in the unlocked position, the terminal base 220 may freely slide along the DIN rail. However, when the DIN rail clip is set to its locked position, the terminal base 220 is bound securely to the DIN rail.

The terminal base 220 also includes a module access connector 302, a latch 303, and ejector button 304. Each I/O module 210 has a slot for receiving latch 303 and a connector which is complementary to the module access connector 302. When an I/O module 210 is properly aligned with the terminal base 220, the I/O module 210 is seated into the terminal base 220 by the application of pressure. Once an I/O module 210 is seated into a terminal base 220, the module access connector 302 provides the I/O module 220 with access to the local bus, and to the external connectors (see FIG. 4D) of the terminal base 320.

FIG. 4B provides a left side view of the terminal base 220. In this view it is apparent that the terminal base 220 includes a left local bus connector 320. The left local bus connector 320 is also referred to as a predecessor connector 320.

FIG. 4C provides a right side view of the terminal base 220. In this view it is apparent that the terminal base 220 includes a right local bus connector 340. The right local bus connector 340 is also referred to as a successor connector 340. The right local bus connector 340 and the left local bus connector are complementary. Thus, the right local bus connector 340 of one terminal base naturally couples with the left local bus connector 320 of a second terminal base as implied by the terminal bases 220A and 220B of FIG. 5.

FIG. 4D provides a perspective view of terminal base 220. In this view it is apparent that the terminal base 220 is supplied with an external connector bank 350 which comprises two rows of external connectors for wiring to field devices. Each external connector includes a slot for admitting an external wire and a screw for securing the wire to the slot. For example, external connector 351 includes slot 351A and corresponding screw 351B. An external wire is inserted in slot 351A, and fastened to the slot by tightening screw 351B. In an alternative embodiment of the terminal base 220, the screws of the external connectors 350 are replaced with spring loaded locking devices. In this case, if the screw 351B is reinterpreted as a spring loaded locking device 351B, one depresses the spring loaded locking device 351B in order to allow admission of a wire into the corresponding slot 351A. Once a wire is inserted into the slot 351A, it is locked into position within the slot simply by releasing pressure from the spring loaded locking device 351A.

When an I/O module 210 is seated into the terminal base 220, the I/O module 210 is electrically coupled to the external connectors of the external connector bank 350. As described above, this coupling occurs through module access connector 302.

FIG. 5 illustrates network module 200 and several terminal bases 220 mounted onto a DIN Rail 230. The network module 200 and terminal bases 220A and 220B are shown coupled to each other, while terminal base 220C is shown uncoupled. With the DIN rail clip of terminal base 220C in its unlocked position, a user may slide terminal base 220C until its left local bus connector 320 securely interfaces with the right local bus connector 340 of terminal base 220B. Then the terminal base 220C is locked into position by closing the DIN rail clip 301 of terminal base 220C. The steps just described for connecting one terminal base 220 to another also serve to describe the means for connecting a first terminal base 220 to the network module 200.

As mentioned above, the high-speed local bus (not shown) is formed as the terminal bases 220 are coupled to each other and to network module 200. Each terminal base 220 contains internally a portion of the local bus. As additional terminal bases 220 are connected to the existing complex of connected terminal bases, the local bus automatically extends. I/O modules 210 connect to the local bus through the terminal bases 220.

FIG. 6 is an abstracted block diagram of the modular distributed I/O system showing the patterns of connectivity within and surrounding a typical module bank 110. The terminal bases 220 are not shown in order to more clearly exhibit the local bus. The network module 200 is coupled to computer 100 through the network bus 120. The I/O modules 210 and network module 200 are connected by local bus 240. As mentioned above, local bus 240 is formed as the terminal bases 220 (not shown in FIG. 6) are coupled together. Each I/O module 210 is coupled to the local bus 240 through the terminal base 220 in which it is seated. It is noted that certain portions of local bus 240 contain active elements which are resident in the terminal bases 220, i.e. local bus 240 is not entirely comprised of pure conductors. The architecture of local bus 240 will be explained in detail below.

Furthermor