Patent Description:
Recreational vehicles such as snowmobiles, four-wheelers, all-terrain vehicles, motorcycles and the like are used in various places under various conditions. Many places where such vehicles are used do not have access to or have limited access to cell service.

It is desirable for recreational vehicles to intercommunicate various types of data therebetween. For example, systems are available that allow two-way communications between various vehicles. Such systems often include the use of cell towers for intercommunication. However, as mentioned above, cellular communication is not available under many circumstances.

Communication using satellites is also possible. However, satellite communications require a clear view of the sky. Satellite communications in geographic regions that are thickly forested may be encumbered by trees. Also, traversing canyons can also provide difficulty in inter-vehicle communication using satellites.

Communicating directly between vehicles is often difficult. In a popular area, many vehicles may be trying to communicate. The vehicle radios may interfere with each other and thus communications may be difficult. Prior art in the present technical field is disclosed in documents <CIT> and <CIT>.

This section provides a general summary of the disclosures, and is not a comprehensive disclosure of its full scope or all of its features.

The present disclosure provides a vehicle-to-vehicle communication system that increases the likelihood of unencumbered communications directly between vehicles. A protocol is established to allow the vehicles to intercommunicate.

Although the following description includes several examples of a radio, it is understood that the features herein may be applied to any appropriate radio, such as snowmobiles, motorcycles, all-terrain radios, utility radios, moped, scooters, etc. The examples disclosed below are not intended to be exhaustive or to limit the disclosure to the precise forms disclosed in the following detailed description. Rather, the examples are chosen and described so that others skilled in the art may utilize their teachings.

Referring now to <FIG>, a communication system <NUM> is illustrated for communicating between vehicles. In this example, a master vehicle <NUM>, a first vehicle <NUM>, a second vehicle <NUM> and a third vehicle <NUM> are illustrated in a group <NUM>. The group <NUM> may be formed according to the teachings set forth below. The master vehicle <NUM> may be the leader of the group that controls the formation of the group. Although in some examples, vehicles in the group may not have a master or group leader. As will be further described below, the master vehicle <NUM> may form the group and, if the master vehicle <NUM> leaves the group, the group may continue to be maintained between the various other vehicles <NUM>-<NUM>. Depending on design consideration no further group members may be allowed to join. However, in some examples other group members may join after a master leaves the group. Another vehicle may also be assigned to the master radio position such as the radio in the first timeslot. Once assigned as the master the first radio may generate the beacons. In other examples, all vehicles within a group may generate beacons.

The vehicles <NUM>-<NUM> may communicate using various types of communication systems. One example of a communication system is a terrestrial communication system such as a cellular communication system <NUM>. The cellular communication system <NUM> may include a plurality of cell towers, one cell tower <NUM> is illustrated for simplicity. The cell tower <NUM> may include an antenna <NUM> disposed thereon. The antenna <NUM> may be in communication with the antennas <NUM> disposed on the vehicles <NUM>-<NUM>.

Another example of a communication system is an extraterrestrial communication such as a satellite <NUM>. The satellite <NUM> may be a single satellite such as a geostationary satellite or a constellation of satellites such as low earth orbit satellites or middle earth orbit satellites. The satellite <NUM> includes a receiving antenna <NUM> and a transmitting antenna <NUM>. A bent pipe transponder <NUM> may be used for relaying communication signals between one of the vehicles <NUM>-<NUM> and a satellite control system <NUM>. That is, the vehicles may generate uplinks <NUM> which are communicated to the receiving antenna <NUM>. The satellite antenna <NUM> may also generate a downlink <NUM> to the vehicles <NUM>-<NUM>.

The satellite control system <NUM> may control the telemetry, tracking and control of the satellite <NUM> through the antenna <NUM>. The satellite control system <NUM> may also control the communication signals that are communicated to and from the satellite <NUM>.

A communication control system <NUM> may be used to control the communications between the vehicles <NUM>-<NUM> and the satellite control system <NUM> or the cell communication system <NUM> when such systems are used. Such signals may include emergency type signals which may be dispatched from the control system <NUM> to an emergency response center <NUM>. An antenna <NUM> may be used for wireless communication from the communication control system <NUM>.

A user access system <NUM> may be in communication with a communication control system <NUM>. The user access system <NUM> may allow external users <NUM> such as non-vehicle operators to communicate with the vehicle systems or monitor the data associated with the various vehicles <NUM>-<NUM> such as their positions.

The position of the vehicles <NUM>-<NUM> may be determined using GPS satellites <NUM>. The signals generated by the GPS satellites <NUM> may be used by the vehicles <NUM>-<NUM> to determine a position of the vehicle. Determine a vehicle position may include the latitude and longitude of the vehicle which is determined in a conventional manner.

Each vehicle <NUM>-<NUM> may include a radio <NUM>. The word radio means a wireless communicator. The radio <NUM> may be used to wirelessly communicate though a plurality of different types of systems such as but not limited to a vehicle to vehicle, satellite and cellular systems. Although communication between vehicles was described above, the communication is between the radios within or connected to the vehicles. The radio <NUM> may be a vehicle-to-vehicle radio that is used for communicating various types of data between the vehicles <NUM>-<NUM>. As will be described below, a vehicle identifier and position may be communicated. However, various other types of data including vehicle-to-vehicle messages may also be exchanged between the radios <NUM>. The vehicle radios <NUM> are direct communication radios that do not require the use of communication through a cell communication system <NUM> or through the satellite control system <NUM>. As will be further described below, the vehicle-to-vehicle radio <NUM> may be a primary source of intercommunication which is backed up by the cellular communication system <NUM> and/or the satellite <NUM>. The radio <NUM> may also act as the satellite <NUM> or the cellular communication system <NUM>. Also, as described below, the cellular communication system <NUM> may act as a backup for the satellite <NUM>. The vehicle-to-vehicle radio <NUM> may act as a backup to the cellular communication system <NUM>.

Referring now to <FIG>, the radios of the vehicles <NUM>-<NUM> may also intercommunicate through a drone <NUM>. The drone <NUM> may include a relay <NUM> that is used for communicating content from each vehicle to other vehicles located in the area. The drone <NUM> may act as an extension of the antenna <NUM> located on the master vehicle. A controller <NUM> may control the flight characteristics and the relay of signals to and from the master vehicle <NUM> from the vehicles <NUM>, <NUM> and <NUM>. The drone <NUM> may thus act as an antenna for the master vehicle <NUM>. The relay is particularly suitable for expanding the area for intercommunication between the vehicles <NUM>-<NUM>.

Referring now to <FIG>, the vehicles <NUM>-<NUM> are illustrated within a boundary <NUM>. The boundary <NUM> represents a distance from the master vehicle <NUM>. The third vehicle <NUM> is entering the boundary <NUM>. The first vehicle <NUM>, the second vehicle <NUM> and the master vehicle <NUM> have already formed a group. The third vehicle <NUM> is entering the boundary. A group may be automatically formed by any vehicle entering a predetermined boundary so that the vehicle can intercommunicate with the other vehicles in a group for safety purposes. The third vehicle <NUM> may be assigned a timeslot when a predetermined distance is determined from a vehicle. That is, the distance or global position of the master vehicle is determined. The position of the third vehicle <NUM> also determined. When the master vehicle determines that the third vehicle <NUM> is within the boundary <NUM>, a timeslot for communicating with the other vehicles <NUM>-<NUM> is provided. The position of all the vehicles within the group may be provided to the groups so the safety of the riders or vehicle operators may be improved.

Referring now to <FIG>, each of the vehicles <NUM>-<NUM> illustrated in <FIG> may include a screen display <NUM>. The screen display <NUM> may be associated with control buttons 412A-412C. The control buttons may be used to control various functions of the display <NUM>. The display <NUM> is illustrated for the group formed in <FIG> after the vehicle <NUM> joins the group. In this example, the display <NUM> corresponds to the display of the vehicle <NUM> and is labeled "you. " The relative positions of each of the other vehicles <NUM>, <NUM> and <NUM> are also set forth. The direction or relative headings <NUM> of each of the vehicles are labeled.

