US20110289247A1 - Autonomous positional addressing in stacked multi-board systems - Google Patents
Autonomous positional addressing in stacked multi-board systems Download PDFInfo
- Publication number
- US20110289247A1 US20110289247A1 US12/800,751 US80075110A US2011289247A1 US 20110289247 A1 US20110289247 A1 US 20110289247A1 US 80075110 A US80075110 A US 80075110A US 2011289247 A1 US2011289247 A1 US 2011289247A1
- Authority
- US
- United States
- Prior art keywords
- address
- module
- board
- value
- addresses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/409—Mechanical coupling
- G06F13/4095—Mechanical coupling in incremental bus architectures, e.g. bus stacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0052—Assignment of addresses or identifiers to the modules of a bus system
Definitions
- This disclosure is generally directed to digital electronic addressing systems. More specifically, this disclosure relates to autonomous positional addressing in stacked multi-board systems.
- a stack could include a controller board, a power supply board, and multiple circuit boards that may or may not be identical.
- each circuit board is assigned an address so that the controller board can communicate with specific circuit boards.
- specialized hardware is used to assign an address to each of the circuit boards, such as dip switches that are manually set.
- highly specialized configuration software is used on the controller board and each circuit board to determine the addresses and acquire the positions of the circuit boards within the stack.
- each circuit board typically requires specialized decoding and comparing circuitry in order to receive an address and determine whether the received address matches the circuit board's address. All of this typically increases the cost of designing, manufacturing, installing, and maintaining the boards in a stack.
- FIG. 1 illustrates an example stacked multi-board system according to this disclosure
- FIG. 2 illustrates an example autonomous positional addressing technique in a stacked multi-board system according to this disclosure
- FIGS. 3 through 11 illustrate example addressing circuits supporting autonomous positional addressing and related details according to this disclosure
- FIGS. 12 and 13 illustrate a more specific example of a stacked multi-board system according to this disclosure.
- FIG. 14 illustrates an example method for autonomous positional addressing in a stacked multi-board system according to this disclosure.
- FIGS. 1 through 14 discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the invention may be implemented in any type of suitably arranged device or system.
- FIG. 1 illustrates an example stacked multi-board system 100 according to this disclosure.
- the system 100 includes multiple boards that are placed on top of each other and electrically interconnected to form a stack.
- the boards include a controller board 102 , multiple circuit boards 104 a - 104 n , and a power supply board 106 .
- the circuit boards 104 a - 104 n generally represent printed circuit boards (PCBs) or other structures that carry circuitry for performing one or more functions.
- the circuit boards 104 a - 104 n could represent identical circuit boards carrying the same circuitry, or the circuit boards 104 a - 104 n could include different circuits for performing different functions.
- the controller board 102 monitors or controls the operation of the circuit boards 104 a - 104 n .
- the system 100 could represent an embedded control system that uses a single controller board to access and control multiple circuit boards.
- the power supply board 106 supplies operating power to other boards in the system.
- the controller board 102 includes any suitable module containing circuitry or other components that monitor or control one or more circuit boards or other controlled modules.
- Each circuit board 104 a - 104 n includes any suitable module containing circuitry that performs one or more desired functions.
- the power supply board 106 includes any suitable module containing components for supplying power to other boards in a system.
- the controller board 102 includes a connector 108 that electrically couples the controller board 102 to an adjacent circuit board in the stack.
- each circuit board 104 a - 104 n includes two connectors 110 a - 110 b that electrically couple that circuit board to adjacent boards in the stack.
- the power supply board 106 includes a connector 112 that electrically couples the power supply board 106 to an adjacent circuit board in the stack.
- Each of the connectors 108 , 110 a - 110 b , 112 represents any suitable structure for electrically coupling two printed circuit boards or other structures.
- each connector under a board in FIG. 1 could include multiple pins 114
- each connector above a board in FIG. 1 could include recesses for receiving multiple pins 114 .
- any other suitable structures could be used to electrically couple boards in a stack.
- each circuit board 104 a - 104 n would typically require specialized hardware to set the address of that circuit board (such as dip switches), as well as circuitry to determine whether a received address matches the circuit board's address (such as decoders and comparators). Additionally, the controller board 102 would require specialized configuration software in order to link the addresses of the circuit boards 104 a - 104 n to their locations within the stack.
- the controller board 102 views each circuit board 104 a - 104 n as having an address based on that circuit board's position in the stack. For example, the controller board 102 could view the circuit board 104 a in position #0 as having an address of “0000,” the circuit board 104 b in position #1 as having an address of “0001,” and so on. If there are sixteen circuit boards, the controller board 102 could view the circuit board in position #15 as having an address of “1111.” Each circuit board 104 a - 104 n in the stack can therefore be selected by the controller board 102 based on the position that circuit board occupies. Each circuit board 104 a - 104 n could be inserted at any position in the stack and be enabled by and respond to a new positional address without any configuration.
- each circuit board 104 a - 104 n supports an autonomous positional addressing technique.
- FIG. 2 illustrates an example autonomous positional addressing technique in a stacked multi-board system according to this disclosure.
- the circuit boards 104 a - 104 n operate to dynamically modify the address being sent over an address bus 201 from the controller board 102 through the circuit boards 104 a - 104 n .
- the address bus 201 represents a collection of one or more signal lines through the connectors 108 , 110 a - 110 b .
- the address bus 201 is formed by four signal lines, which allows up to sixteen addresses (and therefore up to sixteen circuit boards) to be used in the system 100 .
- the controller board 102 when the controller board 102 wishes to communicate with a specified circuit board, the controller board 102 transmits an output address 202 over the address bus 201 .
- the output address 202 identifies the position in the stack of the circuit board being selected. For instance, if the target circuit board is the circuit board 104 e in position #4, the output address 202 could equal 0100.
- Each circuit board 104 x in the stack receives an input address 204 from either the prior circuit board or the controller board 102 . That circuit board 104 x then modifies the received address 204 using an addressing circuit 206 , which outputs the modified address to the next circuit board (if any) as an output address 208 .
- the addressing circuit 206 also determines if the received or modified address 204 or 208 equals a specified value. If so, the addressing circuit 206 determines that the circuit board 104 x is being selected (meaning a communication is intended for that board), and the addressing circuit 206 triggers a board enable signal 210 .
- the board enable signal 210 identifies whether the addressing circuit 206 determines that its circuit board is being selected over the address bus 201 .
- the addressing circuit 206 in each circuit board 104 a - 104 n receives the input address 204 and decrements or subtracts a value of one from the address 204 to generate the output address 208 . Also, the addressing circuit 206 in each circuit board 104 a - 104 n triggers the board enable signal 210 when the received address 204 equals zero (0000).
- the controller board 102 wishes to transmit data to the circuit board 104 e in position #4.
- the controller board 102 outputs an address 202 of 0100 over the address bus 201 .
- the first circuit board 104 a receives an address 204 of 0100 over the address bus 201 , determines that the address 204 is not 0000, decrements the address value, and outputs an address 208 of 0011 .
- the second circuit board 104 b receives an address 204 of 0011 over the address bus 201 , determines that the address 204 is not 0000, decrements the address value, and outputs an address 208 of 0010.
- the third and fourth circuit boards would decrement the address value to 0001 and 0000, respectively.
- the fifth circuit board 104 e receives an address 204 of 0000 over the address bus 201 , determines that the address 204 is 0000, and triggers the board enable signal 210 .
- the fifth circuit board 104 e could also output an address 208 of 1111 (caused by subtracting one from a value of zero), and the subsequent circuit boards would receive non-zero addresses 204 and not be enabled.
- the fifth circuit board 104 e is successfully selected by the controller board 102 without requiring any manual configuration of the fifth circuit board 104 e to have an address of 0100. Instead, each circuit board 104 a - 104 n is effectively set to use an address of 0000, meaning each circuit board 104 a - 104 n views itself as having an address of 0000.
- the addressing circuits 206 in the circuit boards 104 a - 104 n operate to ensure that only one circuit board receives an address of 0000, regardless of the specific address 202 output by the controller board 102 .
- this approach eliminates the need for manual board configuration since systems implementing this approach can accept a circuit board 104 a - 104 n in any position within a stack without concern for incorrect addressing. Only one circuit board may respond when the controller board 102 asserts a specified value on the address bus 201 . With the controller board 102 placed at one end of the stack in FIG. 1 , there is no need for the controller board 102 to acquire the position of each circuit board 104 a - 104 n within the stack. This approach therefore reduces design time, hardware and firmware requirements, system costs, and installation problems. Not only that, using a circuit board's position as its address allows personnel to more quickly identify which board is generating alerts or has failed, and no translation of a board's address to its physical position needs to be performed.
- the subtraction of one from the input address 204 to generate the output address 208 is for illustration only. Any other suitable technique could be used by the addressing circuits 206 .
- the addressing circuit 206 in each circuit board 104 a - 104 n could increment or add a value of one to the address 204 in order to generate the output address 208 .
- values other than one could be added to or subtracted from the input address 204 to generate the output address 208 .
- the comparison of the input address 204 to a value of 0000 is for illustration only.
- Each circuit board 104 a - 104 n could determine whether its input address 204 or its output address 208 has any suitable value (such as 1111, or more generally 2 n ⁇ 1 where n is a specified number of bits in the address bus 201 ).
- any suitable value such as 1111, or more generally 2 n ⁇ 1 where n is a specified number of bits in the address bus 201 .
- the address values 202 , 204 , 208 could have any suitable number of bits.
- FIG. 1 illustrates one example of a stacked multi-board system
- the system 100 could use any number of circuit boards 104 a - 104 n , and the power supply board 106 could have any position within the stack.
- the controller board 102 may always reside at one end of the multi-board stack that is to be addressed.
- FIG. 2 illustrates one example of an autonomous positional addressing technique
- the addressing circuit 206 could generate the output address 208 in various ways and determine whether the input address 204 has any specified value.
- FIGS. 3 through 11 illustrate example addressing circuits supporting autonomous positional addressing and related details according to this disclosure.
- FIGS. 3 through 11 illustrate different example implementations of the addressing circuit 206 in the circuit boards 104 a - 104 n , as well as the operation of those addressing circuits.
- an addressing circuit 206 a includes four XOR gates 302 - 308 and four OR gates 310 - 316 .
- Each XOR gate 302 - 308 includes any suitable structure for performing a logical exclusive OR operation.
- Each OR gate 310 - 316 includes any suitable structure for performing a logical OR operation.
- the addressing circuit 206 a here represents an adder that adds a value of ⁇ 1 (1111 in two's complement notation) to an input value (the input address 204 ) in order to generate an output value (the output address 208 ). This decrements the input address 204 by one each time the address passes through a circuit board.
- the input address 204 is defined by bits DI 3 -DI 0
- the output address 208 is defined by bits DO 3 -DO 0 .
- the XOR gate 302 receives an input bit DI 0 and a system disable bit (which corresponds to a “carry in” bit of the adder) and generates an output bit DO 0 .
- the XOR gate 304 receives an input bit DI 1 and an output of the OR gate 310 and generates an output bit DO 1 .
- the XOR gate 306 receives an input bit DI 2 and an output of the OR gate 312 and generates an output bit DO 2 .
- the XOR gate 308 receives an input bit DI 3 and an output of the OR gate 314 and generates an output bit DO 3 .
- the OR gates 310 - 316 operate to generate a ⁇ board enable bit (which corresponds to a “carry out” bit of the adder) based on the five input values.
- the ⁇ notation is used here to denote that the circuit board is enabled (i.e. addressed/selected) when the board enable bit has a low value. This notation is not used with the system disable bit since the circuit board is disabled when the system disable bit is high.
- the board enable bit has a value of zero when the addressing circuit 206 a receives an input address equal to 0000 and the system disable bit is 0; otherwise, the board enable bit has a value of one.
- the system disable bit can be set to a value of one in order to force the addressing circuit 206 a to output a board enable bit with a value of one (thereby disabling the circuit board).
- FIG. 4 A truth table illustrating the operation of the addressing circuit 206 a is presented in FIG. 4 .
- the ⁇ board enable bit has a value of zero only when the input value is 0000 and the system disable bit has a value of zero. This may occur, for example, when the addressing circuit 206 a is used in a circuit board that is being selected, i.e. the preceding circuit board or controller board has provided an address of 0000 on the address bus 201 .
- the complexity of the adder circuitry shown in FIG. 3 is simplified by the fact that the circuit adds a constant (1111) to the input value, which is equivalent to subtracting one.
- the circuit in FIG. 3 could be modified to add a different value to the input address.
- the board enable bit would be set to zero only when all five input bits are zero. This allows the simple triggering of the board enable bit using only OR operations, which eliminates the need for complex decoding and comparison circuits. However, it is possible with a different circuit to trigger the board enable bit in response to other input values.
- system disable input in multiple circuit boards 104 a - 104 n could be tied to the controller board 102 , allowing the controller board 102 to easily disable all circuit boards 104 a - 104 n . This can be used, for instance, to prevent the inadvertent addressing of a circuit board.
- FIG. 5 illustrates the use of the addressing circuit 206 a in three consecutive circuit boards 104 a - 104 c , which are coupled in series to the controller board 102 .
- the controller board 102 can output a system disable signal, which disables all circuit boards 104 a - 104 c (meaning no circuit board determines that it is being selected over the address bus).
- the address bus may be formed by eight bits A 7 -A 0 , and the addressing circuit 206 a may operate only on the lower four bits of the address bus. This simply illustrates that the addressing circuits 206 a need not handle all bits of an address.
- FIGS. 3 through 5 illustrate the decrementing of an address as the address traverses through each circuit board 104 a - 104 n
- FIG. 6 illustrates an example addressing circuit 206 b that includes four XOR gates 602 - 608 and four AND gates 610 - 616 .
- Each AND gate 610 - 616 includes any suitable structure for performing a logical AND operation.
- the addressing circuit 206 b here represents an adder that adds a value of +1 (0001) to an input value (the input address 204 ) in order to generate an output value (the output address 208 ). Also, the addressing circuit 206 b determines that its circuit board is being selected when the input address 204 equals 1111. Here, the circuit board closest to the controller board 102 may be said to reside in position #15, while the circuit board farthest from the controller board 102 may be said to reside in position #0.
- the XOR gate 602 receives an input bit DI 0 and a ⁇ system disable bit and generates an output bit DO 0 .
- the ⁇ notation indicates that the system is disabled when a low system disable value is received.
- the XOR gate 604 receives an input bit DI 1 and an output of the AND gate 610 and generates an output bit D 01 .
- the XOR gate 606 receives an input bit DI 2 and an output of the AND gate 612 and generates an output bit DO 2 .
- the XOR gate 608 receives an input bit D 13 and an output of the AND gate 614 and generates an output bit DO 3 .
- the AND gates 610 - 616 operate to generate a board enable bit, which is high when the circuit board is selected, based on the five input values.
- FIG. 7 A truth table illustrating the operation of the addressing circuit 206 b is presented in FIG. 7 .
- the board enable bit has a value of one only when the input value is 1111 and the ⁇ system disable bit has a value of one. This may occur, for example, when the addressing circuit 206 b is used in a circuit board that is being selected, i.e. the preceding circuit board or controller board has provided an address of 1111 on the address bus 201 . It also shows that a value of zero can be used as the ⁇ system disable bit to disable the addressing circuit 206 b (forcing the board enable bit to zero).
- FIG. 8 illustrates an addressing circuit 206 c that subtracts one from an input address 204 to generate an output address 208 .
- the addressing circuit 206 c includes XOR gates 802 - 808 and OR gates 810 - 816 in the same arrangement as shown in FIG. 3 .
- the addressing circuit 206 c also includes a buffer 818 , which buffers a ⁇ system enable input (which is low when the system is enabled and high when the system is disabled).
- the addressing circuit 206 c further includes circuitry to prevent jitter on a ⁇ board enable bit when a new address ripples through the system.
- the addressing circuit 206 c supports the use of an ⁇ all board enable bit, which can be used by the controller board 102 to enable all circuit boards 104 a - 104 n . This allows all circuit boards 104 a - 104 n to be selected simultaneously. When the ⁇ all board enable bit is low, all circuit boards are enabled; when the ⁇ all board enable bit is high, the circuit boards are selected individually.
- the additional circuitry includes a four-input OR gate 820 that receives the input bits DIN 3 -DIN 0 and a four-input NAND gate 822 that receives the output bits DOUT 3 -DOUT 0 .
- the outputs of the OR gate 816 , the OR gate 820 , and the NAND gate 822 are provided to a three-input OR gate 824 .
- a buffer 826 buffers the ⁇ all board enable bit
- an OR gate 828 receives the buffered ⁇ all board enable bit and the ⁇ system enable input bit.
- An AND gate 830 receives the outputs of the OR gates 824 and 828 and generates a ⁇ board enable bit.
- FIG. 9 A truth table illustrating the operation of the addressing circuit 206 c is presented in FIG. 9 .
- each circuit board 104 a - 104 n outputs a ⁇ board enable bit with a value of one (meaning no circuit boards 104 a - 104 n are being selected).
- each circuit board 104 a - 104 n outputs a ⁇ board enable bit with a value of zero, which enables all of the circuit boards 104 a - 104 n.
- row 906 illustrates how an address of 0111 output by the controller board 102 is decremented by the circuit boards from position #0 through position #6, and a value of 0000 is received by the circuit board in position #7 (meaning that circuit board is being selected).
- the succeeding circuit board in position #8 has an address of 1111 (since the subtraction causes the address value to roll over from 0000 to 1111), so the following boards have addresses of 1111, 1110, 1101, and so on.
- Only the circuit board in position #7 has its ⁇ board enable bit set to zero, indicating that it is the only circuit board being selected as indicated by the 0111 address value output by the controller board 102 .
- FIG. 10 illustrates an addressing circuit 206 d that adds a value of one to an input address 204 to generate an output address 208 .
- the addressing circuit 206 d includes XOR gates 1002 - 1008 and AND gates 1010 - 1016 in the same arrangement as shown in FIG. 6 .
- the addressing circuit 206 d also includes a buffer 1018 , which buffers a system enable input bit (which is high when the system is enabled and low when the system is disabled).
- the addressing circuit 206 d further includes circuitry to prevent jitter on a board enable bit when a new address ripples through the system.
- the addressing circuit 206 d supports the use of an all board enable bit. When the all board enable bit is high, all circuit boards are enabled; when the all board enable bit is low, the circuit boards are selected individually.
- the additional circuitry includes a four-input AND gate 1020 that receives the input bits DIN 3 -DIN 0 and a four-input NOR gate 1022 that receives the output bits DOUT 3 -DOUT 0 .
- the outputs of the AND gate 1016 , the AND gate 1020 , and the NOR gate 1022 are provided to a three-input OR gate 1024 .
- a buffer 1026 buffers the all board enable bit, and an AND gate 1028 receives the all board enable bit and the system enable input bit.
- An OR gate 1030 receives the outputs of the OR gate 1024 and the AND gate 1028 .
- FIG. 11 A truth table illustrating the operation of the addressing circuit 206 d is presented in FIG. 11 .
- each circuit board 104 a - 104 n outputs a board enable bit with a value of zero, which disables all of the circuit boards 104 a - 104 n .
- each circuit board 104 a - 104 n outputs a board enable bit with a value of one, which enables all of the circuit boards 104 a - 104 n.
- row 1106 illustrates how an address of 0111 output by the controller board 102 is incremented by the circuit boards from position #15 through position #8 until a value of 1111 is received by the circuit board in position #7 (meaning that circuit board is being selected).
- the next circuit board in position #6 receives an address of 0000 (since the addition of one causes the address value to roll over from 1111 to 0000), and the following boards have addresses of 0001, 0010, 0011, and so on. Only the circuit board in position #7 has its board enable bit set to one, indicating that it is the only circuit board being selected as indicated by the 0111 address value output by the controller board 102 .
- FIGS. 3 through 11 illustrate examples of addressing circuits supporting autonomous positional addressing and related details
- various changes may be made to FIGS. 3 through 11 .
- addressing circuits that operate in other ways could also be used. This can include addressing circuits that add or subtract other values to generate an output address 208 , as well as addressing circuits that determine whether the input address 204 or output address 208 has a different specified value other than 0000 or 1111.
- FIGS. 12 and 13 illustrate a more specific example of a stacked multi-board system 1200 according to this disclosure.
- FIG. 12 illustrates an example multi-board system 1200
- FIG. 13 illustrates an example interface coupling adjacent boards in the system 1200 .
- the stacked multi-board system 1200 includes a controller module 1202 , multiple string monitor modules 1204 a - 1204 n , and a high-voltage power supply module 1206 .
- the string monitor modules 1204 a - 1204 n represent structures used to monitor and control strings of photovoltaic panels (solar cells). Each string monitor module 1204 a - 1204 n could, for example, acquire power, current, or voltage data for at least one string of photovoltaic panels. Each string monitor module 1204 a - 1204 n could, for instance, perform maximum power point tracking operations or other operations to adjust and control at least one string of photovoltaic panels.
- Each string monitor module 1204 a - 1204 n could further include an integrated fuse that can trip to break an electrical connection to at least one string.
- a fuse 1208 could also be provided for the combined output of the strings.
- the controller module 1202 collects power, current, or voltage data from the modules 1204 a - 1204 n and detects problems or other issues with the modules 1204 a - 1204 n .
- the controller module 1202 in this example includes a wireless transceiver facilitating wireless communications, such as with an external control system.
- Each string monitor module 1204 a - 1204 n includes positive and negative terminals for coupling that module to at least one string of photovoltaic cells.
- Each string monitor module 1204 a - 1204 n also includes positive and negative bus terminals for coupling those modules 1204 a - 1204 n to external inverter hardware connected to a utility grid or other electrical distribution or storage system.
- the power supply module 1206 taps power from the power bus and provides power to the modules 1204 a - 1204 n and the controller module 1202 .
- Each string monitor module 1204 a - 1204 n includes one of the addressing circuits shown and described above to support autonomous positional addressing.
- Each string monitor module 1204 a - 1204 n could be inserted at any position between the controller module 1202 and the power supply module 1206 .
- the controller module 1202 could then output an address over an address bus based on the position of a particular string monitor module, and only that particular string monitor module may view itself as being selected.
- the controller module 1202 could also use an all board enable signal to enable all modules 1204 a - 1204 n and a system disable/enable bit to disable all modules 1204 a - 1204 n.
- FIG. 13 illustrates a system bus that can be used to interconnect adjacent modules in the system 1200 .
- a module could include a shrouded header 1302 containing pins, and the pins of the shrouded header 1302 could be inserted into a socket 1304 of another module.
- the system bus formed in this manner could include an address bus of any suitable width, and the modules 1204 a - 1204 n could modify an address sent over the address bus as described above.
- the system 1200 could be used in a solar farm having any number of photovoltaic strings, such as a 5 MW solar farm having 1,000 photovoltaic strings.
- each string might have an associated string monitor module, and those string monitor modules could be grouped into over sixty stacks.
- Each string monitor module would typically need to have an address, which means that 1,000 different modules would need to have their addresses assigned individually.
- each string monitor module 1204 a - 1204 n can be inserted into any stack and be selected by the associated controller module based on its position in the stack, without the need to manually assign an address to that module.
- FIGS. 12 and 13 illustrate one more specific example of a stacked multi-board system 1200
- various changes may be made to FIGS. 12 and 13 .
- the system 1200 shown in FIG. 12 could include any number of controller, string monitor, and power supply modules.
- the system bus shown in FIG. 13 could have any other suitable structure.
- FIG. 14 illustrates an example method 1400 for autonomous positional addressing in a stacked multi-board system according to this disclosure.
- a controller outputs an address for a specified module at step 1402 .
- This could include, for example, the controller board 102 outputting an address 202 on the address bus 201 , where the address 202 is based on the position of the specific circuit board 104 a - 104 n being selected.
- the controller board 102 could have previously identified the position of each individual circuit board in the stack using any suitable technique, such as by individually addressing each position and analyzing a response (if any) to determine which circuit board 104 a - 104 n is located in each position.
- the address from the controller is received at a first module at step 1404 .
- This could include, for example, the circuit board 104 a adjacent to the controller board 102 receiving the address 204 over the address bus 201 .
- That module modifies the address at step 1406 and outputs the modified address at step 1408 .
- This could include, for example, the addressing circuit 206 in the module incrementing the address 204 by one, decrementing the address 204 by one, or otherwise altering the address 204 to generate the address 208 .
- This could also include the addressing circuit 206 outputting the modified address 208 on the address bus 201 . In this way, the address sent over the address bus 201 is dynamically modified as it traverses through the circuit boards 104 a - 104 n.
- the module also determines if at least one of the addresses has a specified value at step 1410 . This could include, for example, the addressing circuit 206 determining whether the address 204 has a value of 0000 or 1111. If at least one address has the specified value at step 1412 , this indicates that the module is being selected, and the enable signal for this module is triggered at step 1414 . In this way, the circuit board can determine whether it is being selected by the dynamically modified address.
- step 1404 If additional modules remain (meaning the dynamically modified address has not reached the last addressable module in the stack), the method returns to step 1404 , and steps 1404 - 1414 are repeated for the next module in the stack, which now uses the address output from the prior module instead of from the controller. This process can continue until all addressable modules in the stack have received the address from a prior module.
- FIG. 14 illustrates one example of a method 1400 for autonomous positional addressing in a stacked multi-board system
- various changes may be made to FIG. 14 .
- steps in FIG. 14 may overlap, occur in parallel, or occur in a different order.
- the use of a system disable/enable signal and an all board enable signal could be supported.
- various functions described above are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium.
- computer readable program code includes any type of computer code, including source code, object code, and executable code.
- computer readable medium includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory.
- Couple and its derivatives refer to any direct or indirect communication between two or more components, whether or not those components are in physical contact with one another.
- the term “or” is inclusive, meaning and/or.
- the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
A method includes receiving a first address over an address bus at a first module, modifying the first address to generate a second address, and transmitting the second address over the address bus to a second module. The method also includes determining at the first module if at least one of the first and second addresses has a specified value. Modifying the first address could include incrementing or decrementing the first address to generate the second address. Determining if at least one of the first and second addresses has the specified value could include determining if the first address has a value of zero or a value of 2n−1 (where n is a specified number of bits in the address bus). Each module by design may be inserted into any position in a stack relative to a controller and be positionally selected without manual configuration of that module's address.
Description
- This disclosure is generally directed to digital electronic addressing systems. More specifically, this disclosure relates to autonomous positional addressing in stacked multi-board systems.
- Many computing, communication, and other systems use multiple circuit boards that are stacked on top of each other or connected in a similar manner. Each circuit board then typically communicates with or through the adjacent circuit board(s) in the stack. For example, a stack could include a controller board, a power supply board, and multiple circuit boards that may or may not be identical.
- In conventional systems, each circuit board is assigned an address so that the controller board can communicate with specific circuit boards. In some configurations, specialized hardware is used to assign an address to each of the circuit boards, such as dip switches that are manually set. In other configurations, highly specialized configuration software is used on the controller board and each circuit board to determine the addresses and acquire the positions of the circuit boards within the stack. Moreover, each circuit board typically requires specialized decoding and comparing circuitry in order to receive an address and determine whether the received address matches the circuit board's address. All of this typically increases the cost of designing, manufacturing, installing, and maintaining the boards in a stack.
- For a more complete understanding of this disclosure and its features, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 illustrates an example stacked multi-board system according to this disclosure; -
FIG. 2 illustrates an example autonomous positional addressing technique in a stacked multi-board system according to this disclosure; -
FIGS. 3 through 11 illustrate example addressing circuits supporting autonomous positional addressing and related details according to this disclosure; -
FIGS. 12 and 13 illustrate a more specific example of a stacked multi-board system according to this disclosure; and -
FIG. 14 illustrates an example method for autonomous positional addressing in a stacked multi-board system according to this disclosure. -
FIGS. 1 through 14 , discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the invention may be implemented in any type of suitably arranged device or system. -
FIG. 1 illustrates an example stackedmulti-board system 100 according to this disclosure. As shown inFIG. 1 , thesystem 100 includes multiple boards that are placed on top of each other and electrically interconnected to form a stack. The boards include acontroller board 102, multiple circuit boards 104 a-104 n, and apower supply board 106. The circuit boards 104 a-104 n generally represent printed circuit boards (PCBs) or other structures that carry circuitry for performing one or more functions. The circuit boards 104 a-104 n could represent identical circuit boards carrying the same circuitry, or the circuit boards 104 a-104 n could include different circuits for performing different functions. The controller board 102 monitors or controls the operation of the circuit boards 104 a-104 n. As a particular example, thesystem 100 could represent an embedded control system that uses a single controller board to access and control multiple circuit boards. Thepower supply board 106 supplies operating power to other boards in the system. - The
controller board 102 includes any suitable module containing circuitry or other components that monitor or control one or more circuit boards or other controlled modules. Each circuit board 104 a-104 n includes any suitable module containing circuitry that performs one or more desired functions. Thepower supply board 106 includes any suitable module containing components for supplying power to other boards in a system. - In this example, the
controller board 102 includes aconnector 108 that electrically couples thecontroller board 102 to an adjacent circuit board in the stack. Also, each circuit board 104 a-104 n includes two connectors 110 a-110 b that electrically couple that circuit board to adjacent boards in the stack. In addition, thepower supply board 106 includes aconnector 112 that electrically couples thepower supply board 106 to an adjacent circuit board in the stack. Each of theconnectors 108, 110 a-110 b, 112 represents any suitable structure for electrically coupling two printed circuit boards or other structures. For instance, each connector under a board inFIG. 1 could includemultiple pins 114, and each connector above a board inFIG. 1 could include recesses for receivingmultiple pins 114. However, any other suitable structures could be used to electrically couple boards in a stack. - In conventional systems, each circuit board 104 a-104 n would typically require specialized hardware to set the address of that circuit board (such as dip switches), as well as circuitry to determine whether a received address matches the circuit board's address (such as decoders and comparators). Additionally, the
controller board 102 would require specialized configuration software in order to link the addresses of the circuit boards 104 a-104 n to their locations within the stack. - In accordance with this disclosure, the
controller board 102 views each circuit board 104 a-104 n as having an address based on that circuit board's position in the stack. For example, thecontroller board 102 could view thecircuit board 104 a inposition # 0 as having an address of “0000,” thecircuit board 104 b inposition # 1 as having an address of “0001,” and so on. If there are sixteen circuit boards, thecontroller board 102 could view the circuit board inposition # 15 as having an address of “1111.” Each circuit board 104 a-104 n in the stack can therefore be selected by thecontroller board 102 based on the position that circuit board occupies. Each circuit board 104 a-104 n could be inserted at any position in the stack and be enabled by and respond to a new positional address without any configuration. - To facilitate this functionality, each circuit board 104 a-104 n supports an autonomous positional addressing technique.
FIG. 2 illustrates an example autonomous positional addressing technique in a stacked multi-board system according to this disclosure. In this example, the circuit boards 104 a-104 n operate to dynamically modify the address being sent over anaddress bus 201 from thecontroller board 102 through the circuit boards 104 a-104 n. Theaddress bus 201 represents a collection of one or more signal lines through theconnectors 108, 110 a-110 b. In some embodiments, theaddress bus 201 is formed by four signal lines, which allows up to sixteen addresses (and therefore up to sixteen circuit boards) to be used in thesystem 100. - As shown in
FIG. 2 , when thecontroller board 102 wishes to communicate with a specified circuit board, thecontroller board 102 transmits anoutput address 202 over theaddress bus 201. Theoutput address 202 identifies the position in the stack of the circuit board being selected. For instance, if the target circuit board is thecircuit board 104 e inposition # 4, theoutput address 202 could equal 0100. - Each
circuit board 104 x in the stack receives aninput address 204 from either the prior circuit board or thecontroller board 102. Thatcircuit board 104 x then modifies the receivedaddress 204 using anaddressing circuit 206, which outputs the modified address to the next circuit board (if any) as anoutput address 208. The addressingcircuit 206 also determines if the received or modifiedaddress circuit 206 determines that thecircuit board 104 x is being selected (meaning a communication is intended for that board), and the addressingcircuit 206 triggers a board enablesignal 210. The board enablesignal 210 identifies whether the addressingcircuit 206 determines that its circuit board is being selected over theaddress bus 201. - In some embodiments, the addressing
circuit 206 in each circuit board 104 a-104 n receives theinput address 204 and decrements or subtracts a value of one from theaddress 204 to generate theoutput address 208. Also, the addressingcircuit 206 in each circuit board 104 a-104 n triggers the board enablesignal 210 when the receivedaddress 204 equals zero (0000). - As an example, assume the
controller board 102 wishes to transmit data to thecircuit board 104 e inposition # 4. Thecontroller board 102 outputs anaddress 202 of 0100 over theaddress bus 201. Thefirst circuit board 104 a receives anaddress 204 of 0100 over theaddress bus 201, determines that theaddress 204 is not 0000, decrements the address value, and outputs anaddress 208 of 0011. Thesecond circuit board 104 b receives anaddress 204 of 0011 over theaddress bus 201, determines that theaddress 204 is not 0000, decrements the address value, and outputs anaddress 208 of 0010. The third and fourth circuit boards would decrement the address value to 0001 and 0000, respectively. Thefifth circuit board 104 e receives anaddress 204 of 0000 over theaddress bus 201, determines that theaddress 204 is 0000, and triggers the board enablesignal 210. Thefifth circuit board 104 e could also output anaddress 208 of 1111 (caused by subtracting one from a value of zero), and the subsequent circuit boards would receivenon-zero addresses 204 and not be enabled. - In this example, the
fifth circuit board 104 e is successfully selected by thecontroller board 102 without requiring any manual configuration of thefifth circuit board 104 e to have an address of 0100. Instead, each circuit board 104 a-104 n is effectively set to use an address of 0000, meaning each circuit board 104 a-104 n views itself as having an address of 0000. The addressingcircuits 206 in the circuit boards 104 a-104 n operate to ensure that only one circuit board receives an address of 0000, regardless of thespecific address 202 output by thecontroller board 102. - In this way, no external backplane is required, and no customization hardware is needed. Also, this approach eliminates the need for manual board configuration since systems implementing this approach can accept a circuit board 104 a-104 n in any position within a stack without concern for incorrect addressing. Only one circuit board may respond when the
controller board 102 asserts a specified value on theaddress bus 201. With thecontroller board 102 placed at one end of the stack inFIG. 1 , there is no need for thecontroller board 102 to acquire the position of each circuit board 104 a-104 n within the stack. This approach therefore reduces design time, hardware and firmware requirements, system costs, and installation problems. Not only that, using a circuit board's position as its address allows personnel to more quickly identify which board is generating alerts or has failed, and no translation of a board's address to its physical position needs to be performed. - Note that the subtraction of one from the
input address 204 to generate theoutput address 208 is for illustration only. Any other suitable technique could be used by the addressingcircuits 206. For instance, the addressingcircuit 206 in each circuit board 104 a-104 n could increment or add a value of one to theaddress 204 in order to generate theoutput address 208. Also, values other than one could be added to or subtracted from theinput address 204 to generate theoutput address 208. Further, the comparison of theinput address 204 to a value of 0000 is for illustration only. Each circuit board 104 a-104 n could determine whether itsinput address 204 or itsoutput address 208 has any suitable value (such as 1111, or more generally 2n−1 where n is a specified number of bits in the address bus 201). In addition, while four-bit address values are used here, the address values 202, 204, 208 could have any suitable number of bits. - Additional details regarding the dynamic modification of an address being sent on an address bus through multiple circuit boards are provided below. These examples are for illustration only and assume that a value of one is added to or subtracted from an
input address 204 to generate anoutput address 208 in each addressingcircuit 206. As noted above, other embodiments of the addressingcircuit 206 could be used. - Although
FIG. 1 illustrates one example of a stacked multi-board system, various changes may be made toFIG. 1 . For example, thesystem 100 could use any number of circuit boards 104 a-104 n, and thepower supply board 106 could have any position within the stack. However, thecontroller board 102 may always reside at one end of the multi-board stack that is to be addressed. AlthoughFIG. 2 illustrates one example of an autonomous positional addressing technique, various changes may be made toFIG. 2 . For instance, as noted above, the addressingcircuit 206 could generate theoutput address 208 in various ways and determine whether theinput address 204 has any specified value. -
FIGS. 3 through 11 illustrate example addressing circuits supporting autonomous positional addressing and related details according to this disclosure. In particular,FIGS. 3 through 11 illustrate different example implementations of the addressingcircuit 206 in the circuit boards 104 a-104 n, as well as the operation of those addressing circuits. - In
FIG. 3 , an addressingcircuit 206 a includes four XOR gates 302-308 and four OR gates 310-316. Each XOR gate 302-308 includes any suitable structure for performing a logical exclusive OR operation. Each OR gate 310-316 includes any suitable structure for performing a logical OR operation. - The addressing
circuit 206 a here represents an adder that adds a value of −1 (1111 in two's complement notation) to an input value (the input address 204) in order to generate an output value (the output address 208). This decrements theinput address 204 by one each time the address passes through a circuit board. Theinput address 204 is defined by bits DI3-DI0, and theoutput address 208 is defined by bits DO3-DO0. - The
XOR gate 302 receives an input bit DI0 and a system disable bit (which corresponds to a “carry in” bit of the adder) and generates an output bit DO0. TheXOR gate 304 receives an input bit DI1 and an output of theOR gate 310 and generates an output bit DO1. TheXOR gate 306 receives an input bit DI2 and an output of theOR gate 312 and generates an output bit DO2. TheXOR gate 308 receives an input bit DI3 and an output of the OR gate 314 and generates an output bit DO3. The OR gates 310-316 operate to generate a ˜board enable bit (which corresponds to a “carry out” bit of the adder) based on the five input values. The ˜ notation is used here to denote that the circuit board is enabled (i.e. addressed/selected) when the board enable bit has a low value. This notation is not used with the system disable bit since the circuit board is disabled when the system disable bit is high. - In this example, the board enable bit has a value of zero when the addressing
circuit 206 a receives an input address equal to 0000 and the system disable bit is 0; otherwise, the board enable bit has a value of one. The system disable bit can be set to a value of one in order to force the addressingcircuit 206 a to output a board enable bit with a value of one (thereby disabling the circuit board). - A truth table illustrating the operation of the addressing
circuit 206 a is presented inFIG. 4 . As shown inFIG. 4 , the ˜board enable bit has a value of zero only when the input value is 0000 and the system disable bit has a value of zero. This may occur, for example, when the addressingcircuit 206 a is used in a circuit board that is being selected, i.e. the preceding circuit board or controller board has provided an address of 0000 on theaddress bus 201. - Note that the complexity of the adder circuitry shown in
FIG. 3 is simplified by the fact that the circuit adds a constant (1111) to the input value, which is equivalent to subtracting one. Of course, the circuit inFIG. 3 could be modified to add a different value to the input address. Moreover, note that the board enable bit would be set to zero only when all five input bits are zero. This allows the simple triggering of the board enable bit using only OR operations, which eliminates the need for complex decoding and comparison circuits. However, it is possible with a different circuit to trigger the board enable bit in response to other input values. In addition, the system disable input in multiple circuit boards 104 a-104 n could be tied to thecontroller board 102, allowing thecontroller board 102 to easily disable all circuit boards 104 a-104 n. This can be used, for instance, to prevent the inadvertent addressing of a circuit board. -
FIG. 5 illustrates the use of the addressingcircuit 206 a in three consecutive circuit boards 104 a-104 c, which are coupled in series to thecontroller board 102. In this example, thecontroller board 102 can output a system disable signal, which disables all circuit boards 104 a-104 c (meaning no circuit board determines that it is being selected over the address bus). Also, in this example, the address bus may be formed by eight bits A7-A0, and the addressingcircuit 206 a may operate only on the lower four bits of the address bus. This simply illustrates that the addressingcircuits 206 a need not handle all bits of an address. - While
FIGS. 3 through 5 illustrate the decrementing of an address as the address traverses through each circuit board 104 a-104 n, other approaches could be used.FIG. 6 illustrates anexample addressing circuit 206 b that includes four XOR gates 602-608 and four AND gates 610-616. Each AND gate 610-616 includes any suitable structure for performing a logical AND operation. - The addressing
circuit 206 b here represents an adder that adds a value of +1 (0001) to an input value (the input address 204) in order to generate an output value (the output address 208). Also, the addressingcircuit 206 b determines that its circuit board is being selected when theinput address 204 equals 1111. Here, the circuit board closest to thecontroller board 102 may be said to reside inposition # 15, while the circuit board farthest from thecontroller board 102 may be said to reside inposition # 0. - The
XOR gate 602 receives an input bit DI0 and a ˜system disable bit and generates an output bit DO0. The ˜ notation indicates that the system is disabled when a low system disable value is received. TheXOR gate 604 receives an input bit DI1 and an output of the ANDgate 610 and generates an output bit D01. TheXOR gate 606 receives an input bit DI2 and an output of the ANDgate 612 and generates an output bit DO2. TheXOR gate 608 receives an input bit D13 and an output of the ANDgate 614 and generates an output bit DO3. The AND gates 610-616 operate to generate a board enable bit, which is high when the circuit board is selected, based on the five input values. - A truth table illustrating the operation of the addressing
circuit 206 b is presented inFIG. 7 . As shown inFIG. 7 , the board enable bit has a value of one only when the input value is 1111 and the ˜system disable bit has a value of one. This may occur, for example, when the addressingcircuit 206 b is used in a circuit board that is being selected, i.e. the preceding circuit board or controller board has provided an address of 1111 on theaddress bus 201. It also shows that a value of zero can be used as the ˜system disable bit to disable the addressingcircuit 206 b (forcing the board enable bit to zero). -
FIG. 8 illustrates an addressingcircuit 206 c that subtracts one from aninput address 204 to generate anoutput address 208. The addressingcircuit 206 c includes XOR gates 802-808 and OR gates 810-816 in the same arrangement as shown inFIG. 3 . The addressingcircuit 206 c also includes abuffer 818, which buffers a ˜system enable input (which is low when the system is enabled and high when the system is disabled). - The addressing
circuit 206 c further includes circuitry to prevent jitter on a ˜board enable bit when a new address ripples through the system. In addition, the addressingcircuit 206 c supports the use of an ˜all board enable bit, which can be used by thecontroller board 102 to enable all circuit boards 104 a-104 n. This allows all circuit boards 104 a-104 n to be selected simultaneously. When the ˜all board enable bit is low, all circuit boards are enabled; when the ˜all board enable bit is high, the circuit boards are selected individually. - The additional circuitry includes a four-input OR
gate 820 that receives the input bits DIN3-DIN0 and a four-input NAND gate 822 that receives the output bits DOUT3-DOUT0. The outputs of theOR gate 816, theOR gate 820, and theNAND gate 822 are provided to a three-input ORgate 824. Abuffer 826 buffers the ˜all board enable bit, and anOR gate 828 receives the buffered ˜all board enable bit and the ˜system enable input bit. An ANDgate 830 receives the outputs of theOR gates - A truth table illustrating the operation of the addressing
circuit 206 c is presented inFIG. 9 . As shown inrow 902, if the ˜system enable bit has a value of one, each circuit board 104 a-104 n outputs a ˜board enable bit with a value of one (meaning no circuit boards 104 a-104 n are being selected). As shown inrow 904, if the ˜system enable bit has a value of zero and the ˜all board enable bit has a value of zero, each circuit board 104 a-104 n outputs a ˜board enable bit with a value of zero, which enables all of the circuit boards 104 a-104 n. - The remaining rows show how an address is decremented as it is passes through the circuit boards 104 a-104 n. This is done to individually address the circuit boards 104 a-104 n. For example,
row 906 illustrates how an address of 0111 output by thecontroller board 102 is decremented by the circuit boards fromposition # 0 throughposition # 6, and a value of 0000 is received by the circuit board in position #7 (meaning that circuit board is being selected). The succeeding circuit board in position #8 has an address of 1111 (since the subtraction causes the address value to roll over from 0000 to 1111), so the following boards have addresses of 1111, 1110, 1101, and so on. Only the circuit board inposition # 7 has its ˜board enable bit set to zero, indicating that it is the only circuit board being selected as indicated by the 0111 address value output by thecontroller board 102. -
FIG. 10 illustrates an addressingcircuit 206 d that adds a value of one to aninput address 204 to generate anoutput address 208. The addressingcircuit 206 d includes XOR gates 1002-1008 and AND gates 1010-1016 in the same arrangement as shown inFIG. 6 . The addressingcircuit 206 d also includes abuffer 1018, which buffers a system enable input bit (which is high when the system is enabled and low when the system is disabled). - The addressing
circuit 206 d further includes circuitry to prevent jitter on a board enable bit when a new address ripples through the system. In addition, the addressingcircuit 206 d supports the use of an all board enable bit. When the all board enable bit is high, all circuit boards are enabled; when the all board enable bit is low, the circuit boards are selected individually. - The additional circuitry includes a four-input AND
gate 1020 that receives the input bits DIN3-DIN0 and a four-input NORgate 1022 that receives the output bits DOUT3-DOUT0. The outputs of the ANDgate 1016, the ANDgate 1020, and the NORgate 1022 are provided to a three-input ORgate 1024. Abuffer 1026 buffers the all board enable bit, and an ANDgate 1028 receives the all board enable bit and the system enable input bit. An ORgate 1030 receives the outputs of theOR gate 1024 and the ANDgate 1028. - A truth table illustrating the operation of the addressing
circuit 206 d is presented inFIG. 11 . As shown inrow 1102, if the system enable input bit has a value of zero, each circuit board 104 a-104 n outputs a board enable bit with a value of zero, which disables all of the circuit boards 104 a-104 n. As shown inrow 1104, if the system enable input bit has a value of one and the all board enable bit has a value of one, each circuit board 104 a-104 n outputs a board enable bit with a value of one, which enables all of the circuit boards 104 a-104 n. - The remaining rows show how an address is incremented as it is passes through the circuit boards 104 a-104 n. This is done to individually address the circuit boards 104 a-104 n. For example,
row 1106 illustrates how an address of 0111 output by thecontroller board 102 is incremented by the circuit boards from position #15 through position #8 until a value of 1111 is received by the circuit board in position #7 (meaning that circuit board is being selected). The next circuit board inposition # 6 receives an address of 0000 (since the addition of one causes the address value to roll over from 1111 to 0000), and the following boards have addresses of 0001, 0010, 0011, and so on. Only the circuit board inposition # 7 has its board enable bit set to one, indicating that it is the only circuit board being selected as indicated by the 0111 address value output by thecontroller board 102. - Although
FIGS. 3 through 11 illustrate examples of addressing circuits supporting autonomous positional addressing and related details, various changes may be made toFIGS. 3 through 11 . For example, addressing circuits that operate in other ways could also be used. This can include addressing circuits that add or subtract other values to generate anoutput address 208, as well as addressing circuits that determine whether theinput address 204 oroutput address 208 has a different specified value other than 0000 or 1111. -
FIGS. 12 and 13 illustrate a more specific example of astacked multi-board system 1200 according to this disclosure. In particular,FIG. 12 illustrates anexample multi-board system 1200, andFIG. 13 illustrates an example interface coupling adjacent boards in thesystem 1200. - As shown in
FIG. 12 , thestacked multi-board system 1200 includes acontroller module 1202, multiple string monitor modules 1204 a-1204 n, and a high-voltagepower supply module 1206. The string monitor modules 1204 a-1204 n represent structures used to monitor and control strings of photovoltaic panels (solar cells). Each string monitor module 1204 a-1204 n could, for example, acquire power, current, or voltage data for at least one string of photovoltaic panels. Each string monitor module 1204 a-1204 n could, for instance, perform maximum power point tracking operations or other operations to adjust and control at least one string of photovoltaic panels. Each string monitor module 1204 a-1204 n could further include an integrated fuse that can trip to break an electrical connection to at least one string. Afuse 1208 could also be provided for the combined output of the strings. Thecontroller module 1202 collects power, current, or voltage data from the modules 1204 a-1204 n and detects problems or other issues with the modules 1204 a-1204 n. Thecontroller module 1202 in this example includes a wireless transceiver facilitating wireless communications, such as with an external control system. - Each string monitor module 1204 a-1204 n includes positive and negative terminals for coupling that module to at least one string of photovoltaic cells. Each string monitor module 1204 a-1204 n also includes positive and negative bus terminals for coupling those modules 1204 a-1204 n to external inverter hardware connected to a utility grid or other electrical distribution or storage system. The
power supply module 1206 taps power from the power bus and provides power to the modules 1204 a-1204 n and thecontroller module 1202. - The components 1202-1206 here form a stack (although the stack is arranged sideways instead of up and down). Each string monitor module 1204 a-1204 n includes one of the addressing circuits shown and described above to support autonomous positional addressing. Each string monitor module 1204 a-1204 n could be inserted at any position between the
controller module 1202 and thepower supply module 1206. Thecontroller module 1202 could then output an address over an address bus based on the position of a particular string monitor module, and only that particular string monitor module may view itself as being selected. Thecontroller module 1202 could also use an all board enable signal to enable all modules 1204 a-1204 n and a system disable/enable bit to disable all modules 1204 a-1204 n. -
FIG. 13 illustrates a system bus that can be used to interconnect adjacent modules in thesystem 1200. For example, a module could include a shroudedheader 1302 containing pins, and the pins of the shroudedheader 1302 could be inserted into asocket 1304 of another module. The system bus formed in this manner could include an address bus of any suitable width, and the modules 1204 a-1204 n could modify an address sent over the address bus as described above. - As a particular example implementation, the
system 1200 could be used in a solar farm having any number of photovoltaic strings, such as a 5 MW solar farm having 1,000 photovoltaic strings. In conventional systems, each string might have an associated string monitor module, and those string monitor modules could be grouped into over sixty stacks. Each string monitor module would typically need to have an address, which means that 1,000 different modules would need to have their addresses assigned individually. In accordance with this disclosure, each string monitor module 1204 a-1204 n can be inserted into any stack and be selected by the associated controller module based on its position in the stack, without the need to manually assign an address to that module. - Although
FIGS. 12 and 13 illustrate one more specific example of astacked multi-board system 1200, various changes may be made toFIGS. 12 and 13 . For example, thesystem 1200 shown inFIG. 12 could include any number of controller, string monitor, and power supply modules. Also, the system bus shown inFIG. 13 could have any other suitable structure. -
FIG. 14 illustrates anexample method 1400 for autonomous positional addressing in a stacked multi-board system according to this disclosure. As shown inFIG. 14 , a controller outputs an address for a specified module atstep 1402. This could include, for example, thecontroller board 102 outputting anaddress 202 on theaddress bus 201, where theaddress 202 is based on the position of the specific circuit board 104 a-104 n being selected. Thecontroller board 102 could have previously identified the position of each individual circuit board in the stack using any suitable technique, such as by individually addressing each position and analyzing a response (if any) to determine which circuit board 104 a-104 n is located in each position. - The address from the controller is received at a first module at
step 1404. This could include, for example, thecircuit board 104 a adjacent to thecontroller board 102 receiving theaddress 204 over theaddress bus 201. That module modifies the address atstep 1406 and outputs the modified address atstep 1408. This could include, for example, the addressingcircuit 206 in the module incrementing theaddress 204 by one, decrementing theaddress 204 by one, or otherwise altering theaddress 204 to generate theaddress 208. This could also include the addressingcircuit 206 outputting the modifiedaddress 208 on theaddress bus 201. In this way, the address sent over theaddress bus 201 is dynamically modified as it traverses through the circuit boards 104 a-104 n. - The module also determines if at least one of the addresses has a specified value at
step 1410. This could include, for example, the addressingcircuit 206 determining whether theaddress 204 has a value of 0000 or 1111. If at least one address has the specified value atstep 1412, this indicates that the module is being selected, and the enable signal for this module is triggered atstep 1414. In this way, the circuit board can determine whether it is being selected by the dynamically modified address. - If additional modules remain (meaning the dynamically modified address has not reached the last addressable module in the stack), the method returns to step 1404, and steps 1404-1414 are repeated for the next module in the stack, which now uses the address output from the prior module instead of from the controller. This process can continue until all addressable modules in the stack have received the address from a prior module.
- Although
FIG. 14 illustrates one example of amethod 1400 for autonomous positional addressing in a stacked multi-board system, various changes may be made toFIG. 14 . For example, while shown as a series of steps, various steps inFIG. 14 may overlap, occur in parallel, or occur in a different order. Also, the use of a system disable/enable signal and an all board enable signal could be supported. - In some embodiments, various functions described above are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory.
- It may be advantageous to set forth definitions of certain words and phrases that have been used within this patent document. The term “couple” and its derivatives refer to any direct or indirect communication between two or more components, whether or not those components are in physical contact with one another. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like.
- While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this invention. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this invention as defined by the following claims.
Claims (20)
1. A method comprising:
receiving a first address over an address bus at a first module;
modifying the first address to generate a second address;
transmitting the second address over the address bus to a second module; and
determining at the first module if at least one of the first and second addresses has a specified value.
2. The method of claim 1 , further comprising:
indicating that the first module is being selected when at least one of the first and second addresses has the specified value.
3. The method of claim 2 , further comprising:
indicating that the first module is not being selected when a system enable/disable signal indicates that a system comprising the first module is disabled or not enabled;
indicating that the first module is not being selected when the system enable/disable signal indicates that the system is enabled and a board enable/disable signal indicates that the first module is disabled or not enabled; and
indicating that the first module is being selected regardless of the first address when an all enable/disable signal indicates that multiple modules including the first module are enabled.
4. The method of claim 1 , wherein:
modifying the first address comprises decrementing the first address to generate the second address; and
determining if at least one of the first and second addresses has the specified value comprises determining if the first address has a value of zero.
5. The method of claim 1 , wherein:
modifying the first address comprises incrementing the first address to generate the second address; and
determining if at least one of the first and second addresses has the specified value comprises determining if the first address has a value of 2n−1, where n is a specified number of bits in the address bus.
6. The method of claim 1 , further comprising:
receiving the second address over the address bus at the second module;
modifying the second address to generate a third address;
transmitting the third address over the address bus to a third module; and
determining at the second module if at least one of the second and third addresses has the specified value.
7. The method of claim 1 , further comprising:
transmitting the first address over the address bus from a controller;
wherein the first address identifies a position of a single specified module with respect to the controller.
8. A system comprising multiple modules coupled in series in a stack, each module configured to be selected over an address bus, each module comprising an addressing circuit configured to:
receive a first address over the address bus;
modify the first address to generate a second address;
transmit the second address over the address bus; and
determine if at least one of the first and second addresses has a specified value.
9. The system of claim 8 , wherein the addressing circuit in each module is further configured to indicate that its associated module is being selected when at least one of the first and second addresses has the specified value.
10. The system of claim 9 , wherein the addressing circuit in each module is further configured to:
indicate that the module is not being selected when a system enable/disable signal indicates that the system is disabled or not enabled;
indicate that the module is not being selected when the system enable/disable signal indicates that the system is enabled and a board enable/disable signal indicates that the module is disabled or not enabled; and
indicate that the module is being selected regardless of the first address when an all enable/disable signal indicates that the multiple modules are enabled.
11. The system of claim 8 , wherein the addressing circuit in each module comprises:
adder circuitry configured to decrement the first address to generate the second address; and
logic circuitry configured to indicate whether the first address has a value of zero.
12. The system of claim 8 , wherein the addressing circuit in each module comprises:
adder circuitry configured to increment the first address to generate the second address; and
logic circuitry configured to indicate whether the first address has a value of 2n−1, where n is a specified number of bits in the address bus.
13. The system of claim 8 , further comprising:
a controller configured to communicate multiple addresses over the address bus, each of the multiple addresses identifying a position of one of the modules with respect to the controller.
14. The system of claim 13 , wherein each module is configured to be inserted into any position in the stack relative to the controller and to be selected by the controller without manual configuration of the address assigned to that module.
15. The system of claim 8 , wherein:
each module is configured to monitor at least one of multiple strings of photovoltaic panels; and
the system further comprises a power supply module configured to tap power from at least one of the strings of photovoltaic panels.
16. An apparatus comprising:
at least one interface configured to receive a first address over an address bus; and
an addressing circuit configured to modify the first address to generate a second address, transmit the second address to an external module via the at least one interface, and determine if at least one of the first and second addresses has a specified value.
17. The apparatus of claim 16 , wherein the addressing circuit is further configured to indicate that the apparatus is being selected when at least one of the first and second addresses has the specified value.
18. The apparatus of claim 16 , wherein the addressing circuit comprises:
adder circuitry configured to decrement the first address to generate the second address; and
logic circuitry configured to indicate whether the first address has a value of zero.
19. The apparatus of claim 16 , wherein the addressing circuit comprises:
adder circuitry configured to increment the first address to generate the second address; and
logic circuitry configured to indicate whether the first address has a value of 2n−1, where n is a specified number of bits in the address bus.
20. The apparatus of claim 16 , wherein the addressing circuit is configured to:
indicate that the apparatus is not being selected when a system enable/disable signal indicates that a system comprising the apparatus is disabled or not enabled;
indicate that the apparatus is not being selected when the system enable/disable signal indicates that the system is enabled and a board enable/disable signal indicates that the apparatus is disabled or not enabled;
indicate that the apparatus is being selected regardless of the first address when an all enable/disable signal indicates that multiple apparatuses are enabled; and
suppress jitter in an output of the apparatus when new addresses are received over the address bus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/800,751 US20110289247A1 (en) | 2010-05-21 | 2010-05-21 | Autonomous positional addressing in stacked multi-board systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/800,751 US20110289247A1 (en) | 2010-05-21 | 2010-05-21 | Autonomous positional addressing in stacked multi-board systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US20110289247A1 true US20110289247A1 (en) | 2011-11-24 |
Family
ID=44973420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/800,751 Abandoned US20110289247A1 (en) | 2010-05-21 | 2010-05-21 | Autonomous positional addressing in stacked multi-board systems |
Country Status (1)
Country | Link |
---|---|
US (1) | US20110289247A1 (en) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4443866A (en) * | 1975-08-27 | 1984-04-17 | Corning Glass Works | Automatic device selection circuit |
US5201038A (en) * | 1989-12-06 | 1993-04-06 | Videologic Limited | Address bus for stackable computer board connectors |
US5935257A (en) * | 1997-05-16 | 1999-08-10 | Fujitsu Limited | Skew-reduction circuit and semiconductor device |
US5963464A (en) * | 1998-02-26 | 1999-10-05 | International Business Machines Corporation | Stackable memory card |
US6269411B1 (en) * | 1999-08-12 | 2001-07-31 | Hewlett-Packard Company | System for enabling stacking of autochanger modules |
USRE37613E1 (en) * | 1994-05-25 | 2002-03-26 | Compaq Cupertino Corporation | System for specifying addresses by creating a multi-bit ranked ordered anchor pattern and creating next address by shifting in the direction of the superior position |
US6678747B2 (en) * | 1999-08-23 | 2004-01-13 | Honeywell International Inc. | Scalable data collection and computing apparatus |
US6772232B1 (en) * | 1999-08-26 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | Address assignment procedure that enables a device to calculate addresses of neighbor devices |
US6850992B2 (en) * | 2000-08-18 | 2005-02-01 | Siemens Aktiengesellschaft | Address assignment method for at least one bus device that has recently been connected to a bus system |
US6864569B2 (en) * | 2001-02-27 | 2005-03-08 | Stmicroelectronics Limited | Stackable module |
US20050160216A1 (en) * | 1997-04-23 | 2005-07-21 | Micron Technology, Inc. | Memory system and method for assigning addresses to memory devices |
US7269042B2 (en) * | 2004-09-01 | 2007-09-11 | Micron Technology, Inc. | Memory stacking system and method |
US7286384B2 (en) * | 2005-03-11 | 2007-10-23 | Advanced Micro Devices, Inc. | Automatic resource assignment in stacked module devices |
US20080077718A1 (en) * | 2006-09-25 | 2008-03-27 | Honeywell International Inc. | Stacked card address assignment |
US7606959B2 (en) * | 2006-03-29 | 2009-10-20 | Shenzhen Mindray Bio-Medical Electronics Co., Ltd. | Multiprocessor system using stacked processor modules and board to board connectors |
US7716405B2 (en) * | 2005-11-15 | 2010-05-11 | Hitachi Industrial Equipment Systems Co., Ltd. | Computer system |
-
2010
- 2010-05-21 US US12/800,751 patent/US20110289247A1/en not_active Abandoned
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4443866A (en) * | 1975-08-27 | 1984-04-17 | Corning Glass Works | Automatic device selection circuit |
US5201038A (en) * | 1989-12-06 | 1993-04-06 | Videologic Limited | Address bus for stackable computer board connectors |
USRE37613E1 (en) * | 1994-05-25 | 2002-03-26 | Compaq Cupertino Corporation | System for specifying addresses by creating a multi-bit ranked ordered anchor pattern and creating next address by shifting in the direction of the superior position |
US20050160216A1 (en) * | 1997-04-23 | 2005-07-21 | Micron Technology, Inc. | Memory system and method for assigning addresses to memory devices |
US5935257A (en) * | 1997-05-16 | 1999-08-10 | Fujitsu Limited | Skew-reduction circuit and semiconductor device |
US5963464A (en) * | 1998-02-26 | 1999-10-05 | International Business Machines Corporation | Stackable memory card |
US6269411B1 (en) * | 1999-08-12 | 2001-07-31 | Hewlett-Packard Company | System for enabling stacking of autochanger modules |
US6678747B2 (en) * | 1999-08-23 | 2004-01-13 | Honeywell International Inc. | Scalable data collection and computing apparatus |
US6772232B1 (en) * | 1999-08-26 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | Address assignment procedure that enables a device to calculate addresses of neighbor devices |
US6850992B2 (en) * | 2000-08-18 | 2005-02-01 | Siemens Aktiengesellschaft | Address assignment method for at least one bus device that has recently been connected to a bus system |
US6864569B2 (en) * | 2001-02-27 | 2005-03-08 | Stmicroelectronics Limited | Stackable module |
US7269042B2 (en) * | 2004-09-01 | 2007-09-11 | Micron Technology, Inc. | Memory stacking system and method |
US7286384B2 (en) * | 2005-03-11 | 2007-10-23 | Advanced Micro Devices, Inc. | Automatic resource assignment in stacked module devices |
US7716405B2 (en) * | 2005-11-15 | 2010-05-11 | Hitachi Industrial Equipment Systems Co., Ltd. | Computer system |
US7606959B2 (en) * | 2006-03-29 | 2009-10-20 | Shenzhen Mindray Bio-Medical Electronics Co., Ltd. | Multiprocessor system using stacked processor modules and board to board connectors |
US20080077718A1 (en) * | 2006-09-25 | 2008-03-27 | Honeywell International Inc. | Stacked card address assignment |
US7840732B2 (en) * | 2006-09-25 | 2010-11-23 | Honeywell International Inc. | Stacked card address assignment |
Non-Patent Citations (1)
Title |
---|
Photovoltaics, Wikipedia.org , accessed on 1/10/2012. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2801446A1 (en) | Power routing device for expansion slot of computer system | |
KR20080047998A (en) | Apparatus and method for switching an apparatus to a power saving mode | |
US20150070950A1 (en) | Ac-dc converter device comprising an overvoltage protection circuit | |
US20100138074A1 (en) | Computer system | |
CN113687707B (en) | Power supply voltage control device of mainboard and server | |
US12014184B2 (en) | Arithmetic devices for neural network including an input distribution signal generation circuit, an output distribution signal generation circuit, and an output distribution signal compensation circuit | |
US20130307634A1 (en) | Pulse width modulation circuit and pulse width modulation signal generating method having two fresh rates | |
US6317012B1 (en) | Method and apparatus for distribution of power in a media converter system | |
US20110289247A1 (en) | Autonomous positional addressing in stacked multi-board systems | |
JP2005229795A (en) | Power distribution system utilizing redundant ac power supply and redundant dc power supply | |
US20070148019A1 (en) | Method and device for connecting several types of fans | |
EP3637270A1 (en) | External electrical connector and computer system | |
CN109508065B (en) | Clock signal selection system and server | |
CN101697094A (en) | Double-power power supply unit and method | |
US6748477B1 (en) | Multiple-path interface card for interfacing multiple isolated interfaces to a storage system | |
US10892634B2 (en) | Power distribution unit with fewer components and system | |
US20070079159A1 (en) | Automated power management for electronic devices | |
CN209895300U (en) | Power supply adapter plate applied to power supply of server | |
US10073807B2 (en) | Logic-based decoder for crosstalk-harnessed signaling | |
US10970686B2 (en) | Testing power reuse system, power reuse circuit and testing power reuse method | |
US20220043496A1 (en) | Power/data transmission extender system | |
CN108153404A (en) | Power spare system and its operating method | |
CN109874314B (en) | Series power supply circuit, system and method | |
CN109905018B (en) | Power supply system and control method thereof | |
US20180275733A1 (en) | Power supply system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NATIONAL SEMICONDUCTOR CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BURKLUND, ALLAN V.;REEL/FRAME:024490/0727 Effective date: 20100519 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |