WO2011019583A1 - Methods and apparatus for communicating a push-to-talk state to a communication device - Google Patents

Methods and apparatus for communicating a push-to-talk state to a communication device Download PDF

Info

Publication number
WO2011019583A1
WO2011019583A1 PCT/US2010/044628 US2010044628W WO2011019583A1 WO 2011019583 A1 WO2011019583 A1 WO 2011019583A1 US 2010044628 W US2010044628 W US 2010044628W WO 2011019583 A1 WO2011019583 A1 WO 2011019583A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
bluetooth
ptt
messages
message
Prior art date
Application number
PCT/US2010/044628
Other languages
French (fr)
Inventor
John B. Preston
George S. Hanna
Original Assignee
Motorola, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola, Inc. filed Critical Motorola, Inc.
Priority to EP10743301.3A priority Critical patent/EP2465252B1/en
Priority to CN201080035534.8A priority patent/CN102474546B/en
Priority to AU2010282791A priority patent/AU2010282791B2/en
Priority to BR112012002943-6A priority patent/BR112012002943B1/en
Publication of WO2011019583A1 publication Critical patent/WO2011019583A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/60Substation equipment, e.g. for use by subscribers including speech amplifiers
    • H04M1/6033Substation equipment, e.g. for use by subscribers including speech amplifiers for providing handsfree use or a loudspeaker mode in telephone sets
    • H04M1/6041Portable telephones adapted for handsfree use
    • H04M1/6058Portable telephones adapted for handsfree use involving the use of a headset accessory device connected to the portable telephone
    • H04M1/6066Portable telephones adapted for handsfree use involving the use of a headset accessory device connected to the portable telephone including a wireless connection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/40Connection management for selective distribution or broadcast
    • H04W76/45Connection management for selective distribution or broadcast for Push-to-Talk [PTT] or Push-to-Talk over cellular [PoC] services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/02Details of telephonic subscriber devices including a Bluetooth interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/10Push-to-Talk [PTT] or Push-On-Call services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks

Definitions

  • the technical field relates generally to a push-to-talk (PTT) feature for a communication device and more particularly to a technique for communicating a PTT state to a communication device from a peripheral that is wirelessly coupled to the communication device.
  • PTT push-to-talk
  • a communication device such as a two-way radio may be wirelessly coupled via a short range wireless link (such as a Bluetooth link) to a peripheral device that has a push-to-talk button (PTT) for activating a PTT feature on the radio.
  • PTT push-to-talk button
  • the PTT state for the radio is sent wirelessly between the two devices using the short range wireless link.
  • Some customers such as public safety customers, desire a very small latency period between a user pressing the PTT button on the peripheral device and a corresponding PTT command (e.g., PTT PRESS or PTT RELEASE) reaching the radio core, which cannot be realized in known systems.
  • Low latency can be extremely important for a PTT PRESS, for example, because a latency that is too long can result in truncated voice if the user begins to speak but the radio has not been activated via the PTT PRESS to enable transmission of all of the user's initial voice messages; this is could mean the difference between a user saying "don't shoot", and having "shoot” come out in the transmitted message.
  • much of the latency is caused at the peripheral device. For instance, there may be "blockage" at the peripheral that prevents the PTT state from being sent immediately, such as when the peripheral has already begun sending a message or has a buffered data stream when the PTT button is pressed.
  • the PTT indication must wait to be sent until the other message has been sent and/or the buffer cleared; or the peripheral would have to otherwise abandon the currently transmitting and/or buffered data in some crude way.
  • Additional overhead at the higher layers of the peripheral can further increase the latency of the PTT state transmission.
  • a Bluetooth chipset with a Virtual Machine (VM) in a headset or a small PTT device has so much overhead at the higher layers that the latency from the time the PTT button is pressed on the peripheral to the time the PTT message is received at the Bluetooth controller of the radio can be on the order of 100-400 ms; Bluetooth chipsets with no VM can still incur a latency around 70-120 ms.
  • VM Virtual Machine
  • a wireless adapter at the radio side also adds to the latency of the PTT state reaching the radio core due to the decoding process within the higher layers of the radio side wireless adapter software stack, especially if the radio side wireless adapter manages multiple Bluetooth profiles for multiple peripherals coupled to the radio, which increases the processor load needed to manage the various corresponding data messages and route them to the proper destinations.
  • FIG. 1 is a block diagram illustrating a system that includes a communication device and peripheral, which implement methods in accordance with some embodiments.
  • FIG. 2 is a flow diagram of a method for priority signaling over a wireless serial communication channel in accordance with some embodiments.
  • FIG. 3 is a block diagram illustrating encoded priority messages being sent by a Bluetooth subsystem in a peripheral over a wireless serial communication channel and decoded at a Bluetooth subsystem on a radio side in accordance with some embodiments.
  • FIG. 4 is a block diagram illustrating encoded priority messages being sent by a Bluetooth subsystem in a peripheral over a wireless serial communication channel and decoded at a Bluetooth subsystem on a radio side in accordance with some embodiments.
  • FIG. 5 is a table that illustrates a nibbler protocol format in accordance with some embodiments.
  • FIG. 6 is a table that illustrates example headset protocol states in accordance with some embodiments.
  • FIG. 7 is a table that illustrates an example null message in accordance with some embodiments.
  • FIG. 8 is a table that illustrates example messages with buttons and battery states in accordance with some embodiments.
  • FIG. 9 is a flow diagram of a method for determining and setting a PTT state in a communication device in accordance with some embodiments.
  • FIG. 10 is a flow diagram of a method for performing a pattern matching process to determine a PTT state from a sequence of data messages received at a radio side in accordance with some embodiments.
  • a communication device which has a multilayer protocol stack for processing incoming messages, determines PTT state from messages received from a peripheral over the wireless serial communication channel.
  • the communication device receives, from the peripheral, a sequence of messages comprising a plurality of data messages (e.g., RFCOMM messages), wherein each of the data messages provides an indication of a PTT state for the communication device, and wherein the sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data.
  • a pattern detector in the communication device performs a pattern matching process, within the first two layers of the multilayer protocol stack, to determine the PTT state indicated by each of the data messages and sets the communication device to have the determined PTT states.
  • the peripheral sends other data, in the sequence of messages, in addition to the PTT state, the peripheral encodes the PTT states into each message that it sends to the communication device using a novel "nibbler" protocol.
  • the peripheral generates a first data stream having a first size for sending to the communication device; generates a second data stream having a second size that is larger than the first size by dividing the first data stream into a number of data segments each having a selected byte size (such as one byte); encodes a PTT state for the communication device into a set of bits (e.g., one bit) in each data segment; and sends the data segments with the encoded PTT state to the
  • System 100 includes a first communication device 102 (in this case a radio with a Bluetooth wireless "master” device, which is also simply referred to herein as a radio ) and a second communication device 104 (in this case a Bluetooth wireless accessory "slave” device also referred to herein as a peripheral device).
  • the master device receives PTT commands from the slave device, wherein the master and slave devices can each be any type of wireless communication device that operates over one or more short range wireless links and that include a PTT feature.
  • the device 102 is equipped with apparatus for transmitting and receiving media such as voice, data, and video to another communication device (not shown).
  • device 102 can be, but is not limited to, a land mobile radio, a cellular telephone, a personal data assistant (PDA), a personal computer, and the like, with a PTT application.
  • Device 104 can be, but is not limited to, an accessory such as an earpiece or headset, etc., that has a PTT button and that may also be equipped with apparatus for transmitting and receiving media and/or configured for other functionality.
  • Priority data means data that a sending device selects to send along a faster end-to-end communication path than a communication path used to send non-priority data.
  • Priority data includes, for example, time sensitive data, data whose delivery is of higher importance than non-priority data, and the like.
  • Push-to-talk means a feature implemented on a communication device to enable users to talk on simplex or half-duplex
  • PTT PTT over cellular
  • PoC also abbreviated and known in the industry as PoC
  • OMA Open Mobile Alliance
  • IP Multimedia Subsystem IP Multimedia Subsystem
  • Device 102 comprises: a microcontroller or digital signal processor (DSP) 106; apparatus for short range communications over a short range wireless link 122 (wherein a short range wireless link means a wireless connection that enables two devices to communicate using radio frequency (RF) resources at distances of around 100m (300 feet) or less, and in one illustrative example between 10-10Om or 30-300') using electromagnetic signals, which in this case is Bluetooth apparatus that includes a Bluetooth integrated circuit (IC) chip 108 with a corresponding antenna 110 that may be internal to the radio or included in an external adapter that is connected to the radio; and a radio core 118 (that includes, for example, a two-way land mobile radio transceiver and a host processor for implementing processes within the radio core) with a corresponding antenna 120 that is activated by a PTT feature to transmit and receive at least voice media over a wireless link 126.
  • Device 104 comprises: a microcontroller or DSP 132; corresponding Bluetooth apparatus that includes a Bluetooth IC chip 128 with
  • the devices 102 and 104 upon a user powering ON peripheral 104, the devices 102 and 104 perform a pairing procedure to associate peripheral 104 to device 102.
  • the radio 102 and the peripheral 104 store their respective numerical credentials for pairing, the devices are "paired", and Bluetooth IC chips 108 and 128 operate to establish a short range Bluetooth wireless link 122 for Bluetooth transmissions such as voice transmissions and other data such as PTT states, state of other buttons and indicators, etc., between the peripheral 104 (e.g., an earpiece or headset) and the radio 102.
  • the Bluetooth IC chips 108 and 128 both include at least: Bluetooth hardware (e.g., radio frequency hardware core comprising a Bluetooth transceiver and baseband processor); Bluetooth firmware (e.g., that implements lower layers of a multilayer Bluetooth protocol stack that control real-time and on-time management of data formatting and flow needed to sustain the underlying Bluetooth protocol); and a microprocessor that is programmed with software and code stored on memory apparatus on the chip.
  • Bluetooth hardware e.g., radio frequency hardware core comprising a Bluetooth transceiver and baseband processor
  • Bluetooth firmware e.g., that implements lower layers of a multilayer Bluetooth protocol stack that control real-time and on-time management of data formatting and flow needed to sustain the underlying Bluetooth protocol
  • microprocessor that is programmed with software and code stored on memory apparatus on the chip.
  • Bluetooth hardware, firmware, microprocessor, and/or software and code are communicatively coupled and configured for implementing the Bluetooth protocol in accordance with any one or more of: Bluetooth Specification 1.1 ratified as IEEE Standard 802.15.1-2002; Bluetooth Specification 1.2 ratified as IEEE Standard 802.15.1-2005; Bluetooth Specification 2.0 + EDR (Enhanced Data Rate) released on November 10, 2004; Bluetooth Core Specification 2.1 adopted by the Bluetooth SIG on July 26, 2007; Bluetooth Specification 3.0 adopted by the Bluetooth SIG on April 21, 2009; and/or subsequent Bluetooth Specification releases.
  • the location within the Bluetooth apparatus of upper layers of the Bluetooth stack depends on whether the Bluetooth apparatus is implemented as an HCI (Host/Controller Interface) system or a non-HCI system.
  • HCI Home/Controller Interface
  • the upper layers of the Bluetooth stack are performed using the resident microprocessor on the Bluetooth chip.
  • the upper layers of the Bluetooth stack are performed using a processing device that is external to the Bluetooth chip; and the upper and lower layers of the Bluetooth stack are coupled via a physical HCI data connection and communicate using a Bluetooth HCI protocol that is defined in the Bluetooth specification.
  • the upper layers of the Bluetooth stack are implemented using the microcontroller 132, which is external to the Bluetooth chip 128; whereas in a non- HCI implementation, the upper layers of the stack are implemented within the
  • Bluetooth chip 128 Where the Bluetooth apparatus in radio 102 is implemented as a HCI system, the upper layers of the Bluetooth stack are implemented using the microcontroller 106 or the host processor in the radio core 118, which are both external to the Bluetooth chip 108; whereas in a non-HCI implementation, the upper layers of the stack are implemented within the Bluetooth chip 108. Microcontrollers 106 and 132 may also be used to perform other functionality including, but not limited to, proprietary protocols such as the "nibbler" protocol described in detail below by reference to figures 5-8.
  • the Bluetooth apparatus in devices 102 and 104 may have a "symmetric" architecture or an "asymmetric architecture".
  • a symmetric architecture means that the Bluetooth apparatus of devices 102 and 104 are both implemented as HCI systems or are both implemented as non-HCI systems.
  • An asymmetric architecture means that the Bluetooth apparatus in one device is implemented as an HCI system, and the Bluetooth apparatus of the other device is implemented as a non- HCI system.
  • priority data is wirelessly
  • Bluetooth protocols are used to facilitate transmission of the priority data using the Bluetooth apparatus in devices 102 and 104 as described, for example, by reference to figures 2 to 4.
  • other proprietary protocols can be used to transfer the priority data over the Bluetooth link as described, for example, by reference to figures 5 to 8.
  • Bluetooth technology is used for the short-range communications, but another technology might be used for the short-range communications including, but not limited to, Zigbee, IEEE 802.11 a/b/g (Wi-Fi), Wireless USB, etc.
  • the priority data would be transferred in messages created using standard or proprietary protocols for facilitating the implementation of the alternative short range communication technology.
  • a multilayer protocol stack means a plurality of protocols that define a networking architecture for communication devices based on the Open Systems Interconnection (OSI) Reference Model, which divides network architecture into seven layers (i.e., Application, Presentation, Session, Transport, Network, Data-link, and Physical) from top to bottom.
  • OSI Open Systems Interconnection
  • the bottom two layers also termed herein as the lower level or the lower layers
  • the upper layers also termed herein as the upper level or the upper layers
  • a process or method being performed "within” the first two layers or within the lower layers means (or refers to) that the process or method is implemented to determine PTT state from a data message before the data in the data message is sent to the upper layers of the protocol stack for further processing.
  • the pattern matching process determines the PTT state from a data message using the firmware in the Bluetooth chip in the receiving communication device.
  • the pattern matching process determines the PTT state from a data message at an external microcontroller/Bluetooth chip interface either using the external
  • microcontroller programmed with software code or using a hardware device coupled to the interface.
  • the transceiver (included in the radio core 118) and antenna 120 are conventional elements that, in this illustrative embodiment, implement one or more protocols that enable the transmission and reception of voice media over the air with other communication devices (not shown).
  • protocols may include, but are not limited to, standards specifications for wireless
  • the other accessory functions 140 may include, but are not limited to functions for, headsets, car audio kits, text display and keyboard devices, handheld computing devices, scanners, printers, and remote control devices.
  • FIG. 2 there is shown a flow diagram of a method 200 for priority signaling over a wireless serial communication channel in accordance with some embodiments.
  • Method 200 can be performed in the peripheral 104 or the radio 102 for communicating priority data.
  • this process will be described by reference to figures 3 and 4, which both show components and corresponding functionality of the
  • Bluetooth apparatus in a peripheral and radio In FIG. 3, the Bluetooth apparatus in the radio and the peripheral have an asymmetric architecture. In FIG. 4, the Bluetooth apparatus in the radio and the peripheral have a symmetric architecture. It is further noted that, with respect to the description herein, all blocks implemented by a processing device represent modules that are implemented by the processing device being programmed with relevant code (software and/or firmware).
  • Apparatus 300 illustrated in FIG. 3 comprises: a PTT button 302 (that indicates a state of PTT PRESS when a user presses a button, and PTT RELEASE, upon a user releasing the button) coupled to a peripheral Bluetooth chip 310 via an external microcontroller 304; a radio Bluetooth chip 330 communicatively coupled to the peripheral Bluetooth chip 310 via a Bluetooth wireless link 320; an external microcontroller 340 (which can comprise the host processor in the radio core or another microcontroller external to both the Bluetooth chip 330 and the host controller) communicatively coupled to the radio Bluetooth chip 330 via a HCI 336; and optionally a hardware detector 360 coupled to the HCI 336.
  • a PTT button 302 that indicates a state of PTT PRESS when a user presses a button, and PTT RELEASE, upon a user releasing the button
  • a peripheral Bluetooth chip 310 via an external microcontroller 304
  • a radio Bluetooth chip 330 communicatively coupled to the peripheral
  • the peripheral Bluetooth chip 310 comprises: an upper layer Bluetooth stack
  • serial interface device 314 that in this case is an on-chip
  • Universal Asynchronous Receiver/Transmitter but that can be any such device including but not limited to a RS-232C device, a SDIO (Secure Digital Input/Output), a USB (Universal Serial Bus), and the like, which is a physical hardware interface that converts outgoing bytes of data from the microcontroller 304 into a serial bit stream and converts incoming bits of data into bytes of data for providing to the microcontroller 304; and a Bluetooth radio and lower layer Bluetooth stack 316 that handles the modulation of data for transport over the Bluetooth wireless link 320 and the demodulation of data received from the Bluetooth wireless link 320.
  • the radio Bluetooth chip 330 comprises a corresponding Bluetooth radio and lower layer Bluetooth stack 332 and a UART 334.
  • the external microcontroller 340 comprises: a UART 342; a part of the Bluetooth stack 344 (also referred to herein as the middle layer Bluetooth stack) that handles at least Bluetooth radio frequency communication (RFCOMM) protocol messages and may also execute other Transport and/or Network layer protocols; an upper layer Bluetooth stack 348 that includes at least the Application layer; a PTT decoder 350, and a squelch state encoder 370.
  • a UART 342 also referred to herein as the middle layer Bluetooth stack
  • RFIDM radio frequency communication
  • Apparatus 400 in FIG. 4 comprises: a PTT button 402 coupled to a peripheral Bluetooth chip 410 via an external microcontroller 404; a radio Bluetooth chip 430 communicatively coupled to the peripheral Bluetooth chip 410 via a Bluetooth wireless link 420; and an external microcontroller 440 communicatively coupled to the radio Bluetooth chip 430.
  • the peripheral Bluetooth chip 410 comprises: an upper layer Bluetooth stack 412; a UART 414; and a Bluetooth radio and lower layer Bluetooth stack 416.
  • the radio Bluetooth chip 430 comprises a corresponding Bluetooth radio and lower layer Bluetooth stack 432, an upper layer Bluetooth stack 434, and a UART 438.
  • Bluetooth stack 312, 412 especially the application layer, which adds processing time to the signaling.
  • a second autonomous path is created that either does not require priority data to be processed in the upper layer Bluetooth stack at all or substantially minimizes such processing, thereby minimizing the latency for signaling of time-sensitive events.
  • the Application layer of the upper level stack 312, 412 in the peripheral creates (204) a short range wireless data path that bypasses of the upper layer Bluetooth stack 312, 412 and that includes a wireless serial communication channel.
  • a short range wireless path means a reliable data path that is established using one or more wireless protocols and that includes a short range wireless link.
  • the upper layer Bluetooth stack 312, 412 uses the Bluetooth RFCOMM protocol (part of the Bluetooth protocol suite) to establish a RFCOMM wireless serial communication data channel 318, 418 that is operated by the lower level Bluetooth stack 316, 416 and that provides a simple reliable data stream that emulates a serial port connecting to a remote Bluetooth device (a radio adaptor or Bluetooth apparatus internal to the radio) via a RFCOMM channel 346, 436 created by the Application layer in the upper layer Bluetooth stack 348, 434 in the radio Bluetooth apparatus.
  • the RFCOMM channel 436 is operated by the lower layer Bluetooth stack 432 in the radio Bluetooth chip 430.
  • the RFCOMM channel 346 is operated by the portion 344 of the upper layer Bluetooth stack (also termed the middle layer
  • Bluetooth stack that includes the implementation of the RFCOMM protocol (and perhaps one or more other transport and network layer protocols) but that excludes the implementation of Application layer protocols, which are implemented the upper layer Bluetooth stack 348 that handles the user interface applications.
  • the Application layer of the upper layer stack 312, 412 then causes an autonomous stream connection 356, 456 to be formed (206) from the on-chip UART 314, 414 to the newly created RFCOMM channel 318, 418.
  • RFCOMM channel data path 356, 456 is a bi-directional "autonomous" stream connection (that bypasses the path through the upper layer Bluetooth stack 312, 412), which means that whatever data that comes into the UART 314, 414 is communicated across the path 356, 456 to the RFCOMM 318, 418 (and vice-versa) without any intervention from any of the upper layer Bluetooth stack and Application layers 312, 412.
  • the Application layer in the upper layer Bluetooth stack 434 connects its newly formed RFCOMM channel 436 to its UART 438 via a similar autonomous stream connection to form an autonomous bi-directional stream connection 460.
  • the upper layer Bluetooth stack 412 associates (208) the RFCOMM channel 418 created in the peripheral to the RFCOMM channel 436 created on the radio side upon learning (using Bluetooth signaling during the initial power-up of the peripheral and connection to the radio Bluetooth apparatus) a channel number that identifies the RFCOMM channel 436. This connects the autonomous stream connections 456, 460 from the peripheral perspective to form the complete autonomous short range wireless data path for exchanging priority data.
  • the upper layer Bluetooth stack 434 associates the RFCMM channel 438 to the RFCOMM channel 418 upon learning (during the Bluetooth signaling during initial power-up of the peripheral and connection to the radio Bluetooth apparatus) the channel number that identifies the RFCOMM channel 418. This connects the autonomous stream connections 460, 456 from the radio side perspective to form the complete autonomous short range wireless data path for exchanging priority data.
  • the data that emerges from the UART 438 is interpreted (decoded) by the external microcontroller 440 as a PTT signal 448 that is used to set an event in the radio core to communicate the determined PTT state.
  • the PTT signal 448 sets a GPIO (General Purpose Input/Output) on the radio or sends a message to another subsystem in the radio by a second data pipe such as a secondary serial interface.
  • GPIO General Purpose Input/Output
  • the entire UART to UART connection in system 400 is handled entirely by the low-level Bluetooth stack 416, 432, and because of this, the incremental signaling latency is very low.
  • the incremental latency between a byte entering one UART and the byte exiting the UART in the opposing RFCOMM connected case has been observed to be less than 50ms on average.
  • the upper layer Bluetooth stack 312 associates (208) the RFCOMM channel 318 created in the peripheral to the
  • the RFCOMM channel 346 created on the radio side upon learning a channel number that identifies the RFCOMM channel 346 to form, from the peripheral perspective, the complete autonomous short range wireless data path for exchanging priority data.
  • the upper layer Bluetooth stack 348 associates the RFCOMM channel 346 to the RFCOMM channel 318 to form, from the radio side perspective, the complete autonomous short range wireless data path for exchanging priority data.
  • the RFCOMM byte stream from the short range data path comprising the RFCOMM channels 318, 346 is directed into an internal software sink 350 in the external microcontroller 340 that decodes the PTT state priority data and delivers a corresponding PTT signal 352 to the radio core.
  • the latency observed in the asymmetric case is still very low (since the primary cause of the prior art latency, which was the latency resulting from processing in the upper layer Bluetooth stack in the peripheral, is eliminated) and has been observed to be less than 50ms.
  • the short range wireless data path established for communicating priority data operates autonomously from a wireless data path established (210), by conventional Bluetooth signaling, through the upper layer Bluetooth stacks 312, 348 and 412, 434 for transporting non-priority data signaling for user interface
  • the data path for the non-priority data is also termed in the art as a SCO (synchronous connected oriented) data connection.
  • the RFCOMM to RFCOMM path is
  • the uplink path (radio side to peripheral) can be used for time-sensitive high priority event signaling to the peripheral.
  • An example of a high priority uplink event is "radio has unsquelched".
  • This signal can be used to control an audio power amplifier (PA) in a headset (for instance) in a rapid way such that the beginning of speech messages are not missed, which means that the peripheral amplifier can be turned on within 50ms (on average) of the radio activating an external audio PA or the radio core indicating to the wireless Bluetooth apparatus that there is active incoming audio.
  • PA audio power amplifier
  • a squelch state encoder 354 implemented in the external microcontroller 340 receives from the radio and encodes a squelch state 370 which it sends via the autonomous RFCOMM 346 to RFCOMM 318 path for decoding in the microcontroller 304, which provides a squelch state signal 360 containing the squelch state data to the peripheral via a GPIO or other secondary serial connection.
  • microprocessor 440 receives from the radio and encodes a squelch state 446 which it sends via the autonomous RFCOMM 436 to RFCOMM 418 path for decoding in the microcontroller 404, which provides a squelch state signal 444 containing the squelch state data to the peripheral.
  • priority data is detected (212) for sending over these channels, encoded (214) onto a byte stream, and sent (216) over the novel short range wireless data path created for the priority data to another wirelessly connected device.
  • the priority data (such as PTT state and squelch state) is encoded into each data segment in a plurality of data segments provided by the serial interface device (e.g., the UART), wherein each data segment has a selected byte size that depends on the particular serial interface device implementation.
  • the selected byte size is one byte. Accordingly, in the UART
  • the priority data is encoded into each byte of the data stream provided to the UART.
  • each byte of data may be encoded via setting a set of bits (e.g., one or more bits) in each byte to indicate the priority data.
  • the priority data (e.g., time-sensitive high priority data) can be sent using less than the entire byte of data. Therefore, to more efficiently use the novel autonomous short range wireless data path, the priority data is encoded with other data 358, 442, respectively, in the microcontrollers 304, 404.
  • the other data (which is also termed "priority data" since it is being sent over the autonomous RFCOMM to RFCOMM path) includes, but is not limited to, a state of a button, a state of an indicator (such as an LED), a state of a battery, a state of audio.
  • the microcontrollers 304, 404 may be programmed with code to perform a novel process of encoding comprising: receiving a first data stream generated from a button, indicator, etc. on the peripheral, wherein the first data stream has a first size;
  • any number of packing schemes can be used whereby an original eight bit data stream (of other data 358, 442) is encoded into multiple data segments each having less than all of the bits of the original eight bit data stream.
  • one byte of a data stream of other data 358, 442 is divided into two four bit streams or two "nibbles"( thus, the novel protocol is termed a "nibbler" protocol, which as the term is used herein refers to the packing using two nibbles and to any other packing scheme) each encoded into a two- byte pair, with the time-sensitive priority data (e.g., PTT state) being encoded into "extra/reserved" of each byte of the two-byte pair.
  • PTT state time-sensitive priority data
  • the nibbler data stream is about twice as long as the original data stream.
  • the protocol reserves one bit, e.g., the upper bit, of all bytes to indicate the state of the PTT. Moreover, a null message is used to indicate the state of the PTT if there is no other data to send. There is also a bit to indicate a HEADER so that the stream can indicate length and SYNC of the nibbles. Alternative to the length fields is just to use the header bit to indicate odd and even nibbles.
  • the radio side runs a protocol to determine PTT state from the nibble stream sent over the RFCOMM channels. Then the microcontroller 340, 440 takes the bottom two nibbles of the incoming bytes and puts them back together again to form a single byte that is sent to the appropriate application on the radio.
  • FIG. 5 to FIG. 8 illustrate tables to facilitate an example implementation of the nibbler protocol. More particularly, FIG. 5 to FIG. 8, respectively, provide an illustrative implementation of the nibbler protocol format, example headset protocol states, an example null message, and example messages with buttons and battery states.
  • buttons and indicators can be encoded onto each data segment (e.g., each one byte of data) using the nibbler protocol.
  • an additional method may be used in accordance with the teachings herein to shave further time off of the latency (e.g., around 20ms). More particularly, in the asymmetric Bluetooth architecture, some processing of the RFCOMM messages is performed in the middle layers of the Bluetooth stack on the radio side which adds to the latency. In accordance with further embodiments, a pattern matching process is included within the first two layers of the Bluetooth stack on the radio side, before the RFCOMM message is passed to the middle layers of the Bluetooth stack, to detect the RFCOMM messages and determine from these messages the priority data, e.g., PTT state, contained therein.
  • the priority data e.g., PTT state
  • FIG. 9 there is shown a flow diagram of a method 900 for determining and setting a PTT state in a communication device in accordance with some embodiments.
  • the method can be performed in radio 102, and an embodiment of the implementation of method 900 in radio 102 is concurrently described by reference to FIG. 3.
  • a communication device receives from a wirelessly coupled peripheral device a sequence of messages (which may be, for example, packets, datagrams, data segments, and the like) comprising a plurality of data messages.
  • the sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data, and each data message indicates a PTT state for the receiving communication device and optionally includes other data such as battery state, state of buttons, state of indicators, state of audio, etc.
  • the radio side Bluetooth chip 330 receives from the peripheral Bluetooth chip 310 a sequence of RFCOMM messages (via path 356, which is the wireless communication serial channel that is a part of the autonomous short range wireless data path for exchanging priority data) as Bluetooth transmissions over the Bluetooth wireless link 320, wherein the RFCOMM messages indicate PTT state.
  • the receiving communication device Upon receiving (902) this sequence of data messages, the receiving communication device performs (904) a pattern matching process within the first two layers of a multilayer protocol stack of the receiving communication device to determine the PTT states indicated by the data messages.
  • a pattern matching process is performed (e.g., method 1000 of FIG. 10) to detect the RFCOMM messages from other messages received over the HCI interface and to determine the PTT state from the detected messages.
  • the pattern matching process can be performed using one of three alternative embodiments next described. In accordance with the first two embodiments, the pattern matching process is performed at the HCI 336.
  • a sequence of HCI messages (each received via a path that includes autonomous serial connection 356 and each including an RFCOMM data message indicating the PTT state) are generated using a HCI protocol (such as one included in the Bluetooth protocol suite), which facilitates standardized
  • the pattern matching process detects an HCI message header, determines (e.g., from a header) that the HCI message contains a RFCOMM message, and if it is the correct RFCOMM message (as described in more detail below) uses the message to determine the PTT state.
  • the pattern matching process is performed by the external microcontroller programmed with code.
  • the on-chip UART 342 (or more particularly, the UART 's attending interrupt handling software) includes a pattern detector, which implements a pattern matching process (such as a pattern matching process illustrated by reference to FIG. 10 and described below in detail) for detecting the RFCOMM messages and determining the PTT states, which the pattern detector indicates in a PTT signal 366 to the radio core to set (906) the
  • the pattern matching process is performed using the hardware pattern detector 360 (implemented for instance using a Field Programmable Gate Array, a Complex Programmable Logic Device, a custom programmed microcontroller, or a DSP) that is communicatively coupled to the HCI interface 336.
  • the hardware detector 360 detects HCI messages and determines from the RFCOMM messages contained therein the PTT state for the radio, which is communicated to the radio core via a PTT signal 362.
  • the pattern matching process is performed in the lower layer firmware 332 of the radio Bluetooth chip 330, and communicated to the radio core as a PTT signal 364.
  • the receiving communication device still passes (908) the data messages to a layer that is higher than the first two layers for further processing of the data messages.
  • the UART 342 passes the RFCOMM messages to the Bluetooth stack 344 and further to the PTT decoder 350 to decode the PTT state for error handling or for detecting the PTT RELEASE state, since the PTT RELEASE state may have reduced requirements for incremental latency.
  • an illustrative pattern matching process 10 is shown that may be programmed into the firmware 332 of the radio Bluetooth chip 330, the UART 342 in the external microcontroller 340, or the hardware detector 360.
  • the pattern detector detects (1002) an incoming message and determines (1004) whether it is the correct data message. For example, when the upper layer Bluetooth stack 348 processes the initial Bluetooth signaling upon initialization, it knows the format of an RFCOMM message and also becomes aware of any RFCOMM channel numbers associated with PTT peripheral devices, which knowledge it can use to program the pattern detector to look for a RFCOMM message and in some cases a specific RFCOMM channel number.
  • the pattern detector goes through the data in the RFCOMM message to determine whether the RFCOMM channel number corresponds to a peripheral device that provides an indication of PTT state for the radio. If so, the pattern detector processes the message depending on whether only the PTT state is being monitored or whether the nibbler protocol is used. In any case, the pattern detector notifies (1014) the radio core of the determined PTT state and the message is passed (1016) to the middle layers of the Bluetooth stack and to the PTT decoder for further processing to decode the PTT state.
  • relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions.
  • the terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
  • a device or structure that is "configured" in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
  • processors such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and apparatus for priority data signaling described herein.
  • the non- processor circuits may include, but are not limited to, a radio receiver, a radio transmitter, signal drivers, clock circuits, power source circuits, and user input devices. As such, these functions may be interpreted as steps of a method to perform priority data signaling described herein.
  • some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic.
  • ASICs application specific integrated circuits
  • Both the state machine and ASIC are considered herein as a "processing device" for purposes of the foregoing discussion and claim language.
  • an embodiment can be implemented as a computer-readable storage element or medium having computer readable code stored thereon for programming a computer (e.g., comprising a processing device) to perform a method as described and claimed herein.
  • Examples of such computer-readable storage elements include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory.

Abstract

Apparatus, which has a multilayer protocol stack for processing incoming messages, determines PTT state from messages received from a peripheral over a wireless serial communication channel. The apparatus: receives (902), from the peripheral, a sequence of messages comprising a plurality of data messages (e.g., RFCOMM messages), wherein each of the data messages provides an indication of a PTT state for the apparatus, and wherein the sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data. A pattern detector in the apparatus performs (904) a pattern matching process, within the first two layers of the multilayer protocol stack, to determine the PTT state indicated by each of the data messages and sets (906) the apparatus to have the determined PTT states.

Description

METHODS AND APPARATUS FOR COMMUNICATING A PUSH-TO-TALK STATE TO A COMMUNICATION DEVICE
CROSS-REFERENCE TO RELATED APPLICATIONS The present application is related to the following U.S. application commonly owned together with this application by Motorola, Inc.:
Serial No. 12/538,505 filed August 10, 2009, titled "Method and Apparatus for Priority Signaling over a Wireless Serial Communication Channel", Higgins, et al. (attorney docket no. CM 12721).
TECHNICAL FIELD
The technical field relates generally to a push-to-talk (PTT) feature for a communication device and more particularly to a technique for communicating a PTT state to a communication device from a peripheral that is wirelessly coupled to the communication device.
BACKGROUND
In some communication scenarios, a communication device such as a two-way radio may be wirelessly coupled via a short range wireless link (such as a Bluetooth link) to a peripheral device that has a push-to-talk button (PTT) for activating a PTT feature on the radio. In such a case, the PTT state for the radio is sent wirelessly between the two devices using the short range wireless link. Some customers, such as public safety customers, desire a very small latency period between a user pressing the PTT button on the peripheral device and a corresponding PTT command (e.g., PTT PRESS or PTT RELEASE) reaching the radio core, which cannot be realized in known systems. Low latency can be extremely important for a PTT PRESS, for example, because a latency that is too long can result in truncated voice if the user begins to speak but the radio has not been activated via the PTT PRESS to enable transmission of all of the user's initial voice messages; this is could mean the difference between a user saying "don't shoot", and having "shoot" come out in the transmitted message. In known systems, much of the latency is caused at the peripheral device. For instance, there may be "blockage" at the peripheral that prevents the PTT state from being sent immediately, such as when the peripheral has already begun sending a message or has a buffered data stream when the PTT button is pressed. In this case, the PTT indication must wait to be sent until the other message has been sent and/or the buffer cleared; or the peripheral would have to otherwise abandon the currently transmitting and/or buffered data in some crude way. Additional overhead at the higher layers of the peripheral can further increase the latency of the PTT state transmission. For example, a Bluetooth chipset with a Virtual Machine (VM) in a headset or a small PTT device has so much overhead at the higher layers that the latency from the time the PTT button is pressed on the peripheral to the time the PTT message is received at the Bluetooth controller of the radio can be on the order of 100-400 ms; Bluetooth chipsets with no VM can still incur a latency around 70-120 ms. A wireless adapter at the radio side also adds to the latency of the PTT state reaching the radio core due to the decoding process within the higher layers of the radio side wireless adapter software stack, especially if the radio side wireless adapter manages multiple Bluetooth profiles for multiple peripherals coupled to the radio, which increases the processor load needed to manage the various corresponding data messages and route them to the proper destinations.
Thus, there exists a need for a mechanism for reducing the latency in communicating high priority data, such as a PTT state, from a peripheral device to a wirelessly coupled communication device.
BRIEF DESCRIPTION OF THE FIGURES
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, which together with the detailed description below are incorporated in and form part of the specification and serve to further illustrate various embodiments of concepts that include the claimed invention, and to explain various principles and advantages of those embodiments.
FIG. 1 is a block diagram illustrating a system that includes a communication device and peripheral, which implement methods in accordance with some embodiments. FIG. 2 is a flow diagram of a method for priority signaling over a wireless serial communication channel in accordance with some embodiments.
FIG. 3 is a block diagram illustrating encoded priority messages being sent by a Bluetooth subsystem in a peripheral over a wireless serial communication channel and decoded at a Bluetooth subsystem on a radio side in accordance with some embodiments.
FIG. 4 is a block diagram illustrating encoded priority messages being sent by a Bluetooth subsystem in a peripheral over a wireless serial communication channel and decoded at a Bluetooth subsystem on a radio side in accordance with some embodiments.
FIG. 5 is a table that illustrates a nibbler protocol format in accordance with some embodiments.
FIG. 6 is a table that illustrates example headset protocol states in accordance with some embodiments.
FIG. 7 is a table that illustrates an example null message in accordance with some embodiments.
FIG. 8 is a table that illustrates example messages with buttons and battery states in accordance with some embodiments.
FIG. 9 is a flow diagram of a method for determining and setting a PTT state in a communication device in accordance with some embodiments.
FIG. 10 is a flow diagram of a method for performing a pattern matching process to determine a PTT state from a sequence of data messages received at a radio side in accordance with some embodiments.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of various embodiments. In addition, the description and drawings do not necessarily require the order illustrated. It will be further appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. Apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the various embodiments so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. Thus, it will be appreciated that for simplicity and clarity of illustration, common and well-understood elements that are useful or necessary in a commercially feasible embodiment may not be depicted in order to facilitate a less obstructed view of these various embodiments.
DETAILED DESCRIPTION
Generally speaking, pursuant to the various embodiments, a communication device which has a multilayer protocol stack for processing incoming messages, determines PTT state from messages received from a peripheral over the wireless serial communication channel. The communication device: receives, from the peripheral, a sequence of messages comprising a plurality of data messages (e.g., RFCOMM messages), wherein each of the data messages provides an indication of a PTT state for the communication device, and wherein the sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data. A pattern detector in the communication device performs a pattern matching process, within the first two layers of the multilayer protocol stack, to determine the PTT state indicated by each of the data messages and sets the communication device to have the determined PTT states.
Where the peripheral sends other data, in the sequence of messages, in addition to the PTT state, the peripheral encodes the PTT states into each message that it sends to the communication device using a novel "nibbler" protocol.
Accordingly, the peripheral: generates a first data stream having a first size for sending to the communication device; generates a second data stream having a second size that is larger than the first size by dividing the first data stream into a number of data segments each having a selected byte size (such as one byte); encodes a PTT state for the communication device into a set of bits (e.g., one bit) in each data segment; and sends the data segments with the encoded PTT state to the
communication device.
When the PTT state is encoded into each data message sent between the peripheral and the communication device, e.g., using the nibbler protocol, and the communication device determines PTT state at the lower layers instead of waiting for packet processing at the upper layers, in accordance with the teachings herein, latency between a PTT PRESS in the peripheral and communication of the PTT PRESS to the radio core is reduced, for example, to a total time of on the average of around 35 ms. Those skilled in the art will realize that the above recognized advantages and other advantages described herein are merely illustrative and are not meant to be a complete rendering of all of the advantages of the various embodiments.
Referring now to the drawings, and in particular FIG. 1, a block diagram illustrating a system that includes two devices that communicate priority data, such as PTT state and squelch state, in accordance with some embodiments is shown and indicated generally at 100. System 100 includes a first communication device 102 (in this case a radio with a Bluetooth wireless "master" device, which is also simply referred to herein as a radio ) and a second communication device 104 (in this case a Bluetooth wireless accessory "slave" device also referred to herein as a peripheral device). The master device receives PTT commands from the slave device, wherein the master and slave devices can each be any type of wireless communication device that operates over one or more short range wireless links and that include a PTT feature. Moreover, the device 102 is equipped with apparatus for transmitting and receiving media such as voice, data, and video to another communication device (not shown). Accordingly, device 102 can be, but is not limited to, a land mobile radio, a cellular telephone, a personal data assistant (PDA), a personal computer, and the like, with a PTT application. Device 104 can be, but is not limited to, an accessory such as an earpiece or headset, etc., that has a PTT button and that may also be equipped with apparatus for transmitting and receiving media and/or configured for other functionality.
Priority data, as that term is used herein, means data that a sending device selects to send along a faster end-to-end communication path than a communication path used to send non-priority data. Priority data includes, for example, time sensitive data, data whose delivery is of higher importance than non-priority data, and the like. Push-to-talk, as that term is used herein, means a feature implemented on a communication device to enable users to talk on simplex or half-duplex
communication paths, wherein during a call only one person at a time is granted the communication resources to speak, while all other parties on the call listen. An example implementation of PTT technology is PTT over cellular (also abbreviated and known in the industry as PoC), wherein the PTT feature is provided over a cellular network. Open Mobile Alliance (OMA), which is a standards body that develops open standards for the mobile phone industry, is defining PoC as part of an IP Multimedia Subsystem, which is an architectural framework for delivering Internet Protocol multimedia services. The most recently released standards for the PoC feature are defined in a group of documents referred to as OMA PoC v 2.0, dated August 6, 2008.
Device 102 comprises: a microcontroller or digital signal processor (DSP) 106; apparatus for short range communications over a short range wireless link 122 (wherein a short range wireless link means a wireless connection that enables two devices to communicate using radio frequency (RF) resources at distances of around 100m (300 feet) or less, and in one illustrative example between 10-10Om or 30-300') using electromagnetic signals, which in this case is Bluetooth apparatus that includes a Bluetooth integrated circuit (IC) chip 108 with a corresponding antenna 110 that may be internal to the radio or included in an external adapter that is connected to the radio; and a radio core 118 (that includes, for example, a two-way land mobile radio transceiver and a host processor for implementing processes within the radio core) with a corresponding antenna 120 that is activated by a PTT feature to transmit and receive at least voice media over a wireless link 126. Device 104 comprises: a microcontroller or DSP 132; corresponding Bluetooth apparatus that includes a Bluetooth IC chip 128 with a corresponding antenna 130; and other accessory functions 140.
In one embodiment, upon a user powering ON peripheral 104, the devices 102 and 104 perform a pairing procedure to associate peripheral 104 to device 102. Once the radio 102 and the peripheral 104 store their respective numerical credentials for pairing, the devices are "paired", and Bluetooth IC chips 108 and 128 operate to establish a short range Bluetooth wireless link 122 for Bluetooth transmissions such as voice transmissions and other data such as PTT states, state of other buttons and indicators, etc., between the peripheral 104 (e.g., an earpiece or headset) and the radio 102. The Bluetooth IC chips 108 and 128 both include at least: Bluetooth hardware (e.g., radio frequency hardware core comprising a Bluetooth transceiver and baseband processor); Bluetooth firmware (e.g., that implements lower layers of a multilayer Bluetooth protocol stack that control real-time and on-time management of data formatting and flow needed to sustain the underlying Bluetooth protocol); and a microprocessor that is programmed with software and code stored on memory apparatus on the chip. The Bluetooth hardware, firmware, microprocessor, and/or software and code are communicatively coupled and configured for implementing the Bluetooth protocol in accordance with any one or more of: Bluetooth Specification 1.1 ratified as IEEE Standard 802.15.1-2002; Bluetooth Specification 1.2 ratified as IEEE Standard 802.15.1-2005; Bluetooth Specification 2.0 + EDR (Enhanced Data Rate) released on November 10, 2004; Bluetooth Core Specification 2.1 adopted by the Bluetooth SIG on July 26, 2007; Bluetooth Specification 3.0 adopted by the Bluetooth SIG on April 21, 2009; and/or subsequent Bluetooth Specification releases.
The location within the Bluetooth apparatus of upper layers of the Bluetooth stack (that control, for example, user interface applications) depends on whether the Bluetooth apparatus is implemented as an HCI (Host/Controller Interface) system or a non-HCI system. In a non-HCI system, the upper layers of the Bluetooth stack are performed using the resident microprocessor on the Bluetooth chip. Whereas, in an HCI system, the upper layers of the Bluetooth stack are performed using a processing device that is external to the Bluetooth chip; and the upper and lower layers of the Bluetooth stack are coupled via a physical HCI data connection and communicate using a Bluetooth HCI protocol that is defined in the Bluetooth specification.
For example, where the Bluetooth apparatus in peripheral 104 is implemented as a HCI system, the upper layers of the Bluetooth stack are implemented using the microcontroller 132, which is external to the Bluetooth chip 128; whereas in a non- HCI implementation, the upper layers of the stack are implemented within the
Bluetooth chip 128. Where the Bluetooth apparatus in radio 102 is implemented as a HCI system, the upper layers of the Bluetooth stack are implemented using the microcontroller 106 or the host processor in the radio core 118, which are both external to the Bluetooth chip 108; whereas in a non-HCI implementation, the upper layers of the stack are implemented within the Bluetooth chip 108. Microcontrollers 106 and 132 may also be used to perform other functionality including, but not limited to, proprietary protocols such as the "nibbler" protocol described in detail below by reference to figures 5-8.
Moreover, the Bluetooth apparatus in devices 102 and 104 may have a "symmetric" architecture or an "asymmetric architecture". A symmetric architecture means that the Bluetooth apparatus of devices 102 and 104 are both implemented as HCI systems or are both implemented as non-HCI systems. An asymmetric architecture means that the Bluetooth apparatus in one device is implemented as an HCI system, and the Bluetooth apparatus of the other device is implemented as a non- HCI system.
In accordance with the teachings herein, priority data is wirelessly
communicated between the peripheral 104 and the radio 102 in short range transmissions over a short range wireless link. In a specific embodiment, Bluetooth protocols are used to facilitate transmission of the priority data using the Bluetooth apparatus in devices 102 and 104 as described, for example, by reference to figures 2 to 4. However, in other embodiments other proprietary protocols can be used to transfer the priority data over the Bluetooth link as described, for example, by reference to figures 5 to 8. Moreover, in the described embodiment, Bluetooth technology is used for the short-range communications, but another technology might be used for the short-range communications including, but not limited to, Zigbee, IEEE 802.11 a/b/g (Wi-Fi), Wireless USB, etc. In such a case, the priority data would be transferred in messages created using standard or proprietary protocols for facilitating the implementation of the alternative short range communication technology.
Further, as the term is used herein, a multilayer protocol stack means a plurality of protocols that define a networking architecture for communication devices based on the Open Systems Interconnection (OSI) Reference Model, which divides network architecture into seven layers (i.e., Application, Presentation, Session, Transport, Network, Data-link, and Physical) from top to bottom. Accordingly, the bottom two layers (also termed herein as the lower level or the lower layers) means the Data-link and the Physical layers and the associated protocols implemented to facilitate networking at these layers; and the upper layers (also termed herein as the upper level or the upper layers) means the Application, Presentation, Session, Transport, Network layers and the associated protocols implemented to facilitate networking at these layers.
Moreover, a process or method (such as a pattern matching process) being performed "within" the first two layers or within the lower layers means (or refers to) that the process or method is implemented to determine PTT state from a data message before the data in the data message is sent to the upper layers of the protocol stack for further processing. In one illustrative example in accordance with the teachings herein, the pattern matching process determines the PTT state from a data message using the firmware in the Bluetooth chip in the receiving communication device. In yet another illustrative example in accordance with the teachings herein, the pattern matching process determines the PTT state from a data message at an external microcontroller/Bluetooth chip interface either using the external
microcontroller programmed with software code or using a hardware device coupled to the interface.
With further respect to device 102, the transceiver (included in the radio core 118) and antenna 120 are conventional elements that, in this illustrative embodiment, implement one or more protocols that enable the transmission and reception of voice media over the air with other communication devices (not shown). Such protocols may include, but are not limited to, standards specifications for wireless
communications developed by standards bodies such as TIA (Telecommunications Industry Association), OMA (Open Mobile Alliance), 3GPP (3rd Generation
Partnership Project), 3GPP2 (3rd Generation Partnership Project 2), IEEE (Institute of Electrical and Electronics Engineers) 802, and WiMAX Forum. With further respect to device 104, the other accessory functions 140 may include, but are not limited to functions for, headsets, car audio kits, text display and keyboard devices, handheld computing devices, scanners, printers, and remote control devices.
Turning now to FIG. 2, there is shown a flow diagram of a method 200 for priority signaling over a wireless serial communication channel in accordance with some embodiments. Method 200 can be performed in the peripheral 104 or the radio 102 for communicating priority data. To facilitate ease of understanding the implementation of method 200, this process will be described by reference to figures 3 and 4, which both show components and corresponding functionality of the
Bluetooth apparatus in a peripheral and radio. In FIG. 3, the Bluetooth apparatus in the radio and the peripheral have an asymmetric architecture. In FIG. 4, the Bluetooth apparatus in the radio and the peripheral have a symmetric architecture. It is further noted that, with respect to the description herein, all blocks implemented by a processing device represent modules that are implemented by the processing device being programmed with relevant code (software and/or firmware).
Apparatus 300 illustrated in FIG. 3 comprises: a PTT button 302 (that indicates a state of PTT PRESS when a user presses a button, and PTT RELEASE, upon a user releasing the button) coupled to a peripheral Bluetooth chip 310 via an external microcontroller 304; a radio Bluetooth chip 330 communicatively coupled to the peripheral Bluetooth chip 310 via a Bluetooth wireless link 320; an external microcontroller 340 (which can comprise the host processor in the radio core or another microcontroller external to both the Bluetooth chip 330 and the host controller) communicatively coupled to the radio Bluetooth chip 330 via a HCI 336; and optionally a hardware detector 360 coupled to the HCI 336.
The peripheral Bluetooth chip 310 comprises: an upper layer Bluetooth stack
312 that includes applications that interface with the user to communicate media such as user voice data; a serial interface device 314, that in this case is an on-chip
Universal Asynchronous Receiver/Transmitter (UART) but that can be any such device including but not limited to a RS-232C device, a SDIO (Secure Digital Input/Output), a USB (Universal Serial Bus), and the like, which is a physical hardware interface that converts outgoing bytes of data from the microcontroller 304 into a serial bit stream and converts incoming bits of data into bytes of data for providing to the microcontroller 304; and a Bluetooth radio and lower layer Bluetooth stack 316 that handles the modulation of data for transport over the Bluetooth wireless link 320 and the demodulation of data received from the Bluetooth wireless link 320. The radio Bluetooth chip 330 comprises a corresponding Bluetooth radio and lower layer Bluetooth stack 332 and a UART 334. The external microcontroller 340 comprises: a UART 342; a part of the Bluetooth stack 344 (also referred to herein as the middle layer Bluetooth stack) that handles at least Bluetooth radio frequency communication (RFCOMM) protocol messages and may also execute other Transport and/or Network layer protocols; an upper layer Bluetooth stack 348 that includes at least the Application layer; a PTT decoder 350, and a squelch state encoder 370.
Apparatus 400 in FIG. 4 comprises: a PTT button 402 coupled to a peripheral Bluetooth chip 410 via an external microcontroller 404; a radio Bluetooth chip 430 communicatively coupled to the peripheral Bluetooth chip 410 via a Bluetooth wireless link 420; and an external microcontroller 440 communicatively coupled to the radio Bluetooth chip 430. The peripheral Bluetooth chip 410 comprises: an upper layer Bluetooth stack 412; a UART 414; and a Bluetooth radio and lower layer Bluetooth stack 416. The radio Bluetooth chip 430 comprises a corresponding Bluetooth radio and lower layer Bluetooth stack 432, an upper layer Bluetooth stack 434, and a UART 438.
We now turn back to FIG. 2 and the operation of apparatus 300 and 400 in accordance with the teachings herein to communicate priority data between two wireless communication devices (e.g., a peripheral and a radio). In the prior art, a problem that contributes to the latency in signaling time-sensitive events, such as PTT states and squelch states, is that the path of this data includes the upper layer
Bluetooth stack 312, 412, especially the application layer, which adds processing time to the signaling. However, in accordance with the teachings herein, a second autonomous path is created that either does not require priority data to be processed in the upper layer Bluetooth stack at all or substantially minimizes such processing, thereby minimizing the latency for signaling of time-sensitive events.
To get this fast event signaling for time-sensitive events, during startup of the peripheral device and connection to the master Bluetooth apparatus to form (202) the short range Bluetooth wireless link 320, 420, the Application layer of the upper level stack 312, 412 in the peripheral creates (204) a short range wireless data path that bypasses of the upper layer Bluetooth stack 312, 412 and that includes a wireless serial communication channel. A short range wireless path means a reliable data path that is established using one or more wireless protocols and that includes a short range wireless link. In this illustrative Bluetooth implementation, the upper layer Bluetooth stack 312, 412 uses the Bluetooth RFCOMM protocol (part of the Bluetooth protocol suite) to establish a RFCOMM wireless serial communication data channel 318, 418 that is operated by the lower level Bluetooth stack 316, 416 and that provides a simple reliable data stream that emulates a serial port connecting to a remote Bluetooth device (a radio adaptor or Bluetooth apparatus internal to the radio) via a RFCOMM channel 346, 436 created by the Application layer in the upper layer Bluetooth stack 348, 434 in the radio Bluetooth apparatus. In the symmetric case, the RFCOMM channel 436 is operated by the lower layer Bluetooth stack 432 in the radio Bluetooth chip 430. In the asymmetric case, the RFCOMM channel 346 is operated by the portion 344 of the upper layer Bluetooth stack (also termed the middle layer
Bluetooth stack) that includes the implementation of the RFCOMM protocol (and perhaps one or more other transport and network layer protocols) but that excludes the implementation of Application layer protocols, which are implemented the upper layer Bluetooth stack 348 that handles the user interface applications.
The Application layer of the upper layer stack 312, 412 then causes an autonomous stream connection 356, 456 to be formed (206) from the on-chip UART 314, 414 to the newly created RFCOMM channel 318, 418. This UART to
RFCOMM channel data path 356, 456 is a bi-directional "autonomous" stream connection (that bypasses the path through the upper layer Bluetooth stack 312, 412), which means that whatever data that comes into the UART 314, 414 is communicated across the path 356, 456 to the RFCOMM 318, 418 (and vice-versa) without any intervention from any of the upper layer Bluetooth stack and Application layers 312, 412. Similarly, in the symmetric architecture (system 400), the Application layer in the upper layer Bluetooth stack 434 connects its newly formed RFCOMM channel 436 to its UART 438 via a similar autonomous stream connection to form an autonomous bi-directional stream connection 460.
Moreover, the upper layer Bluetooth stack 412 associates (208) the RFCOMM channel 418 created in the peripheral to the RFCOMM channel 436 created on the radio side upon learning (using Bluetooth signaling during the initial power-up of the peripheral and connection to the radio Bluetooth apparatus) a channel number that identifies the RFCOMM channel 436. This connects the autonomous stream connections 456, 460 from the peripheral perspective to form the complete autonomous short range wireless data path for exchanging priority data. Similarly, in the symmetric architecture, the upper layer Bluetooth stack 434 associates the RFCMM channel 438 to the RFCOMM channel 418 upon learning (during the Bluetooth signaling during initial power-up of the peripheral and connection to the radio Bluetooth apparatus) the channel number that identifies the RFCOMM channel 418. This connects the autonomous stream connections 460, 456 from the radio side perspective to form the complete autonomous short range wireless data path for exchanging priority data.
As mentioned above, once these UART to RFCOMM connections have been formed, data entering one UART emerges from the other without any intervention of the upper level stack control layers 312, 412, 434. At the radio side, the data that emerges from the UART 438 is interpreted (decoded) by the external microcontroller 440 as a PTT signal 448 that is used to set an event in the radio core to communicate the determined PTT state. For example, the PTT signal 448 sets a GPIO (General Purpose Input/Output) on the radio or sends a message to another subsystem in the radio by a second data pipe such as a secondary serial interface. Accordingly, the entire UART to UART connection in system 400 is handled entirely by the low-level Bluetooth stack 416, 432, and because of this, the incremental signaling latency is very low. In this symmetric case, the incremental latency between a byte entering one UART and the byte exiting the UART in the opposing RFCOMM connected case has been observed to be less than 50ms on average.
In the asymmetric case (system 300), the upper layer Bluetooth stack 312 associates (208) the RFCOMM channel 318 created in the peripheral to the
RFCOMM channel 346 created on the radio side upon learning a channel number that identifies the RFCOMM channel 346 to form, from the peripheral perspective, the complete autonomous short range wireless data path for exchanging priority data. Similarly, the upper layer Bluetooth stack 348 associates the RFCOMM channel 346 to the RFCOMM channel 318 to form, from the radio side perspective, the complete autonomous short range wireless data path for exchanging priority data. At the radio side, the RFCOMM byte stream from the short range data path comprising the RFCOMM channels 318, 346 is directed into an internal software sink 350 in the external microcontroller 340 that decodes the PTT state priority data and delivers a corresponding PTT signal 352 to the radio core. The latency observed in the asymmetric case is still very low (since the primary cause of the prior art latency, which was the latency resulting from processing in the upper layer Bluetooth stack in the peripheral, is eliminated) and has been observed to be less than 50ms.
Again, the short range wireless data path established for communicating priority data operates autonomously from a wireless data path established (210), by conventional Bluetooth signaling, through the upper layer Bluetooth stacks 312, 348 and 412, 434 for transporting non-priority data signaling for user interface
applications that carry, for example, user input media such as voice. The data path for the non-priority data is also termed in the art as a SCO (synchronous connected oriented) data connection.
Moreover, as indicated above, the RFCOMM to RFCOMM path is
bidirectional, with the same performance in each direction. The uplink path (radio side to peripheral) can be used for time-sensitive high priority event signaling to the peripheral. An example of a high priority uplink event is "radio has unsquelched". This signal can be used to control an audio power amplifier (PA) in a headset (for instance) in a rapid way such that the beginning of speech messages are not missed, which means that the peripheral amplifier can be turned on within 50ms (on average) of the radio activating an external audio PA or the radio core indicating to the wireless Bluetooth apparatus that there is active incoming audio.
In system 300, a squelch state encoder 354 implemented in the external microcontroller 340 receives from the radio and encodes a squelch state 370 which it sends via the autonomous RFCOMM 346 to RFCOMM 318 path for decoding in the microcontroller 304, which provides a squelch state signal 360 containing the squelch state data to the peripheral via a GPIO or other secondary serial connection. In system 400, microprocessor 440 receives from the radio and encodes a squelch state 446 which it sends via the autonomous RFCOMM 436 to RFCOMM 418 path for decoding in the microcontroller 404, which provides a squelch state signal 444 containing the squelch state data to the peripheral.
Turning back to method 200 of FIG. 2, once the autonomous wireless data paths comprising the wireless serial communication channels (e.g., the RFCOMM to RFCOMM paths) are established, priority data is detected (212) for sending over these channels, encoded (214) onto a byte stream, and sent (216) over the novel short range wireless data path created for the priority data to another wirelessly connected device. In an embodiment, the priority data (such as PTT state and squelch state) is encoded into each data segment in a plurality of data segments provided by the serial interface device (e.g., the UART), wherein each data segment has a selected byte size that depends on the particular serial interface device implementation. In the UART embodiment, the selected byte size is one byte. Accordingly, in the UART
embodiment, the priority data is encoded into each byte of the data stream provided to the UART. For example, each byte of data may be encoded via setting a set of bits (e.g., one or more bits) in each byte to indicate the priority data.
Generally, the priority data (e.g., time-sensitive high priority data) can be sent using less than the entire byte of data. Therefore, to more efficiently use the novel autonomous short range wireless data path, the priority data is encoded with other data 358, 442, respectively, in the microcontrollers 304, 404. The other data (which is also termed "priority data" since it is being sent over the autonomous RFCOMM to RFCOMM path) includes, but is not limited to, a state of a button, a state of an indicator (such as an LED), a state of a battery, a state of audio. In a general sense, the microcontrollers 304, 404 may be programmed with code to perform a novel process of encoding comprising: receiving a first data stream generated from a button, indicator, etc. on the peripheral, wherein the first data stream has a first size;
generating a second data stream to send (to the serial interface device) that has a second size that is larger than the first size by dividing the first data stream into a number of data segments having a selected byte size (e.g., one byte in length);
encoding the priority data into data segments; and sending the data segments with the encoded priority data to the other device.
In accordance with this novel encoding protocol, any number of packing schemes can be used whereby an original eight bit data stream (of other data 358, 442) is encoded into multiple data segments each having less than all of the bits of the original eight bit data stream. In one embodiment, one byte of a data stream of other data 358, 442 is divided into two four bit streams or two "nibbles"( thus, the novel protocol is termed a "nibbler" protocol, which as the term is used herein refers to the packing using two nibbles and to any other packing scheme) each encoded into a two- byte pair, with the time-sensitive priority data (e.g., PTT state) being encoded into "extra/reserved" of each byte of the two-byte pair. In such a case, the nibbler data stream is about twice as long as the original data stream. To ensure that the PTT press has priority over all other messages, the protocol reserves one bit, e.g., the upper bit, of all bytes to indicate the state of the PTT. Moreover, a null message is used to indicate the state of the PTT if there is no other data to send. There is also a bit to indicate a HEADER so that the stream can indicate length and SYNC of the nibbles. Alternative to the length fields is just to use the header bit to indicate odd and even nibbles. The radio side runs a protocol to determine PTT state from the nibble stream sent over the RFCOMM channels. Then the microcontroller 340, 440 takes the bottom two nibbles of the incoming bytes and puts them back together again to form a single byte that is sent to the appropriate application on the radio.
FIG. 5 to FIG. 8 illustrate tables to facilitate an example implementation of the nibbler protocol. More particularly, FIG. 5 to FIG. 8, respectively, provide an illustrative implementation of the nibbler protocol format, example headset protocol states, an example null message, and example messages with buttons and battery states. With respect to FIG. 5, illustrative ranges for the fields comprise: PTT state = 1 bit, with a range 0, 1; Byte type = 1 bit, with a range of 0, 1; length = LEN 1 * 8 + LEN2 = 8 bits, with a range of 1-255 (0 is null message); and data = D1 * 8 + D2 = 8 bits, with a range of 0-255. It should be realized, however, that this is just one illustrative implementation of the nibbler protocol. Alternative implementations may by used. In one example, for instance, PTT state and the states of multiple (two or more, up to seven) other buttons and indicators can be encoded onto each data segment (e.g., each one byte of data) using the nibbler protocol.
In the asymmetric implementation, an additional method may be used in accordance with the teachings herein to shave further time off of the latency (e.g., around 20ms). More particularly, in the asymmetric Bluetooth architecture, some processing of the RFCOMM messages is performed in the middle layers of the Bluetooth stack on the radio side which adds to the latency. In accordance with further embodiments, a pattern matching process is included within the first two layers of the Bluetooth stack on the radio side, before the RFCOMM message is passed to the middle layers of the Bluetooth stack, to detect the RFCOMM messages and determine from these messages the priority data, e.g., PTT state, contained therein.
Turning now to FIG. 9, there is shown a flow diagram of a method 900 for determining and setting a PTT state in a communication device in accordance with some embodiments. For example, the method can be performed in radio 102, and an embodiment of the implementation of method 900 in radio 102 is concurrently described by reference to FIG. 3.
At 902, a communication device receives from a wirelessly coupled peripheral device a sequence of messages (which may be, for example, packets, datagrams, data segments, and the like) comprising a plurality of data messages. The sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data, and each data message indicates a PTT state for the receiving communication device and optionally includes other data such as battery state, state of buttons, state of indicators, state of audio, etc.
Turning momentarily to FIG. 3, in this illustrative example, the radio side Bluetooth chip 330 receives from the peripheral Bluetooth chip 310 a sequence of RFCOMM messages (via path 356, which is the wireless communication serial channel that is a part of the autonomous short range wireless data path for exchanging priority data) as Bluetooth transmissions over the Bluetooth wireless link 320, wherein the RFCOMM messages indicate PTT state. Upon receiving (902) this sequence of data messages, the receiving communication device performs (904) a pattern matching process within the first two layers of a multilayer protocol stack of the receiving communication device to determine the PTT states indicated by the data messages. With respect to the embodiment illustrated by reference to FIG. 3, upon receiving the RFCOMM messages, a pattern matching process is performed (e.g., method 1000 of FIG. 10) to detect the RFCOMM messages from other messages received over the HCI interface and to determine the PTT state from the detected messages. The pattern matching process can be performed using one of three alternative embodiments next described. In accordance with the first two embodiments, the pattern matching process is performed at the HCI 336. A sequence of HCI messages (each received via a path that includes autonomous serial connection 356 and each including an RFCOMM data message indicating the PTT state) are generated using a HCI protocol (such as one included in the Bluetooth protocol suite), which facilitates standardized
communications over a physical HCI such as a UART, RS232C, SDIO, USB, and the like. The pattern matching process detects an HCI message header, determines (e.g., from a header) that the HCI message contains a RFCOMM message, and if it is the correct RFCOMM message (as described in more detail below) uses the message to determine the PTT state.
In the first embodiment, the pattern matching process is performed by the external microcontroller programmed with code. For example, the on-chip UART 342 (or more particularly, the UART 's attending interrupt handling software) includes a pattern detector, which implements a pattern matching process (such as a pattern matching process illustrated by reference to FIG. 10 and described below in detail) for detecting the RFCOMM messages and determining the PTT states, which the pattern detector indicates in a PTT signal 366 to the radio core to set (906) the
communication device to the PTT state. In the second embodiment, the pattern matching process is performed using the hardware pattern detector 360 (implemented for instance using a Field Programmable Gate Array, a Complex Programmable Logic Device, a custom programmed microcontroller, or a DSP) that is communicatively coupled to the HCI interface 336. The hardware detector 360 detects HCI messages and determines from the RFCOMM messages contained therein the PTT state for the radio, which is communicated to the radio core via a PTT signal 362. In the third embodiment, the pattern matching process is performed in the lower layer firmware 332 of the radio Bluetooth chip 330, and communicated to the radio core as a PTT signal 364.
Although it communicates the determined PTT state to the radio core via the novel pattern detector, the receiving communication device still passes (908) the data messages to a layer that is higher than the first two layers for further processing of the data messages. For example, in the embodiment illustrated by reference to FIG. 3, the UART 342 passes the RFCOMM messages to the Bluetooth stack 344 and further to the PTT decoder 350 to decode the PTT state for error handling or for detecting the PTT RELEASE state, since the PTT RELEASE state may have reduced requirements for incremental latency.
Turning now to FIG. 10, an illustrative pattern matching process 10 is shown that may be programmed into the firmware 332 of the radio Bluetooth chip 330, the UART 342 in the external microcontroller 340, or the hardware detector 360. The pattern detector detects (1002) an incoming message and determines (1004) whether it is the correct data message. For example, when the upper layer Bluetooth stack 348 processes the initial Bluetooth signaling upon initialization, it knows the format of an RFCOMM message and also becomes aware of any RFCOMM channel numbers associated with PTT peripheral devices, which knowledge it can use to program the pattern detector to look for a RFCOMM message and in some cases a specific RFCOMM channel number.
If (1006) only PTT state is being monitored as opposed to other priority data, the pattern detector simply detects the RFCOMM data message and determines (1008) that the PTT state=PRESS. Because a RELEASE must always follow a PRESS, if the message was actually a PTT RELEASE it will be decoded and signaled to the radio core by the PTT decoder 350. If (1006) the PTT state is being sent as part of the nibbler protocol with other priority data, the pattern detector detects the RFCOMM message and goes through the data portion of the message looking for (1010) the PTT bit(s), and determines (1012) the PTT state from the PTT bit(s). If there is more than one RFCOMM channel number being monitored, the pattern detector goes through the data in the RFCOMM message to determine whether the RFCOMM channel number corresponds to a peripheral device that provides an indication of PTT state for the radio. If so, the pattern detector processes the message depending on whether only the PTT state is being monitored or whether the nibbler protocol is used. In any case, the pattern detector notifies (1014) the radio core of the determined PTT state and the message is passed (1016) to the middle layers of the Bluetooth stack and to the PTT decoder for further processing to decode the PTT state.
In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises," "comprising," "has", "having," "includes", "including," "contains", "containing" or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises ...a", "has ...a", "includes ...a", "contains ...a" does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms "a" and "an" are defined as one or more unless explicitly stated otherwise herein. The terms "substantially", "essentially", "approximately", "about" or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term "coupled" as used herein is defined as connected, although not necessarily directly and not necessarily
mechanically. A device or structure that is "configured" in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
It will be appreciated that some embodiments may be comprised of one or more generic or specialized processors (or "processing devices") such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and apparatus for priority data signaling described herein. The non- processor circuits may include, but are not limited to, a radio receiver, a radio transmitter, signal drivers, clock circuits, power source circuits, and user input devices. As such, these functions may be interpreted as steps of a method to perform priority data signaling described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used. Both the state machine and ASIC are considered herein as a "processing device" for purposes of the foregoing discussion and claim language.
Moreover, an embodiment can be implemented as a computer-readable storage element or medium having computer readable code stored thereon for programming a computer (e.g., comprising a processing device) to perform a method as described and claimed herein. Examples of such computer-readable storage elements include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.

Claims

CLAIMS What is claimed is:
1. A method for determining and setting a push-to-talk state in a communication device, the method comprising:
at a communication device having a multilayer protocol stack for processing incoming messages:
receiving, from a peripheral that is wirelessly coupled to the communication device, a sequence of messages comprising a plurality of data messages, wherein each of the data messages provides an indication of a push- to-talk (PTT) state for the communication device, wherein the sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data;
performing a pattern matching process, within the first two layers of the multilayer protocol stack, to determine the PTT state indicated by each of the data messages;
setting the communication device to have the determined PTT states.
2. The method of claim 1 further comprising passing the data messages to a layer that is above the first two layers for further processing of the data messages.
3. The method of claim 1, wherein each of the data messages has a length of one byte, and the PTT state is indicated in at least one bit of the data message.
4. The method of claim 1, wherein the sequence of messages further comprises a null message that provides an indication of the PTT state for the communication device.
5. The method of claim 1 , wherein performing the pattern matching process comprises:
detecting, within the first two layers of the multilayer protocol stack, that a received message is one of the data messages;
based only on the detecting of the data message, determining a PTT state of
PRESS for the communication device.
6. The method of claim 5 further comprising passing the detected data message to a layer that is above the first two layers for confirming whether the data message includes a PTT PRESS indication or a PTT RELEASE indication.
7. The method of claim 5, wherein detecting that a received message is one of the data messages comprises:
detecting that the received message is a radio frequency communications (RFCOMM) data message;
determining a channel number from the RFCOMM data message; and determining that the channel number corresponds to a peripheral device that provides an indication of a PTT state for the communication device.
8. The method of claim 1 , wherein performing the pattern matching process comprises:
detecting, within the first two layers of the multilayer protocol stack, that a received message is one of the data messages;
detecting at least one bit in the data message that indicates the PTT state; determining the PTT state from the detected at least one bit in the data message.
9. The method of claim 8, wherein detecting that a received message is one of the data messages comprises:
detecting that the received message is a radio frequency communications (RFCOMM) data message;
determining a channel number from the RFCOMM data message; and determining that the channel number corresponds to a peripheral device that provides an indication of a PTT state for the communication device.
10. The method of claim 1, wherein the wireless serial communication channel comprises a Bluetooth radio frequency communication (RFCOMM) channel, and each data message is a radio frequency communications (RFCOMM) data message included in a host/controller interface (HCI) message sent between a Bluetooth integrated circuit (IC) chip that executes the first two layers of the multilayer protocol stack and a microcontroller that is external to the Bluetooth IC chip and that executes upper layers of the multilayer protocol stack.
11. The method of claim 10, wherein performing a pattern matching process, within the first two layers of the multilayer protocol stack comprises:
detecting each RFCOMM data message using the microcontroller
programmed with code;
determining the PTT state using the detected RFCOMM data messages.
12. The method of claim 10, wherein performing a pattern matching process, within the first two layers of the multilayer protocol stack comprises:
detecting each RFCOMM data message using firmware within the Bluetooth
IC chip;
determining the PTT state using the detected RFCOMM data messages.
13. The method of claim 10, wherein performing a pattern matching process, within the first two layers of the multilayer protocol stack comprises:
detecting each RFCOMM data message using a hardware detector that is external to and that is coupled between the Bluetooth IC chip and the microcontroller; determining the PTT state using the detected RFCOMM data message.
14. A method for encoding a PTT state into a data stream, the method comprising: at a peripheral device:
generating a first data stream having a first size for sending to a communication device that is wirelessly coupled to the peripheral device; generating a second data stream having a second size that is larger than the first size by dividing the first data stream into a number of data segments each having a selected byte size;
encoding a PTT state for the communication device into a set of bits in each data segment;
sending the data segments with the encoded PTT state to the communication device.
15. The method of claim 14, wherein the selected byte size of each data segment is one byte.
16. The method of claim 15, wherein the set of bits used for encoding the PTT state comprises one bit in every one byte data segment.
17. The method of claim 14, wherein the size of the second data stream is about twice as large as the size of the first data stream.
18. The method of claim 14 further comprising:
at the peripheral device:
generating a null message in the absence of a data stream to send to the communication device;
encoding the PTT state of the communication device into the null message.
19. Apparatus comprising:
a Bluetooth multilayer protocol stack for processing incoming messages; a Bluetooth radio that receives, from a peripheral that is wirelessly coupled to the apparatus, a sequence of messages comprising a plurality of data messages, wherein each of the data messages provides an indication of a push-to-talk (PTT) state for the apparatus, wherein the sequence of data messages is received over a short range wireless data path for exchanging priority data that comprises a wireless serial communication channel and that is different from a short range wireless data path for exchanging non-priority data;
a pattern detector that:
performs a pattern matching process, within the first two layers of the Bluetooth multilayer protocol stack, to determine the PTT state indicated by each of the data messages; and
sets the apparatus to have the determined PTT states.
20. The apparatus of claim 19, wherein the apparatus further comprises a Bluetooth integrated circuit (IC) chip that includes the Bluetooth radio and that executes the first two layers of Bluetooth multilayer protocol stack and a
microcontroller that is external to the Bluetooth IC chip, wherein the microcontroller executes upper layers of the Bluetooth multilayer protocol stack and is
communicatively coupled to the Bluetooth IC chip via a host/controller interface, wherein the pattern detector is included in one of:
the microcontroller programmed with code; or
a hardware detector coupled to the host/controller interface; or
firmware within the Bluetooth IC chip.
PCT/US2010/044628 2009-08-10 2010-08-06 Methods and apparatus for communicating a push-to-talk state to a communication device WO2011019583A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP10743301.3A EP2465252B1 (en) 2009-08-10 2010-08-06 Method and apparatus for communicating a push-to-talk state to a communication device
CN201080035534.8A CN102474546B (en) 2009-08-10 2010-08-06 Methods and apparatus for communicating a push-to-talk state to a communication device
AU2010282791A AU2010282791B2 (en) 2009-08-10 2010-08-06 Methods and apparatus for communicating a push-to-talk state to a communication device
BR112012002943-6A BR112012002943B1 (en) 2009-08-10 2010-08-06 method and apparatus for determining and adjusting a push-to-talk state on a communication device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/538,458 US8417186B2 (en) 2009-08-10 2009-08-10 Method and apparatus for communicating push-to-talk state to a communication device
US12/538,458 2009-08-10

Publications (1)

Publication Number Publication Date
WO2011019583A1 true WO2011019583A1 (en) 2011-02-17

Family

ID=42988280

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2010/044628 WO2011019583A1 (en) 2009-08-10 2010-08-06 Methods and apparatus for communicating a push-to-talk state to a communication device

Country Status (6)

Country Link
US (2) US8417186B2 (en)
EP (1) EP2465252B1 (en)
CN (1) CN102474546B (en)
AU (1) AU2010282791B2 (en)
BR (1) BR112012002943B1 (en)
WO (1) WO2011019583A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9750059B2 (en) 2014-11-10 2017-08-29 Motorola Solutions, Inc. Methods and systems for joining a sub-talkgroup of a first talkgroup
US9814079B2 (en) 2014-11-10 2017-11-07 Motorola Solutions, Inc. Methods and systems for selectively routing group communications amongst multiple networks

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8554138B2 (en) * 2009-08-10 2013-10-08 Motorola Solutions, Inc. Method and apparatus for priority signaling over a wireless serial communication channel
US8417186B2 (en) * 2009-08-10 2013-04-09 Motorola Solutions, Inc. Method and apparatus for communicating push-to-talk state to a communication device
CN102647211A (en) * 2011-02-22 2012-08-22 中兴通讯股份有限公司 Mobile terminal for realizing wireless clustering function by utilizing Zigbee technology
US8666313B2 (en) 2011-07-29 2014-03-04 Motorola Solutions, Inc. Pairing devices using data exchanged in an out-of-band channel
ES2759867T3 (en) * 2011-11-01 2020-05-12 Savox Communications Oy Ab Ltd Communication equipment for secure communication
DE102011086509A1 (en) * 2011-11-16 2013-05-16 Thales Deutschland Gmbh Wireless bidirectional speech transmission device for use on e.g. ship in military field, has transmission and receiving devices are formed for transmission of two hearing channels and speech channel over radio connection
US20140113673A1 (en) * 2012-10-22 2014-04-24 Motorola Mobility Llc Method and device with a push to talk feature
CN103905147B (en) * 2012-12-28 2017-03-22 联芯科技有限公司 Data processing method, sending device, receiving device and communication system
CN103297326B (en) * 2013-05-29 2017-12-29 深圳Tcl新技术有限公司 The method and apparatus of message push
US9374841B2 (en) * 2013-07-22 2016-06-21 Htc Corporation Communicative connection method among multiple devices
ES2654605T3 (en) 2013-08-09 2018-02-14 Savox International S.A. Communication device, communication arrangement and communication procedure
CN104581442B (en) * 2013-10-17 2019-09-27 南京中兴新软件有限责任公司 A kind of method and device for realizing terminal WIFI intercommunication
WO2015077967A1 (en) * 2013-11-28 2015-06-04 Motorola Solutions, Inc. Method and system for managing mobile and portable two-way radio collaboration
JP6364835B2 (en) * 2014-03-13 2018-08-01 アイコム株式会社 Radio apparatus, radio apparatus, and communication method
JP6364834B2 (en) * 2014-03-13 2018-08-01 アイコム株式会社 Wireless device and short-range wireless communication method
WO2016027008A1 (en) * 2014-08-21 2016-02-25 Paumax Oy Communication device control with external accessory
CN105472773B (en) * 2015-01-13 2019-03-01 深圳Tcl数字技术有限公司 The method and host of plurality of Bluetooth equipments communication
US9918284B2 (en) * 2015-09-23 2018-03-13 Futurewei Technologies, Inc. Methods and systems for downlink transmit power control command transmission
CN105472573B (en) * 2015-12-10 2018-10-23 深圳安信卓科技有限公司 Wireless controller and intercom system for intercom
US10165612B2 (en) * 2016-06-16 2018-12-25 I/O Interconnected, Ltd. Wireless connecting method, computer, and non-transitory computer-readable storage medium
US9906893B2 (en) * 2016-06-16 2018-02-27 I/O Interconnect, Ltd. Method for making a host personal computer act as an accessory in bluetooth piconet
CN106601262A (en) * 2016-12-15 2017-04-26 北京塞宾科技有限公司 High definition Bluetooth audio frequency transmitting and receiving terminal and communication system
CN106851531A (en) * 2016-12-15 2017-06-13 北京塞宾科技有限公司 A kind of Bluetooth audio frequency transmission method
KR101980190B1 (en) * 2017-09-25 2019-05-21 서울대학교산학협력단 Apparatus for controlling input/output device, operating method thereof and operating method of device driver for controlling input/output device
EP4245095A1 (en) * 2020-11-13 2023-09-20 3M Innovative Properties Company System and method of communicating using a headset

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199630A1 (en) * 1999-06-30 2004-10-07 Sarkissian Haig A. State processor for pattern matching in a network monitor device
US20080081667A1 (en) * 2006-09-28 2008-04-03 Dhaval Parikh Methods of configuring a generic bluetooth controller of a flash drive to be compatible with multiple bluetooth peripheral devices
EP1928161A1 (en) 2006-11-29 2008-06-04 Seecode Co., Ltd. Bluetooth remote PTT and handsfree communication system and method of providing the same

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408466A (en) * 1984-12-06 1995-04-18 Motorola, Inc. Duplex interconnect dispatch trunked radio
US7606575B2 (en) * 1988-08-04 2009-10-20 Broadcom Corporation Remote radio data communication system with data rate switching
US7386000B2 (en) 2001-04-17 2008-06-10 Nokia Corporation Packet mode speech communication
US7408948B2 (en) 2001-04-17 2008-08-05 Nokia Corporation Packet mode speech communication
CA2431387C (en) 2002-06-10 2007-05-29 Research In Motion Limited Voicemail notification messaging for mobile communication devices
US7688764B2 (en) 2002-06-20 2010-03-30 Motorola, Inc. Method and apparatus for speaker arbitration in a multi-participant communication session
US20040198425A1 (en) 2002-10-01 2004-10-07 Mellone Charles M. Establishing half-duplex audio link as battery saving means
US7496077B2 (en) * 2004-08-11 2009-02-24 Broadcom Corporation Method and system for dynamically changing audio stream bit rate based on condition of a Bluetooth connection
US7643856B2 (en) 2005-12-09 2010-01-05 Motorola, Inc. Method for reducing apparent latency in linking a call received at a mobile communication device to a remote audio processor
US7675537B2 (en) * 2006-03-31 2010-03-09 Polycom, Inc. System, method, and apparatus for extending wireless personal area networks using conferencing connection
KR101251193B1 (en) 2006-06-09 2013-04-08 삼성전자주식회사 METHOD AND SYSTEM FOR ESTABLISHING A GROUP SESSION IN PoC SYSTEM
US20070294500A1 (en) * 2006-06-16 2007-12-20 Falco Michael A Methods and system to provide references associated with data streams
US8417225B2 (en) * 2006-12-19 2013-04-09 Motorola Mobility Llc Method for coordinating the sharing of contact information between a directory terminal and a portable communication device, as well as providing enhanced user interface context features
US8150475B2 (en) * 2006-12-19 2012-04-03 Motorola Mobility, Inc. Method for information signal distribution between communication devices based on operating characteristics of a depletable power supply used by one of the devices
US8155335B2 (en) * 2007-03-14 2012-04-10 Phillip Rutschman Headset having wirelessly linked earpieces
US8224247B2 (en) * 2007-05-16 2012-07-17 Texas Instruments Incorporated Controller integrated audio codec for advanced audio distribution profile audio streaming applications
TWI371695B (en) * 2007-12-11 2012-09-01 Inst Information Industry A priority-based data message publish method and system according to a data message chain
CN101330670A (en) * 2008-07-10 2008-12-24 华为技术有限公司 Method, terminal and system for implementing one-key communication
US8265678B2 (en) * 2008-11-07 2012-09-11 Motorola Mobility Llc Adaptive application data packaging to improve packet efficiency in a fixed frame packet communication system
US8676636B2 (en) * 2009-04-22 2014-03-18 Parkpod Gmbh System for managing electric energy grid-vehicle exchange devices
US8417186B2 (en) 2009-08-10 2013-04-09 Motorola Solutions, Inc. Method and apparatus for communicating push-to-talk state to a communication device
US8554138B2 (en) * 2009-08-10 2013-10-08 Motorola Solutions, Inc. Method and apparatus for priority signaling over a wireless serial communication channel

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199630A1 (en) * 1999-06-30 2004-10-07 Sarkissian Haig A. State processor for pattern matching in a network monitor device
US20080081667A1 (en) * 2006-09-28 2008-04-03 Dhaval Parikh Methods of configuring a generic bluetooth controller of a flash drive to be compatible with multiple bluetooth peripheral devices
EP1928161A1 (en) 2006-11-29 2008-06-04 Seecode Co., Ltd. Bluetooth remote PTT and handsfree communication system and method of providing the same

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"part K:5 : Serial Port Profile", SPECIFICATION OF THE BLUETOOTH SYSTEM, XX, XX, vol. 2, 1 December 1999 (1999-12-01), pages 165 - 188, XP002206799 *
"Specification of the Bluetooth System; Profiles, version 1.1; Part K:6 : Headset Profile", SPECIFICATION OF THE BLUETOOTH SYSTEM, XX, XX, 22 February 2001 (2001-02-22), pages 197 - 226, XP002277008 *
"THE LAYERED APPROACH: THE OSI MODEL", DATA AND COMPUTER COMMUNICATIONS, XX, XX, 1 January 1991 (1991-01-01), pages 446 - 456, XP000917810 *
BRILL M: "DIE ANWENDERNAHEN SCHICHTEN IM ISO/OSI-MODELL", THE EMBO JOURNAL, IRL PRESS LIMITED, DE, vol. 37, no. 5, 4 March 1988 (1988-03-04), pages 77/78,80 - 82, XP000814361, ISSN: 0013-5658 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9750059B2 (en) 2014-11-10 2017-08-29 Motorola Solutions, Inc. Methods and systems for joining a sub-talkgroup of a first talkgroup
US9814079B2 (en) 2014-11-10 2017-11-07 Motorola Solutions, Inc. Methods and systems for selectively routing group communications amongst multiple networks

Also Published As

Publication number Publication date
US8346170B2 (en) 2013-01-01
AU2010282791A1 (en) 2012-03-01
US8417186B2 (en) 2013-04-09
CN102474546B (en) 2014-10-15
AU2010282791B2 (en) 2013-10-03
US20110034125A1 (en) 2011-02-10
US20120165062A1 (en) 2012-06-28
EP2465252B1 (en) 2015-10-07
BR112012002943B1 (en) 2021-05-11
BR112012002943A2 (en) 2020-08-11
CN102474546A (en) 2012-05-23
EP2465252A1 (en) 2012-06-20

Similar Documents

Publication Publication Date Title
US8346170B2 (en) Method and apparatus for communicating push-to-talk state to a communication device
EP2465251B1 (en) Priority signaling over a wireless serial communication channel
JP4237771B2 (en) Link connection method between communication terminals equipped with a Bluetooth wireless device
CN102291838B (en) Methods and devices for sending and receiving high priority service in direct mode
EP2832181A1 (en) Method and apparatus for relaying data communications in a bluetooth network
CN104244197A (en) Mobile terminal and mobile instant communication method and system used for group communication
KR101990489B1 (en) Method and apparatus for transmitting http data using bluetooth in wireless communication system
JP2016139952A (en) Hybrid terminal
KR101080617B1 (en) Mobile phone with family radio service and method for operating the same
CN103238371A (en) Method and apparatus for ensuring transmission of critical data through wireless adapter
CN101662845B (en) Method for switching speaking right in mobile terminal talkback communication
CN101662698A (en) Mobile terminals with talkback function and method for feeding back signaling
CN101547243B (en) Split type mobile communication terminal
CN201191867Y (en) Split type mobile communication terminal
JP6319377B2 (en) Communications system
KR20060042762A (en) Headset and method for power saving using bluetooth communication
CN105049604A (en) Electronic communication apparatus with emergency power supply
CN105050030A (en) Zigbee type electronic communication apparatus
CN105049072A (en) Electronic communication apparatus with GPS antenna
CN105049089A (en) Electronic communication apparatus with bluetooth module

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080035534.8

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10743301

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010282791

Country of ref document: AU

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010743301

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2010282791

Country of ref document: AU

Date of ref document: 20100806

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112012002943

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112012002943

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20120209