The present invention relates to a modular computer system constructed by combining a plurality of function modules, and in particular to a modular computer system suitable for controllers incorporated in industrial machines and robots.
As the scheme for constructing a computer system by combining a plurality of function modules, various schemes have been proposed (for example, PC/104-plus Specification Version 1.2: PC/104 Embedded Consortium (established in August 2001)). According to this paper, for example, a board of a processing module having a processor mounted thereon and boards of I/O modules, on each of which an interface device functioning between the processing module and a peripheral device is mounted, are stacked via connectors forming a bus. In such a modular computer system, it is necessary, in order to manage system devices such as the I/O modules, for the processor mounted on the processing module to, for example, discriminate a kind of an I/O device mounted on an I/O module and specify a device driver to be used by an operating system (OS) in order to drive an I/O device. In other words, the operating system (OS) searches a table having device drivers respectively associated with identification codes of I/O devices, specifies a device driver of the discriminated I/O driver, develops it on a memory, and thereby initializes the I/O device or conducts access processing on the I/O device on demand.
In the above-described paper, the processor selects an I/O module by using an IDSEL signal in order to discriminate a connected I/O device, reads values of configuration registers provided in PCI devices included in the I/O module, and recognizes a PCI device. In this case, in order to connect a PCI device on the processor side and a PCI device on the I/O side to each other via a PCI bus and directly specify a subject PCI device by using an IDSEL signal, connectors based on the PCI bus specifications are disposed on the module boards and individual wiring for the IDSEL signal is conducted between the PCI device on the processor side and the PCI device on the I/O side. The modules of such a PCI scheme have a plug and play function, which is a function of suitably initializing I/O devices, a sophisticated function, and an advantage that flexible configuration can be implemented. As a conventional scheme having the plug and pay function in such a module configuration, for example, a device recognition technique of ISA bus scheme is known.
In the conventional modular technique described in the above-described paper, however, attention is not paid to incorporate arbitrary I/O modules as in a computer system used in a controller incorporated in industrial machines and robots (hereafter referred to as embedded controller). In other words, in the conventional modular technique, design time and labor do not pose a great problem, in the case where incorporated I/O devices are specified as in embedded computer systems specified in concrete use. In the case where arbitrary I/O modules are incorporated, however, there is a problem that it takes time for design and labor is required for fabrication.
In other words, in the case of a computer system used in embedded controllers incorporated in industrial machines and robots, typically it is urgently demanded that the computer system be formed of only minimum required parts in order to minimize the cost at the time of mass production. In addition, because of the demand for reduction in size of industrial machines having controllers incorporated therein, the amounting volume must be made small to the utmost. Therefore, it is desired that the module in which the controller is incorporated can be made small in size as far as possible. In the case where the computer system is used in the embedded controller, it is desirable that each module should have a single function as far as possible and a computer system having a desired function should be constructed by combining a plurality of I/O modules or the like having various functions as occasion demands.
In the case of the conventional PCI scheme, however, the number of connector pins increases according to the number of signal lines in the PCI bus, and an intelligent element for exercising the PCI bus control must be provided in each I/O module. This results in a problem that the mounting area of the board increases and the size reduction is limited. Furthermore, the bus connecting the modules is premised on a specified single bus scheme such as the PCI bus. If a plurality of devices having different bus schemes are used on the same bus, therefore, it is impossible to recognize a device and implement the plug and play function.
For supposing that arbitrary I/O modules are incorporated as in the embedded controller and providing the computer system with the plug and play function, therefore, a technique for discriminating a device in an embedded I/O module without being restrained to a specific bus scheme is desired.
Furthermore, according to the conventional modular technique, it is necessary to conduct individual wiring for the IDSEL signal between the PCI device on the processor side and PCI devices on the I/O side. Therefore, a plurality of IDSEL signal lines are provided on the bus, and IDSEL signal lines connected to modules are individually set every module. In general, this configuration must be implemented by manual work every module. Therefore, the operation man-hour and test man-hour increase. Furthermore, there is a problem that the mounting area and price are increased by switches, and it is difficult to completely eliminate false configuration.
An object of the present invention is to discriminate kinds of I/O modules incorporated in the computer system without being restrained to a specific bus scheme.
In order to achieve the object, in accordance with the present invention, module exclusive selection parts are respectively provided in I/O modules connected in a stacked form to a processing module via connectors. The module exclusive selection parts judge only a module select signal input from terminals in the same position on processing module side connectors to be active. And module select signals successively output from the processing module are input to terminals in the same position on processing module side connectors according to the connection order of the I/O modules. Without being restrained to a specific bus scheme, therefore, one I/O module can be selected by a simple module select signal and a simple connection configuration or circuit configuration. Furthermore, an ID output for outputting identification information of its own I/O module to a predetermined terminal on the connector on the basis of a module select activate signal output when the module exclusive selection part has judged active is provided. Without being restrained to a specific bus scheme, therefore, the processing module can acquire identification information of the I/O modules by using an ID input part connected to a terminal associated with the predetermined terminal on the connector. For example, identification information of an I/O module associated with a module select signal output according to the connection order can be acquired.
As a result, the processing module can read out preset bus control parameter and device drivers of I/O modules in accordance with acquired association relations of I/O modules with identification information, and access the I/O modules. Furthermore, according to the present invention, the module exclusive selection parts relating to discrimination of respective I/O modules can be made to have the same structure. Therefore, setting using manual work every module becomes unnecessary. Even in the case where modules having the same circuit are combined, devices can be discriminated.
Other objects, features and advantages of the invention will become apparent from the following description of the embodiments of the invention taken in conjunction with the accompanying drawings.
Hereafter, embodiments of the present invention will be described with reference to the drawings.
The module select signal output part 10 outputs a module select signal 30 to a signal line 110 of a connector in order to select arbitrary one of the I/O modules 2-1 to 2-n. A module ID input part 20 takes in a module ID signal 40 output from an I/O module 2 to a module ID bus 400. By the way, the module select signal output part 10 includes a plurality of output buffers for driving the module select signal 30. The module ID input part 20 includes a plurality of input buffers in order to take in the state of the module ID signal 40. Specifically, each of the module select signal output part 10 and the module ID input part 20 includes a processor, a memory, and a plurality of I/O port pins. The module select signal output part 10 and the module ID input part 20 are controlled respectively by individual processors and memories or controlled by the same processor and memory. The processor drives or reads the I/O port pins in accordance with a command sequence stored in the memory.
In general, the I/O module 2 accepts an I/O request from the processing module 1, and executes arithmetic operations, holding and inputting from/ outputting to the outside of the computer. The I/O module 2 includes a module exclusive selection part 100, an ID information output part including an output enable part 200 and an ID generation part 300, and a circuit device 510 serving as an I/O device.
The module exclusive selection part 100 receives a module select signal 30 from an adjacent module, determines whether the module select signal 30 is destined to its own module, and reflects its result to a module select activate signal 130. For example, in the case where its own I/O module has been selected, the module exclusive selection part 100 sets a potential of the module select activate signal 130 equal to a high potential (high level) representing the active state. Herein, driving the potential of a signal line to the active state is referred to as “assert” and driving the potential of the signal line to the inactive state is referred to as “negate.” The module exclusive selection part 100 in the I/O module 2-1 outputs the module select signal 30 to the adjacent I/O module 2-2 via a signal line 120 of the module select signal. According to a feature of the present invention, a module select signal 30 that is input to a signal line 110 of one I/O module is made different in state from a module select signal 30 that is input to another I/O module via a signal line 120 of the one I/O module. This point will be described later.
The ID generation part 300 generates an ID serving as an identification code for identifying an I/O module 2, and outputs an ID data signal 140. The output enable part 200 receives the module select activate signal 130. If the module select activate signal 130 is in the active state, the output enable part 200 outputs the ID data signal 140 to the module ID bus 400. On the other hand, if the module select activate signal 130 is in the inactive state, the output enable part 200 does not output the ID data signal 140 to the module ID bus 400. As a result, only the ID data signal 140 of the one and only selected I/O module 2 is output on the module ID bus 400.
Owing to such a configuration, the processing module 1 outputs the module select signal 30 for selecting an arbitrary I/O module out of the I/O modules 2-1 to 2-n, and causes the I/O module selected by the module select signal 30 to output the ID data signal 140 to the module ID bus 400. As a result, it becomes possible to acquire ID information of all I/O modules 2 belonging to the computer system, in association. Furthermore, the signal line 110 supplied with the module select signal 30, the signal line 120 for outputting the module select signal 30, and the module ID bus 400 are connected between an I/O module 2 and adjacent I/O modules 2 via connectors. As a result, signal lines can be prevented from increasing.
A concrete embodiment of the module exclusive selection part 100 shown in
In the embodiment shown in
An embodiment of the ID information output part for outputting the ID data signal 140 from the I/O module 2 to the module ID bus 400 according to the module select activate signal 130 asserted by the module exclusive selection part 100 will now be described with reference to
As the ID generator 310 for outputting two values, a pull-up/pull-down resistor, a switch, a jumper-pin, a flip-flop, a volatile memory such as an SRAM or DRAM, or an non-volatile memory such as an EEPROM or a flash memory can be used. As the ID generator 310 for outputting a multi-value, a resistor divider circuit and an op-amp are used.
The output enable part 200 includes a plurality of gate elements 210 supplied with ID data signals 140-1 to m, which are output from respective ID generators in the ID generation part 300. Each of the gate elements 210 is an element that is opened in gate only when the module select activate signal 130 is in the active state. When the module select activate signal 130 is in the active state, therefore, the ID data signal 140 is output from the output enable part 200 to the module ID bus 400 as the ID output signal 150. If the module select activate signal 130 is negated, the gate element 210 is brought into the high impedance state and an ID output signal 150 is not output. As the gate element 210, an ordinary three-state buffer or a MOS (Metal Oxide Semiconductor) transfer gate can be used. In the case where a transfer gate is used, it becomes possible to transfer an arbitrary voltage level (a range depending upon the element) from the input to the output.
A timing chart at the time when acquiring the ID data signals 140 in I/O modules by using the processing module is shown in
By repeating the operation heretofore described while altering the drive signal for the module select signal 30, the processing module 1 can acquire ID information of all I/O modules 2 to be managed by itself. According to the present embodiment, the module select signal output part 10 in the processing module 1 thus can drive the module select activate signal 130 in an I/O module 2 that is located in arbitrary position, even in the case where a plurality of I/O modules 2 are coupled. Furthermore, even in the case where a plurality of I/O modules 2 having the same circuit configuration are coupled, it is possible to drive only the module select activate signal 130 in an I/O module 2 that is located in arbitrary position and acquire identification information of the selected I/O module 2.
When the computer system has been constructed, therefore, an order is issued from the configuration processing part 60 in the processing module 1 to the module select signal output part 10 so as to output ID information of the connected I/O module 2 to the module ID bus 400. As a result, the ID of the I/O module 2 having the circuit device 510 is input to the module ID input part 20 via the module ID bus 400. Upon acquiring the ID from the module ID bus, the module ID input part 20 notifies the configuration processing part 60 of the ID information. The configuration processing part 60 searches the configuration parameter table 50 by using the ID information as a key, and acquires parameters for a system bus 500 to which the circuit device 510 is connected. The configuration processing part 60 sets the acquired parameters in the connection control part 70, and conducts initialization in order to access the circuit device 510. By the way, the connection control part 70 has a sequencer for controlling a system bus signal 80 and the system bus 500. On the basis of the acquired ID, the configuration processing part 60 prepares a device driver associated with the circuit device 510 to be accessed. The device driver conducts necessary initialization on the circuit device 510. In this way, the processing module 1 can alter the parameters for the system bus 500 according to the circuit device 510, and access the circuit device 510. Furthermore, the processing module 1 can initialize the circuit device 510.
A configuration of the configuration parameter table 50 is shown in
A configuration of an embodiment of the connection control part 70 is shown in
A flow chart showing operation of the configuration processing part 60 is shown in
Bus configuration processing shown in
Another embodiment of the module exclusive selection part 100 is shown in
According to the embodiment shown in
A timing chart concerning the module selection operation in the present embodiment is shown in
In this way, the processing module 1 recognizes that the I/O module having “0x01” as its ID is connected to the first I/O module 2-1. Subsequently, the module select signal output part 10 drives the module select enable signal 30-en to the low level. In addition, the module select signal output part 10 restores the module select clock signal 30-ck to the low level, and thereafter drives the module select clock signal 30-ck to the high level again. As a result, the level of the signal line 120-en of the module select enable output signal output from the first I/O module 2-1 is taken in the D flip-flop 101 in the module exclusive selection part 100 in the second I/O module 2-2. As a result, the module select activate signal 130 in the first I/O module is negated, and the module select activate signal 130 in the second I/O module is asserted.
“0x02,” which is an ID associated with a kind of the second I/O module 2-2, is output as the ID data signal 140 in the second I/O module 2-2. Eventually, “0x02” is output as the ID output signal 150 in the second I/O module 2-1. At this time, only the second I/O module 2-2 outputs a value to the module ID bus 400. The module ID input part 20 in the processing module 1 acquires a value of the module ID bus 400 from the module ID signal 40. In the same way, the processing module 1 recognizes that the I/O module having “0x02” as its ID is connected to the second I/O module 2-1. In the same way, the module select signal output part 10 causes the module select clock signal 30-ck to perform the toggle operation (to drive the signal line from the low level to the high level, or drive the signal line from the high level to the low level). As a result, it becomes possible for the module ID input part 20 to acquire IDs of the connected I/O modules one after another.
Finally, after the I/O module 2 that is the farthest from the processing module 1 has outputted an ID, an ID is not output to the module ID bus. The module ID input part 20 judges the state from the module ID bus 400, and finishes the inspection of the I/O module 2.
Another embodiment of the module exclusive selection part is shown in
Upon receiving a command from the signal line 110-cmd of the module select signal, the command transceiver part 102 interprets the received command and orders the control execution part 104 to exercise required processing. The command transceiver part 102 receives a result of the ordered processing from the control execution part 104, or conducts the processing itself and answers to the module select signal output part 10 by using the signal line 110-ack of the module select answer signal. The command transceiver part 102 is in a configuration noncompletion state as its initial state, and a configuration completion flag 107 is in a clear state. If predetermined processing is completed, the command transceiver part 102 receives a configuration completion command from the module select signal output part 10. Upon receiving the configuration completion command, the command transceiver part 102 sets the configuration completion flag 107 held therein and comes in a configuration completion state.
The control execution part 104 exercises open close control on the module select signal switch part 103 or exercises drive control on the module select activate signal 130. The control execution part 104 is ordered by the command transceiver part 102 to execute such processing.
Upon receiving a switch open close control order from the control execution part 104 via the switch control signal 106, the module select signal switch part 103 conducts connection or disconnection between the signal line 110 of the module select input signal and a signal line 120 of a module select output signal, i.e., exercises open close control on the switch. As the switch element, a semiconductor switch such as a MOS transfer gate, or a mechanical switch such as a relay can be mentioned. It is supposed that the switch state of the module select signal switch part 103 is the open (disconnection) state immediately after the power is turned on. In the foregoing description, upon receiving an order, the control execution part 104 exercises drive control of the module select activate signal 130. However, the command transceiver part 102 may directly drive a module select activate signal 130 or exercise switch open close control.
A structure of a command packet issued from the module select signal output part 10 in the present embodiment is shown in
In
[Process 1]
The module select signal output part 10 transmits the identify command in order to discriminate a directly connected I/O module 2 (procedure 451). The identify command is represented as a command packet that has “0x00” as the destination address 430, i.e., that is directed to a module in the configuration noncompletion state, and that includes an identify request. At first, the module select signal switch 103 is in the open state. Consequently, the command packet arrives at only the I/O module 2-1 adjacent to the processing module 1. The command transceiver part 102 in the I/O module 2-1 decodes the received command (procedure 452). Upon receiving the identify command, the command transceiver part 102 answers the unique address that the command transceiver part 102 has (procedure 453). As a result, the module select signal output part 10 acquires the unique address 108 that the adjacent I/O module 2-1 has.
[Process 2]
Subsequently, the module select signal output part 10 transmits a module select command (procedure 454). The module select command is a command packet that has the unique address 108 acquired immediately before, as the destination address and that includes “0x02” indicating the module select activate request in the command 431. The command transceiver part 102 decodes the command (procedure 452). As a result, the command transceiver part 102 interprets that the command is a module select command for itself. The command transceiver part 102 sends a module select activate request to the control execution part 104 so as to assert the module select activate signal 130 (procedure 455). The control execution part 104 asserts the module select activate signal 130, and returns a result thereof to the command transceiver part 102 (procedure 456). Upon receiving the answer, the command transceiver part 102 sends an answer to the module select signal output part 10 to notify it that the processing has been finished (procedure 457).
[Process 3]
Thereafter, the module select signal output part 10 gives notice to the module ID input part 20, and the module ID input part 20 acquires ID information.
[Process 4]
The module select signal output part 10 transmits a command for canceling the module selection (the command 431 including a “module select cancel request”). Upon receiving the command, the command transceiver part 102 orders the control execution part 104 to negate the module select activate signal 130 in the same way as the process 2. The control execution part 104 negates the module select activate signal 130, and returns a result thereof to the command transceiver part 102. Upon receiving the answer, the command transceiver part 102 sends an answer to the module select signal output part 10 to notify it that the processing has been finished.
[Process 5]
The module select signal output part 10 transmits a configuration completion command (the command 431 including “configuration completion flag set”). The command transceiver part 102 sets the configuration completion flag 107 that it has to 1, and returns an answer to the module select signal output part 10.
[Process 6]
The module select signal output part 10 transmits a switch close command (the command 431 including “module select signal switch close control”)(procedure 458). Upon decoding the command, the command transceiver part 102 orders the control execution part 104 to close the module select signal switch part 103 (procedure 459). The control execution part 104 returns an answer to the command transceiver part 102 to notify it that the module select signal switch part 103 has been closed (procedure 460). The module select signal output part 10 repeats the process 1 to the process 6 heretofore described, for all I/O modules 2. As a result of the process 1, an I/O module 2 having a command transceiver part 102 in which the configuration completion flag is not set to 1 reacts, and returns a unique address. And the module select signal output part 10 executes the process 2 to the process 6 one after another.
By repeating the processing heretofore described, an I/O module 2, in the order of increasing distance from the processing module 1, reports its own unique address and outputs ID information of the I/O module. Therefore, it becomes possible for the module ID input part 20 to acquire ID information in order. Finally, at a point in time at which the module ID input part 20 has acquired the ID information of all I/O modules 2, the present algorithm is finished. At this point in time, the module select signal output part 10 has completed in association of physical connection order of the I/O modules 2 with the unique addresses 108. In the same way, the module select signal output part 10 has completed in association of the connection order of the I/O modules 2 with the ID information as well.
An embodiment of a computer system according to the present invention is shown in
First, the module select signal output part 10 causes the module select activate signal 130 to be asserted by using procedures similar to those in the embodiment described earlier. Thereafter, the module select signal output part 10 toggles the module ID clock signal 31. As a result, ID information is output to the ID output signal 150 in synchronism with the toggle of the module ID clock input signal 111. According to the present embodiment, it becomes possible for the module ID input part 20 to acquire ID information having a large number of bits from a small number of module ID buses 400 (for example, module ID bus 400) of a single wire.
A configuration of the ID generation part 300 in the present embodiment is shown in
A timing chart representing the operation of the ID generation part 300 in the present embodiment is shown in
In order to initialize the values in the D flip-flops 330-1 to k, the module select signal output part 10 needs to drive the module ID clock from the low level to the high level at least once before conducting module selection.
A configuration of another embodiment of a computer system according to the present invention is shown in
A concrete configuration of the ID output part 250 in the present embodiment is shown in
It is now supposed that the module ID bus 400 is held at the low level by pull-down resistors. When the module select activate signal 130 is asserted, the output from the diode 260 becomes the high level. Therefore, ID output signals 150 having the diodes 260 connected in series output high levels, whereas open ID output signals 150 having no diodes 260 connected in series remain at the low level. When the module select activate signal 130 is asserted, therefore, associated ID information is output to the module ID bus 400.
In
An embodiment of a module mounting method in a computer system according to the present invention is shown in
Owing to such a structure, it becomes possible to connect the I/O module 2 to both the processing module 1 and another I/O module 2. Therefore, as many I/O modules 2 as needed can be stacked and connected to the processing module 1, and a computer system can be formed flexibly.
Another embodiment of a module mounting method of a computer system according to the present invention is shown in
The back board 93 includes a connector 94 and connectors 95-1 to 95-n. Each of those connectors has a slit for inserting and holding a print circuit board therein, and has electrodes for electrically connecting to contacts on the print circuit board of the processing module 1 or contacts on the print circuit board of an I/O module 2. Each of the connectors 94 and 95-1 to 95-n connects contacts of a print circuit board inserted into a slit to wiring on the back board. Wiring between the connector 94 and the connector 95-1 is effected on the back board 93 so as to connect the module select signal 30 to the signal line 110 of the module select input signal, connect the module ID signal 40 to the module ID bus 400, and connect the system bus signal 80 to the system bus 500. Wiring between the connector 95-j and the connector 95-{j+1} (where j=1 to n-1) is effected on the back board 93 so as to connect the signal line 120 of the module select output signal on the connector 95-j to the signal line 110 of the module select input signal on the connector 95-{j+1}, connect the module ID bus 400 on the connector 95-j to the module ID bus 400 on the connector 95-{j+1}, and connect the system bus 500 on the connector 95-j to the system bus 500 on the connector 95-{j+1}. By inserting the processing module 1 into the connector 94 and inserting the I/O modules 2 into the connectors 95-1 to 95-n so as to couple wiring from the processing module 1 to the connectors 95-1 to 95-n.
Although the structure in which a print circuit board is inserted directly into a slit of a connector is shown in
The back board 93 and the processing module 1 may be formed on the same board. In that case, connectors 95 are mounted on the processing module 1, and the I/O modules 2 are connected to the connectors 95, respectively. Owing to such a structure, expansibility can be secured without preparing a back board separately.
According to the embodiments of the present invention, the processor can recognize a plurality of devices connected to the bus irrespective of the bus scheme and can access devices having an arbitrary bus scheme, as heretofore described. Furthermore, setting for each module relying upon manual work is made unnecessary. Even in the case where modules having the same circuit are combined, it becomes possible for the processor to recognize a device.
According to the present invention, it becomes possible to discriminate kinds or the like of the I/O modules connected to the processing module and access devices in the I/O modules without being restrained to a specific bus scheme, as heretofore described.
It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2003-118714 | Apr 2003 | JP | national |
This is a continuation of U.S. application Ser. No. 10/759,193, filed Jan. 20, 2004 now U.S. Pat. No. 7,272,665. This application relates to and claims priority from Japanese Patent Application No. 2003-118714, filed on Apr. 23, 2003. The entirety of the contents and subject matter of all of the above is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4727475 | Kiremidjian | Feb 1988 | A |
5462442 | Umemura et al. | Oct 1995 | A |
5790782 | Martinez et al. | Aug 1998 | A |
5999989 | Patel | Dec 1999 | A |
6003097 | Richman et al. | Dec 1999 | A |
6542373 | Oba | Apr 2003 | B1 |
20020065950 | Katz et al. | May 2002 | A1 |
20030041088 | Wilson et al. | Feb 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20070266184 A1 | Nov 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10759193 | Jan 2004 | US |
Child | 11782286 | US |