Patent ID: 8126488

Claim:
A method of coordinating communication between a plurality of wireless devices, the method comprising: generating a pseudorandom sequence element in a transmitting wireless device by operation of a first pseudorandom sequence generator (PSG) located in the transmitting wireless device; generating a pseudorandom sequence element in a receiving wireless device by operation of a second PSG located in the receiving wireless device; calculating a communication channel/timeslot assignment for communication between the transmitting wireless device and the receiving wireless device based on the pseudorandom sequence element; and transmitting data from the transmitting wireless device to the receiving wireless device according to the communication channel/timeslot assignment, wherein the first and second pseudorandom sequence generators are seeded with information that is shared by the plurality of wireless devices, wherein where the receiving wireless device has more than one adjacent wireless device transmitting data during a timeslot in which the receiving wireless device is receiving data, the receiving wireless device decides to receive data transmitted by the transmitting device using random selection or a heuristic technique, wherein the information that is shared by the plurality of wireless devices comprises a combination of a reference clock time and a plurality of unique device identifiers, wherein the reference clock time is derived from a common global reference clock time that is shared by the plurality of wireless devices, wherein each of the plurality of wireless devices contains a local clock adapted to maintain the reference clock time, wherein said method further comprises expanding a timeslot window for transmitting or receiving data in at least one of the plurality of wireless devices to compensate for drift of the local clock, and wherein maintaining the reference clock time comprises: receiving a transmission encoding a global reference clock time and a new timing age indicating an amount of elapsed time since the global reference clock time was transmitted from a global reference clock time source; determining whether the new timing age is less than a current timing age associated with the local clock; upon determining that the new timing age is less than the current timing age, updating the local clock with the global reference clock time and updating the current timing age with the new timing age; and incrementing the local clock and the current timing age at regular time intervals.