A nearby vehicle <NUM> may also be displayed. The nearby vehicle <NUM> may be a vehicle not yet within the group. That is, data from the group or data to the group besides a vehicle position may not be exchanged between nearby vehicle <NUM> and vehicles <NUM>-<NUM>.

The buttons 412A-412C may be discrete buttons adjacent to the screen display <NUM> or may be touch screen display buttons displayed at the bottom of the screen. In this example, button 412A corresponds to a "changed view" button which may change the view of the vehicles to a different type of view or a high level view on a map. Button 412B may be an interface to allow a message to be sent. Button 412C may be an SOS button that sends a signal to the other vehicles, notifying them that the present vehicle is in need of help. Various numbers of buttons may be used. The number of buttons may change as the screen changes by the use of touch screen buttons.

Referring now to <FIG>, the screen display <NUM> is reached after depressing the button <NUM>. In this example, new buttons 430A and 430B are illustrated. Button 430A corresponds to a send button for sending the message display. Button 430B returns to a previous screen. In this example, a keyboard <NUM> is used for typing messages within a message indicator portion <NUM> of the screen display <NUM>. Of course, the keyboard <NUM> may be a touch screen keyboard with various letters and numbers for generating the messages which may be sent by the vehicle radio associated with the display <NUM>. Voice control may also be used for generating messages as well.

Referring now to <FIG>, a block diagrammatic view of the radio <NUM> for the vehicles is set forth. The system has a controller <NUM> that is formed using one or more microprocessors. The controller <NUM> is coupled to a user interface <NUM>. The user interface <NUM> may be one or more different types of user interfaces that act alone or together to allow the user to input various commands or control the radio. In this example, five buttons <NUM> are used for various functions such as dimming the backlight and controlling various functions on the screen. The user interface <NUM> may also include an ambient light sensor <NUM> for dimming or brightening the display depending on the conditions around the radio. The ambient light sensor <NUM> generates an ambient light signal corresponding to the amount of light received at the sensor <NUM>.

The user interface <NUM> may also include a liquid crystal display (LCD) <NUM>. The liquid crystal display <NUM> may be used to display various menus and displays such as the display <NUM> illustrated above. The LCD display <NUM> may be backlit and have high resolution to provide various types of data and interfaces therein.

The user interface <NUM> may also include a touch screen <NUM>. The touch screen <NUM> may react to touch and gestures such as sliding gestures across the screen thereof. The touch screen display <NUM> may use projective capacitive technology to sense a touch and gestures upon the surface thereof.

The controller <NUM> may also be coupled to a wired input/output (I/O) <NUM>. The modules set forth in the wired I/O <NUM> include a power source <NUM> such as the vehicle battery or an ignition signal that is powered when the ignition of the vehicle is operating. The wired I/O <NUM> may also include a VHF push-to-talk module <NUM>. The VHF push-to-talk module may allow voice communication directly between various vehicle radios.

A serial module <NUM> may provide the controller <NUM> a means for serial communication external to or within the vehicle.

An ambient air temperature sensor <NUM> may be used to provide the ambient air temperature to the controller <NUM>. A cellular USB module <NUM> allows a wired USB connection between the controller <NUM> and the originating device such as a cellular phone.

A USB charge port <NUM> may also be provided in communication with the controller <NUM>. The USB charge port <NUM> may be a port used to receive or transmit content to or from a mobile phone. USB charge port <NUM> may also provide enough current to charge a cellular phone.

A controller area network (CAN) <NUM> may be provided. The various devices or modules set forth within the radio may communicate with the controller area network. The controller area network <NUM> may also communicate with other sensors and actuators within the vehicle.

A secure car area network <NUM> may also be included within the system. The secure controller area network <NUM> may allow secure connections between the various devices within the vehicles.

The controller <NUM> may also be coupled to a camera <NUM>. The camera <NUM> may be an NTSC camera. Of course, one or more cameras <NUM> may be incorporated into the system.

The wired I/O <NUM> may also include an audio input/output module <NUM>. The I/O module <NUM> may generate various output signals that correspond to audio output. In this example, the audio module <NUM> may provide various numbers of outputs including six outputs. The controller may also receive inbound audio signals through a jack or connector. The present disclosure has two audio inputs.

The controller <NUM> may also be coupled to the Apple interface <NUM>. The Apple interface <NUM> may allow the vehicle to intercommunicate with an Apple® device.

An accelerator/gyrometer <NUM> may also be used by the controller <NUM> for providing data regarding the state of the vehicle. For example, the accelerator/gyrometer <NUM> may provide various rotational moments and accelerometers in various directions.

The controller <NUM> may also be coupled to various types of memory including an eMMC memory <NUM>. The eMMC memory <NUM> is an embedded multi-media controller memory that comprises both a flash memory and a controller embedded therein for controlling the flash memory.

Another memory associated with the controller <NUM> is a dynamic random access memory (DRAM) <NUM>. The dynamic random access memory <NUM> may be used for storing the program code for the processor functions.

A real-time clock <NUM> may also be coupled to the controller <NUM>. The real-time clock <NUM> may include a battery to maintain the time therein. The real-time clock <NUM> may be set to function or synchronize with a global positioning system.

A wireless module <NUM> may include a WiFi module <NUM> for coupling to WiFi. The wireless module <NUM> may also include a Bluetooth interface <NUM>. In this example, two Bluetooth interfaces <NUM> are provided. A radio module <NUM> may also be provided within the wireless module <NUM>. The radio module <NUM> may provide vehicle-to-vehicle radio functions controlled in part by the controller <NUM>. The radio module <NUM> will be described in further detail below.

The wireless module <NUM> may also include a global positioning system interface <NUM>. The global position system interface <NUM> may interface with the global satellite system and relay the signals to the controller <NUM> or may determine from the signals within the global positioning system module <NUM> the position of the vehicle.

The wireless module <NUM> may also include an AM/FM/weather band (WB) interface for interfacing with the AM, FM and weather band of over-the-air broadcasts. The AM/FM/weather band module <NUM> may couple with the speakers for audibly displaying various signals thereon.

The wireless module <NUM> may be controlled by the controller <NUM> in response to various responses from the user interface <NUM>. That is, the various portions of the user interface <NUM> may be communicated to the controller <NUM> to allow the various other portions associated with the radio to communicate thereto. The wireless module may control both inbound and outbound data and messages for the radio <NUM>.

The wireless module <NUM> also may include a satellite transceiver <NUM>. The satellite transceiver <NUM> is used for receiving signals from a satellite. In certain examples, the satellite transceiver may also be used to transmit signals to a satellite.

A cellular transceiver <NUM> may also be part of the wireless module <NUM>. The cellular transceiver <NUM> may be used to transmit and receive signals from the cellular communication system <NUM>. The cellular system <NUM> may be an LTE system or other types of wireless technology.

Referring now to <FIG>, the radio module <NUM> is illustrated in further detail. The controller <NUM> includes a serial peripheral interface <NUM>, an interrupt output <NUM> and a GPS input <NUM>. The serial peripheral interface <NUM> exchanges signals between the controller <NUM> and the controller <NUM>. The serial peripheral interface <NUM> is used both to transmit and receive messages. The serial peripheral interface <NUM> receives configuration signals and received messaging signals from the controller <NUM>. The interrupt output <NUM> generates interrupts that are communicated to the controller <NUM> for various control functions.

The GPS input <NUM> receives one pulse per second signals from the GPS system. The GPS signals represent signals from a satellite and together with the timing may be used to triangulate a position of the radio/vehicle.

The controller <NUM> is in communication with a transceiver <NUM> through a serial port interface <NUM>. The transceiver <NUM> is used to transmit and receive radio signals from the front end module <NUM>. The front end module <NUM> is used to amplify the signals received and transmitted from the receiving antenna <NUM> and to the transmitting antenna <NUM>. The radio module <NUM> may be used for vehicle communication.

The controller <NUM> includes firmware <NUM> for controlling the functions of the radio including timing of the signals, queuing of the signals and the exchange of signals between the transceiver <NUM> and the controller <NUM>.

Referring now to <FIG>, the firmware <NUM> for the controller <NUM> is set forth. In this example, the interface <NUM> is in communication with the serial radio module <NUM>. Interface <NUM> is in communication with a serial peripheral interface master <NUM>. The serial peripheral interface master <NUM> is in communication between the interface <NUM> and the radio physical (PHY) control module <NUM>. The SPI master <NUM> is the driver that enables communication to the physical radio control module <NUM> to control and configure the radio as well as transmit and receive messaging therefrom. The radio physical control module <NUM> is in communication with a radio frame control module <NUM>. The radio frame control module <NUM> manages the frame timing of the radio link. It uses a mixture of timing parameters and configurable parameters that are maintained by a configuration management block module <NUM>. The timing of the radio control module for the radio frame control module <NUM> is globally timed between all of the radio modules by way of the 1PPS from the GPS time-based module <NUM>. The time-based module <NUM> receives the GPS signal <NUM> through the time-based module <NUM>.

The radio frame control module <NUM> is in communication with the power amplifier control block <NUM>. The power amplifier control block <NUM> controls the front end module <NUM> to select the appropriate antenna that is used for communicating the transmit output power.

A transmit message processing module <NUM> coordinates acquiring the next message to send from the appropriate transmit queue based upon the appropriate frame timing. The transmit message processing module <NUM> is in communication with a fast pipe transmit queue <NUM>, a slow pipe queue <NUM>, and a beacon pipe queue <NUM>.

A received message processing module <NUM> handles received messages that are received at the radio module <NUM>. The messages may be frame checked, validated and a wrapper added to indicate where in the frame the message was received. The valid messages are then placed in the received message queue <NUM>. By knowing where in the frame that the message was received, the originating radio module or node may be determined therefrom. A host application interface <NUM> processes the received host messages and either forwards data or dispatches actions to the various blocks within the system. The host API module <NUM> is in communication with the configuration management module <NUM>, the fast pipe transmit queue <NUM>, the slow pipe queue <NUM>, the beacon pipe queue <NUM> and the received message queue <NUM>. The host API module <NUM> may also be in communication with the GPS time-based module <NUM>. The host API module <NUM> also retrieves and forwards messages from the queues mentioned above. The host API module <NUM> is also in communication with the SPI slave module <NUM>. The SPI slave module enables the transmission and reception of messages to and from the host <NUM> and, more particularly, to the serial peripheral interface, the interrupt output <NUM> and the GPS unit <NUM>. The radio module <NUM> acts as an SPI slave device.

The configuration management module <NUM> maintains the configurable radio parameters which are both persistent and non-persistent. The configuration management module <NUM> also performs frame timing, RF frequency selection and the group number and associated data. The configuration management module <NUM> also maintains the frequencies for the frequency hopping as will be further described below.

Referring now to <FIG>, details of the controller <NUM> are illustrated in further detail. The host <NUM> may be used to perform various functions as set forth in the modules below. The controller <NUM> may be used to perform various master functions. All of the radios in a group may have the capability to act as a master radio. However, once a master or leader is chosen as described before, the master is maintained until the group terminates. In block <NUM>, a distance module is used to determine the distance to a group. The distance to group master determination module <NUM> receives the GPS coordinates of the vehicles within the group. When a vehicle joins the group within a predetermined distance, the joining radio may join the group as will be described below. In block <NUM>, a group list identifier storage module maintains a list of the radios within a radio group.

A comparison module <NUM> is used to compare the distances of nearby radios to the master radio. The distance may be used to allow entry into a group.

The frequency hop control module <NUM> controls the frequency hopping for the radios. That is, the group may all simultaneously frequency hop so that intercommunication takes place. The frequency hopping will be described in further detail below.

A prioritization module <NUM> is used to prioritize various signals. For example, an SOS signal or an emergency vehicle signal may have priority over various other types of communication signals. A group membership module <NUM> may be used to identify nodes for the various radios within the group. Each node is assigned a timeslot for communication.

A satellite transceiver <NUM> may also be included within the control module <NUM>. The satellite transceiver module <NUM> may communication both to and from a satellite.

A cellular transceiver module <NUM> transmits and receives signals from a cell tower antenna.

A radio transceiver module <NUM> sends and receives signals from one or more radios. A drone control interface <NUM> controls a drone. That is, both communication signals pass through a drone and the location of a drone may be controlled using the drone control interface <NUM>. It should be noted that not all of the transceivers are required for a communication system. For example, the satellite transceiver <NUM> or the cellular transceiver module <NUM> may easily by eliminated. However, the RF transceiver <NUM> may also be a backup for the satellite transceiver <NUM> and the cellular transceiver <NUM>. Details of the various modules set forth in <FIG> will be described in more detail below.

The control module <NUM> may also include a packet relay module <NUM>. A relay list <NUM> is in communication with the packet relay module <NUM>. The packet relay module <NUM> maintains the relay list <NUM>. The packet relay module recognizes that each node or radio in a group has a limited radio range within which it can communicate to and from other nodes. Due to spatial diversity, the nodes may be split into two different groups. However, as long as there is a subset of nodes that can communicate, the nodes can form a path to other nodes indirectly and therefore a means for connecting in-range and out of range nodes is possible. The relay list <NUM> is a list of the nodes and the communication aspects between the nodes. That is, some nodes may be active, some nodes may be inactive, and some nodes may be relayed. The packet relay module <NUM> is an array of nodes states which may be communicated to other nodes as regular updates. The details of this will be described in greater detail below.

Referring now to <FIG>, a diagrammatic view of the RF message format is set forth. An RF message <NUM> is illustrated having a length portion <NUM> and a payload portion <NUM>. The length portion <NUM> may provide an indication as to the length of the payload <NUM>. The length portion <NUM> may be one byte and the payload portion may be a maximum portion of <NUM> bytes in this example. A length of zero may indicate a host message. A length of one may indicate a radio message. The most significant bit of the length may be used to define the destination of the message. A message type and cyclical redundancy check may be provided within the radio hardware as may be described in more detail below. The RF message <NUM> applies to messages that are communicated through the fast pipe transmit queue <NUM>, the slow pipe queue <NUM> and the beacon pipe queue <NUM>. The slow pipe queue <NUM> may be referred to as a long range queue whereas the fast pipe may be referred to as a short range queue.

Referring now to <FIG>, the long range (slow pipe) communication chart for a constricted radio is set forth. The charts illustrated in <FIG> have the long range nominal data rate is <NUM> bytes per second with each message length being a maximum of <NUM> bytes total. Chart <NUM> illustrates the maximum users allowed, the bits per user per second and the latency when the maximum amount of users allowed changes. The first row has two maximum allowed users which allows <NUM> bits per user per second and a latency speed of <NUM> seconds. When the maximum amount of users allowed is <NUM>, the bits per user per second is <NUM> and the latency is approximately <NUM> seconds. When the maximum amount of users allowed is <NUM>, the bits per user per second is <NUM> and the latency is <NUM> seconds. When the maximum users allowed is <NUM>, the bits per user per second are <NUM> and the latency is <NUM> seconds. Each message duration may be <NUM> milliseconds.

The overall radio parameters may have the RF bandwidth being <NUM> kilohertz. A spreading factor of <NUM> long range, <NUM> short range and <NUM> beacon intervals are set. The transmit may be <NUM> dBm or <NUM> watt. Fifty-three of a possible <NUM> possible RF channels may be used. A plurality of hop tables may also be used. <NUM> hop tables with a maximum devolved time of <NUM> milliseconds may be used. The system may use time division multiple access.

Frequency hop spread spectrum operation may be performed between <NUM> and <NUM> megahertz. In table <NUM>, one of the examples of the short range characteristics of the communicating radios is set forth. In the short range radio, the nominal data rate in this example is <NUM> bps. The message length is approximately <NUM> bytes. As mentioned above, each of the short range, long range and beacon signals may be <NUM> bytes total maximum. In this example and as will be described below, more data may be communicated in a short range. In this example, when two users are allowed, <NUM> bits per second may be communicated with the latency of <NUM> seconds. This is ten times faster than that of the long range signal of table <NUM>. When five maximum users are allowed, <NUM> bits per second per user may be communicated with the latency of one second. When a maximum amount of users allowed is ten, the bits per user per second is <NUM> and the latency is two seconds. When the maximum amount of users is <NUM>, the bits per user per second is <NUM> and the latency is four seconds. The message duration of the short range signal is <NUM> milliseconds.

