Field of the invention
[0001] The invention relates to a communication system, ports of the communication system
and a method for managing a communication system, preferably to a synchronous communication
system formed as a ring network of two or more ports coupled in daisy chain fashion
to one another to allow communication.
Description of the related art
[0002] A communication system is generally known as a system that permits communication
between nodes interconnected by a transmission line. Each node can transmit information
and receive information across the transmission line. The communication system of
interconnected nodes can be organized in various topologies, such as bus, ring, star,
or tree topology or a combination thereof.
[0003] A bus topology network is generally regarded as linear. Transmissions from one node
propagate along the transmission line and are received by all other nodes connected
to that bus. A ring topology network, however, generally consists of a series of nodes
connected to one another by unidirectional transmission links to form a single, closed
loop. Examples of a ring network are described in IEEE 802.5 and Fiber Distributed
Data Interface (FDDI).
[0004] The transmission line between nodes can be either wired or wireless, for example,
copper wire, fiber optic, or wireless transmission medium for the chosen transmission
line, respectively.
[0005] A communication system, for real-time applications or for transferring synchronous
streaming data must have a low latency and a low transmission overhead. In addition
it is often necessary to synchronize clocks between nodes and to further provide a
time reference for all nodes.
[0006] US 5,907,685 discloses a method of time synchronization between network nodes based on extensive
bidirectional communication. Such a bidirectional communication causes a significant
load on the network, when done regularly in short intervals. Furthermore there is
significant computing power required to evaluate the communicated data.
Summary of the invention
[0007] The problem to be solved by the invention is to distribute a common real-time clock
over a network to a plurality of network nodes with minimal time variations between
the individual nodes. Furthermore a high precision timing synchronization should be
possible. The requirements of memory and processing power should be small.
[0008] Solutions of the problem are described in the independent claims. The dependent claims
relate to further improvements of the invention.
[0009] The invention comprises a first communication port 11 which is configured to generate
frames 60 comprising at least
- a preamble 61 for marking the beginning of a frame,
- a data field 63 and
- a time field 62.
[0010] The frames 60 comprise a predetermined number of bits. Preferably the number of bits
per frame is constant. Furthermore a transmit frame counter 13 is provided for counting
the generated frames 60. The bit value of the transmit frame counter 13 is segmented
into a predetermined number n of segments preferably having a constant size of m bits.
M may be any number, preferably between 4 and 16. M may be any number, for example
8 or 16. Preferably the size of the time field is also m bits. The individual segments
are then inserted into the time fields 62 of consecutive frames 60. Accordingly after
n frames the complete transmit frame counter 13 has been packed into frames 60 and
forwarded on the network. Preferably the frames 60 are of constant size. The n frames
16 containing the value of one transmit frame counter 13 are referred to as a set
of n frames 81. Each set of n frames 81 contains a different transmit frame counter
value. Accordingly the sets of n frames 81 are unique. These frames are assembled
by the port. A separate framer may be included in the port. Subsequently to the assembly
of the frame, by e.g. a framer, the frame is transmitted by the first communication
port 11 via a transmission line 50.
[0011] A second communication port 21 receives data from the communication line. This communication
port 21 has a frame buffer and decoder 22 for storing frames and for disassembling
the frames or at least parts thereof. When receiving data the second communication
port 21 may first synchronize on a preamble 61, if available.
[0012] The second communication port 21 according to the invention is configured for decoding
the time fields 62 of consecutive frames 60 and for reassembling the transmit frame
counter value after receiving a set of n frames. For this purpose the second communication
port 21 preferably has a receive time register 24, in which the values of the time
fields 62 of consecutive n frames 60 are transferred. After receiving a set of n frames
60 the second communication port 21 has received the full information on the transmit
frame counter 13. Thus the receive time register 24 containing the last transmitted
transmit frame counter value 13. This receive time register 24 represents a time,
herein called the received time, as the frames are of known size. The received time
is delayed against the transmitted transmit frame counter value for some time. Typically
the delay of time is n frames in addition with some internal processing delay of the
first and the second communication port and the propagation delay of the signals over
the network. Such a delay may be added to the received time to generate a precise
real time reference. In most cases this should not be necessary. For a video transmission,
for example a precise relative time reference may be sufficient, as the video signals
travel over the network and are therefore delayed for the same amount of time as the
time information signals in the time fields of frames.
[0013] Preferably the first communication port has a stable clock 15 for generating the
bits and a frame counter 13 for counting the number of generated frames 60. This clock
15 may be synchronized to a reference like a crystal oscillator or an audio or video
source. Preferably a PLL is used therein.
[0014] In addition to the transmit frame counter 13 value a time checksum value may be contained
in the time fields. Preferably such a time checksum is contained preferably in the
last of a set of n frames. This checksum is calculated over the time fields of a set
of n frames 81 or a subset thereof. The second communication port 21 would only update
its received time when a valid time checksum has been received.
[0015] In general the transmit frame counter 13 preferably counts frames 60, but it may
also count other entities. Such entities may be bits or bytes transmitted onto the
network. Even absolute or relative time intervals like seconds, milliseconds or microseconds
may be counted. For this specific case, the transmit frame counter 13 counts individual
bits, the size of the frames may vary.
[0016] The transmit frame counter 13 may be preset to any value. Specifically when starting
up communication the transmit frame counter 13 may be set to zero or to a value representing
the time of day or to any master time reference. It may also be preset during operation,
for example when there is a significant difference to the actual time of day or to
the master time reference.
[0017] Preferably the transmit frame counter 13 of the first communication port 11 is incremented
just before the first segment of the counter value is assembled into a frame. Accordingly
the transmit frame counter 13 is incremented each n frames and represents 1/n of the
frames transmitted.
[0018] In a further embodiment the transmit frame counter 13 of the first communication
port 11 is incremented n counts just before the first segment of the counter value
is assembled into a frame and the assembly of a set of n frames starts. Accordingly
the transmit frame counter 13 is incremented each n frames for n and represents the
number of the frames transmitted. Between the individual frames of a set of n frames
81 the transmit frame counter 13 should not be incremented as this would scramble
the value. If there is a transmit frame counter 13 which is incremented each frame
60, there should be a latch, the transmit time register 14 which holds the counter
value prior to assembly of the first counter value into a frame. The transmit time
register 14 value is then used for a set of n frames 81.
[0019] Preferably the time fields 62 in the frames may contain parts of a binary or BCD
encoded counter value.
[0020] To identify the first frame of a set n frames 81 there preferably is a time start
identifier 78, 79. This may be a bit or a plurality of bits at a predetermined position
in the frame. It must not be necessarily part of the time field. The time start identifier
78, 79 also may be a unique value in the time field 62. Such a unique value may also
be a coding violation. Preferably the time start identifier 78, 79 marks the first
frame of a set of n frames 81. Alternatively it may precede the first frame. As a
further alternative, the time start identifier 78, 79 may mark any predetermined frame.
[0021] A time start identifier 78, 79 is not necessarily provided. It is also possible to
identify the sequence of time fields 62, as the high order bits change slowly and
the low order bits change between sets of n frames 81. Any method of evaluation may
be used in the second communication port 21. Preferably the start of a new set of
n frames 81 may be identified after comparing the time fields 62 of at least two sets
of n frames 81. The low order bits have changed while the high order bits remain constant.
Accordingly, for the case the high order bits are transmitted first, the first time
field which has unchanged bits after a time field with changed bits identifies the
high order bits. After having identified such a field, a receive port may start writing
the time fields in a receive time register.
[0022] Dependent on the time resolution required at the second communication port 21 a receive
frame counter 23 for counting received frames may be provided. This receive frame
counter may be synchronized with the receive frame register every n frames. In addition
there may be provided a bit counter for counting individual bits. This bit counter
may be synchronized with the receive frame counter or it may only count the bits of
a frame or of a set of n frames. In any case the second communication port can derive
a higher resolution time reference by using the bit timing in conjunction with the
receive frame counter.
[0023] Preferably the second communication port 21 has a stable local clock 25 for synchronizing
its receiver on the bits transferred over the network. Preferably there is a PLL to
synchronize a local oscillator to the bits transferred over the network. This local
oscillator preferably has a higher frequency than the bit frequency.
[0024] A communication system according to the invention comprises at least a pair of communication
ports 11, 21 as described above. Preferably there are a higher number of communication
ports 11, 21.
[0025] A bus node or network node 10, 20 according to the invention comprises at least a
communication port 11 with the features of the first communication port 11 according
to claim 1 and/or a second communication port 21 according to claim 2.
[0026] An inventive method for transmitting time information over a communication system
by repeating the following steps:
- counting the number of transmitted frames,
- storing the number of transmitted frames,
- generating a set of n frames comprising at least
- a start identifier for marking the beginning of a frame,
- a data field and
- a time field containing only 1/n of the number of bits representing the stored number
of transmitted frames, while n consecutive time fields represent the stored number
of transmitted frames;
[0027] An inventive method for receiving time information over a communication system by
repeating the following steps:
- receiving a set of n frames comprising at least
- a start identifier for marking the beginning of a frame,
- a data field and
- a time field containing only 1/n of the number of bits representing a stored number
of transmitted frames, while n consecutive time fields represent the stored number
of transmitted frames;
- storing the time fields of consecutive n frames,
- assembling of a received number of transmitted frames from the n received time fields;
[0028] The invention allows easy resynchronization after a maximum of approximately 2*n
frames, typically within 2*n-1 frames, even if time reference is completely lost or
a port is connected to the network. If resynchronization has started just after the
second frame of a set of n frames has been transmitted, the second port should wait
until it can receive a full set of n frames starting with the first frame of this
set. With an optimized recognition procedure the time for resynchronization may even
reduced to n frames. In addition the overhead for transferring time information is
very low, as each frame contains only 1/n of the full time information. By the invention
and extremely precise long time synchronization may be performed. On one hand long
time synchronization may be achieved by transferring transmit frame counter values
which may also contain time of day values with high resolution. An example should
demonstrate the efficiency of the invention. In a 125 Mbit/s bus system 1 million
frames are transmitted per second. The time information is distributed over n=6 frames,
each having time fields comprising 8 bit words. Accordingly the timing information
would be 48 bits wide. A 48 bit wide transmit frame counter would overrun once a year
counting frames at the frame rate of 1 million frames per second. On the other hand
a very precise clock synchronization can be achieved by using a clock generator 25
into the second communication port 21, which synchronizes on the bits contained in
the frames transmitted by the first communication port 11. These bits are synchronized
by a clock generator 15 of the first communication port 11. Accordingly the clock
generator 25 of the second communication port 21 may run synchronously with the clock
generator 15 of the first communication port 11. The precision of this clock synchronization
is only limited by the jitter of the transmission lines of the network. It is typically
in the range of some nanoseconds.
Description of Drawings
[0029] In the following the invention will be described by way of example, without limitation
of the general inventive concept, on examples of embodiment with reference to the
drawings.
Figure 1 shows network nodes and a communication system according to be invention.
Figure 2 shows an exemplary data frame 60 according to the invention is shown.
Figure 3 shows a plurality of frames carrying time information.
[0030] In figure 1 a preferred embodiment according to the invention is shown. A first network
node 10, a second network node 20, a third network node 30 and a fourth network node
40 are connected via network lines 50 to form a network. It is obvious, that there
may be a different number of network nodes connected to the network. The minimum network
comprises the first network node 10 and the second network node 20.
[0031] The first network node 10 has a first application 18 which is exchanging data with
a second application 28 at the second network node 20. The first application 18 may
be a video source like a camera and the second application 28 may be a video sink
like a monitor.
[0032] Furthermore the first network node 10 comprises a first communication port 11. This
communication port 11 has a framer 12 for generating frames, clocked by the clock
generator 15. Furthermore a transmit frame counter 13 for counting transmitted frames
and a transmit time register 14 for storing the value of the transmit frame counter
13 each n frames are provided. The framer 12 assembles frames comprising time fields
62, wherein the time field 62 in each frame 60 contains part of the information of
the transmit frame counter 13 or the time register 14.
[0033] The second network node 20 comprises a second communication port 21. This communication
port 21 has a frame buffer and decoder for buffering and decoding received frames.
It is clocked by a clock generator 25, which is preferably synchronized on the received
frames or bits thereof. Furthermore a receive frame counter 23 is provided for counting
received frames. A receive time register 24 serves for assembling the time information
from n time fields 62 received in successive frames 60.
[0034] In figure 2 an exemplary data frame 60 according to the invention is shown. This
frame 60 comprises the field preamble 61 which identifies the beginning of a frame
and may contain additional synchronization bits. Furthermore it comprises a time field
62 containing time information derived from the transmit frame counter. The fields
63 and 64 are used for transferring synchronous data and asynchronous data, which
is also called the payload. The fields may be divided into bit groups 67. At the end
of the frame 60 control bits 65 are transmitted. These bits may contain at least a
checksum and additional information.
[0035] In figure 3 a sequence of frames according to the invention is shown. Within these
frames the time fields 70 - 77 contain time information. Time field 70 belongs to
a first set of frames. The six time fields 71 to 76 belong to a second set of frames.
The time field 77 belongs to a third set of frames. The beginning of the first set
of frames is marked by the time start identifier 78, while the beginning of the second
set of frames is marked by the time start identifier 79. The values of the time fields
71 to 76 are assembled together by a second communication port 21 into the receive
time register 80, which represents the transmit frame counter value at transmitted
by a first communication port 11.
List of reference numerals
[0036]
- 10
- first network node
- 11
- first communication port
- 12
- framer
- 13
- transmit frame counter
- 14
- transmit time register
- 15
- clock generator
- 18
- first application
- 20
- second network node
- 21
- second communication port
- 22
- frame buffer and decoder
- 23
- receive frame counter
- 24
- receive time register
- 25
- clock generator
- 28
- second application
- 30
- third network node
- 40
- fourth network node
- 50
- network lines
- 60
- data frame
- 61
- preamble
- 62
- time field
- 63
- synchronous data
- 64
- asynchronous data
- 65
- control bits
- 67
- bit groups
- 70
- time field of first set of frames
- 71 - 76
- time field of second set of frames
- 77
- time field of third set of frames
- 78
- time start identifier of second frame
- 79
- time start identifier of third frame
- 80
- receive time register
- 81
- set of n frames
1. A first communication port (11), being configured to generate frames (60) having at
least
- a preamble (61),
- a data field (63),
- a time field (62),
and said first communication port comprising a transmit frame counter (13),
wherein the value of the transmit frame counter (13) is divided into n segments, and
each segment is placed in the time field (62) of n consecutive frames.
2. A second communication port (21), being configured for decoding frames (60) having
at least
- a preamble (61),
- a data field (63),
- a time field (62),
and said second communication being configured for reassembling the value of the transmit
frame counter (13) by evaluating the time field (62) of n consecutive frames.
3. The first communication port (11) according to claim 1,
characterized by
a stable clock (15) for generating the frames, which may be synchronized to a reference
like a crystal oscillator or an audio or video source.
4. The first communication port (11) according to claim 1,
characterized by
at least one of a set of n generated frames (81) contains a time checksum for the
time fields (62).
5. The first communication port (11) according to claim 1,
characterized by
that the transmit frame counter (13) is configured for counting other entities as
bits or bytes transmitted onto the network or time intervals.
6. The first communication port (11) according to claim 1,
characterized by
that the transmit frame counter (13) may be preset to a predetermined value or a value
representing the time of day or to any master time reference.
7. The first communication port (11) according to claim 1,
characterized by
that the transmit frame counter (13) is only incremented once before the first of
a set of n consecutive frames 81 is generated.
8. The first communication port (11) according to claim 1,
characterized by
that the transmit frame counter (13) is incremented for n before the first of a set
of n consecutive frames 81 is generated.
9. The first communication port (11) according to claim 1,
characterized by
that the value of the transmit frame counter (13) is stored in a transmit time register
(14) for a set of n consecutive frames 81 and the value of the transmit time register
(14) is used for generating the time fields (62) of n consecutive frames.
10. The first communication port (11) according to claim 1,
characterized by
at least one of n generated frames (60) contains a time start identifier(78, 79),
defining the first of a set of n consecutive frames 81.
11. The second communication port (21) according to claim 2,
characterized by
being configured for identifying the first of n generated frames (60) by evaluating
changes in bits between at least two consecutive sets of n generated frames 81.
12. The second communication port (21) according to claim 2,
characterized by
a receive frame counter (23) counting received frames.
13. The second communication port (21) according to claim 2,
characterized by
a clock generator (25) for synchronizing its receiver on the bits transferred over
the network.
14. A communication system comprising at least one first communication port (11) and at
least one second communication port (21).
15. A network node (10) comprising a first communication port (11).
16. A network node (20) comprising a second communication port (21).
17. A network node (10, 20) comprising at least one of a first communication port (11)
and at least one of a second communication port (21).
18. A method for transmitting time information on a communication system by repeating
the steps:
- counting the number of transmitted frames,
- storing the number of transmitted frames,
- generating a set of n frames comprising at least
o a start identifier for marking the beginning of a frame,
o a data field and
o a time field containing only 1/n of the number of bits representing the stored number
of transmitted frames, while n consecutive time fields represent the stored number
of transmitted frames;
- transmitting the frames on the communication system.
19. A method for receiving time information on a communication system by repeating the
steps:
- receiving a set of n frames comprising at least
o a start identifier for marking the beginning of a frame,
o a data field and
o a time field containing only 1/n of the number of bits representing the stored number
of transmitted frames, while n consecutive time fields represent the stored number
of transmitted frames;
- storing the time fields of consecutive n frames,
- assembling of a received number of transmitted frames from the n received time fields.