System and method for data transfer in frequency hopping wireless networks
View Patent ↗A frequency hopping coordinator device scans a plurality of frequencies for request for services messages during an unused time slot in order to detect a request for service preamble on one of the frequencies and, responsive thereto, send a service packet message to an end device from which it received the request for service message on the one frequency. The service packet includes a current frequency sequence value of the coordinator device's pseudo-random number sequence and beacon timing information that indicates when periodic beacon messages occur. An endpoint device sends a request for services message on a first frequency of the plurality of frequencies scanned by the coordinator device that includes a preamble identifiable by the coordinator device. The endpoint device receives the service packet message and, responsive thereto, changes the end point's current frequency sequence value and timing information to match the values sent by the coordinator device.
1. A method for synchronizing communications between an end device and a coordinator device in a frequency hopping wireless network, the method comprising the steps of:
a. the coordinator device scanning a plurality of frequencies for request for services messages during a time slot where no data packets are being transferred;
b. the end device sending a request for services message on a first frequency of the plurality of frequencies, where the message includes a preamble identifiable by the coordinator device;
c. if the coordinator device detects the request for service preamble on the first frequency, the coordinator device receiving the remainder of the request for services message on the first frequency and sending a service packet message to the end device from which it received the request for services message on the first frequency, where the service packet message includes:
i. a current frequency sequence value of the coordinator device's pseudorandom number sequence, and
ii. beacon timing information that indicates when periodic beacon messages from the coordinator device to the end device occur;
d. if the end device receives the service packet message, the end device changing its current frequency sequence value and timing information to match the frequency sequence and beacon timing information values sent by the coordinator device in order to synchronize the end device with the coordinator device.
2. The method of claim 1 , the method further comprising the step of, if the end device does not receive the service packet message on the first frequency within a time interval after sending the request for services message, then the end device will initiate another attempt to synchronize by sending another request for services message on a second frequency of the plurality of frequencies.
3. The method of claim 2 , where the interval of time waited before initiating another synchronization attempt is at least one of a fixed value, a calculated value, and a pseudorandom value.
4. The method of claim 2 , wherein:
the step of the coordinator device scanning a plurality of frequencies for request for services messages during a time slot where no data packets are being transferred further comprises the coordinator device scanning the plurality of frequencies for request for services messages following a pseudorandom sequence; and
the step of, if the end device does not receive a service packet message on the first frequency within a time interval after sending the request for services messages, then the end device will initiate another attempt to synchronize by sending another request for services message on a second frequency of the plurality of frequencies further comprises the second frequency being selected based on following the pseudorandom sequence in reverse order.
5. The method of claim 4 , where the step of the end device sending a request for services message on a first frequency of the plurality of frequencies further comprises the end device sensing whether the first frequency is busy before attempting to transmit the request for services message and move to a next frequency in the reverse order of the pseudorandom sequence when the end device senses a busy frequency.
6. The method of claim 1 , the method further comprising the step of the end device sending a data packet to the coordinator device during an available time slot, using a frequency determined by the end device's pseudorandom number sequence following the end device and coordinator device successfully synchronizing.
7. The method of claim 6 , the method further including the step of the coordinator device, responsive to receiving a data packet from the end device, sending an acknowledgement to the end device from which it received the data packet during a second portion of the time slot used to transfer the data packet using the same frequency to send the acknowledgement as was used by the end device to send the data packet.
8. The method of claim 1 , the method further comprising the steps of:
the coordinator device, following the end device and the coordinator device successfully synchronizing, sending a data packet to the end device during an available time slot, using a frequency determined by the coordinator device's pseudorandom number sequence; and
the end device receiving the data packet sent by the coordinator device using the synchronized pseudorandom number sequence and beacon information.
9. The method of claim 8 , the method including the step of the end device, upon receiving a data packet from the coordinator device, sending an acknowledgement to the coordinator device from which it received the data packet during a second portion of the time slot used to transfer the data packet, using the same frequency to send the acknowledgement as was used to transmit the data packet.
10. The method of claim 1 , the method further comprising the step of the end device, following the end device and coordinator device successfully synchronizing, receiving the beacon packets sent from the coordinator device periodically in timeslots allocated for the beacon packets and maintaining synchronization with the coordinator device using the periodic beacon packets.
11. The method of claim 1 , the method further comprising the end device initiating synchronization after exiting a standby mode.
12. The method of claim 1 , where the step of the end device sending a request for services message further includes sending data in the request for services message sent to the coordinator device.
13. The method of claim 1 , where the step of the coordinator device sending a service packet message to the end device further includes sending data in the service packet sent to the end device in response to the reception of a request for services message from that end device.
14. The method of claim 1 , where the end device further comprises another coordinator device.
15. The method of claim 1 , the method further comprising the step of the end device sending a data packet to the coordinator device using carrier sense multiple access after the end device and coordinator device are synchronized, wherein a pseudorandom back-off time period is utilized when a frequency is busy, the frequency for transmitting the packet is determined by a pseudorandom sequence synchronized with the coordinator device.
16. A method for transferring data in a frequency hopping wireless network between an end device and a coordinator device comprising the steps of:
a. the coordinator device scanning a plurality of frequencies for request for services messages during a time slot where no data packets are being transferred;
b. the end device sending a request for services message on a first frequency of the plurality of frequencies, where the request for services message includes a preamble identifiable by the coordinator device;
c. if the coordinator device detects the request for services message preamble on the first frequency, the coordinator devices receiving the remainder of the request for services message using the first frequency and sending a service packet message to the end device from which it received the request for services message using the first frequency;
d. if the end device detects the service packet message on the first frequency within a time interval, the end device receiving the service packet message from the coordinator device using the first frequency; and
e. if the end device does not detect the service packet message on the first frequency within the time interval, the end device initiates another attempt to transfer data by sending another request for services message on a second frequency of the plurality of frequencies scanned by the coordinator device.
17. The method of claim 16 , where at least one of the request for services message and the service packet message include data.
18. The method of claim 16 , where the time interval after sending the request for services message is at least one of a fixed value, a calculated value, and a pseudorandom value.
19. The method of claim 16 , where the step of the end device sending a request for services message on a first frequency further comprises the end device including data in the request for services message sent to the coordinator device in order to perform asynchronous data transfer.
20. The method of claim 16 , where the step of the coordinator device sending a service packet message to the end device further comprises the coordinator device including data in the service packet message sent to the end device in response to the reception of a request for services message from that end device in order to perform asynchronous data transfer.
21. The method of claim 16 , where data is transferred synchronously by synchronizing the end device with the coordinator device by:
including in the service packet message from the coordinator device a frequency sequence number and beacon slot timing information of the coordinator device;
the end device synchronizing to the coordinator device using the frequency sequence number and beacon slot timing information from the coordinator device;
transferring a data packet from the end device to the coordinator device during an available time slot, using a frequency determined by the end device's frequency sequence number.
22. The method of claim 21 , the method further comprising maintaining synchronization of the end device utilizing beacon packets sent from the coordinator device periodically in timeslots allocated for the beacon packets.
23. The method of claim 21 , where the end device may decide to initiate synchronization immediately after exiting standby mode.
24. The method of claim 23 , where the end device is another coordinator device.
25. The method of claim 16 , wherein:
the step of the coordinator device scanning a plurality of frequencies for request for services message during a time slot where no data packets are being transferred further comprises the coordinator device scanning the plurality of frequencies for request for services messages following a pseudorandom sequence; and
the step of, if the end device does not detect the service packet message on the first frequency within the time interval, the end device initiates another attempt to transfer data by sending another request for services message on a second frequency of the plurality of frequencies scanned by the coordinator device further comprises the second frequency being selected based on following the pseudorandom sequence in reverse order.
26. The method of claim 25 , where the step of the end device sending a request for services message on a first frequency of the plurality of frequencies further comprises the end device sensing whether the first frequency is busy before attempting to transmit a request for services message and move to a next frequency in the reverse order of the pseudorandom sequence when the end device senses a busy frequency.
27. The method of claim 16 , where the step of the end device sending a request for services message on a first frequency of the plurality of frequencies further comprises the end device sensing whether the first frequency is busy before attempting to transmit a request for services message on the first frequency and not sending a request for services message on the first frequency if the first frequency is busy.
28. A frequency hopping wireless network system, the system comprising:
a coordinator device configured to:
scan a plurality of frequencies for request for services messages during a time slot where no data packets are being transferred;
detect a request for service preamble on one of the plurality of frequencies and, responsive thereto, receive the remainder of the request for services message on the one frequency and send a service packet message to an end device from which it received the request for services message on the one frequency, where the service packet message includes:
i. a current frequency sequence value of the coordinator device's pseudorandom number sequence, and
ii. beacon timing information that indicates when periodic beacon messages from the coordinator device occur; and
an endpoint device configured to:
send a request for services message on a first frequency of the plurality of frequencies scanned by the coordinator device, where the request for services message includes a preamble identifiable by the coordinator device;
receive the service packet message from the coordinator device and, responsive thereto, change the end point's current frequency sequence value and timing information to match the frequency sequence and beacon timing information values sent by the coordinator device in order to synchronize the end device with the coordinator device.
29. The frequency hopping wireless network system of claim 28 , where the endpoint device is further configured to wait a time interval for a service packet message responsive to a request for services message sent on the first frequency and, if no responsive service packet message is received within the time interval, send a request for services message on a second frequency of the plurality of frequencies scanned by the coordinator device.
30. The frequency hopping wireless network system of claim 28 , wherein the coordinator device is further configured to scan at least a portion of the plurality of frequencies for request for services messages following the coordinator device's pseudorandom sequence and the endpoint device is further configured to attempt to transmit request for services messages on the plurality of frequencies following the coordinator device's pseudorandom sequence in reverse order.
31. The frequency hopping wireless network system of claim 30 , where the endpoint device is further configured to sense whether a frequency of the plurality of frequencies is busy before attempting to transmit a request for services message and move to a next frequency in the reverse order of the coordinator device's pseudorandom sequence when the endpoint device senses a busy frequency.
32. The frequency hopping wireless network of claim 28 , where the endpoint device is further configured to sense whether a frequency of the plurality of frequencies is busy before attempting to transmit a request for services message.
33. The frequency hopping wireless network system of claim 28 , wherein each of the endpoint device and coordinator device includes a transceiver, a packet handler, a tuning system, a frequency hopping controller, a preamble quality detector, a slot timer, and at least one of a pseudorandom number generator or frequency look-up table.
34. The frequency hopping wireless network system of claim 28 , wherein the endpoint device, after successful synchronization with the coordinator device, is further configured to transfer data synchronously with the coordinator device by:
a. sending a data packet to the coordinator device during an available time slot, using a frequency determined by the endpoint device's pseudorandom number sequence that is synchronized to the coordinator device's pseudorandom number sequence;
b. receiving a data packet from the coordinator device during an available time slot, using a frequency determined by the end device's pseudorandom number sequence that is synchronized to the coordinator device's pseudorandom number sequence.
35. The frequency hopping wireless network system of claim 28 , wherein, after successful synchronization with the coordinator device, the endpoint device is further configured to maintain synchronization by receiving the beacon packets sent from the coordinator device periodically in timeslots allocated for the beacon packets.
36. The frequency hopping wireless network system of claim 28 , wherein at least one of the request for services message and the service packet message includes a data payload.