With respect to the beacon signal, a nominal data rate of <NUM> bits per second is set forth. As mentioned above, the message length may be <NUM> bytes total but the beacon may have <NUM> symbols of preamble therein. <NUM> bits may be communicated per second with the beacon signal wherein the message duration is <NUM> milliseconds with a message latency of two seconds.

By using time deviation multiple access (TDMA), a contention-free access system be used. A dedicated bandwidth per node is provided and deterministic latencies ensure sufficient and predictable communication for both the fast pipe and the slow pipe as will be described below.

Referring now to <FIG>, in the present example, a frame <NUM> is divided into ten timeslots <NUM> when the maximum amount of allowed users is <NUM>. In this example, each frame is <NUM> seconds or <NUM>,<NUM> milliseconds. Each timeslot <NUM> is <NUM>,<NUM> milliseconds. Therefore, there are three frames per minutes. Each radio module or node is assigned a number within a group. Depending on the number of members in the group, as illustrated above in <FIG>, each node may be assigned a whole timeslot, multiple timeslots or fractional timeslots to optimize the data transfer. The timeslots are numbered at the start of a minute by the following equation: INT((sec/<NUM>)%<NUM>).

Referring now to <FIG>, a distribution of the number of timeslots as a function of group size is set forth. In the following example, the maximum nodes allowed in the first row is <NUM>. Therefore, the number of timeslots per node per frame is <NUM>. When the maximum number of nodes allowed is <NUM>, the number of timeslots per node per frame is <NUM>. When the maximum amount of nodes allowed is <NUM>, the number of timeslots per node per frame is <NUM>. When the maximum amount of nodes allowed is <NUM>, <NUM> timeslots per node per frame is illustrated.

Referring now to <FIG>, a timeslot <NUM> is illustrated having a slow pipe <NUM>, a fast pipe <NUM> and a beacon pipe <NUM>. The slow pipe, in this example, is <NUM> milliseconds. The fast pipe is <NUM> milliseconds and the beacon pipe is <NUM> milliseconds. The overall timeslot is <NUM>,<NUM> milliseconds or <NUM> seconds. Each of the pipes <NUM>, <NUM> is of a fixed duration and is always present within a frame. Each node has a guaranteed and uncontested period of time to transmit its assigned pipe within the timeslot.

Referring now to <FIG>, the frame <NUM> is illustrated with respect to the channel hopping frequencies. The number of channels hopped in each <NUM>-second RF frame is <NUM>. One frequency of <NUM> milliseconds in length is set for the slow pipe. The fast pipe <NUM> is broken into <NUM> portions <NUM> that correspond to each node. Therefore, in this example, the fast pipe has portions F0-F9. In this example, <NUM> fast pipe portions correspond to a frequency hop. Therefore, the fast pipe has <NUM> frequency hops C1, C2 and C3. The last fast pipe portion F9 (the tenth in this example) has a fourth channel C4. The beacon <NUM> also has a corresponding channel hop frequency C5. Each channels dwell time is under the FCC limit of <NUM> milliseconds because the guard bands around the slot and the way the fast pipe is divided is in period of between <NUM> milliseconds and <NUM> milliseconds.

Referring now to <FIG>, the diagrammatic representation of a method of operating a radio is set forth. In state <NUM>, the radio is idle. In state <NUM>, the radio is turned on and a scan <NUM> is performed. A group number <NUM> may be assigned and the new or joining radio joins the group in <NUM>. A slot number <NUM> is assigned to the radio. The system also includes a ride (or vehicle operation) mode at <NUM> in which signals are exchanged during the designated timeslots per node. After riding or operating the vehicle is performed in <NUM>, a radio may leave the group in <NUM>. The group determines the channel hop table usage whereas the size is the maximum number of riders in the group. In some examples, size of the group may not be a factor. That is, the group may not have a maximum size. It should be noted that when group numbers are assigned, the master or leader of the group is assigned slot <NUM> as will be described in more detail below.

Referring now to <FIG>, a slow pipe <NUM> is illustrated having a guard time <NUM> that shows both before and after a slow pipe message <NUM>. In this example, the slow pipe duration is <NUM> milliseconds while the slow pipe message duration is <NUM> milliseconds. Each guard time <NUM> may be <NUM> milliseconds.

Referring now to <FIG>, a fast pipe <NUM> is illustrated with a plurality of slices <NUM>. The fast pipe <NUM> is designated for fast speed and shorter range as compared to the slow pipe <NUM>. The fast pipe has <NUM> slices, each of which correspond to a respective node within the group. The lower latency of the fast pipe provides a higher speed. Each of the slices within the fast pipe includes a guard time <NUM>. Between each guard time, it is a fast pipe slice message <NUM>. The fast pipe duration is <NUM> milliseconds. The fast pipe slice duration is <NUM> milliseconds. The fast pipe message duration is <NUM> milliseconds and the fast pipe guard time is <NUM> milliseconds in this example.

Referring now to <FIG>, the beacon type <NUM> is illustrated in detail. The beacon pipe contains beacon messages transmitted by the master radio or the radios of the group. The beacon messaging provides the joining data for unassociated nodes to find nearby groups. The beacon contains data about the groups so that unassociated nodes can join. As mentioned above, the duration of the beacon <NUM> is <NUM> milliseconds. The guard portions <NUM> are <NUM> milliseconds and the beacon message <NUM> is <NUM> milliseconds. The beacon message <NUM> has a beacon preamble <NUM> and a beacon payload <NUM>. The beacon preamble <NUM> and the beacon payload <NUM> combine to about <NUM> milliseconds. During a beacon preamble <NUM> allows for the carrier activity detection facility of the radio hardware to switch to the next frequency. All potential frequencies cannot be listened to within a single beacon pipe duration. However, in this example, three beacon pipe intervals allow all of the frequencies to be scanned.

<FIG> is a transmit beacon whereas a receive beacon <NUM> is set forth in <FIG>.

<FIG> contain various portions of a fast pipe, slow pipe and beacon pipe. The same data may be communicated in the fast pipe and slow pipe. The fast pipe may contain some additional data.

Referring now to <FIG>, a packet <NUM> used in the communication system each contain a protocol identifier byte (PID) <NUM>. Each packet may also contain a checksum such as a cyclical redundancy check byte <NUM>. Protocol specific data portion <NUM> may also be included after the CRC packet. The protocol ID identifies the type of packet as the cyclical redundancy check helps determine errors.

Referring now to <FIG>, a group ID packet may comprise a group size <NUM> and a group identifier <NUM>. The group size <NUM> may be <NUM> bits and ranges from <NUM>-<NUM>. The group identifier may range from <NUM>-<NUM> (<NUM> bits). Together the group size and the group identifier are two bytes (<NUM> bits). Group size may be an optional feature.

Referring now to <FIG>, a GPS latitude and longitude may also be provided as a protocol specific data. A latitude portion <NUM> and a longitude portion <NUM> may include a total of <NUM> bytes.

Referring now to <FIG>, an elevation <NUM> may also be provided. The elevation may be in meters and correspond to <NUM> bytes. The elevation data and the GPS data in <FIG>, respectively, may be obtained from the GPS signal.

Referring now to <FIG>, a message identifier that may contain a text message for another radio is set forth. A sequence number that is used to display notifications is set forth as <NUM> bits in <NUM>. An identifier portion <NUM> may have <NUM> or <NUM> bits and may indicate a type of data. For example, a zero in the identifier bit may indicate there is no message and thus is a placeholder. A placeholder may also default to communicating the last known position of the radio. An identifier of "<NUM>" may indicate an SOS and thus the vehicle may be prioritized. Other types of identifiers may also be provided.

Other types of data include speed with one byte of data, a fault code (crash, stall, battery), slot, color (for rely purposes set forth below), heading with one byte of data in degrees and a vehicle identifier that has three bytes and a cyclical redundancy check of <NUM>. The vehicle identifier may be a vehicle identification number or some type of serial number.

A vehicle information byte is illustrated in <FIG>. In this example, a gear portion <NUM> may be used as all as a type portion <NUM> for generating the gear the automatic transmission is in.

Referring now to <FIG>, a pipe configuration packet <NUM> is set forth. In this packet, <NUM> bytes are used, <NUM> of which correspond to a spreading packet <NUM>, <NUM> bits correspond to a coding rate <NUM> and <NUM> bits correspond to a payload size <NUM>. In this manner, the spreading factor, coding rate and payload size of each of the fast and slow pipe configurations may be communicated to the node radios.

Referring now to <FIG>, a group occupation packet may be <NUM> bytes in communicating the occupied slots for the group.

Referring now to <FIG>, a group join acknowledge packet has a slot identifier with <NUM> byte in the slot portion <NUM> and <NUM> bytes for the slot identifier <NUM>.

Referring now to <FIG>, the beacon packet <NUM> is set forth. In this representation of the beacon packet <NUM>, a protocol identifier (PID) in the protocol identification portion <NUM> indicates the packet is a beacon packet. A cyclical redundancy check portion <NUM> is set forth. A group identifier <NUM>, a time portion <NUM>, a fast pipe configuration portion <NUM>, a slow pipe configuration portion <NUM>, a GPS portion <NUM>, a group occupation portion <NUM>, a group acknowledge portion <NUM> and a name portion <NUM> may all be included therein.

Alternatively, a new group user may use group occupation information and choose a potential slot to use. As part of the joining operation, the user randomly listens to the chosen slot a small portion of the time. If the new user hears another radio in the chosen slot, then the new group user knows there is a conflict. The new group user then switches to another available slot, as determined by which slots they are receiving packets in. This listening and slot switching is an ongoing operation so no master is required to assign slots to riders.

Referring now to <FIG>, a protocol ID (PID) of <NUM> is set forth in the PID portion <NUM>. A CRC portion <NUM> is also included therein. A message portion <NUM>, a vehicle identifier <NUM>, a vehicle information packet such as the gear and the SOS type <NUM> is provided therein. A GPS portion <NUM>, a group identifier portion <NUM>, an elevation portion <NUM>, a speed portion <NUM>, a vehicle heading portion <NUM> and a name portion <NUM> may all be set forth in a fast node packet.

Referring now to <FIG>, as mentioned above, the slow pipe packet may contain less data. In this example, a protocol identifier of <NUM> in the protocol identifier portion <NUM> is the number <NUM> representing a slow node or slow pipe packet. A CRC is provided in portion <NUM>. A message portion <NUM>, a vehicle identifier portion <NUM> and a GPS portion <NUM> may all be included in the slow pipe packet <NUM>.

Referring now to <FIG>, a timeslot usage versus the number of nodes in a group is illustrated in the table. The table has a first RF frame <NUM>. A second RF frame is illustrated at <NUM>. The table shows the slow pipe usage for timeslots within an RF frame for various support group sizes. For example, <NUM> nodes, <NUM> nodes, <NUM> nodes and <NUM> nodes are all illustrated as the maximum number of nodes. In each timeslot node <NUM> corresponds to the master radio and the other numbers correspond to the node. In frame <NUM>, every other timeslot corresponds to the first node. With <NUM> nodes, the nodes are used twice per RF frame. With <NUM> nodes, each nodes uses one of the ten timeslots. With <NUM> nodes, each of the timeslots of the first and second RF frame are used. The table also indicates the usage of slices within the fast pipe. That is, when viewed from the perspective of a slow pipe, only one slow pipe per timeslot is provided. The timeslots are all broken into slices in which the repetition rate for the various slices and the number of slices per timeslot is also indicated. That is, reference frame <NUM> and reference frame <NUM> may correspond to consecutive slices when referring to a fast pipe.

Referring now to <FIG>, the number of transmit events into an RF frame is set forth for the master radio and radios of other nodes. Once the group reference time, which corresponds to the time of group formation, is known and the current time from the GPS system, the number of transmit events that have elapsed since the group's formation for each node and therefore the current transmit frequency may be determined, an index into a frequency table offset may be used using the group reference time as the group offset and the node number as the second offset. The group offset lessens the likelihood that two groups have the same group number and collision frequency. The second offset reduces offset that a frequency jamming signal can corrupt all the node communications at a given time. When <NUM> nodes are used in the system, <NUM> slow pipe communications, <NUM> fast pipe communications may take place and <NUM> beacon communications may take place. When <NUM> maximum nodes are provided, <NUM> slow communications, <NUM> fast communications and <NUM> beacon communications may take place. With <NUM> maximum nodes, <NUM> slow communications, <NUM> fast communications and <NUM> beacon communications may take place. When <NUM> maximum nodes are provided in a system, <NUM> slow communication, <NUM> fast communications and <NUM> beacon communications may take place.

Alternatively, in a system with no master (all radios transmit beacons) the maximum number of transmit events the maximum will be the number for the master described above. However this number may be reduced.

Referring now to <FIG>, the transmit events in one RF frame for each of the either master node or the other nodes is set forth. As noted, the master node communicates both the beacon and data. With <NUM> maximum nodes, <NUM> transmission events and <NUM> transmission events for each node besides the master node take place. When <NUM> maximum nodes are provided within a system, <NUM> transmission events for the master and <NUM> for each other node are provided. When <NUM> is the maximum number of nodes, <NUM> master transmission and <NUM> transition events are formed. When <NUM> maximum nodes are provided is a system, <NUM> master transmission events take place while <NUM> individual node events take place. Of course, the tables set forth in <FIG> may be derived from the timeslot usage illustrated in <FIG>.

Referring now to <FIG>, a method for forming communication signals corresponding to the above figures is set forth. In step <NUM>, the various types of time frame parameters are established including the frequency hop parameters and the time frame parameters such as the duration of the slow pipe, the duration of the fast pipe, the duration of each of the slices and the duration of the beacon pipe. In step <NUM>, the time frame is divided into the plurality of timeslots wherein each timeslot has a node identifier. As mentioned above, the node identifier corresponds to one of the plurality of audible nodes. In step <NUM>, the timeslot node identifier is provided for each vehicle radio in a group. When the timeslot node identifiers are assigned, unused timeslots are provided. In step <NUM>, a slow pipe data is generated for each user device of the group. In step <NUM>, the data is inserted into the single node corresponding to the timeslot. In step <NUM>, fast pipe data is generated for each of the nodes in the group. If fast pipe data is not desired to be transmitted by one of the nodes of the group, a placeholder may also be generated in step <NUM>. In step <NUM>, the fast pipe data or the placeholder data for each node is placed into the pipe in sequence that they were placed into the queue. That is, both the fast pipe and the slow pipe have a queue within the radio and thus the content to be provided within the fast pipe or slow pipe are communicated in order. In step <NUM>, beacon data is generated at the master radio. The beacon data may provide the various types of data illustrated in <FIG>. In step <NUM>, the beacon data is communicated from the master radio.

In step <NUM>, the master radio maintains the group of radios within the group.

Referring now to <FIG>, a method for operating the system is set forth. In step <NUM>, the protocol for communicating between the master and other radio nodes is set forth. The protocols are set forth above in detail. In order for the master radio to operate and the other radios to operate that are within the nodes, step <NUM> obtains a GPS lock at the master radio and any joining radio nodes. At step <NUM>, a beacon message is transmitted from the master radio. As mentioned above, the beacon transmit message comprises a relatively long preamble as compared to the beacon payload. In step <NUM>, the group beacon data for joining the group is provided. In <FIG>, various types of data for joining the group including the group identifier and the user nodes are provided. In step <NUM>, the beacon transmit message is communicated from the master system with the joining data. In step <NUM>, the joining radio nodes scan all possible frequencies for the preamble and switches to the next hopping frequency. As mentioned above, this may be calculated based upon the joining data as described above in various places including with reference to <FIG>.

