FIELD OF THE INVENTION
[0001] The invention concerns the field of sending and receiving messages on a bus used
to control lighting devices. Especially the invention concerns a method and a device
that enable reliable communications on a bus of said kind to which master devices
of different capabilities have been connected.
BACKGROUND
[0002] Digital buses are known that can be used to control lighting devices. As an example,
the IEC (International Electrotechnical Commission) standard number 62386 defines
the DALI (Digital Addressable Lighting Interface) bus. The physical transmission medium
of a DALI bus consists of two wires, and digital messages are transmitted on the bus
in the form of bit sequences represented by voltage changes between higher and lower
levels.
[0003] Access control that defines how the connected devices are allowed to use the bus
for transmission differs depending on whether there is only one master device or where
there are several master devices connected to the same DALI loop. A master device
is one that is allowed to transmit on the bus spontaneously, while a slave device
is only allowed to respond to queries from masters. The simplest DALI-controlled system
has only one master, which is thus only required to operate in the so-called Single
Central Master mode. If there are multiple masters, they are all assumed to operate
in the Multi Master mode, which involves collision detection and avoidance as explained
in the following with reference to figs. 1, 2, and 3.
[0004] Fig. 1 illustrates two consecutive forward frames 101 and 102, each followed by the
corresponding stop bits. The time 103 between the end of the previous frame (excluding
stop bits) and the beginning of the next frame is called the settling time. Its length
depends on the priority of the message that the device transmitting in the latter
frame 102 wants to transmit. The DALI standard defines a settling time of 12 milliseconds
for the highest priority (priority 0) messages. The settling times become longer in
steps of one millisecond with decreasing priority, so that the settling time for the
lowest priority (priority 4) messages is 16 milliseconds. Fig. 2 illustrates how the
beginning of the settling time coincides with the last voltage transition in the frame:
if the final bit in the frame is a logic one, the voltage transition occurs in the
middle of the bit period like in the left part of fig. 2. A logic zero as the final
bit causes the last voltage transition to occur at the very end of the bit period
like in the right part of fig. 2. The settling time between a forward frame carrying
a query and a backward frame carrying a response thereto is shorter than any settling
time between two consecutive forward frames.
[0005] Fig. 3 illustrates a collision detection method, which relies on the way in which
signals are transmitted on the DALI bus. The DALI bus is normally held at the higher
voltage, but a transmitting device may briefly short the two wires, drawing the bus
to the lower voltage level. The lower voltage is the dominant state, meaning that
of simultaneous states the lower voltage will prevail. A transmitting device operating
in Multi Master mode may test the DALI bus eight microseconds before drawing the bus
to the lower voltage level, and in the middle of each higher level bit. The arrows
in fig. 3 illustrate the testing moments. If any test shows that the bus is actually
not in the higher-voltage state, it means that some other device is transmitting a
lower-level bit at the same time. Such a discovery causes the device which made it
abort the current transmission attempt.
[0006] Problems may occur, however, if devices that operate in the Multi Master mode are
connected to a DALI loop that already has a Single Central Master. The last-mentioned
is not capable of collision detection; typically the transmission routine of a Single
Central Master is a relatively simple one driven by just timer-based interrupts in
the processor. Additionally a Single Central Master typically transmits very frequently,
both to monitor the system and to resend information in case it was not received correctly
the first time round. The Multi Masters may be for example presence sensors, in which
case the frequent transmissions from the Single Central Master without collision detection
increase the risk that the detection results from the sensors will only be reacted
upon after considerable delays. The incapability of the Single Central Master to detect
collisions may also lead to numerous incidents where the Single Central Master starts
transmitting although one of the Multi Masters is transmitting already, which causes
corruption of messages and generally unreliable operation of the lighting control
bus.
SUMMARY
[0007] It is an objective of the present invention to provide a method and devices for arranging
the communications on a digital lighting control bus so that master devices with different
capabilities can co-exist along and communicate through the same bus without unnecessarily
many collisions between their transmissions.
[0008] The objectives of the invention are reached with a method, control devices, and computer
programs as defined by the respective independent claims.
[0009] According to an example embodiment, a method is provided for transmitting forward
frames from a controller of a first kind on a lighting control bus to which also controllers
of a second kind are allowed to be coupled. The method comprises, in the following
order:
- transmitting a first forward frame on the lighting control bus,
- waiting for a delay that is longer than a predefined longest settling time between
frames applied by said controllers of second kind, and
- transmitting a second forward frame on the lighting control bus.
[0010] According to another example embodiment, a controller device is provided for transmitting
forward frames on a lighting control bus to which also controllers of another kind
are allowed to be coupled. The controller device comprises a timer configured to trigger
transmissions of said forward frames, wherein after the transmission of a first forward
frame on the lighting control bus said timer is configured to trigger after a delay
that is longer than a predefined longest settling time between frames applied by said
controllers of the other kind.
[0011] According to yet another example embodiment, a computer program is provided for transmitting
forward frames from a controller of a first kind on a lighting control bus to which
also controllers of a second kind are allowed to be coupled. The computer program
comprises machine-readable instructions stored on a non-transitory medium that, when
executed by a processor, cause the implementation of
- transmitting a first forward frame on the lighting control bus,
- waiting for a delay that is longer than a predefined longest settling time between
frames applied by said controllers of second kind, and
- transmitting a second forward frame on the lighting control bus.
[0012] The computer program may be embodied on a volatile or a non-volatile computer-readable
record medium, for example as a computer program product comprising at least one computer
readable non-transitory medium having program code stored thereon, the program code,
which when executed by an apparatus, causes the apparatus at least to perform the
operations described hereinbefore for the computer program in accordance with an example
embodiment.
[0013] The exemplifying embodiments of the invention presented in this patent application
are not to be interpreted to pose limitations to the applicability of the appended
claims. The verb "to comprise" and its derivatives are used in this patent application
as an open limitation that does not exclude the existence of also unrecited features.
The features described hereinafter are mutually freely combinable unless explicitly
stated otherwise.
[0014] The novel features which are considered as characteristic of the invention are set
forth in particular in the appended claims. The invention itself, however, both as
to its construction and its method of operation, together with additional objects
and advantages thereof, will be best understood from the following detailed description
of specific embodiments when read in connection with the accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
[0015]
Fig. 1 illustrates two transmission frames on a DALI bus,
fig. 2 illustrates measuring a settling time from the last bit of a frame,
fig. 3 illustrates tests made on a DALI bus to detect collisions,
fig. 4 illustrates an example of a subnet controller device acting as a central controller,
fig. 5 illustrates an exemplary interface for connecting to a digital lighting control
bus,
fig. 6 illustrates a prolonged settling time,
fig. 7 illustrates an example of transmitted forward frames,
fig. 8 illustrates an example of transmitted forward and backward frames,
fig. 9 illustrates a state diagram of a central controller,
fig. 10 illustrates a state diagram of a distributed controller,
fig. 11 illustrates a state diagram of another central controller, and
fig. 12 illustrates an example of transmitted forward frames.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0016] Fig. 4 illustrates schematically a controller device 400 for transmitting forward
frames on a lighting control bus to which also controllers of another kind are allowed
to be coupled. In particular, we may assume that the controller device 400 is a so-called
subnet controller, the purpose of which is to control load devices coupled to the
multitude (here: up to eight) of parallel DALI channels for which there are interfaces
in the subnet controller. In a basic configuration the ballasts and drivers in said
parallel DALI channels are not supposed to be individually addressed, which is very
advantageous in many applications; for example it reduces commissioning and maintenance
cost, as any faulty or outdated load devices can be simply replaced. A known general
example of the concept of a controller device is the 8-Subnet DALI Controller 478
available from the Lighting Controls division of the company Helvar in the United
Kingdom.
[0017] Each DALI channel comprises a DALI transceiver interface, of which the interface
401 is shown as an example. The lighting control bus, here obviously a DALI bus 402,
forming the communications backbone in that channel is shown schematically as a line
coupled to the interface 401. If only load devices, such as LED drivers 403, are coupled
to the DALI bus 402, the controller device 400 may operate as a Single Central Master
without having to worry about collisions, because the load devices operate in the
slave mode and consequently only transmit on the DALI bus 402 when asked to do so
by the controller device. For the purpose of generality we may call the controller
device 400 a controller of a first kind. The concepts of forward and backward frames
are used here in the same sense as in the standards that define the DALI: a forward
frame is one transmitted from a controlling device, containing light level information
or a command, while a backward frame is a response transmitted by a device that received
a forward frame containing a query or a write memory command.
[0018] Fig. 5 illustrates schematically a DALI transceiver interface. The two wires that
constitute the physical transmission medium are coupled to the nodes 501 and 502 on
the right. A full wave rectifier 503 couples them to a DALI reception block 504 and
a DALI transmission block 505, of which the former essentially comprises a phototransmitter
and the latter a photoreceiver. They implement galvanic isolation from the processor
side, on which a phototransceiver block 506 is configured to convert light impulses
from the phototransmitter into electric impulses to the processor 507. The phototransceiver
block 506 is also configured to convert electric impulses from the processor 507 into
light impulses that the photoreceiver in the DALI transmission block 505 will use
to control a switch that couples the two wires of the DALI bus together. A DALI transceiver
interface may also comprise a bus voltage connection for providing the two wires with
their default potential difference, also known as the loop power. A bus voltage connection
is not shown in fig. 5 to maintain graphical clarity, but a controller device 400
of the kind shown schematically in fig. 4 would typically have one for each output
channel.
[0019] If galvanic isolation between the processor and the DALI bus is not required, the
voltage variations occurring between the two wires of the DALI bus (or a rectified
version thereof) can be coupled even directly to a receiving input of the processor.
Similarly a transmitting output of the processor may be even directly coupled to the
two wires of the DALI bus, or there may be only a simple voltage-converting buffer
therebetween. Yet other forms of interfaces that are applicable in the general framework
of the invention comprise e.g. wireless interfaces, in which the transmission and
reception of signals take place wirelessly over what essentially takes the role of
a lighting control bus. In this sense the concept of a "bus" can be extended to cover
also wireless interfaces; wireless transmissions on a particular frequency (and/or
possibly using a particular spread spectrum scheme) can basically be received by all
other devices that are within range and capable of operating on the same frequency
and/or the same spread spectrum scheme, so they can be thought to pass through a "bus"
that links all such devices together. Similarly to a bus, a medium access protocol
is needed in such a wireless interface in order to keep the participating devices
from making simultaneous or overlapping transmissions that would collide with each
other.
[0020] The risk of collisions on the DALI bus 402 increases if there are also controller
devices of another kind coupled to it. As examples of such other controllers of other
kind (or: controllers of a second kind) we may assume that there are sensors 404 coupled
to the DALI bus 402. We assume that the sensors 404 are basically configured to operate
as Multi Masters, which means that they are capable of executing the access priority
and collision detection routines predefined for use on the DALI bus 402.
[0021] An obvious way to adapt the operation of the controller device 400 to avoid collisions
would be to program it to operate as a Multi Master. However, Multi Master type operation
of the kind described earlier in this text requires extensive real time capability,
which in this case should be accomplished in eight parallel channels independently
of each other. Simultaneously the component costs and complicatedness of programming
should be kept at a reasonable level, and the solution for collision avoidance should
not contradict the existing standards (here: the DALI standard) of the lighting control
bus.
[0022] Fig. 6 illustrates a principle of a method for transmitting forward frames from a
controller of a first kind, such as the controller device 400 in fig. 4, on a lighting
control bus to which also controllers of a second kind are allowed to be coupled.
In the framework of fig. 4 the controllers of second kind would be the sensors 404
or other devices that can be coupled to the DALI bus 402 and that may operate as masters,
i.e. transmit on the DALI bus 402 without having to be queried by the controller device.
In fig. 6 we assume, in conformity with fig. 1 earlier and also in conformity with
the DALI standard, that there are predefined settling times between frames applied
by the controllers of second kind. In particular, in fig. 6 we assume that there are
five settling times of predefined lengths defined for the controllers that operate
as Multi Masters. The lengths of these predefined settling times are associated with
transmission priority, so that the settling time for the highest priority (Priority
0) is the shortest, and the settling time for the lowest priority (Priority 4) is
the longest.
[0023] The method illustrated in fig. 6 comprises transmitting a first forward frame 601
at a moment of time 603, and then waiting for a delay that is longer than the predefined
longest settling time between frames applied by the controllers of second kind. Only
thereafter the second forward frame 602 is transmitted at a moment of time 604. In
other words, if there was a controller of the second kind wishing to transmit a forward
frame with any priority, it would have time to do so before the controller of the
first kind begun transmitting the second forward frame 602.
[0024] On the other hand, the method involves transmitting a forward frame from a controller
of the second kind only as a response to first having observed the transmission of
a preceding forward frame on the lighting control bus. Each forward frame is transmitted
from the controller of second kind after a predefined settling time has passed since
the end of the preceding forward frame. The requirement of first observing a preceding
forward frame does not, however, mean that the controllers of second kind (i.e. the
Multi Masters) would operate in slave mode concerning their communications on the
lighting control bus. The forward frame that a controller of second kind transmits
is a true forward frame: it does not need to have anything to do with the contents
of the preceding forward frame, and particularly it does not need to be a response
to a query or command that was carried in the preceding forward frame.
[0025] Fig. 7 shows a simple practical example. The timeline marked SCM illustrates forward
frames transmitted by a Single Central Master, or a controller of first kind, whereas
the timeline marked MM illustrates forward frames transmitted by a Multi Master, or
a controller of second kind. A first forward frame 701 is transmitted by the controller
of first kind at a moment of time 702. After that the controller of first kind waits
for a delay 703 that is longer than a predefined longest settling time between frames
that is applied by the controllers of second kind, before transmitting a second forward
frame 704. In this simplified graphical representation all delays are shown as beginning
at the very end of the rectangular block that represents a frame with possible stop
bits; in practice all delays would be measured in accordance with the appropriate
standard, for example in the way illustrated in fig. 2 above for the DALI standard.
[0026] At moment 705 the controller of second kind comes up with a message that should be
transmitted on the lighting control bus in the form of a forward frame. It cannot
begin transmitting right away, because access to the bus is currently reserved by
the controller of first kind. However, the second forward frame 704 transmitted by
the controller of first kind serves in this case as the preceding frame for the controller
of second kind: as a response to having observed the transmission of this preceding
forward frame on the lighting control bus, the controller of second kind transmits
its own forward frame 706 after a predefined settling time 707 has passed since the
end of the preceding forward frame 704. It is possible that the controller of second
kind selected the predefined settling time 707 among a number of predefined settling
times in accordance with a priority of the forward frame 706 to be transmitted.
[0027] We may then briefly neglect the actual first forward frame 701 as it was introduced
above, and call the frame 704 a first forward frame, assuming that the controller
of first kind has then also a second forward frame to transmit. Although the controller
of first kind does not have the sophisticated collision detection capabilities of
a Multi Master, it is capable of detecting whether any of the controllers of second
kind transmitted a forward frame at the expiry of a predefined settling time after
the controller of first kind transmitted the first forward frame. In this case the
controller of second kind did transmit the forward frame 706 after the predefined
settling time 707. As a response to detecting this, the controller of first kind again
waits - after the transmission of the forward frame 706 from the controller of second
kind has ended - for a delay 708 that is longer than the predefined longest settling
time between frames applied by the controllers of second kind, before transmitting
what is now called the second forward frame 709. The delay 708 is preferably equal
to the delay 703, so the time to wait after the transmission of the immediately previous
forward frame on the bus has ended is the same regardless of whether said immediately
previous forward frame came from the controller of first kind itself or some controller
of second kind. Such an arrangement simplifies the operation of the timer in the Single
Central Master.
[0028] Fig. 8 illustrates another example situation, this time with two Multi Masters (in
general: controllers of the second kind) coupled to the same lighting control bus
as the Single Central Master (controller of the first kind). We also assume that in
this case at least some addressing is used on the bus, so that the Single Central
Master can send queries and/or commands to individual other devices on the bus using
an addressing scheme to indicate that other device or those other devices to which
the query or command is destined. In fig. 8 the first frame 801 that the Single Central
Master transmits contains a query to the first Multi Master (MM1), which responds
by transmitting a backward frame 802 after a delay 803. In the DALI standard, which
is used here as an example of a standard of a lighting control bus, the delay 803
between a forward frame that carried a query and the backward frame that carries a
response to the query is shorter than any delay between two forward frames on the
bus.
[0029] Following the principle mentioned earlier of keeping all inter-frame delays measured
by the timer in the Single Central Master the same, the Single Central Master waits
for a delay 804 (equal to the delays 703 and 708 above in fig. 7) before it sends
the next forward frame 805. Meanwhile, at moments 806 and 807 respectively, both the
first and second Multi Masters have independently come up with messages to be transmitted
in forward frames. Also following the principles already described, the Multi Masters
are not allowed to begin transmitting before they notice the transmission of a preceding
forward frame from the Single Central Master. We also assume that the messages that
the Multi Masters came up with at moments 806 and 807 respectively have different
priorities, with the priority in the second Multi Master (MM2) being higher.
[0030] As a response to having observed the transmission of a preceding forward frame 805
from the Single Central Master, any of the first and second Multi Masters could transmit
its forward frame. Each Multi Master has selected its respective predefined settling
time among a number of predefined settling times in accordance with a priority of
the forward frame to be transmitted. The settling time 808 selected by the second
Multi Master is shorter, so it transmits the forward frame 809 after the predefined
settling time 808 has passed since the end of the preceding forward frame 805. The
dashed rectangle shows the place on the timeline at which the first Multi Master would
have transmitted its forward frame. However, the first Multi Master applies collision
detection: before actively pulling the lighting control bus to a prevailing state
at the beginning of a transmission, it tests whether the bus is already in the prevailing
state. It is very much likely that it is, because the second Multi Master is already
transmitting. As a response to detecting this in the collision detection test the
first Multi Master aborts its current or intended transmission of forward frame and
waits for another transmission opportunity.
[0031] The next transmission opportunity comes after the predefined settling time 810 (which
the first Multi Master had selected based on a lower priority than what the second
Multi Master selected for forward frame 809) has passed since the end of the forward
frame 809, which thus now represents the concept "preceding forward frame". The first
Multi Master transmits its forward frame 811, after which the bus is idle until the
Single Central Master again transmits a forward frame at some later moment of time
(not shown in fig. 8).
[0032] If the second Multi Master had a more complicated transaction to perform on the lighting
control bus, requiring it to transmit more than one forward frame, the first Multi
Master could have to wait longer for a transmission turn of its own. Namely, if the
second Multi Master wanted to transmit another forward frame with same priority after
the forward frame 809 shown in fig. 8, it would only wait for a delay equal to the
delay 808 shown in fig. 8 before beginning the transmission of such further forward
frame. When the first Multi Master tried to transmit its forward frame as illustrated
with the reference designator 811 in fig. 8, it would again detect a collision and
abort its current or intended transmission of forward frame, and then wait for another
transmission opportunity.
[0033] The fact that any Multi Master can only send a forward frame after the Single Central
Master has first spoken naturally means that there will be moments when a Multi Master
would have something to send but it must first wait for a forward frame to come from
the Single Central Master. This is not a big disadvantage, however, because a typical
Single Central Master will make very frequent transmissions anyway, so it is unlikely
that the Multi Masters would have to wait for any prohibitively long periods. It should
be noted that even a known DALI bus with several Multi Masters coupled to it would
cause delays, because the other Multi Masters might simultaneously have forward frames
to transmit.
[0034] The system depends very much on the Single Central Master: should it fail somehow,
making it unable to transmit any forward frames, also the Multi Masters would be permanently
kept from transmitting. Even this is not any significant drawback compared to other
centrally controlled lighting systems, because a failure at the central controller
would be likely to affect the system anyway; the addition that not even the associated
Multi Masters can do anything does not make the situation any worse. Additionally
an emergency mode can be programmed in the Multi Masters, much like the one defined
in the DALI standard to account for possible failures during address allocation. Namely,
according to the DALI standard all control devices that receive a command announcing
the initialization of address allocation must remain in a no-transmission mode until
they receive a termination command, unless more than 30 minutes have passed since
the initialization command. In a similar way the Multi Masters may be programmed to
respond to a prolonged silence from the Single Central Master by entering into a mode
in which the Multi Masters can transmit forward frames without having to wait for
a preceding forward frame from the Single Central Master. After such an exceptional
freedom to transmit, the Multi Masters may be programmed to resume operation as described
above (i.e. only transmitting forward frames after an immediately preceding other
forward frame on the bus) if they receive a forward frame from the Single Central
Master.
[0035] Fig. 9 illustrates a method to be executed by a Single Central Master, or a controller
of the first kind, in the form of a state diagram. The drawing can also be read as
an illustration of a computer program comprising machine-readable instructions that,
when executed by a processor of a controller of the first kind, cause the implementation
of the corresponding method.
[0036] The controller of first kind is at state 901 whenever it does not have any message
ready that should be transmitted in a forward frame. The controller of first kind
is free to transmit forward frames at its own initiative, so the completion of a message
causes a transition to state 902, in which the controller of first kind waits for
the correct moment to transmit. Typically some kind of a transmission routine has
been predefined by programming, for example so that the controller of first kind transmits
housekeeping messages on the lighting control bus according to a schedule, so in fig.
9 we assume that it remains in state 902 until the transmission routine produces a
processor interrupt indicating a moment at which the forward frame can be transmitted.
It is also possible that the controller of first kind goes immediately on to state
903.
[0037] State 903 thus corresponds to transmitting the ("first") forward frame on the lighting
control bus, after which an immediate transition to state 904 takes place. State 904
corresponds to waiting for a delay that is longer than a predefined longest settling
time between frames applied by controllers of second kind that are coupled to the
same lighting control bus as the controller of first kind. If, during the wait in
state 904, the controller of first kind observes a transmission from another device
on the bus, it goes to state 905, in which the transmission from the other device
is received and any necessary actions are taken. The timer in the controller of first
kind is reset, so that upon the return to state 904 the wait for the next possible
transmission moment begins anew.
[0038] When the timer expires the controller of first kind is free to transmit its next
("second") forward frame on the bus. Naturally a transmission can only be made if
there is something to transmit, so the transition from state 904 goes to state 901
in fig. 9. If the second forward frame is ready for transmission, the method proceeds
immediately to state 902 and - since the expiration of the timer indicated the appropriate
moment for transmitting and produced the appropriate processor interrupt - on to state
903 for transmitting the second forward frame. The controller of first kind may circulate
through the states in the state diagram as long as it remains actively in control
of the lighting control bus.
[0039] Fig. 10 illustrates a method to be executed by a Multi Master, or a controller of
the second kind, in the form of a state diagram. The drawing can also be read as an
illustration of a computer program comprising machine-readable instructions that,
when executed by a processor of a controller of the second kind, cause the implementation
of the corresponding method.
[0040] The controller of second kind is at state 1001 whenever it does not have any message
ready that should be transmitted in a forward frame. The completion of a message causes
a transition to state 1002, in which the controller of second kind waits for the correct
moment to transmit. The controller of second kind is only allowed to transmit a forward
frame only as a response to first having observed the transmission of a preceding
forward frame on the lighting control bus. When such a preceding forward frame is
observed, typically transmitted by the controller of first kind, the controller of
second kind changes to a wait state 1003, in which it waits until a predefined settling
time has passed since the end of the preceding forward frame. The controller of second
kind may have selected said predefined settling time among a number of predefined
settling times in accordance with a priority of the forward frame to be transmitted.
[0041] When the predefined settling time has passed, the controller of second kind changes
to a transmission state 1004. Preferably it tests, before actively pulling the lighting
control bus to a prevailing state, whether the lighting control bus already is in
the prevailing state. Similar tests can be made not only before commencing the transmission
but also during transmission, each time before actively pulling the lighting control
bus to the prevailing state. As a response to detecting in the test that the lighting
control bus already is in said prevailing state, the controller of second kind aborts
the current or intended transmission of forward frame according to state 1005 and
returns to state 1003 to wait for another transmission opportunity. If the transmission
was completed without problems in state 1004, a transition to state 1001 occurs and
the procedure starts anew.
[0042] Fig. 11 illustrates a variation to the method and computer program explained above
with reference to fig. 9. The variation shown in fig. 11 is based on the assumption
that the controller of first kind (the Single Central Master) may need to transmit
two or more forward frames in succession on the lighting control bus without any of
the controllers of second kind (the Multi Masters) transmitting their forward frames
in between. This is accomplished by forbidding the controllers of second kind to use
the shortest settling time (the one associated with the highest priority), and by
programming the controller of first kind to use it instead of the previously explained
delay that was longer than the predefined longest settling time used by the controllers
of second kind.
[0043] In this description we use the designation "second forward frame" to indicate a forward
frame that the controller of first kind (i.e. the Single Central Master) wants to
transmit after a previous ("first") forward frame without any particular need to have
it transmitted before the controllers of second kind (the Multi Masters) make any
intervening transmissions. Correspondingly we use the designation "third forward frame"
to indicate a forward frame that the controller of first kind wants to transmit after
a previous ("first") forward frame with some particular need to have it transmitted
before the controllers of second kind (the Multi Masters) make any intervening transmissions.
[0044] The states 901, 902, 903, 904, and 905 in fig. 11 are essentially the same as the
correspondingly numbered states in fig. 9. As an addition there is the possibility
of returning from state 904 back to state 903 for the immediate transmission of the
next forward frame, on condition that there exists a next forward frame destined for
immediately following transmission. This forward frame may be called a third forward
frame as indicated above. In order to utilize the possibility shown in fig. 11 the
method and computer program should comprise deciding, whether the third forward frame
should be transmitted immediately after the first forward frame. As a response to
deciding that said third forward frame should be transmitted immediately after the
first forward frame, the method and computer program comprise waiting - after the
transmission of the first forward frame in state 903 has ended - in state 904 for
a delay that is shorter than a predefined shortest settling time between frames applied
by the controllers of second kind, before transmitting said third forward frame upon
return to state 903.
[0045] Fig. 12 is a schematic example of a case in which the method of fig. 11 is applied.
The controller of first kind (the Single Central Master, SCM) transmits the first
forward frame 1201. Simultaneously the first controller of second kind (the first
Multi Master, MM1) has come up, at moment 1202, with a message that should be transmitted
in a forward frame. We assume that in the priority scale ranging from 0 (highest)
to 4 (lowest), the message of the first Multi Master is of priority 2. At moment 1203
the second controller of second kind (the second Multi Master, MM2) comes up with
a priority 1 message to be transmitted in a forward frame.
[0046] After the transmission of the first forward frame 1201 has ended, the Single Central
Master waits for a delay 1204 that is shorter than a predefined shortest settling
time between frames applied by the Multi Masters, before transmitting the third forward
frame 1205. The first Multi Master had observed the transmission of the first forward
frame 1201 and taken it as the preceding forward frame on the lighting control bus,
preparing to transmit its own forward frame after the settling time corresponding
to priority 2 had passed since the end of the first forward frame 1201. This means
that the first Multi Master intends to transmit its forward frame at the moment indicated
by the first dashed rectangle on its timeline. However, the transmission of the third
forward frame 1205 comes in between, causing the first Multi Master to abort the intended
transmission and to begin waiting for the appropriate settling time anew after the
transmission of the third forward frame 1205 - which the first Multi Master now sees
as the preceding forward frame on the lighting control bus - has ended.
[0047] Meanwhile also the second Multi Master has observed the transmission of the third
forward frame 1205, which it takes as the preceding forward frame on the lighting
control bus. The second Multi Master begins waiting for the settling time corresponding
to priority 1 after the transmission of the third forward frame 1205 has ended. The
higher priority means that this settling time is shorter than that applied by the
first Multi Master, which means that the second Multi Master makes it to transmitting
its forward frame 1206 as shown in fig. 12. The first Multi Master now intended to
transmit its forward frame at the moment indicated by the second dashed rectangle
on its timeline. This time the transmission of the forward frame 1206 from the second
Multi Master comes in between, causing the first Multi Master to again abort the intended
transmission and to begin waiting for the appropriate settling time anew after the
transmission of the forward frame 1206 - which the first Multi Master now sees as
the preceding forward frame on the lighting control bus - has ended. Eventually the
first Multi Master makes it to transmitting its forward frame 1207 as shown in fig.
12.
[0048] Referring back to fig. 4, in order to make the controller device 400 transmit forward
frames on the lighting control bus (the DALI bus 402) in accordance with the explanations
above, it is most practical to store the appropriate machine-readable instructions
to the memory 405 that the processor 406 uses to store its executable programs. In
particular the timer(s) 407 that is/are configured to trigger transmissions of forward
frames are run as programmed processes. Each corresponding timer is configured to,
after the transmission of a first forward frame on one of the lighting control buses
coupled to the DALI interfaces on the right, trigger the transmission of a second
forward frame on the same lighting control bus after a delay that is longer than a
predefined lonest settling time between frames applied by the controllers of other
kind (for example the sensors 404). Similarly the timer 407 is configured to, as a
response to any of said controllers of other kind transmitting a forward frame, trigger
after the delay that is longer than a predefined longest settling time between frames
applied by said controllers of other kind.
[0049] Another programmed process executed by the processor 406 may be a message priority
evaluator that is configured to decide, whether a third forward frame should be transmitted
immediately after the first forward frame. In that case the timer 407 is configured
to, as a response to said priority evaluator deciding that said third forward frame
should be transmitted immediately after the first forward frame, trigger - after the
transmission of the first forward frame has ended - after a delay that is shorter
than a predefined shortest settling time between frames applied by the controllers
of other kind.
[0050] On each of the lighting control buses to the right the transmission of frames takes
place independently of the other lighting control buses. Therefore the timer 407 is
preferably configured to trigger transmissions of forward frames from one lighting
control bus interface independently of the occurrence of forward frames in the other
lighting control bus interfaces.
[0051] The exemplary embodiments described above do not constitute an exhaustive or limiting
description of the scope of protection defined by the appended claims, but variations
and modifications are possible. For example, in the description it has been assumed
for simplicity that all Multi Masters have equal possibilities to transmit forward
frames at priority-associated delays. One possible variation of the explained embodiments
is that some Multi Masters have more priority classes enabled than others. Also it
is possible to bind the Multi Masters' permission to transmit to some particular content
of the first forward frame transmitted by the Single Central Master, so that it is
not enough that the Single Central Master transmits a forward frame but it must transmit
a forward frame with some particular contents before the Multi Masters can start their
delay timers and prepare for their own transmissions.
1. A method for transmitting forward frames (601, 602, 701, 704, 709, 801, 805, 1201,
1205) from a controller of a first kind (400) on a lighting control bus (402) to which
also controllers of a second kind (404) are allowed to be coupled, comprising, in
the following order:
- transmitting a first forward frame (701, 801, 1201) on the lighting control bus,
- waiting for a delay (703, 708, 804) that is longer than a predefined longest settling
time between frames applied by said controllers of second kind (404), and
- transmitting a second forward frame (704, 709, 805).
2. A method according to claim 1,
characterized in that it comprises:
- detecting whether any of said controllers of second kind (404) transmitted a forward
frame at the expiry of a predefined settling time after the controller of first kind
(400) transmitted said first forward frame (701, 801, 1201), and
- as a response to detecting that some of said controllers of second kind (404) transmitted
a forward frame (706) at the expiry of a predefined settling time (707) after the
controller of first kind (400) transmitted said first forward frame, waiting - after
the transmission of the forward frame (706) from the controller of second kind (404)
has ended - for a delay (708) that is longer than a predefined longest settling time
between frames applied by said controllers of second kind (404) before transmitting
said second forward frame (709).
3. A method according to any of claims 1 or 2, comprising:
- deciding, whether a third forward frame (1205) should be transmitted immediately
after the first forward frame (1201), and
- as a response to deciding that said third forward frame (1205) should be transmitted
immediately after the first forward frame (1201), waiting - after the transmission
of the first forward frame (1201) has ended - for a delay (1204) that is shorter than
a predefined shortest settling time between frames applied by said controllers of
second kind (404) before transmitting said third forward frame (1205).
4. A method according to any of the preceding claims, wherein the transmission of forward
frames is made using frame lengths, bit timings, and bit-to-voltage-change mappings
of the DALI standard.
5. A method for transmitting forward frames from a controller of a first kind (400) and
at least one controller of a second kind (404) on a lighting control bus (402), comprising:
- applying a method according to any of the preceding claims to transmit forward frames
(601, 602, 701, 704, 709, 801, 805, 1201, 1205) from said controller of first kind,
- transmitting a forward frame (706, 809, 811, 1206, 1207) from said controller of
second kind (404) only as a response to first having observed the transmission of
a preceding forward frame (704, 805, 809, 1205, 1206) on the lighting control bus,
and
- transmitting each forward frame (706, 809, 811, 1206, 1207) from said controller
of second kind (404) after a predefined settling time (707, 808, 810) has passed since
the end of said preceding forward frame.
6. A method according to claim 5, comprising:
- at said controller of second kind (404), before actively pulling the lighting control
bus (402) to a prevailing state, testing whether the lighting control bus (402) already
is in said prevailing state, and
- as a response to detecting in the test that the lighting control bus already is
in said prevailing state, aborting (1005) the current or intended transmission of
forward frame and waiting (1002) for another transmission opportunity.
7. A method according to any of claims 5 or 6, comprising:
- at said controller of second kind (404), selecting said predefined settling time
(707, 808, 810) among a number of predefined settling times in accordance with a priority
of the forward frame (706, 809, 811, 1206, 1207) to be transmitted.
8. A controller device (400) for transmitting forward frames (601, 602, 701, 704, 709,
801, 805, 1201, 1205) on a lighting control bus (402) to which also controllers of
another kind (404) are allowed to be coupled, comprising a timer (407) configured
to trigger transmissions of said forward frames, wherein after the transmission of
a first forward frame (701, 801, 1201) on the lighting control bus (402) said timer
(407) is configured to trigger after a delay that is longer than a predefined longest
settling time between frames applied by said controllers of other kind (404).
9. A controller device according to claim 8, wherein said timer (407) is configured to,
also as a response to any of said controllers of other kind (404) transmitting a forward
frame, trigger after said delay that is longer than a predefined longest settling
time between frames applied by said controllers of other kind (404).
10. A controller device (400) according to any of claims 8 or 9, comprising a message
priority evaluator configured to decide, whether a third forward frame (1205) should
be transmitted immediately after the first forward frame (1201), wherein said timer
(407) is configured to, as a response to said message priority evaluator deciding
that said third forward frame (1205) should be transmitted immediately after the first
forward frame (1201), trigger - after the transmission of the first forward frame
(1201) has ended - after a delay (1204) that is shorter than a predefined shortest
settling time between frames applied by said controllers of other kind (404).
11. A controller device according to any of claims 8 to 10, comprising a multitude of
parallel lighting control bus interfaces (401), wherein said timer (407) is configured
to trigger transmissions of forward frames from one lighting control bus interface
(401) independently of the occurrence of forward frames in the other lighting control
bus interfaces (401).
12. A computer program for transmitting forward frames (601, 602, 701, 704, 709, 801,
805, 1201, 1205) from a controller of a first kind (400) on a lighting control bus
(402) to which also controllers of a second kind (404) are allowed to be coupled,
the computer program comprising machine-readable instructions that, when executed
by a processor (406), are configured to cause, in the following order, the execution
of:
- transmitting a first forward frame (701, 801, 1201) at a moment of time indicated
by a timer (407) in said controller of first kind (400),
- waiting for a delay (703, 708, 804) that is longer than a predefined longest settling
time between frames applied by said controllers of second kind (404), and
- transmitting a second forward frame (704, 709, 805).