The present invention generally relates to a wireless communications protocol. More specifically, the present invention comprises systems and methods for a communication protocol that utilizes randomized parameters to ensure transmission between one or more remote devices and a central device.
Inventory of all types may be stored in large quantities within a warehouse or other containment area. Inventory generally consists of items such as raw materials, works in progress, or finished goods that are stored and meant to be either rented or sold at some time in the near future.
With large quantities of inventory stored, a need arises to correctly track each item. Radio-frequency identification (RFID) is a known system that utilizes an electromagnetic field to automatically identify and track tags attached to inventory items. However, RFID systems run into problems when there are many inventory items and, therefore, many tags. This is especially so when the items are also located in a small area.
More specifically, RFID systems require that data be transferred across specific frequencies of the electromagnetic spectrum between tags placed on inventory items and a central device or hub. When many tags are present, there is a likelihood that packet collisions occur as multiple tags attempt to send packetized data to the central device simultaneously. This problem occurs when the central device attempts to read a large number of inventory tags at the same time and on the same frequency, and is exacerbated when tags are centralized in a small area. When packet collisions occur, data from the tagged inventory item is not received by the central device and the data must be resent or the data loss results in incorrect inventory tracking.
Further, RFID tags generally employ batteries, which allow the range of the system in which they are employed to be increased. Unfortunately, repeated attempts by tags to send data to central device may quickly wear down these batteries, especially if data must be resent multiple times due to the occurrence of tag collisions. Battery life is also quickly drained if the inventory tags are constantly powered on, listening for a signal from the central hub, and waiting to respond.
The following drawings illustrate examples of various components of the invention disclosed herein, and are for illustrative purposes only. Other embodiments that are substantially similar can use other components that have a difference appearance.
There is therefore provided an inventory tracking method and system which allows periodic transmission between remote devices and central devices to take place at random points in time. By randomizing when a device transmits, collisions amongst device transmissions that take place when multiple devices transmit on the same frequency at the same time. The present invention relates to a wireless communication protocol that allows for communication between remote devices (hereinafter referred to as Tags) and central devices (hereinafter Gateways).
Because of the nature of the wireless communication protocol of the present invention, Tags may be simple remote devices that are easily and inexpensively manufactured. The Tags of the present invention require minimal memory and processing power, which are factors that further extend the battery life of the devices.
The Tags are not required to be constantly “awake” and listening for messages from the Gateway to respond to. If the Tags are programmed to only wake up and listen at certain intervals, the battery life of the Tags may be improved.
Tags may be attached to items to be tracked to determine whether the items are proximate a Gateway. When Tags are proximate at least one Gateway, the periodic transmissions between Tags and Gateway allow the system to know that a tag is in the vicinity. When a period of time has elapsed and a particular Tag has not communicated with a Gateway, then the system knows that the Tag is no longer in the vicinity. In this way, Tags may be used to keep track of items. The system will be described in greater detail below.
The communication protocol of the present invention is intended to allow the guaranteed transmission of a data payload sent by a plurality of Tags during a certain time period. The communication protocol allows data packets, comprising, amongst other information, Tag identification information to be sent from Tags to Gateways more efficiently while avoiding time consuming steps, such as handshakes that require an exchange of information via transmissions between Tags and Gateways. The communication protocol enables energy savings at any given Tag during the transmission process while also sending the payload from Tags to Gateways as often as possible in order to update the Tags' status. Energy is saved as the number of transmissions of a payload required to guarantee that transmission has been received by a Gateway is minimized.
The data payload sent by a particular Tag is made up of one or more data packets. The payload can be received at the same time by one or more Gateways, depending on how the overall system's topology and configuration are implemented at a specific site (e.g. at a warehouse). In one embodiment, data packets received by the Gateways may be collectively sent to an Inventory Server where they may be filtered (for example, by eliminating duplicate or repeated data packets received from the same Tag) and processed to properly update the inventory system. The Inventory Server uses this information to track when the last time a Tag communicated with a Gateway. In one embodiment, when a predetermined period of time has passed and no Gateway in the system has received a communication from the Gateway, the Tag may be marked on the Inventory Server as being away or absent. The person skilled in the art will appreciate that when the Tags are attached to inventory items to be tracked within a warehouse, the presence or absence of an inventory item may be tracked by checking the last time the Tag communicated with a Gateway. The system may be configured such that there is a predetermined time period in which all tags are guaranteed to have communicated with the Gateway at least once. If the predetermined timed period has elapsed and a Tag has not communicated with a Gateway, then the Tag is no longer proximate to any of the Gateways in the system.
In one embodiment, the communication protocol is unidirectional in the sense that information is broadcast from the Gateway to the Tags, and from the Tags back to the Gateway with no requirement for handshaking or request/response communication between Tags and Gateways. More specifically, there is no need for a receiving device to confirm receipt of a signal transmitted by a sending device by responding to that signal as all communications have a 100% transmission success rate. In an embodiment, the Gateway broadcasts a beacon signal to the Tags and, in response, the Tags broadcast data packets to the Gateway. The beacon signal sent from the Gateways to the Tags is then used inform the Gateways as to whether the Tags are proximate to the Gateway, as an example, whether they are inside a warehouse. The Beacon signal enables the Tags to broadcast their data payload (data packets). If Tags are able to receive a Gateway beacon signal, then they are relatively proximate to the Gateway, as an example, they are in the same warehouse as the Gateway. Once a beacon signal is received, Tags may start broadcasting their payload of data (data packets). If the Tags are not able to receive the Gateway beacon signal, then they are not proximate to the Gateway, meaning, for example, that they are outside the warehouse or not on site. In this case the Tags do not broadcast a data payload (data packets).
In another embodiment, information may be unicast or multicast by the Tags and Gateways. The particular configuration will depend on the requirements of the system being implemented. In this embodiment, information will still be transmitted “unidirectionally” in the sense that there is no requirement for handshake or request/response communication between the Tags and the Gateways.
The communication protocol utilized by the system is media independent and may be implemented within a wired or wireless system. For a wireless system, the protocol may be implemented on a standard radio frequency band centred at 2.4 GHz or 5 GHz, but may also be implemented on any other suitable radio frequency band. Although the description primarily discloses an embodiment of the invention that utilizes a digital transmission of packets, the protocol is mode independent and other transmission modes may be used, such as analog transmission.
As described above, in one embodiment of the present invention, Gateways are configured to broadcast beacon signals to a plurality of Tags. In one embodiment, beacon signals are sent at random intervals. The Gateways are further configured to receive data packets from Tags. In this manner, the Gateways are capable of receiving packets from the Tags, for example, for tracking purposes. As noted above, in one embodiment, the Gateways are able to determine whether the inventory, to which a Tag is attached, is proximate to the broadcasting Gateway.
In one embodiment of the present invention, Tags are configured to “sleep” for random periods of time. This “sleep” mode is a mode wherein most processes running within the Tag are shut down and the only requirement is a timer to trigger the Tag to “wake” at a random time. Configuring the Tags to sleep allows for battery power to be saved. The amount of time that a Tag sleeps for is configured depending on the requirements of the system.
When the internal timer triggers, the Tag “wakes” and utilizes full power. Upon waking the Tag is configured to momentarily listen for a beacon signal from a Gateway. If no beacon signal is received during the waking period, the Tag goes back into sleep mode for another randomized period of time. However, if a beacon signal is received, the Tag is configured to transmit a message in response. The message is packetized and broadcast or otherwise transmitted back to the Gateways. In one embodiment, a frequency on which the transmission takes place is chosen randomly from a set of frequencies. In this embodiment, the packets are transmitted on the randomly chosen frequency. Randomizing when each Tag wakes up and randomizing the frequency across which packets are transmitted reduces the chances that a collision with other transmissions from other Tags or other Gateways.
The process of the invention is continuous and allows messages from all Tags to be eventually be received by one or more Gateways within a predetermined time period. The amount of time needed for communications from all Tags to be received by one or more Gateways will depend on the specific configuration of the system.
In one embodiment of the present invention provided is a method of communication between at least one remote device and at least one central device. The method comprises determining at the at least one remote device a random amount of sleep time and causing the at least one remote device to enter a sleep mode for the random amount of sleep time. The at least one remote device is then caused to enter a power-on mode after the random amount period of sleep time has elapsed. The at least one remote device is then caused to listen, while in the power-on mode, to identify whether a beacon message was sent from at least one central device. Upon detecting at the at least one remote device a beacon message from the at least one central device, the at least one remote device is caused to transmit a response message and to return to sleep mode. Upon failing to detect at the at least one remote device the beacon message from the at least one central device, causing the at least one remote device to return to the sleep mode.
In a further embodiment of the present invention provided is a method of communication between a central device and a plurality of remote devices. The method comprises causing the central device to wait a random amount of time and causing the central device to transmit a beacon signal to the plurality of remote devices. The central device is then caused to receive a response message from at least one of the plurality of remote devices. At a randomized interval and on a randomized frequency the central device is caused to selected from a number of frequencies to which the central device may tune. Upon receiving a signal from a remote device, the central device is caused to process the data from within the signal.
In a further embodiment of the present invention provided is a system for communications between a plurality of remote devices and at least one central device, comprising at least one central device configured to periodically transmit beacon messages; receive response messages from the plurality of remote devices; process data from the received messages. Provided also are a plurality of remote devices having receivers, each configured to: enter a sleep mode for a random period of time; power-on the receiver after the random period of time has elapsed; listen for a predetermined period of time to detect receipt of a beacon message; upon receipt of the beacon message, transmit a response message and return to sleep mode; upon expiry of the predetermined period of time, return to sleep mode.
In a further embodiment of the present invention the at least one remote device, upon failing to detect the beacon message from the at least one central device, transmits a response message before returning to sleep mode.
In a further embodiment of the present invention the at least one remote device randomly selects a frequency on which to transmit its response message.
In a further embodiment of the present invention the steps repeated until each of the at least one remote devices have successfully transmitted a response message to one of the at least one central devices.
In a further embodiment of the present invention the beacon messages are broadcast.
In an even further embodiment the response messages are broadcast.
Referring now to
Referring now to
Referring now to
For the example illustrated in
Referring to
Gateway 900 may have more than one receiver (Rx) module comprising more than one tuner. This allows the Gateway 900 to received signals broadcast on multiple channels or frequencies simultaneously. Alternatively, Gateway 900 may include a single receiver module with programming or hardware capable of extracting multiple data streams from one signal. The specific number of receiver modules may be defined for each specific application. The purpose of each receiver module is to listen for incoming transmissions comprising data packets transmitted by Tags. Each receiver module may be tuned to a different frequency channel for receiving data packets that are transmitted at different frequencies. In one embodiment, the frequency at which a given Tag transmits is randomly (or pseudo randomly) selected in order to reduce the likelihood of collisions.
Gateway 900 may be connected to an Inventory System 904. In scenarios where multiple Gateways 900 are used, an Inventory Server 904 receives data from each of the Gateways 900 so that further processing of the data can take place. The Inventory Server 904 may track which Tags have successfully communicated with the Gateways 900 within a predetermined time period to determine whether a Tag is present in the system or not. The predetermined time period is set in accordance with an estimated time in which all Tags present within a particular physical location (e.g., a warehouse) are expected to have successfully transmitted with one or more Gateways 900.
Referring to
Referring to
Certain parameters are used to define, make-up and configure the system, and may be defined as follows:
NTAG [integer] is the number of Tags per Gateway for a specific system configuration. For worst case calculation purposes, this value is taken from the Gateway that has the most number of Tags associated with it.
ST[seconds] is the sleep time in seconds, which is randomly calculated between two values: Sleep Time minimum (STmin) and Sleep Time maximum (STmax), by every Tag on every cycle. The sleep time can vary between 0 and a maximum value.
STmin [seconds] is the minimum Sleep Time allowed for a Tag to sleep.
STmax [seconds] is the maximum Sleep Time allowed for a Tag to sleep.
STavg [seconds] is the average Sleep Time defined for a given implementations of the system and is calculated as:
STavg=(STmin+STmax)/2
STQ [integer] is the quotient of factor between STmax and STavg and is calculated using the equation:
STQ=STmax/STavg
TT[seconds] is the transmission time in seconds and represents the time required for a Tag to broadcast a data packet. Transmission time depends on the available technology.
NDP[integer] is the number of times the same Data Packet is broadcasted every time the TAG wakes up that can be configured for any Tag ecosystem. The NDP selection depends on the specific ecosystem requirements and takes into account certain systemic variables such as noise in the environment where the system is deployed, interference amongst signals, or a signal bouncing among other signals.
NRX[integer] is the number of Rx modules, or channels, that are available to each Gateway and with which the Gateway may randomly receiving a broadcast data payload or data packet from the Tags.
TAGQ [integer] is a quotient or factor between the number of Tags per Gateway and the Sleep Time maximum value for a given system. This parameter is calculated using the following equation:
TAGQ=NTAG/STmax
DPCOL [percentage] is the percentage of broadcast data payloads or data packet lost or not received by the Gateway. It can be calculated using the following equation:
DPCOL=DPLOST/DP TOTAL
DPLOST is the total amount of collided data packets broadcast by the NTAG.
DP TOTAL is the total amount of data packets sent by the NTAG.
A simulation of a system may be constructed by a skilled person to evaluate the parameters of the system that are suitable to a particular ecosystem that will be deployed. The simulation may be constructed using computational software or may be made up of computer readable code which may be executed on a computing device.
The first step in defining such a simulation is to define the above listed parameters within the simulation. Namely, the parameters to be defined are: NTAG, STmax, STmin, TT, NDP, NRX. The purpose of the simulation is to calculate parameters values for STQ, TAGQ and DPCOL.
For example, a mathematical simulation may be created to emulate any potential system with any amount of Gateways and any amount of Tags. As explained below, an example simulation was carried out to emulate a system with 100 Tags and 1 Gateway. A screen shot of the simulation may be found in
NTAG was set to 100 to represent 100 Tags associated with 1 Gateway. However, a similar simulation may be carried out on any number of Tags and Gateways.
In the example simulation, each Tag was set to transmit its data packet once and NDP was set to be 1. A higher value may also be chosen for NDP, which can be used to simulate multiple packet transmissions.
STmax was set for five different scenarios using: 0.2 seconds, 0.5 seconds, 1 second, 3 seconds and 6 seconds, respectively. The simulation in
STmin was set to different values to determine system behavior.
TT was set to 1 millisecond given standard technology available.
The simulation was run for 150 sleep time windows 1401 for each Tag. The first 41 such sleep time windows can be seen in
The wake time for each Tag may be calculated using the random sleep time obtained added to the total sleep time accumulated. In one embodiment, sleep time windows (i.e., the window created between the maximum sleep time and minimum sleep time) can also be truncated, for example to 1 ms, so as to better analyze packet collisions.
The simulation can then be set to determine when any two or more Tags were awake 1402 at the same time based on the simulated sleep window. This situation is intended to simulate when a “collision” occurs. That is, when two Tags are awake, hear a beacon message, and both attempt to send a message in response. As can be seen in the first row of
In the example, with 100 Tags and 150 sleep time windows and one packet sent per tag, present are 15,000 individual wake time windows. Every wake time for every Tag may be compared across all 15,000 wake time windows and theoretical packet transmission collisions can be counted.
The simulation may eliminate the first 30 wake times (greyed out in
A collision matrix 1400 can be created to sum the total number of collisions between Tag transmissions. In this manner, data packet collisions were calculated as the sum of collisions in the collision matrix 1400. As a percentage, data packet collisions were calculated based on collided data packets divided by the total packets sent.
TAGQ, STQ and DPCOL where obtained empirically be running the simulation multiple times using different parameter values, and the results were graphed as depicted in
As shown in
The simulation provides information as to when each of the Tags have successfully transmitted to at least one Gateway. Each time the simulation is run with the same parameters, the time required for all Tags to successfully transmit will vary around a mean value. The person skilled in the art will appreciate that when a sufficient number of simulations are run, the maximum amount of time needed for all Tags to successfully transmit to a Gateway may be approximated by taking the longest time observed in the simulations. In this way, by using the parameters from the simulations in a live system, the Inventory Server in the live system may be programmed to determine that if a Tag has not successfully transmitted to a Gateway within a predetermined time period (i.e., a value slightly greater than the longest time observed in the simulations), the Tag is either no longer transmitting, or is no longer in range of a Gateway.
The communication protocol of the present invention allows for each Tag to successfully to transmit its payload to at least one Gateway over a predefined period of time, for a given system. Simulations may be run to determine how to vary the parameters to ensure that all Tags successfully transmit its payload within the predefined period of time.
TDT is the average Tag Detection Time for a specific TAG PRO system. TDT is obtained empirically and can be measured according to the following formula:
TDT=KTR×ST
max
KTR is empirically calculated from mathematic simulations or from real systems embodiments.
Further system examples may be built based on the results obtained above. Specifically:
DPCOL under 5% (from the graph in
STQ about 1.1 (from the graph in
TAGQ about 35 (from the graph in
a KTR=2 to 3 can be expected.
In this situation, and using for example STmax=300 seconds (5 minutes), the following parameter values are to be expected:
NTAG=10,500 Tags per Gateway maximum
TDT between 10 to 15 minutes
DPCOL under 20% (from the graph in
STQ about 1.1 (from the graph in
TAGQ about 100 (from the graph in
a KTR=6 to 7 can be expected.
In this situation, and using for example STmax=300 seconds (5 minutes), the following parameter values are to be expected
NTAG=30,000 Tags per Gateway
TDT between 30 to 35 minutes.
Referring now to
Following the predetermined information 400, the packet may comprise specific beacon identification 401 information encoded, for example, in 4 bytes. This is used to provided identification information as to which beacon sent the information. This identification information may be used by tags to unicast or multicast transmissions back to back to the Gateway which originated the beacon. However, this is not required and in some embodiments, transmission from tags are broadcast to any device in range. Finally the beacon packet ends with a checksum 402 for error correction, which may be encoded on 2 bytes. However, it will be apparent to the skilled person that other packet configurations are possible.
Referring to
Following the TP-ID is a byte which encodes the battery level 503 of the specific broadcasting tag and a cyclic redundancy check 504, for error checking. The byte for tracking battery level 503 may be processed by a Gateway or an Inventory Server to alert the system that the battery on a Tag may need to be recharged or replaced. It will be apparent to the skilled person that this packet structure is exemplary and may be modified without departing form the scope of the present invention.
Referring to
Referring to
In a further embodiment, a Tag 903 may or may not broadcast its data to the Gateways depending on the information contained in the beacon signal 901. For example, beacon signal 901 may be unicast to a single tag or multicast to a subset of all tags that are intended to receive the message. Only those Tags to which the beacon signal 901 is sent respond to that message.
In another embodiment, the beacon signal 901 is sent from the Gateway 900 to let the Tags 903 know that they are “close” or “in range” such that data packets may be sent by the Tags 903 to the Gateway 900.
The data sent by a Tag on a specific and randomly chosen frequency is received by the receiver module on a Gateway 900 that is tuned to that frequency. The received Tag packet may be processed, filtered, and analyzed by the Gateway 900. Data received by the Gateway may further be stored, retransmitted, and/or analyzed. Other processes or processing may also be carried out on the data by a Gateway 900 as required in a specific implementation of the communication protocol. Also, the data received by the Gateway 900 may be retransmitted to an Inventory Server for further processing.
In this manner, the Gateway may randomly collect data on Tags deployed on inventory. The cycle of the Tag “sleeping” for a random amount of time 701 and “waking up” to listen the beacon signal 700 continues indefinitely, and even if the TDT for a particular system is reached and 100% transmission has occurred. TDT is defined as the maximum time for all the Gateways installed on a specific system to receive a specific TP-ID, from the time when the TAG goes into the warehouse and it is “in range” of the Beacon signal.
Referring to
In a further embodiment of the present invention, each Gateway 900 may also be enabled to communicate by way of the communications network 905 according to any suitable protocol compatible with an inventory system 904. Further, each Gateway 900 may be enabled to communicate in a wireless or wired manner, as may be required in a certain application, compatible with the communications network 905, including but not limited to packet based communication protocols, Internet protocols, analog protocols, PSTN protocols, cellular protocols, WiFi protocols, WiMax protocols and any combination of protocols. Other protocols may also be used.
Communications network 905 may also comprise a combination of wired or wireless networks, including but not limited to packet based networks, the Internet, analog networks, PSTN, LAN, WAN, cell phone networks, WiFi networks, WiMax networks and any combination of networks.
By way of the communications network 905, each Gateway may communicate the status of each Tag to the inventory system 904 to keep track of the location and status of inventory. Alternatively, the Gateway may transmit the received Tag messages to the inventory system 904 for further processing. In this scenario, the inventory system 904 would process the received Tag messages to determine the location and status of inventory.
Referring to
The Inventory System 904 may comprise a computer-based system for tracking inventory levels, orders, sales, deliveries, and any other information that the skilled person could require. In this manner, the Inventory System 904 may facilitate the tracking of inventory or assets as they move through a warehouse or storage depot. The system may produce a directory of inventory assets to provide information on exactly what is available and where.
In a further embodiment of the present invention, packet collisions may be further mitigated if Tags are also configured to randomly send data back to the gateway more than once during a predetermined waking period, when a beacon signal has been received.
One feature of the communication protocol is that there is no requirement to synchronize the beacon signal from the Gateways to the Tags or to synchronize data packets from Tags to Gateways. In particular, there is no need to synchronize timing to avoid signal collisions. Instead, signals are broadcasted by Gateway to Tags and vice versa based on random “sleep” timing and a randomly selected frequency channel, and is intended to be transmitted (or broadcast) more than once. By setting timing parameters and frequency parameters appropriately transmission from Gateway to Tag or from Tag to Gateway may be statistically guaranteed for a given time period.
Referring to
Referring to
Referring to
Although embodiments of the present invention have been described above and are illustrated in the accompanying drawings in order to be more clearly understood, the above description is made by way of example and is not meant to limit the scope of the present invention. It is contemplated that various modifications apparent to one of ordinary skill in the art could be made without departing from the scope of the invention which is to be determined by the following claims.