Referring now to step <NUM>, it is determined at the joining node whether the master system is nearby. In the joining data, the GPS location of a master system is communicated. The location of the joining radio is also known. Therefore, if multiple group identifiers are obtained by the joining radio, the nearest group may be joined.

In step <NUM>, the time of the group formation and the current time is used to determine the number of transmit events so that the frequency hop may be determined based upon the joining data of the beacon. Another way to determine the frequency is using the group number and the GPS time. That is, the time of group formation may not be used. In step <NUM>, data is transmitted during the timeslot for each member of the group. In step <NUM> the timeslots may be monitored for missing data for timeslots which are identified in the joining data. The master system may provide the used node identifiers. In step <NUM>, the data may be transmitted from the joining radio. The transmission of step <NUM> is received at the master radio during the identified timeslot in step <NUM>. In step <NUM>, if the node is available, the timeslot is assigned to the joining or first radio in step <NUM>. In step <NUM>, an acknowledgement signal is communicated to the first radio and the group beacon data is updated in step <NUM> to correspond to the node being used by the recently joined radio.

Referring back to step <NUM>, if the node is not available, step <NUM> is performed in which the master radio does not send an acknowledgement signal and a different timeslot may be identified for the joining radio in step <NUM>. After step <NUM>, data may be transmitted again from the joining radio in step <NUM>.

Referring now to <FIG>, a method for initiating a group from a master radio is set forth. In step <NUM>, a scan from the master radio is performed when a group is to be formed. This may take place after powering up the master radio. In step <NUM>, a unique group code that is not previously received during a scan step is performed. That is, in step <NUM>, the group identifiers for all adjacent groups capable of being received may be provided and monitored. In step <NUM>, a unique group not previously used is obtained. In step <NUM>, a beacon signal comprising the group code and other joining data is generated. In step <NUM>, if a joining signal from outside the radio group is formed, a node may be assigned in step <NUM> as described above. In step <NUM>, when a radio signal is joined from within the group, the beacon data may continue to be communicated. In this manner, the master radio continually monitors for new signals that could potentially join the group.

Referring now to <FIG>, which is a flowchart of an inventive method for entering a group automatically when a vehicle is close, a joining radio that is not part of the group may join the group automatically when the radio is close by. In step <NUM>, a group is established with a master vehicle and a plurality of vehicles as described above. In step <NUM>, a first communication signal is generated from a first vehicle that is not within the group. In step <NUM>, the first communication signal from the first vehicle is received at the master vehicle. In step <NUM>, it is determined whether the identifier that is associated with the first communication signal is in a group list of identifiers. If the vehicle identifier from the first communication signal is in the first group, the process ends in step <NUM>.

Referring back to step <NUM>, if the vehicle identifier is not within a group list of identifiers at the master radio, step <NUM> is performed. In step <NUM>, the first position of the first vehicle is obtained from the first communication signal. In step <NUM>, the position of the master radio is determined. Both step <NUM> and <NUM> may be performed using the GPS data received at each of the radios. In step <NUM>, the first vehicle position and the master vehicle position are compared in a comparing module to determine the distance therebetween. In step <NUM>, it is determined whether the distance between the two vehicles is within a predetermined distance. When the distance is not within a predetermined distance, meaning that the first vehicle and the master vehicle are far enough apart, the process ends in step <NUM>. After step <NUM>, if the distance is within a predetermined distance, step <NUM> is performed which automatically adds the first vehicle to the group. In step <NUM>, a timeslot is assigned to the first vehicle for communication with the other vehicles. In step <NUM>, a position is communicated to the group using the timeslot of either the slow pipe or fast pipe. Referring back to step <NUM>, an alternative step compared to those of steps <NUM>-<NUM> may also be performed when the distance is within a predetermined distance. The master vehicle in step <NUM> may communicate the position of the nearby vehicle to all the other vehicles. In this manner, the nearby vehicle does not necessarily have to join the group as set forth in steps <NUM>-<NUM>.

Referring now to <FIG>, a method for handling emergency vehicles is set forth. In step <NUM>, a plurality of radio groups are formed at each master vehicle with a plurality of vehicle radios in each group. That is, a plurality of master vehicles may form a respective plurality of groups that do not intersect. Each radio may only be part of a single group. In step <NUM>, a timeslot protocol for the groups is established prior to forming the groups. Each master radio reserves a timeslot for emergency vehicles to communicate therethrough. In step <NUM>, groups are searched for at the emergency vehicle. In step <NUM>, the emergency vehicle joins each of the plurality of vehicles using the predetermined timeslot for communication therebetween. Should a conflict arise when transmitting, the closest group may be picked and alternated with during a conflicting timeslot. In step <NUM>, a position signal and other data may be communicated to the group or more than one group during the timeslot. A vehicle identifier such as the type of emergency vehicle as well as an emergency message may be communicated. For example, should the system be used for a snowmobile, a groomer message and speed may be communicated so that various vehicles may be warned of the position of a slow moving emergency vehicle.

In step <NUM>, a display may be generated at each of the group members that correspond to the emergency vehicle. The warning message may also be displayed.

In step <NUM>, the emergency vehicle may continue to scan for other nearby groups so that the emergency signals may be provided thereto.

In step <NUM>, when a group identifier is no longer received from another master because, for example, the master vehicle has extended beyond the RF range, the available group may no longer be communicated to during the timeslot associated with that particular group. Thus, available groups are removed in step <NUM>. After step <NUM>, step <NUM> scans for other groups at the emergency vehicle.

Referring now to <FIG>, a method for using a satellite to communicate is set forth. As mentioned above, the satellite and satellite system are one example of a communication system. In step <NUM>, communication signals are generated at a vehicle radio. In step <NUM>, in an attempt to communicate through the satellite is provided. That is, a communication signal may be generated or communicated through an antenna of the vehicle radio. In step <NUM>, a response signal is expected at the vehicle radio that communicates in step <NUM>. However, after a certain amount of time, the response may not come. In step <NUM>, it is determined whether a successful communication was performed to the satellite. An acknowledgement signal may be communicated back to the vehicle radio to qualify the communication in step <NUM> as successful. If the communication is not successful in step <NUM>, step <NUM> attempts to communicate through the cellular system. In step <NUM>, a response from the cellular system is expected and therefore an amount of time may be weighted for by the system to determine whether the communication to the cellular system is successful. In step <NUM>, it is determined whether the communication with the cellular system is successful. As mentioned above, if an acknowledgement signal or another type of response signal is received, then the communication with the cellular system is successful. After step <NUM> determines that the communication is not successful, step <NUM> communicates the first communication signal with the two-way radio. In this manner, the cellular system may be used to backup the satellite system and the two-way radio system may be used to backup the cellular system. However, the vehicle-to-vehicle radio may also be used to backup the satellite system.

Referring back to steps <NUM> and <NUM>, when the communication to the satellite is successful and whether communication to the cellular system was successful, step <NUM> is performed. In step <NUM>, it is determined whether the communication signal is destined for another user. If no, the system ends in step <NUM>. If the signal was destined for another user radio, the system continues operation in <FIG>.

In <FIG>, step <NUM> generates a communication signal at the first radio that is destined for a second radio. In step <NUM>, the communication signal is communicated from the first radio to a second radio using the vehicle-to-vehicle radio. In step <NUM>, it is determined whether a response is received from the second vehicle radio. If a response is received from the second vehicle radio, step <NUM> ends the process. Referring back to step <NUM>, if no response is received from the second vehicle, step <NUM> determines whether cell service is available. If the cell service is available, step <NUM> communicates the signal to the cellular service. In step <NUM>, it is determined whether a response is received at the first radio. If a response is received, a successful communication has been performed and therefore the system ends the process in step <NUM>.

Referring back to <NUM>, if a response is not received from the cellular service, or in step <NUM> if no cellular service is available, step <NUM> communicates the signal to the satellite. If the satellite signal is successfully received, a response signal may be generated in a similar manner to that described above. After step <NUM>, step <NUM> generates a response from the vehicle radio when a successful transmission is received. If no response from the second vehicle radio is received, step <NUM> is then performed in which a communication signal is communicated during a timeslot. In step <NUM>, if a response is provided, step <NUM> is again performed which ends the process.

