Method, device, and system for scheduling transmission of a status update in a time division multiple access (TDMA) communication system

A method, device, and system for scheduling a status update in a time division multiple access (TDMA) communication system. One method includes transmitting, with a call controller, scheduling information to the each of the plurality of communication devices via an outbound time slot associated with a control channel of a local common TDMA channel to schedule the each of the plurality of communication devices to transmit the status data in a pre-determined sequence. The method also includes receiving the status data from at least one of the plurality of communication devices in the pre-determined sequence.

BACKGROUND OF THE INVENTION

Communication systems implementing time division multiple access (TDMA) use a common channel for communicating among multiple users by allocating unique time slots to different users. Subscribers of communication systems that implement TDMA are often organized into groups, which are sometimes referred to as talkgroups.

A communication system that implements TDMA may suspend status update services for a subscriber during an active call. For example, a location update service for a subscriber, that allows the subscriber to provide location data, may be suspended when the subscriber is part of an active call. Accordingly, depending on the duration of a call, the location of subscribers may not be updated for a significant period of time. Within the public safety industry, the lack of updated status data for subscribers, such as location data, may inhibit or limit subscriber location tracking, location-based dispatching, and other functionality that relies on updated status data for a subscriber.

DETAILED DESCRIPTION OF THE INVENTION

As described above, a communication system implementing time division multiple access (TDMA) may suspend status update services for a subscriber when the subscriber is part of an active call. The status update services may allow a subscriber to send data separate from data, such as voice data, transmitted to talkgroup members as part of the active call (referred to herein as “call data”). Accordingly, the status data described herein may also be referred to as non-call data or a non-call update to distinguish it from call data. For example, a location update service may allow a subscriber to transmit a location. Without a mechanism to transmit such status data during an active call, updated status data for a subscriber may be outdated, unreliable, or unavailable. Furthermore, although a subscriber may override call data transmitted as part of the active call with status data to provide such status updates, this functionality may create gaps in the call data, may cause collisions as multiple subscribers may attempt to transmit status data at the same time, and may take a long time to receive status data for each subscriber depending on the size of the talkgroup. However, without updated status data, functionality that relies on updated status data from subscriber units, such as, among other things, tracking locations of the talkgroup members on a map, team tracking, and location-based dispatching, may not function properly.

Accordingly, embodiments described herein provide methods, devices, and systems for scheduling the transmission of status data within a TDMA communication system during an active call. In some embodiments, the transmission of the status data is scheduled so as to not impact audio. The transmission of the status data may also comply with Project 25 (P25 or Association of Public-Safety Communication Officials-International Project 25 (APCO-25)), the European Terrestrial Trunked Radio (TETRA) protocol, or other similar standards governing public safety organizations.

For example, one embodiment provides a method for scheduling transmission of status data from each of a plurality of communication devices in a time division multiple access (TDMA) communication system. The method includes transmitting, with a call controller, scheduling information to the each of the plurality of communication devices via an outbound time slot associated with a control channel of a local common TDMA channel to schedule the each of the plurality of communication devices to transmit the status data in a pre-determined sequence.

In some embodiments, the control channel is a slow associated control channel (SACCH). However, the present disclosure is not limited to using SACCH, and in other embodiments, during hang-time signaling, fast associated control channel (FACCH) may be used in place of SACCH as described herein.

The pre-determined sequence is a prioritized sequence. The priority of communication devices may be randomly assigned, assigned based on a member ranking configuration, assigned based on the next configured location cadence update, assigned based on the oldest location information since last update, or assigned based on a failed update from last scheduled attempt. The method also includes receiving the status data from at least one of the plurality of communication devices in the pre-determined sequence. As described herein, the terms “outbound” and “inbound” are with respect to the call controller.

In some embodiments, the method further includes transmitting, with the call controller, adjusted scheduling information to the each of the plurality of communication devices via the outbound time slot associated with the control channel of the local common TDMA channel to schedule the each of the plurality of communication devices to transmit the status data in a second pre-determined sequence in response to not receiving the status data from the each of the plurality of communication devices in the pre-determined sequence, the second pre-determined sequence being different than the pre-determined sequence. For example, the pre-determined sequence may be randomly assigned and the second pre-determined sequence may be assigned based on a failed update from the last scheduled attempt.

Another embodiment provides a portable communication device comprising an electronic processor. The electronic processor is configured to receive scheduling information from a call controller via an outbound time slot associated with a control channel of a local common time division multiple access (TDMA) channel. The electronic processor is also configured to transmit status data during an inbound time slot based on the scheduling information received from the call controller. As explained above, the “outbound time slot” and the “inbound time slot” are with respect to the call controller.

Yet another embodiment provides a TDMA communication system comprising a call controller. The call controller includes an electronic processor configured to transmit scheduling information to each of a plurality of communication devices via an outbound time slot associated with a control channel of a local common TDMA channel to schedule the each of the plurality of communication devices to transmit status data in a pre-determined sequence. The electronic processor is also configured to receive the status data from at least one of the plurality of communication devices in the pre-determined sequence.

FIG. 1is a diagram of a TDMA communication system100according to one embodiment. The TDMA communication system100includes a call controller110, a plurality of portable communication devices120A through120Z (one of the portable communication devices120A through120Z may be referred to herein as a portable communication device120), and a communication network130. The call controller110may be a computer-aided dispatch terminal for a public safety organization. The call controller110communicates with the plurality of portable communication devices120A through120Z via a communication network130. The communication network130may be a wired or wireless communication network, such as a cellular network, a land mobile radio (LMR) network, or a combination of both operating according to the time division multiple access (TDMA) communication technique. Portions of the communication network130may also be implemented using various wide area networks, for example the Internet, and local area networks, for example, a wireless local area network (for example, Wi-Fi).

In some embodiments, each portable communication device120(also referred to as “communication device120”) represents a subscriber of the TDMA communication system100. Each portable communication device120may belong to one or more talkgroups140that a user of the portable communication device120may switch between. A talkgroup140is a virtual radio channel on a digital radio system that enables communication between each portable communication device120of the talkgroup140. As described herein, each portable communication device120or communication device120may also be referred to as a talkgroup “member.” Each portable communication device120in a particular talkgroup140is assigned a talkgroup identifier, which allows the portable communication device120to send communications to the other portable communication devices120assigned the same talkgroup identifier. Each portable communication device120is also assigned a unique subscriber unit identifier (SUID), which, as described below, may be used to schedule transmission of status data from a particular portable communication device120.

For example, as illustrated inFIG. 1, the portable communication devices120A through120M belong to talkgroup140A and the portable communication devices120N through120Z belong to talkgroup140B. In some situations, the portable communication devices120assigned to a particular talkgroup140may represent subscribers participating in an operation (for example, pursuing an object of interest or responding to an incident scene). Accordingly, during the operation, the talkgroup140allows users of the portable communication devices120assigned to talkgroup140to communicate via the communication network130. A portable communication device120(and, thus, a user of a portable communication device120) may be assigned to multiple talkgroups140. As used herein, a talkgroup140may include a traditional static or dynamic talkgroup, an incident area network including multiple talkgroups and equipment used by members of a personal area network, and the like.

FIG. 1illustrates only one example of a TDMA communication system, and, in some embodiments, the TDMA communication system100may include more or fewer components and may perform functions that are not explicitly described herein. In addition, although the call controller110is illustrated as communicating with all portable communication devices120A through120Z via a single communication network130, the call controller110may communicate with the portable communication devices120A through120Z via multiple communication networks (constructed in accordance with various network protocols) and connections (for example, wired or wireless connections). Further, although the TDMA communication system100is shown as a centralized system, the TDMA communication system100may also be implemented as a decentralized system in which the functionality of the call controller110is accomplished within one or more of the portable communication devices120or on other controllers or servers (not shown).

FIG. 2is a diagram of one embodiment of the call controller110. As illustrated inFIG. 2, the call controller110includes an electronic processor210, a memory220, a transceiver230, and input/output interface240. The electronic processor210, the memory220, the transceiver230, the input/output interface240, and the display250may communicate over one or more buses (for example, a communication bus260).FIG. 2illustrates one example embodiment of a call controller110. In other embodiments, the call controller110may include more or fewer components and may perform functions other than those explicitly described herein.

In some embodiments, the electronic processor210is implemented as a microprocessor with separate memory, such as the memory220. In other embodiments, the electronic processor210may be implemented as a microcontroller (for example, with the memory220on the same chip). In other embodiments, the electronic processor210may be implemented using multiple processors. In addition, the electronic processor210may be implemented partially or entirely as, for example, a field-programmable gate array (FPGA), and application specific integrated circuit (ASIC), or other suitable processing device. In this instance, the memory220may not be needed or may be modified accordingly.

The memory220includes non-transitory, computer-readable memory that stores instructions that are received and executed by the electronic processor210to carry out functionality of the call controller110described herein. The memory220may include, for example, a program storage area and a data storage area. The program storage area and the data storage area may include combinations of different types of memory, such as read-only memory and random-access memory.

The transceiver230enables wireless communication from the call controller110to, for example, the portable communication devices120A through120Z via the communication network130. In other embodiments, rather than the transceiver230, the call controller110may include separate transmitting and receiving components, for example, a transmitter and a receiver. In other embodiments, the call controller110may not include a transceiver230and may communicate with the portable communication devices120A through120Z via a network interface and a wired connection to the communication network130.

The input/output interface240may include one or more interfaces for communicating with input mechanisms (for example, a touch screen, a keypad, a button, a knob, and the like), one or more output mechanisms (for example, a display, a printer, a speaker, and the like), or a combination thereof. The input mechanisms and the output mechanisms may be included in the call controller110or separate or external to the call controller110. For example, the input/output interface240may receive input from input devices actuated by a user and may provide output to output devices with which a user interacts. In some embodiments, as an alternative or in addition to managing inputs and outputs through the input/output interface240, the call controller110may receive user input, provide user output, or both by communicating with an external device, such as a console computer, over a wired or wireless connection.

As illustrated inFIG. 2, an alternative to or in addition to communicating with an output mechanism, such as a display, through the input/output interface240, the call controller110may include a display250. The display250is a suitable display such as, for example, a liquid crystal display (LCD) screen. In some embodiments, the call controller110(the electronic processor210) may generate a graphical user interface (GUI) that enables a user to interact with the call controller110, which may be presented on the display250.

FIG. 3is a diagram of one embodiment of a portable communication device120. As illustrated inFIG. 3, the portable communication device120includes a device electronic processor310, a device memory320, a device transceiver330, and a device input/output interface340. In some embodiments, the portable communication device120also includes a sensor350, a positioning transceiver355, a device display360, or a combination thereof. The device electronic processor310, the device memory320, the device transceiver330, the device input/output interface340, the sensor350, and the positioning transceiver355may communicate over one or more buses (for example, a device communication bus370).FIG. 3illustrates only one example of a portable communication device120, and, in other embodiments, the portable communication device120may include more or fewer components than illustrated and may perform additional functions other than those described herein.

The device electronic processor310may be implemented in various ways including ways that are similar to those described above with respect to the electronic processor210. Likewise, the device memory320may be implemented in various ways including ways that are similar to those described with the respect to the memory220. The device memory320may store instructions that are received and executed by the device electronic processor310to carry out the functionality described herein.

The device transceiver330enables wireless communication from the portable communication device120to the call controller110and other portable communication devices via the communication network130. In other embodiments, rather than a device transceiver330, the portable communication device120may include separate transmitting and receiving components, for example, a transmitter and a receiver.

The device input/output interface340may include one or more interfaces for communicating with one or more input mechanisms (for example, a touch screen, a keypad, a button, a knob, and the like), one or more output mechanisms (for example, a display, a speaker, and the like), or a combination thereof. The input mechanisms and the output mechanisms may be included in the portable communication device120or may be external to the portable communication device120. For example, in some embodiments, the portable communication device120communicates with one or more external devices through the device input/output interface340that may be part of a personal area network (PAN) of devices.

As illustrated inFIG. 3, an alternative to or in addition to communicating with an output mechanism, such as a display, through the device input/output interface340, a portable communication device120may include the device display360. The device display360is a suitable display such as, for example, a liquid crystal display (LCD) touch screen, or an organic light-emitting diode (OLED) touch screen. The portable communication device120(the device electronic processor310) may generate a graphical user interface (GUI) that may be presented on the device display360to enable a user to interact the portable communication device120. In some embodiments, the portable communication device120operates or is integrated with a head-mounted display (HMD) or an optical head-mounted display (OHMD).

The sensor350communicates detected data (sometimes referred to herein as sensor data) to the device electronic processor310via the device communication bus370. In some embodiments, the sensor350is a health monitor for capturing vital signs of a person, such as the person carrying or associated with the portable communication device. The vital signs may include, for example, heart rate, blood pressure, temperature, blood oxygen, blood alcohol level, and the like. In other embodiments, the sensor350is an image sensor that is implemented, for example in an image capture device for capturing images, including still images, sequences of images (video), or both. The image capture device may sense light in at least the visible spectrum. Alternatively or in addition, the image capture device may sense infrared signals, such as a thermal camera, a night vision camera, and the like. In still other embodiments, the sensor350is a microphone for detecting audio signal, such as ambient audio signals. In yet other embodiments, the sensor350is a motion sensor for detecting movement, such as a speed sensor, an accelerator, or the like, that detects data representing the movement or orientation of the portable communication device120(and, consequently, a person or vehicle carrying the portable communication device120). The sensor350may also include a presence sensor, such as a pressure sensor, a mechanism switch, or the like that detects the presence (or lack thereof) of a device, such as a holster sensor that detects whether a weapon or device carried in the holster has been removed or drawn.

In some examples, the sensor350is integrated into the portable communication device120. In other examples, the sensor350is separate from the portable communication device120, and communicates detected data to the portable communication device120via a wired or wireless connection. For example, the sensor350may be integrated into a body-worn health monitoring device, which communicates with the portable communication device120. Also, in some embodiments, a portable communication device120may include multiple sensors350or may include a single sensor configured to detect multiple types of data, such as a sensor configured to detect audio data and image data.

The positioning transceiver355may include a positioning antenna and a dedicated positioning electronic processor. The positioning electronic processor receives satellite signals from a satellite150, such as a satellite included in a global positioning system (GPS), through the positioning antenna and processes the received signals to determine a geographical location (one or more geographical coordinates) of the portable communication device120. It should be understood that the positioning transceiver355may use a regional satellite navigation system, a land-based navigation system, or a combination thereof in conjunction with or in place of a GPS system. Also, in some embodiments, the positioning transceiver355may be located external to the portable communication device120and may provide a geographical location to the portable communication device120over a wired or wireless connection. Also, in some embodiments, the portable communication device120uses one or more different methods for detecting a location of the portable communication device120in addition to or as an alternative to using the positioning transceiver355, such as measuring the strength of signals received by the portable communication device120from one or more sources with known locations, a Wi-Fi based positioning system (WPS), dead reckoning, or the like.

As noted above, when there is an active call, such as a voice call, within one of the talkgroups140, the portable communication devices120included in the talkgroup140with the active call may not be able to provide status data, such as location data, to the call controller110. Accordingly, the call controller110(or other devices or systems that rely on current status data for the portable communication devices120) may not be able to accurately or efficiently perform particular functionality, such as device tracking or location-based dispatching.

To overcome this and other problems, the call controller110transmits scheduling information to members of a talkgroup that designate when (and how) a portable communication device120should transmit status data. For example,FIG. 4is a flowchart of a method400of scheduling a status update performed by the TDMA communication system ofFIG. 1in accordance with some embodiments. The method400is described as being performed by the call controller110and, in particular, the electronic processor210. However, it should be understood that the functionality illustrated in the method400may be distributed among multiple devices, such as multiple servers.

As illustrated inFIG. 4, the electronic processor210transmits scheduling information to each of a plurality of talkgroup members via an outbound time slot associated with a slow associated control channel (SACCH) of a local common TDMA channel to schedule the each of the plurality of talkgroup members to transmit status data in a pre-determined sequence (at block402). In some embodiments, as described in more detail below, the scheduling information instructs each of the plurality of talkgroup members to transmit status data via the local common TDMA channel. Alternatively, in some embodiments, the scheduling information instructs each of the plurality of talkgroup members to transmit status data via a remote common channel, wherein the remote common channel is separate from the local common TDMA channel. For example, in some embodiments, the remote common channel is a remote common TDMA channel. In other embodiments, the remote common channel is a remote common frequency division multiple access (FDMA) channel.

As illustrated inFIG. 4, the electronic processor210subsequently receives the status data from at least one of the plurality of talkgroup members in the pre-determined sequence (at block404). As described above, the status data includes data separate from the data being transmitted as part of the call (call data) and may include location data, such as a location determined by the positioning transceiver355, sensor data detected by a health monitor, a camera, a motion sensor, a microphone, or other sensor, or the like. It should be understood that the status data may represent current data associated with a portable communication device120, such as a current location, or historical status data associated with a portable communication device120, such as sensor data collected during previous time period that has not yet been transmitted to the call controller.

FIGS. 5 through 8described below provide further details and alternatives for transmission of the scheduling information and the status data. For example,FIG. 5illustrates in-call scheduling for a common channel500without inbound call data in accordance with some embodiments. As used herein, “in-call scheduling” includes scheduling performed by the call controller110for a talkgroup during an active call for the talkgroup. As illustrated inFIG. 5, when implementing TDMA, a common channel500is divided into a plurality of time slots. The common channel500may also be referred to herein as a “local common time division multiple (TDMA) channel.”

As illustrated inFIG. 5, the common channel500includes a first frame502, a second frame504, a third frame506, a fourth frame508, a fifth frame510, a sixth frame512, and a seventh frame514. Each frame of the common channel500is divided into twelve time slots (time slot0through time slot11). The twelve time slots included in each frame are either outbound time slots (for example, time slots0,2,4,6,8, and11) or inbound time slots (for example, time slots1,3,5,7,9, and10). For the example illustrated inFIG. 5, the slow associated control channel (SACCH) as defined by the TDMA communication technique is associated with outbound time slot11and inbound time slot10, but, in other embodiments, different time slots may be associated with the SACCH.

The call controller110uses the outbound time slot11to transmit the scheduling information as described above with respect toFIG. 4. The scheduling information specifies a talkgroup member to transmit status data on a future time slot not including call data (for example, the inbound time slot10associated with SACCH as defined by the TDMA communication technique, which is sometimes referred to as transmitting location time slot or “TLTS”). For example, during the outbound time slot11, the call controller110may transmit a subscriber unit identifier that is assigned to one of the plurality of portable communication devices120included in a talkgroup140(referred to hereinafter as “talkgroup member with SUID #”). In some embodiments, the call controller110transmits the scheduling information during the outbound time slot11in a round-robin fashion among talkgroup members unless higher priority information (for example, high priority messages, aliases, group text, or other suitable high priority information) preempts the scheduling information.

In some embodiments, the outbound time slot11does not include any information until the call controller110uses the outbound time slot11to transmit the scheduling information. In other embodiments, the outbound time slot11includes other information (for example, power control information, timing information, or a combination thereof), and the call controller110uses the outbound time slot11to transmit the scheduling information in addition to the other information. In yet other embodiments, the call controller110uses the outbound time slot11to transmit the scheduling information in place of the other information.

For example, as illustrated inFIG. 5, in the first frame502, the call controller110transmits scheduling information for talkgroup members with SUIDs1and2during the outbound time slot11. Similarly, in the second frame504, the call controller110transmits scheduling information for talkgroup members with SUIDs2and3during the outbound time slot11. In the third frame506, the call controller110transmits higher priority information during the outbound time slot11(represented by an “X”) that preempts the scheduling information. In the fourth frame508, the call controller110transmits scheduling information for talkgroup members with SUIDs4and5during the outbound time slot11. In the fifth frame510, the call controller110transmits scheduling information for talkgroup members with SUIDs5and6during the outbound time slot11. In the sixth frame512, the call controller110transmits additional higher priority information during the outbound time slot11(represented by an “X”) that preempts the scheduling information.

In the example ofFIG. 5, the call controller110transmits scheduling information for two talkgroup members during the outbound time slot11for redundancy, wherein only one of the identifier talkgroup members may be scheduled to transmit at a time. For example, when the call controller110transmits scheduling for more than one talkgroup member during time slot11for the next two TLTS, only the first identified member may transmit at the next available inbound time slot10as described below (and the subsequently-identified members may prepare for subsequent transmission). However, in other embodiments, the call controller110transmits scheduling information for more or less than two talkgroup members during the outbound time slot11.

As illustrated inFIG. 5, in the second frame504, the call controller110receives status data (for example, location data, sensor data, or the like) transmitted by the talkgroup member with SUID1during the inbound time slot10. In the third frame506, the call controller110receives status data transmitted by the talkgroup member with SUID2during the inbound time slot10. In the fourth frame508, the call controller110may again receive status data transmitted by the talkgroup member with SUID3during the inbound time slot10because the call controller110previously transmitted the schedule information for the SUID3during outbound time slot11of the second frame504. In the fifth frame510, the call controller110receives status data transmitted by the talkgroup member with SUID4during the inbound time slot10. In the sixth frame512, the call controller110receives status data transmitted by the talkgroup member with SUID5during the inbound time slot10, and, in the seventh frame514, the call controller110may again receive status data transmitted by the talkgroup member with SUID6during the inbound time slot10because the call controller110previously transmitted the schedule information for the SUID6during the outbound time slot11of the fifth frame510.

In some embodiments, the inbound time slot10will not include any information until the call controller110uses the scheduling information to receive the status data during the inbound time slot10. In other embodiments, the inbound time slot10will include other information (for example, power control information, timing information, or a combination thereof), and the call controller110uses the scheduling information to receive the status data in addition to the other information during the inbound time slot10. In yet other embodiments, the call controller110uses the scheduling information to receive the status data in place of the other information during the inbound time slot10.

In some embodiments, a talkgroup140may include a relatively small number of members, for example, six talkgroup members. In this situation, the call controller110may repeat the in-call scheduling as described above to continuously receive status data without impacting audio between the call controller110and the six talkgroup members until the end of the call. In other embodiments, the talkgroup140A may include, for example, M talkgroup members, where M is a positive integer. In some embodiments, M talkgroup members may be a range of one to four hundred and fifty members. In this situation, the call controller110may apply in-call scheduling as described above to the M talkgroup members to continuously receive status updates from all of the M talkgroup members without impacting audio between the call controller110and the M talkgroup members. M talkgroup members that did not get scheduled by the end of the call can be prioritized over scheduled members for the next call. M talkgroup members of a talkgroup call may be spread over multiple sites, and within each site a common channel is assigned for the call. Each assigned common channel is responsible for scheduling talkgroup within that site.

In the example ofFIG. 5, the common channel500does not have any call data on inbound time slots1,3,5,7, and9because none of the talkgroup members of the talkgroup140A are sourcing call data to the call controller110via the common channel500. In this instance, a TLTS is available each frame at inbound time slot10(for instance, once every three hundred and sixty milliseconds (ms)). Accordingly, when a talkgroup140has an eighty-three member talkgroup call (and all the members share the same common channel), the cadence for each talkgroup member of the talkgroup140may be eighty-three multiplied by three hundred and sixty milliseconds, which is approximately 29.9 seconds.

Similar toFIG. 5,FIG. 6illustrates in-call scheduling for a common channel600with inbound call data in accordance with some embodiments. In this example, the common channel600may also be referred to as a “local common time division multiple (TDMA) channel.” As illustrated inFIG. 6, the common channel600has a similar structure as the common channel500described above with respect toFIG. 5. Therefore, as a consequence, the redundant description of the common channel600is not provided.

As illustrated inFIG. 6, in a first frame602, the call controller110transmits higher priority information during the outbound time slot11(represented by an “X”) that preempts the scheduling information. In a second frame604, the call controller110transmits scheduling information for a talkgroup member with SUID1during the outbound time slot11. For redundancy, in a third frame606, the call controller110again transmits scheduling information for the talkgroup member with SUID1during the outbound time slot11. In a fourth frame608and a fifth frame610, the call controller110transmits higher priority information during the outbound time slots11(represented by an “X”) that preempts the scheduling information. In a sixth frame612, the call controller110transmits scheduling information a talkgroup member with SUID2during the outbound time slot11. For redundancy, in a seventh frame614, the call controller110again transmits scheduling information the talkgroup member with SUID2during the outbound time slot11.

In the example ofFIG. 6, for redundancy, the call controller110transmits scheduling information for the talkgroup member with the same SUID during the outbound time slot11of two different frames. However, in other embodiments, the call controller110transmits scheduling information for more than one talkgroup member during the outbound time slot11of each frame (for example, see description of SUID redundancy with respect toFIG. 5).

As illustrated inFIG. 6, in the fourth frame608, the call controller110receives status data (for example, location data) transmitted by the talkgroup member with SUID1during an inbound time slot10because the inbound time slot10is not available in the third frame606. In the eighth frame616, the call controller110receives status data transmitted by the talkgroup member with SUID2during the inbound time slot10because the inbound time slot10is not available in the seventh frame614. In some embodiments, the higher priority information includes a sourcing subscriber unit identification message, which preempts the status data transmitted by the talkgroup member with SUID1during the inbound time slot10of the third frame606and the talkgroup member with SUID2during the inbound time slot10of the seventh frame614.

In some embodiments, when a talkgroup140includes six talkgroup members, the call controller110may repeat the in-call scheduling as described above to continuously receive status data from all six talkgroup members without impacting audio between the call controller110and the six talkgroup members until the end of the call. In other embodiments, a talkgroup140may have M talkgroup members, where M is a positive integer. For example, M talkgroup members may be range of one to four hundred and fifty members. In this situation, the call controller110may apply the in-call scheduling as described above to the M talkgroup members to continuously receive status data from all of the M talkgroup members without impacting audio between the call controller110and the M talkgroup members.

In the example ofFIG. 6, the common channel600has call data on inbound time slots1,3,5,6, and9, because one of the talkgroup members of the talkgroup140A is sourcing call data to the call controller110. In this situation, a TLTS is available only once every four frames or each “ultraframe” (for instance, once every one thousand four hundred and forty milliseconds (ms)). Accordingly, when a talkgroup140has a twenty member talkgroup call (and all the members share the same common channel), the cadence for each talkgroup member of the talkgroup140may be twenty multiplied by one thousand four hundred and forty milliseconds, which is 28.8 seconds.

As noted above, in some embodiments, the scheduling information transmitted by the call controller110may instruct talkgroup members to transmit status data on a remote channel rather than the common channel providing the scheduling information.FIG. 7illustrates remote-channel scheduling for a remote channel700for a plurality of six common channels702through712in accordance with some embodiments. As illustrated inFIG. 7, each of the six common channels702through712is divided into two logical channels, and each of the plurality of logical channels are further divided into a plurality of time slots as described above with respect toFIG. 5. Each of the plurality of six common channels702through712may also be referred to herein as a “local common time division multiple (TDMA) channel.”

In the example ofFIG. 7, each of the plurality of logical channels is divided into twelve time slots (time slot0through time slot11) that collectively form a single “frame.” For example, in the illustrated example, the plurality of common channels702through712are divided into a first frame714, a second frame716, a third frame718, and a fourth frame720. The twelve time slots of each frame are either outbound time slots or inbound time slots.

For ease of understanding, a first logical channel702A and a second logical channel702B of a first common channel702will be described below. For example, as illustrated inFIG. 7, the first logical channel702A of the first physical channel702may also be referred to as 1.0 (PhyscialChannel.LogicalChannel) and the second logical channel702B of the first physical channel702may also be referred to as 1.1. However, the description below with respect the first and second logical channels702A and702B is also applicable to the other logical channels of the common channels704through712.

As illustrated inFIG. 7, the first logical channel702A of the first common channel702has outbound time slots0,2,4,6,8, and11and inbound time slots1,3,5,7,9, and10. The outbound time slot11and the inbound time slot10of the first logical channel702A are each associated with the slow associated control channel (SACCH) as described above with respect toFIG. 5.

Additionally, as illustrated inFIG. 7, the second logical channel702B of the first common channel702has outbound time slots1,3,5,7,9, and10and inbound time slots0,2,4,6,8, and11. The outbound time slot10and the inbound time slot11of the second logical channel702B are each associated with the slow associated control channel (SACCH) as described above with respect toFIG. 5.

The call controller110uses the remote-channel scheduling to transmit scheduling information for one or more talkgroup members with a corresponding one or more subscriber unit identifiers during the outbound time slot11of the first logical channel702A unless higher priority information preempts the scheduling information. The scheduling information controls a talkgroup member of the one or more talkgroup members to transmit status data during a first time slot (for example, a remote inbound time slot) of the remote channel700(for example, a separate TDMA channel) that is synchronized with the inbound time slot10of the first logical channel702A in the second frame716.

Similarly, the call controller110uses the remote-channel scheduling to transmit scheduling information for a second set of one or more talkgroup members with a corresponding one or more subscriber unit identifiers during the outbound time slot10of the second logical channel702B unless higher priority information preempts the scheduling information. The scheduling information controls a talkgroup member of the one or more talkgroup members to transmit status data during a first time slot of the remote channel700(for example, a separate TDMA channel) that is synchronized with the inbound time slot11of the second logical channel702B in the second frame716.

For example, as illustrated inFIG. 7, in the second frame716, the call controller110receives status data (for example, location data, sensor data, or the like) from the talkgroup member with the highest priority. For instance, when the talkgroup member with SUID from talkgroup call on the first logical channel702A is a high priority, the call controller110receives the status data transmitted by the talkgroup member with that SUID via the first time slot of the remote channel700that is synchronized with the inbound time slot10of the first logical channel702A in the second frame716. Similarly, when the talkgroup member with a second SUID from talkgroup call on the second logical channel702B is a high priority, the call controller110receives status data transmitted by the talkgroup member with the second SUID via the second time slot of the remote channel700that is synchronized with the inbound time slot11of the second logical channel702B in the second frame716.

The remote-channel scheduling for the first and second logical channels702A and702B (for example, logical channels 1.0 and 1.1) as described above is similarly applied for the remaining talkgroup members (for example, talkgroup members from the other logical channels 7.0, 7.1, 13.0, 13.1, 19.0, 19.1, 25.0, 25.1, 31.0, and 31.1). The call controller110may repeat the remote-channel scheduling by starting again with the highest priority SUIDs (for example, talkgroup members from the first logical channel702A and the second logical channel702B) to continuously receive status updates from all of the talkgroup members.

The remote-channel scheduling as described above allows a plurality of talkgroup members in different talkgroups and on different active calls to share the remote channel. By sharing the remote channel and receiving the scheduling information from the call controller110, each of the talkgroup members may transmit status data via the remote channel without collision.

As illustrated inFIG. 7, the remote-channel scheduling is performed with the six common channels702through712, which are offset from each other. In some embodiments, the call controller110may offset each of the six common channels702through712using Equation 1 as defined below, when the outbound and inbound time slots associated with the SACCH are the same for each of the six common channels702through712.
Channel Offset=2*Mod(Channel Number,Number of Slots in a Frame/Number of Common Channels per Physical Channel)  (1)

In the example ofFIG. 7, the channel number of the first common channel702of the six common channels702through712is equal to one, the number of slots in a frame is equal to twelve, and the number of common channels per physical channel is equal to two. Thus, the channel offset of the first common channel702according to Equation 1 is two time slots. Likewise, the channel number of the fifth common channel710is equal to five, the number of slots in a frame is equal to twelve, and the number of common channels per physical channel is equal to two and the channel offset of the fifth common channel710according to Equation 1 is ten time slots. As illustrated inFIG. 7, the first common channel702and the fifth common channel710are offset from each other by eight time slots.

When there are greater than six common channels (for example, up to seventy-two common channels) in a site, multiple common channels may have the same offset based on Equation 1, meaning the position of the SACCHs are aligned with each other and overlap over the same time slot on the remote channel700. Since the same time slot on the remote channel700is shared among the talkgroup calls, there is a need to first schedule which talkgroup among the talkgroup calls may use the shared time slot. One way to prioritize is to use the size of talkgroup members as a priority preference weight.

In some embodiments, each of the six common channels702through712has a talkgroup with a relatively small members, for example, six members, the call controller110may repeat the remote-channel scheduling as described above to continuously receive status data from all seventy-two talkgroup members without impacting audio between the call controller110and the seventy-two talkgroup members until the end of each call accordingly.

In other embodiments, N common channels each have a talkgroup with M talkgroup members, N and M being a positive integer. The call controller110may apply the remote-channel scheduling as described above to the N channels to continuously receive status data from all N*M talkgroup members without impacting audio between the call controller110and the N*M talkgroup members until the end of each call accordingly.

In the example ofFIG. 7, when inbound time slots of the logical channels of the six common channels702through712do not have call data, a TLTS is available each frame at inbound time slots10and11(for instance, once every three hundred and sixty milliseconds (ms)) on the local channel and the remote channel700. Accordingly, for the seventy-two talkgroup members, the cadence for each talkgroup member may be six divided by roughly 5.6 microseconds (p), which is approximately 1.08 seconds.

Alternatively, in the example ofFIG. 7, when inbound time slots of the six common channels have call data, a TLTS is available each ultrafame at inbound time slots10and11(for instance, once every one thousand four hundred and forty milliseconds (ms)) on the local channel and once every three hundred and sixty milliseconds (ms) on the remote channel700. Accordingly, for the seventy-two talkgroup members, the cadence for each talkgroup member may be six divided by roughly 3.47 microseconds (p), which is approximately 1.73 seconds.

In some embodiments, more than one remote channel700may be used if a higher cadence is desired. Alternatively, in some embodiments, a position of the outbound time slot associated with SACCH on each common channel may be used to schedule a “local” (for example, the local common TDMA channel) and/or a “remote” (for example, on the remote channel700) status data that corresponds to the upcoming position of the inbound time slot associated with SACCH. In yet other embodiments, talkgroups may overlap (for example, a “vertical overlap”) within one remote channel (for example, the remote channel700). In this instance, a first layer of scheduling is for talkgroups among overlapping channels, and a second layer of scheduling is for the members within the selected talkgroup.

FIG. 8also illustrates hang-time scheduling for a common channel800without inbound call data and without outbound call data in accordance with some embodiments. As used herein, “hang-time scheduling” refers to scheduling occurring during hang time experienced by a talkgroup call. The hang-time scheduling may occur after in-call scheduling as described above with respect toFIGS. 5 and 6or after remote-channel scheduling as described above with respect toFIG. 7. The common channel800may also be referred to as a “local common time division multiple (TDMA) channel.” In this instance, the “common” aspect of the common channel800refers to the to the talkgroup members of the talkgroup call that are scheduled to use the inbound time slots. The common channel800is common amongst the talkgroup members, but is not common across channels or talkgroups.

As illustrated inFIG. 8, the common channel800is divided into a plurality of time slots as described above with respect toFIG. 5. In particular, the common channel800is divided into twelve time slots (time slot0through time slot11) that collectively form a single “frame.” Accordingly, in the illustrated example, the common channel800includes a first frame802, a second frame804, and part of a third frame806. The twelve time slots of each frame are either outbound time slots (time slots0,2,4,6,8, and11) or inbound time slots (time slots1,3,5,7,9, and10). In the example ofFIG. 8, the slow associated control channel (SACCH) is associated with outbound time slot11and inbound time slot10.

The call controller110uses hang-time scheduling to transmit scheduling information for talkgroup members with subscriber unit identifiers (SUIDs) into any of the outbound time slots unless higher priority information preempts the scheduling information. The scheduling information transmitted during the outbound time slots2,4,6,8, and11controls the talkgroup members with the corresponding SUIDs to transmit status data at the future time slot (forward scheduling) without call data (referred to as transmitting location time slot (TLTS) described in greater detail above).

As illustrated inFIG. 8, in the first frame802of the common channel800, the call controller110transmits scheduling information for talkgroup members with SUIDs1through4during the outbound time slot2. In the first frame802, the call controller110transmits scheduling information for talkgroup members with SUIDs2and3during the outbound time slot4. In the first frame802, the call controller110transmits higher priority information during the outbound time slot6(represented by an “X”) that preempts the scheduling information. In the first frame802, the call controller110transmits scheduling information for talkgroup members with SUIDs4through6during the outbound time slot8. Similarly, in the first frame802, the call controller110transmits scheduling information for talkgroup members with SUIDs5and6during the outbound time slot11.

In the second frame804of the common channel800, the call controller110transmits scheduling information for talkgroup members with SUID6during the outbound time slot0. In the second frame804, the call controller110transmits high priority information during the outbound time slots2,4, and6(represented by an “X”) that preempts the scheduling information. In the second frame804, the call controller110transmits scheduling information for talkgroup members with SUIDs7and8during the outbound time slot8. In the second frame804, the call controller110transmits scheduling information for talkgroup members with SUIDs8and9during the outbound time slot11. Similarly, in the third frame806, the call controller110transmits scheduling information for talkgroup members with SUID9during the outbound time slot0.

As illustrated inFIG. 8, in the first frame802, the call controller110receives status data transmitted by the talkgroup member with SUID1during the inbound time slot5. In the first frame802, the call controller110receives status data transmitted by the talkgroup member with SUID2during the inbound time slot7. In the first frame802, the call controller110again receives status data transmitted by the talkgroup member with SUID3during the inbound time slot9because the call controller110previously transmitted the schedule information for talkgroup members with SUIDs2and3during the outbound time slots2and4. Similarly, in the first frame802, the call controller110receives status data transmitted by the talkgroup member with SUID4during the inbound time slot10.

As illustrated inFIG. 8, in the second frame804, the call controller110receives status data transmitted by the talkgroup member with SUID5during the inbound time slot1. In the second frame804, the call controller110again receives status data transmitted by the talkgroup member with SUID6during the inbound time slot3because the call controller110previously transmitted the scheduling information for the talkgroup member with SUID6during the outbound time slot11of the first frame802and during the outbound time slot0of the second frame804. Similarly, in the second frame804, the call controller110receives status data transmitted by the talkgroup member with SUID7during the inbound time slot10.

As illustrated inFIG. 8, in the third frame806, the call controller110receives status data transmitted by the talkgroup member with SUID8during the inbound time slot1, and, in the third frame806, the call controller110receives status data transmitted by the talkgroup member with SUID9during the inbound time slot3.

In the example ofFIG. 8, the common channel800does not have any call data on inbound time slots or outbound time slots. In this instance, a TLTS is available at every time slot for the talkgroup call (for instance, once every thirty milliseconds or once every sixty milliseconds (ms)), unless high priority information preempts the scheduling information.