HK1155009A - Radio communication system and transceiver - Google Patents
Radio communication system and transceiver Download PDFInfo
- Publication number
- HK1155009A HK1155009A HK11109061.2A HK11109061A HK1155009A HK 1155009 A HK1155009 A HK 1155009A HK 11109061 A HK11109061 A HK 11109061A HK 1155009 A HK1155009 A HK 1155009A
- Authority
- HK
- Hong Kong
- Prior art keywords
- transceiver
- data
- transmission
- collision
- devices
- Prior art date
Links
Description
The present application is a divisional application of an invention patent application having an application date of 2004, 8/9, application number of 200480025707.2, entitled "collision detection in a non-dominant bit radio network communication system". More specifically, the present divisional application is a divisional re-application filed on 9/8/2004 under the name of 200910006191.1 entitled "radio communication system and transceiver".
Technical Field
The present invention relates to radio communication systems and transceivers.
Background
A network of devices may be created by arranging a set of devices that communicate with each other via Radio Frequency (RF) means to transfer data between the devices. Each device may effectively communicate with every other device in the network provided that it is within the maximum communication range of each device.
In contrast to "point-to-point" systems, in which communication takes place only between two devices at the same time, the present invention can be used in "point-to-multipoint" systems. In a point-to-multipoint communication system, communication occurs simultaneously between one device and two or more other devices in a network.
A reliable "point-to-multipoint" communication system allows for the creation of shared network variables. This is a variable known to all devices in the network. For example, if one device wants to change the value of a shared network variable, it has to send a request and ensure that all devices receive and process the updated variable at the same time. If simultaneous updates cannot be made or not all other devices in the network receive the updates, then the network does not have shared network variables.
Sharing network variables allows for the creation of networks without a central controller. All necessary data regarding the operation and control of the network are known to each device in the network at the same time. This data can be updated at any time by any device in the network and ensures that all other devices update their data accordingly. This allows for simple, more flexible and cost-effective control of devices within the network when compared to a network having a central controller.
The single communication activity between each device is referred to herein as a transaction. A transaction occurs between devices (transceivers/transmitters) that transmit data to one or more transceiver/receivers of the data. The transaction also includes data sent from the transceiver/receiver to the transceiver/transmitter and to the transceiver/receiver in the network to each other.
In this context, the device that sends data for a given transaction to be shared throughout the network is referred to as a "transceiver/transmitter" and the device that receives the data returned within the transaction is referred to as a transceiver/receiver. It will be appreciated that within the same transaction, a given transceiver/receiver may also transmit an acknowledgement signal. In the next transaction, the transceiver/receiver may become a transceiver/transmitter.
When transmitting to more than one transceiver/receiver at the same time (known as broadcast or multicast), it is important to know that all transceiver/receivers have successfully received the data. If even one transceiver/receiver does not successfully receive the data (e.g., due to a bit error causing data corruption in the transceiver/receiver), all other transceiver/receivers must be notified that not all other transceiver/receivers have successfully received the data.
Such networks typically use a method of encoding the data bits to be transmitted. The coding method is chosen as a compromise between the available transmission technology and performance requirements such as data rate and sensitivity. Commonly used types of encoding include manchester encoding and bit stuffing techniques.
In conventional point-to-point communication protocols, the usual procedure is to have each device send an acknowledgement statement some time after receiving the data. This has the drawback that the sending device must know exactly the number of receiving devices within the network and know how to contact each of them. Reliable transmission of the same data segment to multiple receiving devices requires multiple transmissions of the same data, and a corresponding wait for each transmission to be acknowledged. This repeated transmission of the same data to many recipients wastes the available bandwidth of the communication medium. This approach also requires the transmitter to acquire and store data about exactly which receiving device is to receive a given transmission. This approach allows for the creation of shared network variables at the cost of unnecessary complexity and inefficient use of the available bandwidth of the communication medium.
Alternatively, point-to-multipoint transmission may be used to send data to multiple recipients simultaneously without returning any acknowledgement. This results in unreliable data transmission and the transmitter is unable to determine whether all receiving devices have successfully received the data. Unreliable data transfer means that shared network variables cannot be created.
The situation is complicated when two or more devices are out of communication range of each other. As can be appreciated, each device has its maximum transmission range (determined by design factors including, but not limited to, transmit power, receiver sensitivity, antenna type, and signal processing algorithms). Communication and synchronous communication is further complicated when some devices are out of maximum range and therefore unable to communicate with each other.
Creating a shared network variable may also be hindered by the occurrence of collisions between transmissions from different devices. Collisions in turn affect the successful transmission of data throughout the network. It is important to be able to detect the occurrence of a collision and to perform appropriate processing. Such appropriate actions may include notifying the sending device that its transmission was interrupted, and notifying other devices in the network that a collision occurred.
A conventional approach to reducing the likelihood of collisions involves monitoring the medium for a period of time prior to transmission. Each device may be delayed in its transmission for a random time period or a time period unique to each device in the network. This time can be made unique to each device, for example, by using the device address of the device (which must be unique for the device to be uniquely addressed). This can be measured in terms of the duration of a single bit, so that if several devices wish to start transmission at exactly the same time, they wait for different periods of time. The device waiting the shortest time may begin transmitting (and other devices may see such a transmission, receive the transmission, and retry their own transmission at a later time).
This approach significantly reduces the likelihood of collisions, however, it is not fail-safe and is not necessarily appropriate when multiple networks are used in which devices in different networks may use the same address.
It is an object of the present invention to provide a system and protocol for improving communication between devices in an RF multicast communication system, in particular if a collision between two or more data transmissions occurs.
Disclosure of Invention
According to a first aspect of the present invention there is provided a data frame for use in a radio frequency communications network, the data frame comprising data encoded so as to be interpreted as a collision when a device receiving the data frame has received data from another source.
According to a second aspect of the invention, there is provided a method of detecting a collision between two transmissions in a radio frequency network of a device, the method comprising:
transmitting a first data frame according to the first aspect of the invention from a first device;
transmitting a second data frame of the data frames according to the first aspect of the invention from the second device; and
while receiving the first data frame, a coded data sequence from the second data frame is detected and the resulting data sequence is identified as indicating a collision.
According to a third aspect of the present invention there is provided a radio communication system comprising at least three devices, in use a first device transmitting a first data frame according to the first aspect of the present invention and a second device transmitting a second data frame according to the first aspect of the present invention; and a third device receives the first and second data frames and, while receiving the first data frame, detects encoded data from the second data frame and identifies the resulting data sequence as indicating a collision.
According to a fourth aspect of the present invention there is provided a transceiver for use in a radio communication system comprising at least two other transceivers, a first of which, in use, transmits a first data frame in accordance with the first aspect of the present invention and a second other transceiver subsequently transmits a second data frame in accordance with the first aspect of the present invention, in use, upon receipt of encoded data from the second data frame whilst receiving the first data frame, the resulting data sequence being identified as indicating a collision.
According to a fifth aspect of the present invention there is provided a communications protocol for use in a radio frequency network of devices, the protocol having a frame comprising:
a first time slot for transmitting data;
a second time slot for transmitting the first acknowledgement status after the first time slot;
a third time slot for transmitting a second acknowledgement status after the second time slot; and
a fourth time slot for transmitting a collision indication after the third time slot.
According to a sixth aspect of the present invention there is provided a radio communication system comprising a transceiver/transmitter and at least two transceiver/receivers, wherein the transceiver/transmitter transmits data to the transceiver/receivers in a first time slot, and wherein upon receipt of the data, each transceiver/receiver returns a first acknowledgement state in a second time slot after the first time slot, a second acknowledgement state in a third time slot after the second time slot, or a collision acknowledgement in a fourth time slot.
According to a seventh aspect of the present invention there is provided a transceiver/receiver for use in a radio communication system comprising at least one transceiver/transmitter and at least one other transceiver/receiver, in use, upon receiving a data packet from said transceiver/transmitter in a first time slot, the transceiver/receiver transmits a first acknowledgement state in a second time slot after the first time slot, transmits a second acknowledgement state in a third time slot after the second time slot, or transmits a collision acknowledgement state in a fourth time slot after the third time slot.
According to an eighth aspect of the present invention there is provided a transceiver/transmitter for use in a communication system comprising at least one other transceiver/receiver, wherein in use the transceiver/transmitter transmits a data packet to the at least one transceiver/receiver in a first time slot and receives a first acknowledgement state from one or more of the transceiver/receivers in a second time slot after the first time slot, receives a second acknowledgement state from one or more of the transceiver/receivers in a third time slot after the second time slot or receives a collision acknowledgement state from one or more of the transceiver/receivers in a fourth time slot after the third time slot.
According to a ninth aspect of the present invention there is provided a communication protocol for use in a radio frequency network of devices, the protocol having a frame comprising a first time slot for transmitting data, a second time slot after the first time slot for indicating a forward flag, and a third time slot after the second time slot for forwarding data transmitted in the first time slot, and a fourth time slot after the third time slot for allowing acknowledgement of collisions between two or more transmissions.
According to a tenth aspect of the present invention there is provided a radio communication system comprising a first transceiver, a second transceiver and a repeater, the first and second transceivers being spaced apart from each other by a distance greater than at least one of their respective maximum transmission ranges, and the repeater being located intermediate the first and second transceivers, wherein upon receiving data from one of the first or second transceivers in a first time slot, the repeater transmits a repeater flag in a second time slot and then transmits data received in the first time slot in a third time slot.
According to an eleventh aspect of the present invention there is provided a repeater for use in a radio communication system comprising at least two transceivers, the at least two transceivers being spaced from each other by a distance greater than at least one of their respective transmission ranges, the repeater being interposed, in use, between the at least two transceivers, wherein upon receipt of data in a first time slot, the repeater transmits a repeat flag in a second time slot, transmits data received in the first time slot in a third time slot, and subsequently transmits a collision acknowledgement in a fourth time slot if a collision occurs between two or more transmissions.
According to a twelfth aspect of the present invention there is provided a transceiver for use in a radio communication system comprising at least one other transceiver and a repeater, the transceiver and the at least one other transceiver being spaced apart from each other by a distance greater than at least one of their respective transmission ranges, in use, the repeater being interposed between the transceiver and the at least one other transceiver, wherein upon receiving a repeat flag from the repeater in a second time slot, the transceiver suspends further action until the transceiver receives from the repeater in a third time slot data originally transmitted by the at least one other transceiver in a first time slot prior to the second time slot.
According to a thirteenth aspect of the present invention there is provided a radio communication system comprising at least a first transceiver, a second transceiver and a repeater, the first transceiver and the second transceiver being separated by a distance greater than the maximum transmission range of at least one of the transceivers, the repeater being disposed intermediate the first and second transceivers such that upon receiving a data transmission from the first transceiver, the repeater repeats the data transmission from the first transceiver, wherein, upon receiving a data transmission from the second transceiver before the repeater repeats the data transmission from the first transceiver, the repeater transmits a data sequence instructing each transceiver to ignore ongoing transmissions.
The system and protocol of the present invention has many uses, including controlling home, industrial, and office appliance applications.
Drawings
Fig. 1 shows a data frame structure according to the present invention;
FIG. 2A shows a schematic example of three devices in a network, a first device transmitting the data packet of FIG. 1;
FIG. 2B shows an illustrative example of a second device transmitting the data packet of FIG. 1 and causing a collision;
FIG. 2C is a timing diagram of the data packets transmitted in FIGS. 2A and 2B;
FIG. 3 shows network devices A-H distributed among these networks 1-3;
FIG. 4 illustrates a network architecture in accordance with a preferred embodiment of the present invention;
FIG. 5 illustrates a network protocol model for use in the context of the present invention;
fig. 6 illustrates a frame structure according to a preferred embodiment of the present invention;
fig. 7 shows a repeater and two transceivers deployed in a network according to the invention;
FIG. 8 shows a frame structure for use in the configuration of FIG. 7;
fig. 9 shows a preferred structure of a transceiver apparatus used in the present invention; and
fig. 10 shows a partial ISO7 layer model in which certain functions of the transceiver device of fig. 9 are performed.
Detailed Description
According to one aspect of the invention, any collisions that occur will be detected using the encoding of data frames transmitted by devices within the network.
There are two possible conflicts. The first is between two devices that are within range of each other, starting to transmit data at the same time for some reason. While various conventional avoidance methodology techniques are used, such as monitoring the media prior to transmission and interleaving subsequent data transmissions of the devices according to the device address of each device, collisions may still occur. In this case, the data transmissions may overlap each other in time.
Another type of collision, and one that is more likely to occur, is where a device needs to send data to other devices distributed over several separate networks. For example, on two of these networks, some devices may be close to each other (even if located in different logical networks), while others may be out of range of each other if physically located on opposite sides of their respective networks.
This arrangement has a higher probability of collision occurring because multiple devices share the same address (even on different networks) and are thus able to start their respective transmissions simultaneously. Furthermore, since some devices may be out of range of each other, it is more difficult to detect that a collision has occurred because the data transmissions from the respective devices will not directly overlap. However, in these cases, a device located between the two extreme devices, i.e. a device within range of both devices, will detect a collision during reception, and this fact is advantageous for handling the collision.
Returning to the first case, the present invention solves the problem of collisions between transmissions of two devices within range of each other in the following manner.
According to one aspect of the invention, each data frame transmitted by a device includes a specially encoded portion, preferably at or near its beginning, which would be interpreted as a collision when received by a device that has received another transmission.
Fig. 1 shows an exemplary structure of a frame 10 comprising a data part 11, a confirmation part 12 and an encoding part 13. The example frame 10 also includes an "end of data" marker 14.
The frame structure may be used in an exemplary network as shown in fig. 2A, 2B. In this example, as shown in fig. 2A, device a will transmit a data frame 10 that includes an encoded portion 13 and a data portion 11 to be received by device C. In this case, device C has not received another transmission and, upon receiving the first data frame 10 from device a, will ignore the encoding portion 13 and continue processing the data 11 in the data frame 10. If for some reason during the transmission of a data frame 10 device B starts to send a corresponding data frame 10 'to device C, as shown in fig. 2B, device C suddenly detects the coded portion 13' from data frame 10 'and since it has received data frame 10 it will interpret the coded portion 13' as a collision. A timing diagram illustrating this situation is shown in fig. 2C.
Once a collision is detected, device C continues to receive the colliding data frames until it can detect the end of data marker 14' for the second transmission. At this point, device C will send a collision acknowledge indication to device B, which informs device B that the data transmission has been corrupted and that the data packet should be retransmitted. Device a has not received any acknowledgement signal from device C when its transmission is complete (because device C is also continuing to receive data transmissions from device B), it treats this as a dropped packet and will know that it will need to resend its transmission.
The example described above assumes that the transmission of device B is completed after the transmission of device a, however, in the case where device a transmits a data frame 10 that is much longer than the data frame of device B, then device C will detect the end of data marker from the transmission of device a and device a will receive the collision acknowledgement signal. In this case, device B will not receive any acknowledgement signal and will try to retransmit its data later, assuming that its data packet is discarded.
In an unlikely situation, both device a and device B start active transmissions simultaneously (at about the symbol's worth)1/4Or less), one of the following three results will occur.
The data sent by a in two transmissions will collide and in any case device C will eventually detect a collision. This is because there is usually enough difference in the two data streams transmitted by the two devices, which will be understood by device C as a collision. However, this relies on the existence of sufficiently large data differences, which cannot always be guaranteed.
B data from two packets will collide, but device C will not detect the collision (e.g. because there is not enough data difference between the two transmissions for a decisive decision of collision), however, the collision will result in sufficient disruption of the data flow, so that device C responds with a negative acknowledgement when the last of the two data transmissions is completed.
If both devices a and B send data streams of exactly the same length, both devices a and B will receive a negative acknowledgement from device C and will retry their respective transmissions later. However, if the packet lengths of devices a and B are different, the device sending the shorter transmission will wait for an acknowledgement signal from device C while the other device is still transmitting. Since the first device cannot get any acknowledgement signal, it will assume that its packet was dropped and will attempt to retransmit its data at a later time. A device sending a longer transmission will eventually either receive a negative acknowledgement (if device C is able to detect data corruption and detect an end of data marker) or if device C does not detect an end of data marker, device C will not acknowledge at all, the transmitting device will thus assume that its packet was dropped and will retry its transmission later.
C if both transmissions send exactly the same data at exactly the same time (in practice very unlikely), then both transmissions will be detected by device C as a single transmission and will respond to devices a and B with a positive acknowledgement, while each device will assume that its data has been successfully sent and received, which is true.
An exemplary encoding system that may be used for collision detection is as follows:
the 0 bit will be encoded as an OFF, ON pair, and
a 1 bit will be encoded as an ON, OFF pair.
Thus, a collision between 0 and 1 data bits will be detected as ON, ON. For example, a collision of a single bit followed by a normal data bit; ON, OFF will indicate a single bit collision followed by bit 1. A collision of a number of consecutive bits followed by a normal data bit, ON, OFF, ON will indicate two colliding bits followed by a 0 bit.
It will be appreciated that a detectable collision will always result in reception of an ON, ON pair. This is a violation (partitioning) of the manchester coding system that can only encode bits 0 and 1 as described above.
As can be appreciated, a frame will start with a start code and an end code will mark the frame. This can be done by using a manchester code violation. In this case, the following fact is utilized:
-a code violation (ON, ON) followed by a data bit (ON, OFF or OFF, ON) indicates a collision;
a code violation (ON, ON) followed by a number of collisions (a number of ONs, ON) is still a collision.
However, in case of a coding violation (ON, ON) followed by another special violation (OFF ), this will never happen due to a collision or due to a collision followed by a valid data bit. In this case, the sequence ON, ON, OFF, OFF is used as lead-in. If this is detected, the receiver recognizes this as a marker indicating a special tag embedded in the data stream being transmitted. If the sequence is followed by an OFF, ON pair, which represents the start of a frame. If the sequence is followed by ON, OFF, it represents the end of the frame.
The sequence is as follows:
ON, ON, OFF, OFF, OFF, OFF and ON, ON, OFF, OFF, ON, ON are illegal.
According to another feature of the invention, which is particularly useful for updating other devices in the network or in the distributed network, is the feature that the receiving device (C) transmits a signal as soon as it detects an initial collision between two data frames transmitted by the devices a and B. This signal will be interpreted by other devices within range of device C as a collision and these devices will in turn send the same signal to the devices within their respective ranges. In this way all devices within the network or distributed network range will be informed that a conflict has occurred somewhere in the network, which devices may even be physically out of range of the device where the conflict first occurred.
In fact, device C, upon detecting an initial collision between the transmissions of devices a and B, will stop receiving for a short period of time, send a long burst that enables the collision to be detected in the other devices, and then resume its receiving function. When device C detects a collision, the data detection after the collision is interrupted, and the other information device C tries to detect from the point of view of the collision detection onwards is the end of frame marker. It should be understood that the end-of-frame marker may not always be identifiable in every case, however, device C will attempt to locate this marker.
There is less likelihood that during a transmission where a long burst collision signal is sent by device C, an end of data marker will be sent by device a or B (which was the last transmission to end) and missed by device C. In this case, the transmission will not be acknowledged and will be considered as a dropped packet by the device sending the packet, and each device will attempt to retransmit the data at a later stage.
Fig. 3 shows a typical example of three networks, which when separated, mostly operate in close proximity to each other. Network 1 consists of devices A, B, C and D, while network 2 consists of devices E and F. The network 3 is composed of devices G and H. As described above, if a collision occurs at device C from transmissions initiated by devices a and B, device C will send a colliding signal to be received by devices D and E, because D and E will be within range of device C, however, device F in network 2 and G and H in network 3 cannot receive this signal because they are out of range of device C. According to the invention, since the collision signal from device C is received by device D, once device D receives the collision signal from device C, it will instead transmit a similar collision signal that can be detected by devices F and E. Similarly, device E will also detect a collision signal from device C because device E is within range of device C and will send its own collision signal that will also be received by devices G and H. In this way, the collision signal propagates throughout the network until all devices within a network/networks have been informed that an initial collision occurred at device C in network 1.
The principles of the present invention will now be described in the context of a particular network architecture that is the subject of two co-pending applications.
A typical network architecture is shown in fig. 4, where a network 200 is formed by nodes 1, 2 and 3, the nodes 1, 2 and 3 being transceiver devices and being operable as transmitters and/or receivers in a given communication transaction. The network 200 may communicate with other networks 20 through a gateway 210.
The protocol design of the present invention is based on the ISO7 layer model and some terms are the same as used by ISO. The protocol used in the present invention is connectionless, meaning that once a single data transfer has occurred, it is undesirable to have other related data transfers before or after it.
The protocol model of the present invention is based on the ISO7 layer model and is shown in fig. 5. For applications distributed over two nodes, each protocol layer has a virtual connection to a peer layer within the other node. As can be seen, each layer gets the data provided by the previous layer, processes it as a data unit and adds its own Protocol Control Information (PCI) field. At each layer, a Protocol Data Unit (PDU) is either data or a packet provided by the next higher layer. The name of a PDU is preceded by the layer to which it applies (e.g., an SPDU is a session PDU).
The physical layer relates to the mechanical and electrical network interfaces in ISO systems. In the system of the present invention, the physical layer refers to hardware and firmware elements used to transmit and receive bits over the communication medium.
In ISO systems, the link layer is used for data link control (e.g., framing, data transparency, error control). In the present invention, the link layer is used to divide bytes into bits, bit stuffing (if needed), framing, collision detection, prioritization, error detection, positive/negative acknowledgement generation, checking, forwarding and retransmission.
The network layer in the ISO system is used for network routing, addressing, call setup and clearing, whereas in the present invention, the network layer is used for network routing, addressing, transaction setup and clearing.
In ISO systems, the transport layer is used for end-to-end message transport, connection management, error control, segmentation and flow control. The transport layer is not used in the context of the present invention.
The session layer in the ISO system is used for dialog and synchronization control of application entities, but is not used in the context of the present invention.
The presentation layer is used in the ISO system for transport of syntax negotiations and data presentation transformations, whereas in the context of the present invention the presentation layer is used for optional encryption of application data.
The application layer in the ISO system is used for file transfer, access management, document and message exchange, job transfer and manipulation, whereas in the context of the present invention, the application layer supports sending and receiving application data.
Finally, the user application layer is used not only in ISO but also in the context of the present invention for any need to implement a specific function or behavior.
The present invention has features that mainly belong to the link layer.
In the protocol of the present invention, the usage can optionally consist of primary and secondary bits. If two devices transmit primary and secondary bits at the same time, then the receiver and transmitter (monitoring their own transmissions) will only detect the primary bits. This process is described in a co-pending patent application. However, generally speaking, the protocol will not use primary and secondary bits, and collisions must be handled using the method of the present invention as described previously.
Media access is obtained by first monitoring the medium by the transmitter for a period of time that is different for each device in the network, and if no existing transmission is detected, the transmitter will attempt to request media access by sending a preamble stream. Such a preamble starts with at least one detectable bit. The requirement for media access defines the start of a transaction. The transaction contains all data transfers, acknowledgements and forwarding of data. All nodes in the network must continuously monitor the medium and if they detect that a transaction has occurred, they will delay any attempt to require medium access until the current transaction is complete.
The transaction is asynchronous: they may occur at any time and the time difference from one transaction to the start of the next transaction is not necessarily an integer number of bit periods.
In this application, a transaction is defined specifically as a continuous period divided into several subslots containing different types of data. A transaction begins with a preamble for a set period of time followed by specific data to be transmitted from a transceiver/transmitter to two or more transceiver/receivers. The time slots during data transmission are variable in length and contain portions that serve as frame check sequences. Following the data transmission are two time slots during which positive and negative acknowledgements are sent by the transceiver/receiver, followed by a time slot during which a collision indication is sent by the transceiver/receiver as described above. Fig. 6 shows the structure of the frame.
As described above, transactions are asynchronous and may be initiated at any time. However, once started, the transaction has a time-based structure. Specific markers within the transaction are used to show the beginning and end of the variable length data portion. The time slots during which positive and negative acknowledgements and collision indications are sent are fixed in time. By careful encoding and redundant encoding of data into these time slots, positive acknowledgements transmitted by one or more transceiver/receivers and negative acknowledgements transmitted by one or more transceiver/receivers can be communicated. All devices involved in the transaction will see both of these acknowledgement slots.
A transceiver/receiver desiring a positive acknowledgement will transmit a special code during the positive acknowledgement time slot and will receive during the negative acknowledgement time slot.
Similarly, a transceiver/receiver desiring a negative acknowledgement will receive during a positive acknowledgement time slot and will transmit a special code during a negative acknowledgement time slot.
The fact that the devices monitor the time slots in which they have not transmitted ensures that at the end of two acknowledgement time slots, each device either detects a positive acknowledgement, a negative acknowledgement or both, and is therefore able to calculate the overall acknowledgement status of the network.
For example, a transceiver/receiver that sends a positive acknowledgement will be able to detect some other transceiver/receiver that sends a negative acknowledgement.
At the end of the transaction, all devices do not know how many positive or negative acknowledgements there are, and they know there are some positive acknowledgements and some negative acknowledgements.
If there are any negative acknowledgements at all during the transaction, all transceivers/receivers are aware of this and will discard the received data. Similarly, the transceiver/transmitter also knows this and will attempt to rerun the transaction.
The positive acknowledgement is generated as follows. Once the data is received, the node will generate a positive acknowledgement only when:
-the data slot has been checked for its embedded frame check sequence and found to be valid; and
-any addressing information present within a data slot matches addressing information used by the device; and
-no collision is detected.
Each device transceiver typically contains at least two different types of addresses, as follows:
-a unit address allowing the device to be uniquely addressed individually; and
-a multicast address allowing simultaneous addressing of those devices in the network to update the shared network variable.
Additionally, the apparatus may optionally further comprise:
network address, allowing the physical device to be grouped by the logical network in which it is located.
Other variations are possible, but these three address types are basic and serve as the basis for other more complex addressing schemes.
The procedures involved in negative acknowledgement generation are as follows. The receiving device (transceiver/receiver) generates a negative acknowledgement only if the data slot is corrupted, as determined by checking the received data with the embedded frame check sequence.
When the device determines that the data slot is corrupted, it is further checked that any fields within the data slot are of no use.
Acceptance of data transmitted by a transceiver/transmitter by a transceiver/receiver can only be made if the conditions for generating a positive acknowledgement are met and if no other transceiver/receiver has generated a negative acknowledgement. This ensures that all transceiver/receivers receive a given message only once. For point-to-multipoint messages this may mean that the message is discarded by the transceiver/receiver even if the message appears valid and positively acknowledged.
The foregoing describes a general environment in which the present invention can be utilized. The above described sequence can only be used when each device is within range of the other devices. It will be appreciated that each device will have a maximum transmission range beyond which it cannot communicate with other devices. The maximum transmission range is determined by design factors including, but not limited to, transmit power, receiver sensitivity, antenna type, and signal processing algorithms. For shorter range (unlicensed) devices, the range is typically from tens to at most hundreds of meters. A typical maximum transmission distance for such a device is in the order of 20 meters. Difficulties may be encountered in performing the above-described process in situations where one or more devices are outside the maximum transmission range of another device (i.e., cannot communicate directly with that device). Especially in the case where the transceiver/transmitter transmits data and some or all of the other transceiver/receivers will not receive data from that particular transceiver/transmitter, thereby making it impossible to update the shared network variable.
According to the invention, the above-mentioned protocol is modified to allow retransmission of data between devices in order to extend the effective transmission range of the devices used in the network. The modified protocol is used in conjunction with repeaters that are located approximately at the geometric center of the devices in the network and act as relays between devices distributed outside their normal transmission range.
Fig. 7 shows an example configuration of devices X and Y in the network. Devices X and Y are separated by a distance greater than each of their respective transmission ranges. Thus, if device X wants to send data as described above, device Y will not be able to receive such data and will not be able to know how to proceed as described above. However, in accordance with the present invention, the forwarding device 30 is placed between the devices X and Y and acts as a repeater. Thus, if device X sends data, the forwarding device 30 receives this transmission from device X and forwards the data so that device Y can receive the data for device X. When device Y sends its acknowledgement, this will be received by the repeater. The repeater retransmits all acknowledgment status that can be received by both devices X and Y. Both devices then know that the information is forwarded by the repeater and in turn is accepted or rejected by all devices within range of the repeater. The devices X and Y can then continue in the normal manner.
Of course, for example, the device Y need not be a transceiver/receiver but may be a transceiver/transmitter. In this case, however, device Y will send information to the network because device X (e.g., transceiver/receiver) that is out of range of device Y is unable to receive the transmitted data. In addition, a forwarding device 30 disposed between device X and device Y will receive data sent by device Y and forward such data so that device X and any other devices within range of forwarding device 30 receive the forwarding.
It should be understood that the forwarding device 30 need not be placed directly between two devices, but may be placed in any suitable location that is accessible to devices within the network.
In some cases, it is possible that device X has sufficient range to reach device Y, however device Y, which has a shorter transmission range than device X, cannot communicate with device X. In this case, the forwarding device 30 may be located closer to device Y than device X to allow transmissions from device Y to reach the forwarding device 30, and the message may then be forwarded and sent to device X.
In fact, it is advantageous to construct all devices in the network in the same way. This means that each device, whether acting as a transceiver/transmitter, transceiver/receiver or repeater device, is constructed in the same manner and is capable of independently performing their intended functions. This provides significant savings in complexity and manufacturing costs, since only one device needs to be manufactured.
In use, if the device acts as a repeater, upon receiving the information in the first frame (see fig. 6), the repeater will immediately send a repeat flag in the new second time slot and then repeat the data received in the first time slot in the new third time slot. The network then functions normally as described above, with the devices acting as transceivers/receivers that have received the forwarded information then continuing to acknowledge the successful or unsuccessful receipt of those data as discussed above, and the forwarder will issue a final overall forwarding status to inform all devices in the network of the success or failure of the forwarded data.
The modified protocol frame is shown in fig. 8. The differences between the modified forward tagged transaction of fig. 8 and the non-forward tagged transaction of fig. 6 are clearly shown in comparison to the frame of fig. 6. In particular, there is a first time slot provided for data transmission in both transaction frames, whereas in the forwarding tag frame of fig. 8, a second time slot is provided for transmission of the forwarding tag flag. A third time slot is provided in which data transmitted in the first time slot is to be forwarded. The frame structure then continues in the same way as the frame structure of fig. 6. In particular, an acknowledgement slot is provided to include a first sub-slot for transmitting a positive acknowledgement, a second sub-slot for transmitting a negative acknowledgement, and a third sub-slot for transmitting a collision indication. In addition, in the forward tag frame of fig. 8, additional time slots are provided for transmitting the forward status, providing confirmation to all devices that the transmission has been forwarded.
The situation described above relates to an even more complex situation in which the transponders may be in the fact that some devices may start transmitting at the same time. When all devices are within range of each other, collisions are typically avoided by having each device monitor the media for a unique period of time before attempting to transmit. Collisions may still occur when devices have the same delay period for some reason (e.g., because they are in different networks but within range of each other). In this case, it is possible for some devices in the network to detect collisions, but other devices have a sufficiently large range that they cannot detect collisions. Those devices that detect a collision can notify that a collision occurred within their acknowledgement slot. However, this approach may become unreliable in certain situations. To improve the reliability of collision detection and notification, collisions are propagated by all devices that detect collisions. This propagation of collisions through devices within the network ensures that the knowledge of collisions is quickly disseminated.
In the case of a forwarding device, there is some delay between the sending device and another device receiving the transmission. During this delay time, it is possible to start a transmission from another device that is out of range of the original transmitting device. In this case the repeater simply transmits the collision propagation as described above and transmits the collision indication as part of the subsequent acknowledgement slot if possible. Once the repeater has initiated a transmission, no collision can be detected, but other devices within range can do so and notify the repeater with the collision indication portion of the acknowledgment slot.
For example, referring to fig. 7, if device X starts transmitting, there will be a delay between the time that forwarding device 30 receives a transmission by device X and the time that it forwards a transmission that will be received by device Y. During this time, device Y may begin sending its own data, which may cause a collision with the transmission of device X before forwarding device 30 begins forwarding that transmission. Forwarding device 30 detects and propagates this collision.
In short, the foregoing describes the detection of collisions by any device and the deliberate transmission of sequences that appear to other devices as collisions. This causes the detected collision to propagate through the network. The receiving device that has propagated the collision waits until the end of the transmission. If they are able, they refer back to the transmitting device for a collision using the collision indication field of the acknowledgement (fourth) slot. In this way, the transmitting device knows that a collision has occurred and can retransmit properly. If they are not able to refer back to the sending device for the collision, the receiving device does not send any acknowledgement at all. In any event, the receiving devices will know that the collision (either because they detected the original collision or because they detected a propagated collision). Similarly, the transmitting devices know that the transmission was unsuccessful because they either get a specific indication as such or do not get an acknowledgement at all. This proximity is extended by the transponder.
This further improvement includes monitoring the media when any transmission begins for a different period of time from one device to another. This helps to reduce the likelihood of collisions occurring. The amount of time to be delayed is typically an integer multiple of the time it takes to transmit a single bit. This is the collision avoidance period. By making this period unique to each device in the network, collisions never occur in theory. This is most conveniently done, for example, by using the unique address of the device, scaled by the duration of e.g. a bit, as the time to wait when monitoring the medium. Alternatively, the delay may be increased with each successive collision detected. If too many consecutive collisions are detected (e.g., a preset threshold number is exceeded), the transmission attempt is cancelled and the operator is notified.
Thus, the only time (theoretically) when a collision may occur is when both devices use the same delay period. This situation may occur if several different networks are within range of each other (known as the "neighboring room" problem as discussed above) and is resolved using the collision propagation method of the present invention.
As discussed above, it is advantageous to construct all devices in the network in virtually the same manner. This means that each device, whether it acts as a transceiver/transmitter, transceiver/receiver or repeater device, will be constructed in the same way and be able to perform their desired functions respectively. This provides significant savings in complexity and manufacturing costs, as only one type of device needs to be manufactured.
A preferred implementation of the transceiver device 100 uses a radio receiver, a radio transmitter and a microprocessor. These first two items may optionally be combined into a transmitter/receiver as shown in fig. 9, which fig. 9 shows a device 100 comprising a microprocessor 110 and a transmitter/receiver 120. The transmitter/receiver 120 transmits and receives data through the antenna 130.
It will be appreciated that the use of a microprocessor is not mandatory. For example, the protocol may be implemented in an application specific integrated circuit, a programmable logic device, or a programmable gate array. The use of a microprocessor is convenient because it allows for an easily modifiable software implementation and reduces the overall component count. However, software implementations are only suitable for low to medium data rates.
The function of the transmitter/receiver 120 is to receive or transmit information. The choice of transmitter/receiver will be determined by a range of factors including (but not limited to):
a. a regulatory environment for a market in which products are to be sold.
Each country has rules that determine factors including the allowed frequency, transmit power level and bandwidth. Transmitters/receivers suitable for use in certain countries may not be compliant in other countries.
For products with wide distribution requirements across countries, it may be necessary to select several different transceivers appropriate for each country.
b. Power consumption, along with any other considerations that determine the amount of power available.
For example, a transmitter/receiver with high power consumption may not be suitable for battery operation.
c. The time it takes for the transmitter/receiver to switch between receive and transmit modes.
In the communication protocol of the present invention, the time to switch between receiving and transmitting is important because the protocol contains a fixed set of time slices. A time slice may need to be received or sent depending on the total transactions performed.
The time to switch between receiving and transmitting constitutes overhead (dead time). The result of the long switching time is wasted bandwidth.
d. The type of interface.
There are many transmitter/receiver types available. The type of digital data input and output provided gives the simplest interface with the microprocessor.
e. The data rate.
The transmitter/receiver needs to support a data rate that is suitable for all product requirements. This data rate can be anywhere between very low and very high.
f. Physical size, and amount of available space.
g. And (4) cost.
h. The design effort.
At a minimum, the transmitter/receiver needs to:
a. sending a data input for use by the microprocessor to place a communication state on the wireless medium;
b. receiving a data output for use by the transceiver to indicate to the microprocessor the status of the wireless medium; and
c. a control input used by the microprocessor to select a receive or transmit mode of operation of the transmitter/receiver.
The control input may be between very simple and very complex. In the simplest extreme case, it is used to select between reception and transmission. Some transmitters/receivers support a low power "sleep" mode. Others allow complex setup and configuration for transmitter/receiver operational behavior.
The type of control input is not critical to the protocol.
Some suitable transmitter/receivers include RFM ASH series TR1000 to TR3100, Chipcon CC1000 and Nordic NRFs 401, NRF 403.
The microprocessor 110 is used to implement a communication protocol, utilize the transmitter/receiver as a means to place and receive communication status on and from the wireless medium.
The type and selection of the microprocessor is not critical as long as it can perform operations with precise timing. The degree of accuracy need only be sufficient to avoid bit errors in the communication protocol.
The protocol is preferably implemented in a bit-oriented manner, as this allows the point at which a time slice starts to be easily identified.
The microprocessor is responsible for performing at least some of the following functions:
a. data encoding and decoding schemes for transmission and reception, such as manchester encoding;
b. recovery of the transmit clock in the receiver-e.g. by synchronization to the preamble;
c. detecting a conflict;
d. creating each time slice and the appropriate transmission or reception during that time slice to exchange the relevant acknowledgement information;
e. implementing an error detection scheme that may be used by a receiving device to determine whether a received transmission is in error;
f. implementing an error correction scheme that can be used by a receiving device to correct a certain number of reception errors during transmission; and
g. a forwarder function is added which can be used to change the transaction structure to allow forwarding of information packets for the purpose of extending the range.
As previously mentioned, a common method for describing functionality used in communication protocols is the ISO7 layer model. While a software architecture based on such a model is not mandatory, its use simplifies the overall design. With this model, the functions implemented in the bottom few layers are shown in fig. 10.
The microprocessor hardware provides the electrical interface (physical layer) and the microprocessor software performs all higher-level functions.
In particular, the software MAC-B part of the link layer is responsible for all time-critical functions of data transmission and reception, including at least some of the following:
a. initiating a new transmission (including the generation of any preamble);
b. transmitting data bits;
c. sending a frame marker;
d. starting to receive;
e. synchronization to the transmitted data stream and clock recovery;
f. receiving and decoding data bits;
g. receiving and decoding a frame marker;
h. notifying of the conflict;
i. starting each time slice; and
j. data bits within a transmission and reception time slice.
The software MAC-F part of the link layer is not so time critical. It is responsible for higher layer message-oriented processing, including at least some of the following:
a. constructing a packet from the received data bits;
b. checking a packet error;
c. determining when to acknowledge, and the type of acknowledgement to be generated (using the time slice service of MAC-B);
(optional) scheduling forwarding operations for the transmission based on the packet structure;
e. initiating transmission of a new packet;
f. generating a packet error check sequence;
g. transmitting packets, each time a bit is transmitted;
h. checks for acknowledgements and collisions and determines if a packet should be resent and when the retransmission should occur.
Many different microprocessors are available. There are some special available hardware functions that have eliminated some processor load for time critical functions such as time interval generation, pulse generation, etc. While these hardware functions are not mandatory, their use greatly simplifies software design and coding.
Some microprocessors suitable for use in the present invention include the Texas instruments MSP430 series, the Atmel Atmega series, and the Hitachi H8/3644 series.
A useful feature of one aspect of the invention relates to the accurate detection of the end of a variable length time slice containing data transmitted by a transceiver/transmitter.
It is desirable for the communication medium to require some form of balanced transmission to avoid accumulation of dc offsets. This balance requires that the number of ON and OFF states ON the medium be equal when considering passing through a medium to long time period.
There are many coding schemes that can be used to convert data bits to states on the media. These schemes vary according to the bandwidth they consume on the medium and the ease of recovering the transmitted data within the receiver.
The preferred encoding scheme is manchester encoding, along with the selective use of the encoding violations described earlier.
Manchester encoding always has a state transition (OFF to ON, or ON to OFF) in the middle of each data bit, which greatly simplifies the process of data recovery and synchronization in the receiver to the transmitter clock.
In manchester encoding, the state pairs (OFF, OFF and ON, ON) are not allowed.
Manchester encoding may be utilized in order for illegal status pairs to be used for transmitting information about the point of importance (signifiancce).
The exact choice of illegal state sequence is not very important as long as it is used all the time. Preferably, the DC balance of Manchester encoding should be preserved.
A suitable code representing the end of the variable part of the transmission will use a simple illegal sequence: (ON, ON, OFF, OFF). This preserves dc balance and can be easily recognized by a manchester decoder.
This sequence can be used as an "introduction" if additional information needs to be conveyed. Thus, for example, other possible sequences may be:
(ON, ON, OFF, OFF, ON, OFF) as the first important point
(ON, ON, OFF, OFF, OFF, ON) as a second important point
When considering both methods and advantages, the preferred protocol implementation is bit-oriented, synchronous, and employs illegal coding to indicate important points in the variable part.
This advantageously provides a high level of accuracy over time in finding the end of the variable portion, is relatively easy to implement, eliminates any reliance on the presentation characteristics of the UART, and does not require escape sequences or bit stuffing. In addition, the higher time-based accuracy in finding the end of the variable portion also creates a high level of accuracy in determining the beginning of the fixed time slice that follows.
It is easy to send a fixed time slice simply by counting the status or bits of the transmission. The received time slice requires a manchester decoder (without supporting illegal states) and a timer in case no information is transmitted during the period of the received time slice.
It will be understood that the above description has been made with reference to preferred embodiments and that many variations and modifications are possible within the scope of the invention.
Claims (10)
1. A radio communication system comprising at least a first transceiver, a second transceiver and a repeater, the first transceiver and the second transceiver being separated by a distance greater than a maximum transmission range of at least one of the transceivers, the repeater being disposed intermediate the first transceiver and the second transceiver such that upon receiving a data transmission from the first transceiver, the repeater retransmits the data transmission from the first transceiver, wherein, upon receiving a data transmission from the second transceiver before the repeater retransmits the data transmission from the first transceiver, the repeater transmits a data sequence instructing each transceiver to ignore ongoing transmissions.
2. A radio communications system according to claim 1 wherein the respective transmissions of the first transceiver and the second transceiver begin with a sequence of bits that are encoded to be interpreted as collisions by devices receiving transmissions that overlap in time.
3. A radio communication system according to claim 2 wherein the data sequence transmitted by the transponder begins with a bit sequence encoded to be interpreted as a collision when received by a receiving device.
4. A radio communication system according to claim 3 wherein upon receipt of the data sequence from the repeater, each receiver will immediately transmit only once the same bit sequence encoded as perceived by the receiving device as a collision and thus ignore further received information until the end of the transmission.
5. A radio communications system according to claim 4 wherein, when the end of the transmission is reached, the receiving device will send an acknowledgement indicating that a collision was detected, or will not send any acknowledgement at all.
6. A radio communications system according to claim 5 wherein once a transmitting device has found an acknowledgement indicating a collision or has not found an acknowledgement at all, the transmitting device will delay for a period before attempting to retransmit its initial transmission.
7. A radio communications system according to claim 6 wherein a random number is selected by each transceiver and the delay period is calculated by scaling the random numbers according to the number of bits in their respective transmissions.
8. A radio communications system according to claim 7 wherein if subsequent transmission retries still collide, the subsequently calculated delay period is increased.
9. A radio communication system as claimed in claim 8, wherein the radio communication system stops further transmission attempts after a predetermined number of unsuccessful retries.
10. A radio communications system according to claim 9 wherein, after ceasing further transmission attempts, the radio communications system alerts the operator of the fact that it has ceased further transmissions.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2003904169 | 2003-08-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1155009A true HK1155009A (en) | 2012-05-04 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1849751B (en) | Apparatus and method for detecting collisions in a non-prime bit radio network communication system | |
| HK1197121A1 (en) | Radio network communication system and protocol | |
| CN1849758B (en) | Radio network communication systems and protocols using automatic transponders | |
| HK1155009A (en) | Radio communication system and transceiver | |
| HK1132609A (en) | Radio communications system and transceivers | |
| HK1092958B (en) | Apparatus and method for detecting collision in a non-dominant bit radio network communication system | |
| AU2011232749B2 (en) | Collision detection in a non-dominant bit radio network communication system | |
| AU2009201888B2 (en) | Collision detection in a non-dominant bit radio network communication system | |
| HK1092964B (en) | Radio network communication system and protocol using an automatic repeater | |
| AU2004301958B2 (en) | Radio network communication system and protocol using an automatic repeater | |
| HK1135830A1 (en) | Radio network communication system and protocol | |
| HK1135830B (en) | Radio network communication system and protocol |