Referring now to <FIG>, in step <NUM> communication with a communication center such as that illustrated in <FIG> may be performed. Access to the communication center may be obtained by outsiders wishing to communicate with people within the group through the internet or the like. In step <NUM>, a signal is communicated from the communication center with the vehicle identifier. The signal may not originate from the communication center but rather from various other places. In step <NUM>, an attempt to communicate to the vehicle radio through the satellite may be performed. In step <NUM>, if a response is not received, step <NUM> attempts to communicate through the cellular system. After step <NUM>, step <NUM> determines whether a response has been received from the cellular system. The response may be an acknowledgement signal or some other type of data signal. If a response is not received, the system attempts to communicate to another group member <NUM>. In this manner, a mesh network may be formed between various vehicles in which one vehicle may relay communications from another vehicle or from another communication system.

Referring back to steps <NUM> and <NUM>, if successful attempts are performed in communicating with the satellite in step <NUM> or in communicating with the cellular system in step <NUM>, step <NUM> may generate a screen display at the first radio indicative of the data received at the communication signal.

Referring now to <FIG>, a method for preventing multiple signals from being used at a receiving device is set forth. Instead of attempting communication as set forth in <FIG> and <FIG>, <FIG> allows the transmitting device to transmit the radio signals. The prevention of use of redundant signals is performed at the receiving device. In step <NUM>, data for a first communication signal is generated at a first radio. In step <NUM>, the communication signal is transmitted through a satellite transceiver of the first radio. In step <NUM>, the data signal is communicated through a cellular transceiver of the first radio. In step <NUM>, the data signal is communicated through the vehicle-to-vehicle radio according to the timeslot and node assignments as described above.

In step <NUM>, the data signal is received at a second radio. The data signal may be received through one of the communication system or multiple communication systems. That is, the receiving radio may receive the signal through a satellite transceiver, a cellular receiver, the vehicle-to-vehicle radio or one or more of the communication systems. In step <NUM>, it is determined whether the first data has been received through multiple communication systems. If the first data has been received through multiple communications, step <NUM> uses the data from one of the received data signals. In a practical sense, the first data from the first received signal may be used and processed by the second radio in step <NUM>.

Referring back to step <NUM>, when the first data has not been received multiple times, step <NUM> is performed. In step <NUM>, the data is used and processed from the first data signal.

Referring now to <FIG>, as mentioned above, with respect to the packet relay module <NUM> and the relay list of <FIG>, the rider group may have a limited ability to communicate with all of the riders in the group due to the terrain and distances between the various members of the group. The member of the group, as mentioned above, are referred to as nodes. Each node corresponds to a communicating radio.

Relaying is used so that all of the nodes intercommunicate so that data may be exchanged between each of the nodes of the group. Relaying is performed by maintaining an array of other nodes with may be designated as active, inactive or relayed. Each node keeps track of which node's information it sits in in order to provide a relay to other nodes in need. Each node sends its array of nodes states in a summary form as part of its regular communications between the nodes. Other nodes are aware of the connectivity of the various nodes. In <FIG>, a clustered group <NUM> is illustrated. The clustered group includes direct connections <NUM> between the nodes <NUM>. The group <NUM> is a clustered group which means that all of the nodes are within range of each other.

Referring now to <FIG>, the relay list is set forth in which the left column is the information or data for intercommunicating with other devices. For example, blue is directly connected to green, pink, yellow and purple. Green is directly connected to blue, pink, yellow and purple. Pink is directly connected to blue, green, yellow and purple. Yellow is directly connected to blue, green, pink and purple. Purple is directly connected to blue, green, pink and yellow. As is illustrated, no relaying of data takes place in the group <NUM>.

Referring now to <FIG>, a group <NUM> is set forth. In this group, the purple node moves out of range from the pink node <NUM>. All the nodes in <FIG> are labeled <NUM>. The direct connections <NUM> are the same as those set forth in <FIG> except that a direct connection between the pink node and the purple node is no longer active. In this manner, the blue node relays the data between the pink and purple nodes. In this case, the blue node is considered the master node and forwards beacon data so that none of the other nodes needs to relay such as the yellow node or the green node.

Referring now to <FIG>, the interconnections relative to the colors are set forth. In this example, blue communicates with green, pink, yellow and purple. However, the blue node also communicates or relays data between the pink node and the purple node as indicated in the right-hand column of the chart. As noted, the blue node communicates directly with each of the other nodes.

The green node communicates directly with blue, pink, yellow and purple. Pink communicates directly with blue, green, yellow and, through a relay, with purple. Yellow communicates directly with blue, green, pink and purple. Purple communicates directly with blue, green and yellow. However, purple communicates via relay with the pink node.

Referring now to <FIG>, the configuration of <FIG> is changed by the purple node <NUM> moving further away from the blue master node. The blue node now must forward all other nodes to the purple because purple cannot intercommunicate with any of the other nodes.

Referring now to <FIG>, the relay chart is illustrated. In the top row, blue communicates directly with all of the other nodes. However, the blue must relay communications from yellow, blue, pink and purple. Blue is the only node that has a direct connection to each of the other nodes.

Green communicates directly with blue, pink and yellow and via relay with purple. Pink communicates directly with blue, green, yellow and indirectly with purple through the relay of blue. Yellow communicates with blue, green, pink and indirectly with purple through the relay of blue. Purple communicates directly with blue and indirectly with green, pink and yellow through the relay of blue.

By the relay chart in <FIG>, yellow and green do not need to forward the purple data that was received from the blue because the yellow and green nodes see that the blue node sees all nodes needing purple already.

Referring now to <FIG>, the pink node <NUM> moves a further distance from the blue node and therefore the pink node only directly communicates with the yellow and green nodes the only connection <NUM> to pink is either yellow or green.

In the relay list illustrated in <FIG>, blue communicates directly with green, yellow and purple. However, blue communicates indirectly with pink. Blue relays yellow, green, purple and communicates via relay with pink. Yellow and green need to relay data between the pink and blue nodes. Blue needs to relay all other nodes including forwarding the pink node data.

The green node communicates directly with blue, pink and yellow and indirectly with the purple node through a relay with blue. The pink node can be relayed by the green node to purple.

Pink indirectly communicates with the blue node and the purple node and directly communicates with the green node and the yellow node. The yellow node communicates directly with the blue node, green node and pink node. The yellow node communicates indirectly with the purple node through the relay of blue. That is, in the right-hand column, blue communicates the pink node data with the purple node data.

Referring now to <FIG>, a cluster <NUM> is more spread out in which a line formation is set forth for relaying and forwarding between nodes. In this example, blue does not relay yellow because it cannot tell that the other reachable node, purple, can see yellow already.

In this example, the only direct connection <NUM> to pink is green and to green is yellow. The direction connections <NUM> between yellow are purple and blue. The direct connections between purple are blue and yellow. Blue does not relay yellow because it can tell that the only other reachable node, purple, can see yellow already.

Referring now to <FIG>, blue is indirectly coupled to green and pink and directly coupled to yellow and purple. Blue is relay coupled to pink and couples purple to green. The green node is in direct communication with pink and yellow and indirectly with purple and blue. Yellow, pink, blue and purple are all available through relays.

Pink is in direct communication with green but is in indirect communication with blue, yellow and purple. Yellow is in direct communication with blue, green and purple. Yellow is in indirect communication with pink through green and relays blue, purple and pink data. Purple is in direct communication with blue and yellow and in indirect communication with green and purple.

Referring now to <FIG>, a disjoint formation is set forth. In this example, green may serve as a relay between pink and yellow while blue and purple are separate. The group <NUM> thus has direct connections <NUM> and is disjointed as indicated by the line <NUM>. Yellow and blue, if connected, would form a line and then a line formation would ensue and blue would relay purple and all nodes received from yellow such as green and pink and so on. In this example, blue is in direct communication with purple but is in indirect communication with green, pink and yellow should the connection be achieved. Blue must relay purple, yellow to pink and green.

