1. Field of the Invention
The present invention relates to a communication control apparatus, a communication control method, a node, and a communication system. More particularly, it relates to an autonomous distributed communication control method for use in a communication system with nodes arranged in a grid.
2. Description of the Related Art
Known methods by which a plurality of spatially distributed nodes can transmit data without collisions include time division multiple access (TDMA) and carrier sense multiple access (CSMA), the latter including carrier sense multiple access with collision avoidance (CSMA/CA) and carrier sense multiple access with collision detection (CSMA/CD). A discussion of these methods can be found in, for example, Waiyaresu LAN Akitekucha (Wireless LAN Architecture), edited by Matsushita and Nakagawa, Kyoritsu Shuppan, 1996, pp. 47, 53-59, and 69 (in Japanese).
A weakness of the TDMA system is that if the central administrative node that assigns time slots malfunctions, the entire communication system may be brought down. Various collision avoidance methods in which the individual nodes adjust their time-slot assignments autonomously, without the need for a central administrative server, have therefore been proposed, as in Japanese Patent Applications No. 2003-328530, No. 2004-257562, and No. 2004-257567. In these proposed methods, each node interacts with its neighboring nodes by transmitting impulse signals at regular intervals and adjusting the timing of these intervals according to the timing of the impulse signals received from the neighboring nodes, using a nonlinear model that forces the transmission timing away from the receiving timing. A group of interacting nodes can thereby establish non-overlapping time slots in which to transmit data without collisions.
A plurality of nodes can be spatially distributed in many ways, one of which is a grid. When nodes are distributed in a grid pattern, in theory there is an optimal time-division communication mode in which the time slots of mutually adjacent nodes fit together in a non-overlapping pattern with very little lost time, resulting in highly efficient communication. When the above methods of autonomous time-slot assignment are applied to a grid of nodes, however, the nodes are unable to achieve this ideal mode of time-division communication and are therefore unable to reach the ideal level of communication efficiency.
It would therefore be desirable to have a communication control apparatus and method, a node, and a communication system in which a plurality of nodes arranged in a grid can autonomously adjust their data transmission timing to achieve high communication efficiency without requiring timing instructions from a central administrative server.
An object of the present invention is to enable a communication grid to reach a highly efficient communication timing arrangement autonomously.
The invention provides a timing control apparatus that can be installed in each node in a communication system in which the nodes are laid out in a grid. The timing control apparatus operates on a repetitive internal timing cycle, at certain phases in which the node transmits data and state variable signals. In the timing control apparatus, a communication timing calculator derives the phase state of the internal timing cycle and thereby determines the data transmission timing. The communication timing calculator includes a phase calculator, a collision rate calculator, a phase response function characteristic determiner, and a synchronization alliance unit.
The phase calculator varies the internal phase according to a phase response function and a synchronization alliance function. These functions adjust the phase on the basis of state variable signals received from neighboring nodes in the grid, representing the spatial position and internal timing phase of those nodes. The combination of these functions constitutes what is termed a time series rule.
The collision rate calculator observes differences between the internal phase of its own node and the internal phases of the neighboring nodes, and calculates a data transmission collision rate on the basis of these differences.
The phase response function characteristic determiner alters the phase response function according to the collision rate and the spatial positions indicated by the received state variable signals.
The synchronization alliance unit alters the synchronization alliance function according to the spatial positions indicated by the received state variable signals.
This method of communication control enables the phase response function characteristic determiner to operate so as to drive the node out of phase with other nodes with which data transmission collisions can occur, while the synchronization alliance unit drives the node into phase with nodes in spatial positions such that data transmission collisions cannot occur.
As a result, the nodes can autonomously reach an ideal transmission timing arrangement in which nodes in a regular pattern of positions in the grid form a synchronization alliance and transmit data simultaneously, the nodes in the alliance being mutually separated by sufficient distances that the data transmissions do not collide. Several such alliances can be formed to transmit data in a pattern of tightly interlocked time slots with high efficiency. This efficient state is reached without the need for timing instructions from a central administrative node.
The invention also provides a node including the invented communication control apparatus, and a communication system including a plurality of such nodes, arranged in a grid.
In the attached drawings:
Embodiments of the invention will now be described with reference to the attached drawings, in which like elements are indicated by like reference characters.
Referring to
Referring to
The impulse signal receiving unit 11 receives input impulse signals Sin11 transmitted by neighboring nodes. Two nodes are considered to be neighboring if they are within receiving range of each other's impulse signals. An impulse signal is generally a timing signal and may have, for example, a Gaussian waveshape, but when an impulse signal is used as an interaction signal, information indicating the spatial position of the transmitting node (address information) is added. Thus the output impulse signals Sout11 transmitted by the impulse signal transmitting unit 13 described below are timing signals that are modulated with address information and transmitted at a particular phase in a timing cycle. The impulse signal receiving unit 11 outputs received impulse signals Spr11, which it may obtain by reshaping or regenerating the input impulse signals Sin11.
The communication timing calculator 12 calculates the value of a phase signal Spr12 by which the communication timing of the node is regulated, cycling the phase value at a basically constant rate but with adjustments according to the received impulse signals Spr11. The phase signal Spr12 at the i-th node will also be denoted θi(t) below, where t represents time. The adjustments are carried out according to a nonlinear rule that drives mutually interacting nodes into or out of phase with each other.
In
In
If the number of interacting nodes changes during the course of system operation, the steady state changes adaptively. For example, if two interacting nodes have established a stable phase relationship as in
In the present embodiment, in which the nodes are disposed in a grid pattern, the phase velocity adjustment is performed according to a mathematical formula (1) that will be described in more detail later.
Referring again to
The impulse signal transmitter 13 transmits the output impulse signal Sout11 according to the phase signal Spr12. More specifically, it transmits an output impulse signal Sout11 each time the phase signal Spr12 takes on a specific value α (0≦α≦2π). A single value of α is preferably set for the entire system: in the following description it will be assumed that α=0 uniformly throughout the system. In the example in
The steady-state decision unit 14 decides whether the transmission timings of the output impulse signals Sout11 at its own node and neighboring nodes are in a transitional state (as in
(a) The value β of the phase signal Spr12 at the timing of occurrence of each received impulse signal Spr11 is observed for one basic period of the phase signal Spr12. Let the values β of the phase signal Spr12 obtained as a result of performing the above observation be:
β1, β2, . . . , βN (0<β1<β2< . . . <βN<2π)
(b) The differences (phase differences) Δ between adjacent values are calculated from the observed values β of the phase signal Spr12.
Δ1=β1, Δ2=β2−β1, . . . , ΔN=βN−βN-1
(c) Processes (a) and (b) above are carried out at intervals of one period of the phase signal Spr12 and the rate of change γ (differences) in the phase difference Δ between adjacent periods are calculated.
γ1=Δ1(τ+1)−Δ1(τ), γ2=Δ2(τ+1)−Δ2(τ), . . . , γN=ΔN(τ+1)−ΔN(τ)
where τ indicates discrete time in units of one period of the phase signal Spr12.
The steady state is recognized when the above rates of change γ are all smaller than a predetermined value ε.
γ1<ε, γ2<ε, . . . , γN<ε
It is also possible, however, to make the steady state decision according to whether the decision condition
γ1<ε, γ2<ε, . . . , γN<ε
is satisfied over M periods (where M is an integer greater than two). The larger the value of M is, the more stable the state must be in order for the steady-state decision unit 14 to decide that the steady state has been reached. Alternatively, the decision may be based on only some of the received impulse signals.
At intervals equal to one period of the phase signal Spr12, the steady-state decision unit 14 sends the data communication unit 15 a steady-state decision signal indicating the decision result, and a slot signal equal to the first observed phase value β1 in the current cycle of the phase signal θi(t). Use of the first observed phase value β1 is related to the condition α=0 given above. If a different value of a is selected, a different β may be used.
The sensor 16 senses a property of the physical environment of the node, such as sound pressure, vibration, chemical concentration, temperature, or any other measurable property. The sensed property acts as an input signal Sin13, from which the sensor 16 generates observation data Spr15. The sensor 16 sends the observation data Spr15 to the data communication unit 15. The data communication unit 15 also receives the output data signals Sout12 transmitted by neighboring nodes as input data signals Sin12.
The data communication unit 15 transmits the observation data Spr15 or the input data signal Sin12 (or both) to other nodes as an output data signal Sout12. The output data signal Sout12 is transmitted when the steady-state decision signal Spr13 indicates that the steady state has been recognized, and is not transmitted when the steady-state decision signal Spr13 indicates a transitional state. The output data signal Sout12 and output impulse signal Sout11 are transmitted in the same frequency band. The output data signal Sout12 is transmitted in a time slot (time interval) described below. The term ‘time slot’ will be used even though it does not denote a fixed time interval allocated by the system.
A time slot is the interval in which the phase θi(t) indicated by the phase signal Spr12 satisfies the following condition.
δ1≦θi(t)≦β1−δ2
The time slot starts when transmission of the output impulse signal Sout11 has ended, at which point the value of the phase signal is δ1. The time slot ends at a time preceding the timing of the first received impulse signal Spr11 in each cycle of the phase signal Spr12 by an offset δ2, at which point the value of the phase signal is β1−δ2. The parameters δ1 and δ2 are phase angles corresponding to short periods of time which need only be adequate to assure that impulse signals (transmitted by the node 10 or another node) and data signals (transmitted by the node 10 or another node) do not occupy the wireless space around the node 10 simultaneously. The values of δ1 and δ2 may be determined experimentally under actual operating conditions.
In
The output data signals Sout11 transmitted by node 10 may be used either to relay data (Sin12) received from another node or to transmit data (Sin13) originating at node 10. The sensor 16 is shown as one example of a means for generating data originating at node 10.
The operation of the communication timing calculator 12 will now be described in more detail.
Referring to
As noted above, the impulse signals transmitted for the purpose of interaction include information (address information) indicating the spatial position of the transmitting node. The output impulse signal Sout11 is therefore a timing signal transmitted at a particular phase in the node's timing cycle, but it is modulated with information indicating the spatial position of the node. The impulse signal demodulator 21 demodulates the received impulse signal Spr11 and thereby separates the spatial position information from the timing signal component.
The phase dispersion and synchronization alliance unit 22 receives both the spatial position information and the timing signal from the impulse signal demodulator 21, and executes a computation that updates the phase of its own node, thereby generating the phase signal Spr12, which is supplied to the impulse signal modulator 23 as well as the impulse signal transmitting unit 13, steady-state decision unit 14, and data communication unit 15.
The impulse signal modulator 23 generates a modulated impulse signal by modulating information indicating the spatial position of its own node onto a timing signal generated for its own node on the basis of the phase signal Spr12, which it receives as the result of the phase calculation by the phase dispersion and synchronization alliance unit 22. The timing signal is generated for the impulse signal transmitting unit 13, which only has to transmit the modulated impulse signal to other nodes as the output impulse signal Sout11.
The detailed structure of the phase dispersion and synchronization alliance unit 22 will be described with reference to the functional block diagram shown in
As shown in the figure, the phase dispersion and synchronization alliance unit 22 comprises a phase calculator 31, a collision rate calculator 32, a cumulative stress calculator 33, a stress response function calculator 34, a phase response function characteristic determiner 35, and a synchronization alliance unit 36.
The communication timing calculator 12 carries out the computations described above and determines output impulse signals Sout11. The communication timing calculator 12 performs the computations for determining transmission timings through use of an equation expressing a nonlinear oscillation model, such as the following equation (1):
The natural angular frequency parameter ωi represents the basic rhythm of the node. It is assumed here that ωi has a uniform value throughout the system. Equation (1) represents a rule for temporally varying the rhythm of node i in response to input of received impulse signals Spr11. The received impulse signals Spr11 correspond to the output impulse signals transmitted from neighboring nodes in the mutual interaction range.
In equation (1), variable t represents time, and the function θi(t) represents the phase of node i at time t in nonlinear oscillation. The value of θi(t) is calculated modulo 2π, by dividing by 2π and taking the remainder, so that θi(t) is always within the following range:
0≦θi(t)<2π
Δθij(t) is a phase difference obtained by subtracting the phase θi(t) of node i from the phase θj(t) of neighboring node j. For the sake of convenience, the value Δθij(t) is also calculated modulo 2π, by taking the remainder, when divided by 2π, of the sum of 2π plus the phase difference Δθij(t), bringing Δθij(t) within the following range:
0≦Δθij(t)<2π
The output impulse signal Sout11 is assumed without loss of generality to be transmitted when the phase θi(t) of node i is 0. Node i can therefore observe the phase difference Δθij(t) by observing its own phase value θi(t) at just the timing when an output impulse signal Sout11 is received from node j, once per timing cycle. At that timing, the phase difference Δθij(t) is equal to −θi(t), as expressed in equation (2). The phase difference Δθij(t) is calculated in this way in the present embodiment.
The function Pj(t) is a timing signal obtained by eliminating information indicating the spatial location of node j from the received impulse signal Spr11 provided by receiving the output impulse signal Sout11 transmitted by node j. As explained above, this spatial location information or address information is modulated onto the output impulse signal Sout11 when the output impulse signal Sout11 is transmitted and is separated from the output impulse signal Sout11 by the impulse signal demodulator 21 when the output impulse signal Sout11 is received. The spatial location information is used to select whether to compute the function R(Δθij(t)) or H(Δθij(t)) in equation (1).
R(Δθij(t)) is a phase response function representing the variation of the basic rhythm of its own node in response to input of the received impulse signal Spr11. R(Δθij(t)) has a nonlinear characteristic that pushes the phase θi (t) of node i away from the phase of node j. The symbol Xi in equation (1) represents the set of nodes to be repelled in this way, in the mutual interaction range of node i. Xi represents the entire set of nodes within the mutual interaction range of node i, except for nodes belonging to a set Yi which will be described later. Accordingly, the summation term including the function R(Δθij(t)) has a dynamic characteristic that repels the phase of node i from the phase of the node j that transmitted the received impulse signal Spr11 if node j is within mutual interaction range and does not belong to the set Yi, as determined from the spatial location information received with the received impulse signal Spr11.
H(Δθij(t)), which will be referred to as a synchronization alliance function, also represents a variation of the basic rhythm of its own node in response to input of the received impulse signal Spr11. Unlike the phase response function R(Δθij(t)), the synchronization alliance function H(Δθij(t)) has a dynamic characteristic that pulls the phase of node i toward the phase of one or more allied neighboring nodes j within the mutual interaction range of node i. The synchronization alliance unit 36 executes the computation of the summation term including H(Δθij(t)).
The allied neighboring nodes (the nodes in set Yi) are disposed in the vicinity of certain predetermined points or in a certain area. The allied neighboring nodes in the present embodiment are any nodes disposed within circles of radius r centered on points (2L, L), (−L, 2L), (−2L, −L), or (L, −2L) viewed from the spatial location of node i, r being smaller than L. The point (n, m) represents a spatial location horizontally removed by a distance n and vertically removed by a distance m in
Incidentally, the locations of the allied nodes in set Yi are not unique; they could be varied to mirror-symmetrical locations (−2L, L), (L, 2L), (2L, −L), and (−L, 2L). Whether an impulse signal is received from one of the allied neighboring nodes is determined in accordance with the spatial location information.
The dynamic characteristic that pulls the phase of a node toward the phase of its allied neighboring nodes is nonlinear. When this characteristic has exerted its effect and brought the node and its allied neighboring nodes in phase with one another, other neighboring nodes can establish a desirable phase relationship with these nodes without breaking up the in-phase relationship of the allied nodes. The phase relationship between a node and a neighboring node other than the allied neighboring nodes is adjusted in accordance with the phase response function R(Δθij(t)).
The symbol Yi in equation (1) represents the set of nodes to be synchronized within the mutual interaction range of node i. Accordingly, the summation term including the synchronization alliance function H(Δθij(t)) in equation (1) exerts a dynamic characteristics to synchronize the phase of node i only when the received impulse signal Spr11 is transmitted from one of the allied neighboring nodes with which node i is to be synchronized within the mutual interaction range.
An example of the synchronization alliance function H(Δθij(t)) described above is given by equations (3) and (4) below, although the function used to implement the dynamic characteristic described above is not limited to this form.
H(Δθij(t))=Δθij(t) 0≦Δθij(t)<π (3)
H(Δθij(t))=Δθij(t)−2π π≦Δθij(t)<2π (4)
The function ξ(Si(t)) produces a phase shift of random magnitude responsive to a stress function Si(t) that accumulates stress when the relative phase difference between the i-th node and other nodes is small. The relative phase difference is defined as a quantity E calculated from the phase difference Δθij by the following rule:
If Δθij≦π then E=Δθij (5)
If Δθij>π then E=2π−Δθij (6)
The function ξ(Si(t)) in equation (1) represents a response to cumulative stress, and will be referred to below as a stress response function.
One feature of the first embodiment is that, even if there is no central administrative node, the nodes can determine their own time slot assignments in an autonomous and distributed manner by interacting with their neighboring nodes and modifying their phase signals through use of a nonlinear oscillation model. Another feature is the inclusion of the stress response function ξ(Si(t)) in the nonlinear oscillation model to avoid a situation in which a node becomes stabilized in a steady state even though the phase difference between the node and a neighboring node is extremely small.
Specific examples of the phase response function R(Δθij(t)) and the stress response function ξ(Si(t)) will now be given. The description will begin with definitions of the terms ‘data transmission collision’, ‘time-based collision rate’, and ‘count-based collision rate’.
Let φc be the phase width corresponding to the width Wmin of the smallest time slot that a node needs in order to transmit data. The phase width can be calculated as the product of Wmin and the natural angular frequency parameter ω (φc=Wmin·ω). The width Wmin is a constant parameter that is determined according to the application.
A data transmission collision is defined to have occurred when the relative phase difference between a first node and a second node within impulse signal receiving range of the first node is less than the above phase width φc. A data transmission collision therefore occurs when the relative phase difference is less than phase width φc for even one received impulse signal Spr11.
Let xi(t) be a function expressing the occurrence or non-occurrence of a data transmission collision at node i. This function xi(t) is defined by the following equation (7) which means that xi(t) takes the value ‘1’ if a collision occurs at time t and the value ‘0’ otherwise (‘else’).
The cumulative collision time yi(t) over n timing cycles, where n is a positive integer, is defined by equation (8); that is, it is obtained by integrating the function xi(t) over n cycles up to time t. The quantity Ti in equation (8) represents the length of the timing cycle at node i. The cumulative collision time yi(t) is the total length of time in the n cycles up to time t during which the function xi(t) takes the value ‘1’, and can be calculated by observing the value of the function xi(t).
The value ci(t), which is equal to yi(t) normalized by the maximum cumulative collision time, expresses the proportion of the time in the n cycles during which collisions occurred. The maximum cumulative collision time is the maximum possible value of the cumulative collision time yi(t). If each node is assumed to transmit using time slots of width Wmin (=φc/ωi), the maximum cumulative collision time during n cycles is n·Wmin (=n·φc/ωi). The collision rate ci(t) is therefore defined as in equation (9).
Because the phase θ of each node is varied according to formula (1), the period Ti may take different lengths in different cycles. The cumulative collision time yi(t) may therefore exceed the maximum collision time n·Wmin; that is, the collision rate ci(t) may exceed ‘1’. When the collision rate ci(t) exceeds ‘1’, it is set equal to ‘1’.
The preceding exemplary definition of the collision rate ignores the possibility of multiple collisions occurring simultaneously. The method of defining collisions, however, is not limited to the method above. It is possible to use a method that takes multiple simultaneous collisions into account. It is also possible to calculate the collision rate by counting collisions instead of calculating the total collision time.
This method counts the number of timing cycles in which collisions occur. If multiple collisions occur during the same cycle, they are counted as one collision, because only the presence or absence of collisions is considered.
Let γ be the cumulative number of collisions in n cycles; that is, the number of cycles in which collisions occur. The count-based collision rate ci(t) is defined as the cumulative number of collisions γ normalized by the maximum possible number of collisions (n, representing a collision in every cycle), and is therefore calculated from the following equation (10).
ci(t)=γ/n (10)
The collision rate calculated from equation (10), like the collision rate calculated from equation (9), may exceed ‘1’. As before, a collision rate exceeding ‘1’ is treated as being equal to ‘1’. Counting multiple collisions occurring in the same cycle as a single collision is furthermore only one example of the counting method; it is possible to count each collision separately.
The definition of the collision rate can be generalized by using the term ‘amount of collision’ to denote either the time-based or the count-based quantity. The generalized collision rate is then defined as the amount of collision actually occurring in n cycles, normalized by the maximum amount of collision that can occur in n cycles.
The collision rate calculator 32 in
Next, a specific example of the phase response function R(Δθij(t)) calculated in the phase calculator 31 will be described.
As discussed above, equation (1) represents a rule for temporally varying the nonlinear oscillation rhythm of node i in response to input of received impulse signals Spr11. The received impulse signals Spr11 correspond to the output impulse signals Sout11 transmitted from neighboring nodes. By operating according to equation (1), a set of neighboring nodes attempts to set up a mutually stable set of phase differences. In the first embodiment, the phase response function R(Δθij(t)) has different characteristics depending on the collision rate ci(t). The phase response function characteristic determiner 35 in
The specific example of the phase response function R(Δθij(t)) used in the first embodiment is given by equations (11-1) to (11-4) and equation (12).
The wave (˜) notation in equations (11-2) and (11-3) indicates Δ(θij(t)) calculated modulo 2π/p; that is, Δ(θij(t)) is divided by 2π/p and the remainder is taken.
Equations (11-1) to (11-4) and (12) define a phase response function R(Δθij(t)) that attempts to establish uniform phase differences among neighboring nodes. The quantity p is a parameter that determines the uniform phase difference. That is, when a cycle is divided into p parts, each part subtends a phase angle of 2π/p. The optimum value of p depends on the node arrangement, and can be determined experimentally. The phase angle 2π/p must be equal to or greater than the minimum phase with φc necessary for data transmission (2π/p≧φc). The quantities α and b are constant parameters that, like p, can be determined experimentally.
The phase response function R(Δθij(t)) is of course not limited to the form given above. The invention can be practiced with various other functions that vary the phase of a node relative to the phase of a neighboring node according to the collision rate ci(t).
Next, a specific example of the stress response function ξ(Si(t)) calculated by the processing executed successively in the cumulative stress calculator 33 and stress response function calculator 34 will be described. This exemplary stress response function ξ(Si(t)) is defined by the following formulas (13-1), (13-2), (14-1), (14-2), and (15).
The function s(ci(t)) in equation (15) expresses the stress value for a collision rate ci(t) at time t. Various functions that indicate higher stress values as the collision rate ci(t) increases can be used. One class of examples includes the sigmoid function and other nonlinear functions in which the stress value rises steeply as the collision rate ci(t) increases.
The function Si(t) defined by equation (15) gives the cumulative stress at time t, that is, the value of the stress function s(ci(t)) integrated over time. The interval over which the stress is accumulated starts at the time ts when the preceding random phase shift was executed in response to the cumulative stress value Si(t) and ends at time t. That is, the function Si(t) is reset when a random phase shift is executed, and starts accumulating stress again from that time. If the time t is given in discrete form, the integration calculation can be carried out by taking the total sum of the stress values s(ci(t)) at the individual discrete times. The cumulative stress calculator 33 calculates the cumulative stress Si(t).
The function q(Si(t)) defined by formulas (14-1) and (14-2) returns a random number with a probability responsive to the cumulative stress Si(t). Specifically, it returns the value μ with probability Si(t), and the value zero with probability 1−Si(t). The value μ is a random number on the interval ε≦μ<δ, where the values of ε and δ are constant parameters that should be determined experimentally.
The stress response function ξ(Si(t)) evaluates the stress function Si(t) at intervals of n timing cycles and returns a random value (μ or 0) with a corresponding probability. The stress response function calculator 34 calculates the stress response function ξ(Si(t)).
Accordingly, due to the introduction of the stress response function ξ(Si(t)) into the nonlinear oscillation model in equation (1) above, (I) the cumulative stress function Si(t) is evaluated at intervals of n timing cycles, and (II) a random phase shift is executed with a probability based on the value of the cumulative stress function Si(t). The greater the accumulated stress value is, the higher the probability that a random phase shift will be executed becomes. At times other than integer multiples of n cycles, the value of the stress response function ξ(Si(t)) is zero and a random phase shift is not executed. It should be noted that stress accumulation is not limited to n cycles; stress is accumulated over the interval from the time ts of the last preceding random phase shift to the present time t. Consequently, even when the stress value s(ci(t)) is small, if it continues to accumulate for a sufficiently long time past n cycles, eventually the cumulative stress Si(t) will become large enough to lead to a random phase shift.
The phase calculator 31 uses the stress response function ξ(Si(t)) to calculate the phase θi(t) defined in equation (1).
The communication timing calculator 12 that carries out the computations described above may be implemented in software, in hardware comprising a group of electronic circuits for executing mathematical operations, or in a combination of hardware and software.
For example, as means for executing the calculation shown in equation (1), a node may be provided with software for executing well-known numerical analysis methods such as the Runge-Kutta method. (For a Japanese description of the Runge-Kutta method, see UNIX Wakusuteishon ni yoru Kagaku Gijutsu Keisan Handobukku—Kiso-hen C-gengo ban (Handbook of Scientific and Engineering Computation on UNIX Workstations—Basic C Language Edition) by Hayato Togawa, published by Saiensu Co.) The Runge-Kutta method is one method of calculating changes in a state variable (calculating a time series) by using difference equations (recursion formulas) obtained from differential equations by converting a continuous time variable to discrete time. It is also possible to calculate changes in a state variable by use of difference equations obtained from differential equations by other methods of described in the above reference.
When each node executes the computation expressed by equation (1), an appropriate phase relationship is formed between mutually interacting nodes.
Node of interest A and its four neighboring nodes within data transmission range L establish phase relationships that divide the timing cycle into five parts. The other nodes in the mutual interaction range of node A are in phase with node A or one of these four neighboring nodes. The nodes in phase with each other have the same circled number in
The pattern of allied neighboring nodes around node A is the same as the pattern of allied neighboring nodes around other nodes in
As described above, in a data transmission method in which a plurality of nodes adjust their time slot assignments autonomously in a distributed manner by transmitting and receiving impulse signals, the first embodiment adds a synchronization alliance unit to the internal structure of the communication timing calculator, and adds information (address information) indicating the spatial location of a node to the impulse signals transmitted by the node, whereby, when the nodes are arranged in a grid, mutually adjacent nodes can interact among themselves to reach an ideal sharing of time slots. As a result, communication can be carried out at an ideal level of efficiency with very little loss of time.
Next a communication control apparatus, communication control method, node, and communication system according to a second embodiment of the invention will be described.
Instead of interacting intermittently by transmitting and receiving impulse signals as in the first embodiment, the nodes in the second embodiment interact continuously by transmitting and receiving phase information θi(t) directly as state variable signals. The state variable or mutual interaction signals also includes information indicating the spatial location of the transmitting node.
The state variable signals in the second embodiment are transmitted in a separate frequency band from the frequency band used to transmit data signals. The state variable signal frequency band is further divided into a number Nb of sub-bands, where Nb is an integer greater than the number of alliances formed in the communication system, and each state variable signal is transmitted in one of the sub-bands. In the configuration in
A state variable signal is, for example, a phase-modulated (PM) signal conveying a series of serial numbers that increase to a maximum value Na, then return to zero and being increasing again. Each serial number is followed by a numeric value giving the current phase θi(t) of the transmitting node and address information giving the spatial location of the transmitting node, as in the first embodiment. The serial numbers may cycle from zero to Na once per timing cycle, for example, so that phase information is transmitted Na times per timing cycle instead of just once per timing cycle as in the first embodiment.
The state variables will be denoted Sout31 when transmitted and Sin31 when received. Data signals will be denoted Sout32 when transmitted and Sin32 when received.
The phase signal receiving unit 41, which replaces the impulse signal receiving unit 11 of the first embodiment, has receiving circuits tuned to each of the Nb sub-bands of the state variable signal band. Normally the signal received in each sub-band originates from a single neighboring node j. The phase signal receiving unit 41 demodulates the received signal to detect the serial numbers included therein, sends the serial numbers to the interference detection unit 42, and sends the rest of the received signal, including the phase information and address information, to the communication timing calculator 44.
The interference detection unit 42 checks whether the serial numbers received from the phase signal receiving unit 41 increase in series in each sub-band. If they do not, the interference detection unit 42 generates a result signal indicating that interference has been detected; otherwise, the result signal indicates that interference has not been detected. This result signal is sent to the communication timing calculator 44 and the phase signal transmitting unit 45. When interference is detected, the interference detection unit 42 also sends the phase signal transmitting unit 45 the sub-band number of the sub-band in which interference was detected.
The communication timing calculator 44 generates a phase signal θi(t) for its own node i in accordance with the phase signals θj(t) of neighboring nodes j, as described in further detail later.
The phase signal transmitting unit 45 transmits an output phase signal Sout31 including the cyclically increasing serial number, the phase signal θi(t) of its own node i, and address information. When interference is detected, the phase signal transmitting unit 45 sends the sub-band number of the sub-band in which interference was detected in addition to, or in place of, the phase information, to advise the interfering nodes to reduce their transmitting power.
Referring to
The phase signal demodulator 51 demodulates the signal received from the phase signal receiving unit 41 to obtain the current phase and the spatial location of the transmitting node, and sends this information to the phase dispersion and synchronization alliance unit 52.
The phase dispersion and synchronization alliance unit 52 includes a means of effecting a synchronization alliance, and executes a phase computation to determine the communication timing of its own node.
The phase signal modulator 53 modulates the phase signal of its own node obtained as a result of the phase computation by the phase dispersion and synchronization alliance unit 52, in accordance with information indicating the spatial location of the node. The modulated phase signal generated by the phase signal modulator 53 is supplied to the phase signal transmitting unit 45 for transmission as a state variable signal.
Referring to
The phase calculator 61 carries out phase computations by using an equation expressing a nonlinear oscillation model, such as equation (16) given below. The phase difference Δθij(t) is defined by equation (17) as in the first embodiment. The phase response function R(Δθij(t)), the synchronization alliance function H(Δθij(t)), the stress response function ξ(Si(t)), and sets Xi of non-allied neighboring nodes and Yi of allied neighboring nodes are the same as in the first embodiment.
Nx in the term including the phase response function R(Δθij(t)) represents the number of nodes in set Xi, and Kx is a coupling constant parameter. Ny in the term including the synchronization alliance function H(Δθij(t)) represents the number of elements in node set Yi, and Ky is another coupling constant parameter. The coupling constant parameters Kx and Ky determine the level of contribution of the terms including R(Δθij(t)) and H(Δθij(t)) to the temporal evolution of the corresponding phases; their values can be determined experimentally.
The collision rate calculator 62, cumulative stress calculator 33, stress response function calculator 64, phase response function characteristic determiner 65, and synchronization alliance unit 66 operate in the same way as the corresponding elements in the first embodiment, except that the phase response function characteristic determiner 65 receives the interference detection result signal from the interference detection unit 42. When the interference detection result signal indicates that interference was detected, the phase response function characteristic determiner 65 temporarily modifies the phase response function (to a predetermined constant value, for example) so that unreliable phase values which may have been corrupted by the interference will not affect the phase of node i.
The communication timing calculator 44 that carries out the computations described above may be implemented in software, in hardware comprising a group of electronic circuits for executing mathematical operations, or in a combination of hardware and software.
When each node shown in
According to the second embodiment, in a data communication system in which a plurality of nodes mutually adjust their time slot assignments in an autonomous and distributed manner by exchanging phase signals with one another, a synchronization alliance means is included in the communication timing calculator, and information indicating the spatial location (address) of the transmitting node is added to the phase signals exchanged as interaction signals, so that the nodes arranged in a grid can determine their own time slot assignments by interacting with their neighboring nodes and can reach an optimal mode of time-division communication. Consequently, communication can be carried out at an ideal level of efficiency with very little loss of time.
In a variation of the second embodiment, the spatial location of a node transmitting a state variable signal is indicated by the frequency sub-band number of the state variable signal, instead of by an explicit address. The frequency sub-band number does not identify the location of the node uniquely, but at least identifies the synchronization alliance to which the node belongs.
Many other variations of the preceding embodiments are also possible.
The natural angular frequency parameter ωi need not have a fixed uniform value throughout the system. The system can operate with a different value of ωi at each node. For example, the values of ωi at the nodes may lie near a central value around which they are distributed according to a Gaussian probability distribution.
A differential equation (1) was used to describe the processing performed by the communication timing controller 12, but other types of equations can be used instead. One example is a difference equation or recursion formula obtained by changing the continuous time variable t in equation (1) to a discrete time variable as shown below.
In the equation above, u is a discrete time variable taking on positive integer values. The other symbols have the same meanings as in the first embodiment, except that they are all functions of the discrete time variable u. The quantity Δt indicates the step width of discrete time. The continuous time variable t and the discrete time variable u are related by Δt (more specifically, t=u·Δt). Equation (18) indicates how the phase θi(u) at time u is used to calculate the phase θi(u+1) at the next time u+1.
In the equation above, only the time axis is treated in discrete steps, but it is also possible to have the state variables take on discrete values. That is, the state variables can be quantized. In this case, the phase signal θi(t) is quantized and takes on M discrete values, where M is a positive integer. In the equation below, quantization is expressed by a quantizing function quan(*) that converts an arbitrary continuous quantity (*) to an integer by dividing the quantity by a quantization step width w and ignoring the remainder. The quantization step width w is equal to the dynamic range of the quantity (*) divided by M. For the phase signal θi(t), the quantization step width w is equal to 2π/M.
A similar discrete or difference notation can be used in equation (16) in the second embodiment. Either calculation can be carried out at the node by software.
In equations (18) and (19), summation from 1 to N may be replaced by summation over the set Xi, and a further term summing Pj(u)·H(Δθij(u)) over the set Yi may also be included, as in the first embodiment. These equations may also be modified for continuous transmission of state variable signals as in the second embodiment.
Equations (1) and (16) were shown in the first and second embodiments as formulas for modeling nonlinear oscillation, but as noted above, other descriptions of nonlinear oscillation can be used. For example, it is possible to use the well-known van der Pool equation and other general models of nonlinear oscillation or chaotic oscillation, regardless of whether the mutual interactions between nodes take place continuously or at discrete intervals. (For a Japanese discussion of the van der Pool equation, see Toda et al., Hisenkei Rikigaku (Nonlinear Dynamics), Kyoritsu Shuppan.) The van der Pool equation models nonlinear oscillatory phenomena in electronic circuits. Although this model can be incorporated into the present invention by providing hardware circuits that actually exhibit the modeled oscillations, the model can also be incorporated in software by using general methods of numerical analysis, such as the Runge-Kutta method.
The present invention does not depend on the particular nonlinear oscillatory behavior that is modeled or the particular mathematical expression of the model. Time and operating states may be treated as discrete or continuous variables, and interactions may take place continuously or at discrete intervals. Operating states may vary periodically or chaotically.
In the preceding embodiments, the neighboring nodes interacted by wireless communication, but the invention is not limited to wireless communication. The invention can also be practiced in a system in which a number of spatially distributed nodes exchange data over wires. For example, the invention can be applied to a wired local area network (LAN) such as an Ethernet network (Ethernet is a registered trademark), or a wired network linking a mixture of different types of nodes, such as sensor nodes, actuator nodes, or server nodes. The invention may also be practiced in a network in which wired connections and wireless connections are mixed.
The present invention can also be used as a communication protocol for exchanging routing tables between routers at different timings on the Internet. A router is a relay node device that routes information to its destination on a network by selecting communication paths. A routing table is essentially a communication path selection rule referred to when information is routed. To achieve efficient communication, it is necessary to keep updating the routing tables in response to changes in network topology, local traffic conditions, and so on. Each router therefore periodically transmits routing table information to the other routers in the network.
As shown by Floyd et al. in “The Synchronization of Periodic Routing Messages”, IEEE/ACM Transactions on Networking, Vol. 2, No. 2, pp. 122-136, April 1994, even though different routers transmit their routing tables independently, these transmissions have a tendency to become mutually synchronized. Floyd et al. propose a method of avoiding synchronization by imposing random variability on the period between routing table transmissions, and this method is shown to produce some effect. Because the method depends only on randomness, however, an undesirably high degree of randomness is required to achieve even a modest effect.
If the present invention is applied to the transmission of routing tables, neighboring routers can adjust the time slots in which they transmit routing tables autonomously among themselves, so that different routers transmit routing tables at different times. Because the routers actively avoid each other's time slots, the method of the present invention achieves a greater effect than the method proposed by Floyd et al., while requiring less randomness.
The invention can be used to avoid collision or synchronization in all types of networks, whether wireless or wired, and it can be used as a communication protocol for achieving efficient data communication possessing with both adaptability and stability.
The present invention is characterized by its acquisition and control of communication timing information (the phase signal in the embodiments), without regard to the use that is made of the timing information. If different nodes transmit data signals at different frequencies, for example, they can communicate without set time slots, but even in this case they may use the communication timing information to determine when to initiate data communication.
The form of the phase response function is not limited to the exemplary function R(Δθij(t)) used in the first and second embodiments. Other types of phase response functions can be used instead.
In the first and second embodiments, the phase response function R(Δθij(t)) was defined by combining different functions of the phase difference Δθij(t), some of which included functions of the collision rate ci(t) as stress response values, but the phase response function R(Δθij(t)) can be defined by combining different functions of the phase difference Δθij(t) alone, without including a response to the collision rate ci(t).
Of the many variations shown in the specifications and drawings of Japanese Patent Applications No. 2003-328530, No. 2004-257562, and No. 2004-254567, which are related to the present application, those variations that are applicable to the present invention are included herein by reference.
Those skilled in the art will recognize that further variations are possible within the scope of the present invention, which is defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2004-344609 | Nov 2004 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20050190796 | Date et al. | Sep 2005 | A1 |
20060050826 | Date et al. | Mar 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20060114841 A1 | Jun 2006 | US |