Green is in direct communication with pink and yellow and in indirect communication with blue and purple. The disjoint nodes are pink and yellow and green is also in a line communication with the pink, yellow and blue and purple when blue is in communication with yellow.

Pink is in indirect communication with blue, yellow and purple and in direct communication with green. Yellow is in indirect communication with blue, pink and purple and in direct communication with green. The line under the blue connection indicates that the set is disjointed as indicated by the dashed line <NUM>.

Purple is in direct communication with blue and in indirect communication with green, pink and yellow.

Referring now to <FIG>, a flowchart of a method for maintaining the relay list illustrated above is set forth. In step <NUM>, a group (G) of nodes between a node N and connected nodes C(x) are formed as a nodes list. In step <NUM>, it is determined whether a node C(x) is a missing node which N can see. If the node C(x) is a missing node, then step <NUM> is performed in which the missing node is added to the relay with a weight of <NUM>. After step <NUM>, step <NUM> multiplexes the relay table and the weights with the primary protocol packets. In step <NUM>, the packets are received from other groups. In step <NUM>, the elements and list within the relay list are reevaluated in step <NUM> by restarting the process at step <NUM>.

Referring back to step <NUM>, when C(x) is not a missing node which N can see, step <NUM> checks whether C(x) is a missing node which N has received via the relay. If the node is a missing node, step <NUM> adds the missing node to the relay list with a weight of <NUM>/G. After step <NUM>, steps <NUM>-<NUM> are performed.

Referring back to step <NUM>, if C(x) is not missing a node, step <NUM> determines if the node is not equal to the master node (<NUM>), C(<NUM>) is not active and has elements in the relay list. If so, step <NUM> divides the weights in the relay list by <NUM>. After step <NUM> determines whether the node is not equal to <NUM> and the C(<NUM>) is not active, steps <NUM>-<NUM> are again performed.

The above-disclosed cellular communication system, satellite control system, communication control system, user access system, service providers, advertisers, product and/or service providers, payment service providers and/or backend devices may include and/or be implemented as respective servers. The servers may include respective control modules for performing one or more of the corresponding tasks and/or functions disclosed herein.

The wireless communications described in the present disclosure with respect to Bluetooth transceivers of user receiving devices and mobile devices may include transmission of data and/or signals having short-wavelength ultra-high frequency (UHF) radio waves in an industrial, scientific and medical (ISM) radio frequency band from <NUM> to <NUM>. The signals may be transmitted based on Bluetooth protocols and/or standards. The signals may be transmitted based on Bluetooth low energy (or smart) protocols and/or standards. The Bluetooth transceivers may include respective antennas.

The wireless communications described in the present disclosure can be conducted in full or partial compliance with IEEE standard <NUM>-<NUM>, IEEE standard <NUM>-<NUM>, IEEE standard <NUM>-<NUM>, and/or Bluetooth Core Specification v4. In various implementations, Bluetooth Core Specification v4. <NUM> may be modified by one or more of Bluetooth Core Specification Addendums <NUM>, <NUM>, or <NUM>. In various implementations, IEEE <NUM>-<NUM> may be supplemented by draft IEEE standard <NUM>. 11ac, draft IEEE standard <NUM>. 11ad, and/or draft IEEE standard <NUM>.

The foregoing description is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses. The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A OR B OR C), using a non-exclusive logical OR, and should not be construed to mean "at least one of A, at least one of B, and at least one of C. " It should be understood that one or more steps within a method may be executed in different order (or concurrently) without altering the principles of the present disclosure.

In this application, including the definitions below, the term 'module' or the term 'controller' may be replaced with the term 'circuit. ' The term 'module' may refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); a digital, analog, or mixed analog/digital discrete circuit; a digital, analog, or mixed analog/digital integrated circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor circuit (shared, dedicated, or group) that executes code; a memory circuit (shared, dedicated, or group) that stores code executed by the processor circuit; other suitable hardware components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip.

The term memory circuit is a subset of the term computer-readable medium. The term computer-readable medium, as used herein, does not encompass transitory electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term computer-readable medium may therefore be considered tangible and non-transitory. Non-limiting examples of a non-transitory, tangible computer-readable medium are nonvolatile memory circuits (such as a flash memory circuit, an erasable programmable read-only memory circuit, or a mask read-only memory circuit), volatile memory circuits (such as a static random access memory circuit or a dynamic random access memory circuit), magnetic storage media (such as an analog or digital magnetic tape or a hard disk drive), and optical storage media (such as a CD, a DVD, or a Blu-ray Disc).

The apparatuses and methods described in this application may be partially or fully implemented by a special purpose computer created by configuring a general purpose computer to execute one or more particular functions embodied in computer programs. The functional blocks and flowchart elements described above serve as software specifications, which can be translated into the computer programs by the routine work of a skilled technician or programmer.

The computer programs include processor-executable instructions that are stored on at least one non-transitory, tangible computer-readable medium. The computer programs may also include or rely on stored data. The computer programs may encompass a basic input/output system (BIOS) that interacts with hardware of the special purpose computer, device drivers that interact with particular devices of the special purpose computer, one or more operating systems, user applications, background services, background applications, etc..

The computer programs may include: (i) descriptive text to be parsed, such as HTML (hypertext markup language) or XML (extensible markup language), (ii) assembly code, (iii) object code generated from source code by a compiler, (iv) source code for execution by an interpreter, (v) source code for compilation and execution by a just-in-time compiler, etc. As examples only, source code may be written using syntax from languages including C, C++, C#, Objective C, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5, Ada, ASP (active server pages), PHP, Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, and Python®.

The teachings of the present disclosure can be implemented in a system for communicating content to an end user or user device. Both the data source and the user device may be formed using a general computing device having a memory or other data storage for incoming and outgoing data. The memory may comprise but is not limited to a hard drive, FLASH, RAM, PROM, EEPROM, ROM phase-change memory or other discrete memory components.

A content or service provider is also described herein. A content or service provider is a provider of data to the end user. The service provider, for example, may provide data corresponding to the content such as metadata as well as the actual content in a data stream or signal. The content or service provider may include a general purpose computing device, communication components, network interfaces and other associated circuitry to allow communication with various other devices in the system.

While the following disclosure is made with respect to specific services and systems, it should be understood that many other delivery systems are readily applicable to disclosed systems and methods. Such systems include wireless terrestrial systems, Ultra High Frequency (UHF)/Very High Frequency (VHF) radio frequency systems or other terrestrial broadcast systems (e.g., Multi-channel Multi-point Distribution System (MMDS), Local Multi-point Distribution System (LMDS), etc.), Internet-based distribution systems, cellular distribution systems, power-line communication systems, any point-to-point and/or multicast Internet Protocol (IP) delivery network, and fiber optic networks. None of the elements recited in the claims are intended to be a means-plus-function element within the meaning of <NUM> U. §<NUM>(f) unless an element is expressly recited using the phrase "means for," or in the case of a method claim using the phrases "operation for" or "step for.

Claim 1:
A method comprising:
establishing (<NUM>) a group of radios (<NUM>) disposed in respective vehicles by a first radio of the group of radios (<NUM>) in the respective vehicles, said group of radios (<NUM>) comprising a first plurality of radios (<NUM>) and the first radio disposed in a first vehicle;
generating (<NUM>) a first communication signal at a second radio in a second vehicle not within the group, the first communication signal comprising a first radio identifier and first position data corresponding to the second radio;
receiving (<NUM>) the first communication signal at the first radio;
determining (<NUM>) second position data of the first radio at the first radio;
comparing (<NUM>), by the first radio, the first position data and the second position data to obtain a distance; and
when the distance is within a predetermined distance in response to comparing (<NUM>), adding (<NUM>), by the first radio in the first vehicle, the second vehicle to the group, assigning (<NUM>) a timeslot for communication with the other vehicles to the second radio, and broadcasting, from the second radio, the first radio identifier and the first position data to the group (<NUM>) using the timeslot.