Many kinds of devices send data to a remote unit or an accessory, such as a wireless headset. When sending data, a controller may format data into a packet or other appropriate format. The controller may then send the packet to a communication interface for transmission to the remote unit or accessory. If the packet is successfully received, an acknowledgement (ACK) may be sent back to the controller and another packet sent. If the packet is not successfully received, a no-acknowledgement (NACK) may be sent to the controller and the unsuccessful packet may be resent.
The devices that send data using this procedure may include media players, such as MP3 players or personal DVD players, cellular telephones, gaming systems, personal computers, automotive dashboard electronics, etc. The device may be a media player that sends data to a headset or speakers, for example. Conversely, it may receive data from a PC, remote DVD, etc. The remote unit or accessory may include docking stations, speakers, headsets, game controllers, navigation units, DVD players, hands-free accessory for cell phone or vehicle, etc.
To save power, devices that broadcast only, that is, without packet acknowledgements, may power down circuitry that would normally manage flow control and acknowledgements during the broadcast period. When transmitting with packet acknowledgements, such circuitry must remain on, with corresponding power consumption, and, in the case of battery powered units, reduction in battery life.
A device and corresponding method that streams data to a receiver uses a logic unit to handle acknowledgements related to sending packets so that a main processor or controller can sleep during the transmission process. The controller may retrieve data and format a number of packets for transmission and then power down while the packets are being transferred. A memory access unit, such as a direct memory access (DMA) unit, may retrieve the formatted packets and send them sequentially to a communication interface, such as a universal asynchronous receiver/transmitter (UART). The logic unit may receive response messages corresponding to transmission of a packet and pattern match the response message with one of several expected response messages, such as an acknowledgement (ACK) or a no-acknowledgement (NACK). The logic unit may direct the memory access unit to send the next packet or resend a previous packet based on the response message.
If the response message does not correspond to one of the expected response messages, the logic unit may wake up the controller to process the response message.
In one embodiment, the controller may store controller-related state data before entering the sleep mode. The logic unit may update the state data with information related to packets sent, so that when the controller wakes up and loads the state data, it will have an indication of activity performed on its behalf while sleeping.
In another embodiment, a media device uses a DMA means and a logic means to coordinate data transmission while the media device main controller is in a low power state. The DMA means may include circuitry that takes packet address data and sequentially transfers data to the UART or other transmission circuit. The logic means may analyze response messages and signal the DMA means to send a next packet or resend a previous packet, depending on a particular response message. In one embodiment, the DMA means may be part of the UART, that is, the UART may be capable of directly reading a memory range to retrieve the appropriate data.
A communication interface 108 may interface between a system bus 109 and a transport mechanism 110. The system bus 109 may be any of several bus architectures known and in use, for example, a peripheral control interface (PCI) or PCI express (PCIe), Industry Standard Architecture (ISA), Secure Digital Input/Output (SDIO), etc. The transport mechanism 110 may send and receive data over a wired or wireless transport with a receiving device 112, shown external to the device 100, although internal peripherals can be used. The transport mechanism 110 may support communication via Bluetooth™, 802.11 WiFi, Ethernet, ultra-wideband (UWB), etc. The receiving device 112 may be any device capable of two-way communication with the transport mechanism 110 and may include headsets, speakers, navigation units, game controllers, etc.
A direct memory access (DMA) unit 114 may provide independent access to the memory 106 and may act under the direction of the controller 102 when it is active or may act independently under previous instructions when the controller 102 is in its low-power state. The DMA unit 114 may include send logic 116 for managing incrementing through packets to be sent or retrying unsuccessful packets when the controller 102 is in the low-power state.
A logic unit 118 may manage packet delivery, or at least manage processing of response messages related to packet delivery, while the controller 102 is in the low-power state. The logic unit 118 may include a port 120 for bidirectional communication, an input signal parser 122, and a correlator 124. The correlator 124 may take input from the input signal parser 122 and for comparing response messages received via the input signal parser 122 with one or more predetermined patterns stored in a pattern memory 126. The logic unit 118 may also include an output 128 that may be activated by the correlator 124 to communicate with the DMA unit 114 or send logic 116 responsive to a matching response messages. The output 128 may also include a wakeup message for the controller 102 for use when the correlator 124 is not able to match a response message with data in the pattern memory 126.
A communication interface 158 may interface between a system bus 159 and a transport mechanism 160. The system bus 159 may be any of several bus architectures known and in use, for example, a peripheral control interface (PCI) or PCI express (PCIe), industry standard architecture (ISA), SDIO, etc. The transport mechanism 160 may send and receive data over a wired or wireless transport with a receiving device 162. The transport mechanism 160 may support communication using Bluetooth™, 802.11 WiFi, Ethernet, etc. The receiving device 162 may be any device capable of two-way communication with the transport mechanism 160 and may include headsets, speakers, navigation units, game controllers, etc.
The communication interface 158 may include a memory access unit 164 that may provide independent access to the memory 156 and may act under the direction of the controller 152 when the controller 152 is active or may act independently using pre-programmed instructions when the controller 152 is in its low-power state. When the controller 152 is in a low-power state, the memory access unit 164 may be responsive to signals from a logic unit 166 (described below) to advance through a sequence of packets to be sent or to retry sending an unsuccessful packet.
The logic unit 166 may manage packet delivery, or at least manage processing of response messages related to packet delivery, while the controller 152 is in the low-power state. The logic unit 166 may include a port 168 for bidirectional communication, an input signal parser 170, and a correlator 174. The correlator 174 may take input from the input parser 170 and a pattern memory 172 for comparing response messages received via the input parser 170 with one or more predetermined patterns stored in the pattern memory 172. The logic unit 166 may also include an output 176 that may be activated by the correlator 174 to communicate with the communication interface 158 responsive to matching response messages. The output 176 may also include a wakeup message for the controller 152 for use when the correlator 174 is not able to match a response message with data in the pattern memory 172.
At block 304, the controller may prepare the data by formatting the data into sequential data blocks of equal size, using padding if necessary. In another embodiment, variable length packets may be used if packet size information is made available to the DMA unit 114 so the correct amount of data can be provided to the transport 110. The controller 102 may then apply appropriate header information. For example, when the transport 110 is a Bluetooth wireless connection, the data may be wrapped in several protocol layers including an audio/video data transport protocol (AVDTP) header, a logical link control and adaptation (L2CAP) header, a host control interface (HCI) header, and a host controller transport layer, such as an H:5 implementation from Cambridge Silicon Radio known as BCSP.
At block 306, each packet in the sequence may be stored in memory, such as memory 106. When the memory 106 incorporates more than one type of memory, such as volatile and non-volatile memory, the prepared packets may be stored in a relatively fast, low-power memory, such as static random access memory, although other media may also be used.
At block 308, when the prepared data has been stored, the controller 102 may activate the send logic 116 in the DMA unit 114 as well as the logic unit 118 and enter its low-power state. The activation process may include sending packet size information, start/stop memory locations, etc. The activation process may also include sending one or more signals that indicate the controller 102 is entering the low-power state. The controller 102 may include logic to the one or more signals, and such logic may be implemented using hardware (e.g., circuitry), firmware, software or some combination of hardware, firmware, and/or software. Prior to entering the low-power state, the controller 102 may store state data related to its own state, such as program counter information, register data, etc. Some of the register data may include information regarding the latest packet to be sent and acknowledged. This register information, and optionally others, may be accessed separately, as discussed below. The controller 102 may include logic for storing the state data, and such logic may be implemented using hardware (e.g., circuitry), firmware, software or some combination of hardware, firmware, and/or software.
When the controller 102 enters the low-power state, it may suspend all activity other than monitoring for a wakeup signal. Alternatively, or in addition to monitoring for a wake up signal, the controller 102 may start a timer that will cause the controller 102 to exit the low-power state after a pre-determined period of time. In some implementations, the controller 102 may perform other minimal activities during the low-power state.
At block 310, the DMA unit 114 may retrieve a first packet from the memory 106 and queue it to the transport 110. The transport 110 may send the packet to the receiving device 112.
At block 312, the receiving device may send a response message via the transport 110. The response message may be an acknowledge (ACK), a no-acknowledge (NACK), or another message. Because the controller 102 is in the low-power state, the received message may be picked up off the bus 109 by the logic unit 118. At the logic unit 118, the port 120 may send the response message to the input signal parser 122. The input signal parser 122 may remove any protocol headers and forward the message to a correlator 124. The correlator 124 may compare the response message to predetermined patterns corresponding to expected response messages, such as ACK and NACK, SDIO command or response tokens and the like.
Alternatively, the input signal parser 122 may simply pass the received message through to the correlator 124 where the predetermined patterns may include fixed header data. Part of the activity of the correlator 124 may be to align the received message with the predetermined pattern.
At block 314, the correlator 124 may match the response message to a predetermined pattern. If the response message matches the predetermined pattern corresponding to an ACK response message, the “ACK” branch from block 314 may be taken to block 316.
At block 316, the logic unit 118 may send a signal to the DMA unit 114 to send a next packet, if any unsent packets remain. At block 318, the logic unit 118 may also update controller state data, such as register information. By directly updating the state data, the controller 102 may have immediate access to packet delivery information upon exiting the low-power state. The logic unit 118 may include logic for updating the state data, and such logic may be implemented using hardware (e.g., circuitry), firmware, software or some combination of hardware, firmware, and/or software. Execution may continue at block 312, where the device 100 may wait for a response message from the receiving device 112.
If, at block 314, the correlator matches the response message to a predetermined pattern corresponding to a NACK, the “NACK” branch from block 314 may be taken to block 320. At block 320, the logic unit 118 may send a signal to the DMA unit 114 to resend the previous packet. Execution may continue at block 318 as described above.
If, at block 314, the correlator 124 cannot match the response signal to any predetermined pattern, the “No match” branch from block 314 may be taken to block 322. At block 322, the logic unit 118 may send a signal to the controller 102 to wake up. After exiting the low-power state, the controller 102 may analyze the response signal and take appropriate action.
The logic unit 118 provides a simple and low power logic means for analyzing and responding to the most likely outcomes of sending a packet to the receiving device 112. The DMA unit 114 similarly provides a simple memory access means that reads packets from memory 106 sends packets sequentially via the communication interface 108.
By implementing the logic unit 118 and DMA unit 114 to handle the mechanics of sending packets, the device 100 may achieve lower power operation than if the controller 102 handles all send and confirmation operations. While lower power operation may be of particular interest to battery operated devices, such as portable devices, low power consumption is increasingly valued even in applications where power is plentiful, such as in a home or automotive setting.
Referring now to
HDTV 420 may communicate with a mass data storage 427 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices. HDTV 420 may be connected to memory 428 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. HDTV 420 also may support connections with a suitable wireless connection via a wireless network interface 429. The wireless network interface 429, the HDTV signal processing and control block 422, may all also implement a low-power state for transmitting data via the wireless network 429 or to the display 426, respectively.
Referring now to
Control system 440 may likewise receive signals from input sensors 442 and/or output control signals to one or more output devices 444. In some implementations, control system 440 may be part of an anti-lock braking system (ABS), a navigation system, a telematics system, a vehicle telematics system, a lane departure system, an adaptive cruise control system, a vehicle entertainment system such as a stereo, DVD, compact disc and the like.
The powertrain control system 432 may be connected to memory 447 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Powertrain control system 432 also may support connections with a external devices via a wireless network interface 448. In one exemplary embodiment, the control system 440 may include a logic unit for data communication with a remote device 443. For example, the remote device 443 may be an entertainment unit supported by the control system 440. In another embodiment, the remote device 443 may be a source of data, such as a personal media player. In yet another embodiment, the remote device 443 may be a removable diagnostic unit. The techniques described above for low power data streaming may be used to lower power consumption during transmission of data both to the remote device 443 and via the wireless network interface 448.
Referring now to
Mobile phone 450 may communicate with a mass data storage 464 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices, for example hard disk drives HDD and/or DVDs. Mobile phone 450 may be connected to memory 466 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Mobile phone 450 also may support connections with a wireless network via a wireless network interface 468 that may use low-power data streaming techniques for communication with automotive accessories, such as in-vehicle displays, speakers, or personal accessories, such as the hands-free unit 459.
Referring now to
Set top box 480 may communicate with mass data storage 490 that stores data in a nonvolatile manner. Mass data storage 490 may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. Set top box 480 may be connected to memory 494 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Set top box 480 also may support connections with a wireless network via a suitable wireless network interface 496. The use of low-power data streaming may also be used by the wireless network for transmission of data to a remote device 489, such as a portable media player or remote display.
Referring now to
Media player 500 may communicate with mass data storage 510 that stores data such as compressed audio and/or video content in a nonvolatile manner. In some implementations, the compressed audio files include files that are compliant with MP3 format or other suitable compressed audio and/or video formats. The mass data storage may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. Media player 500 may be connected to memory 514 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Media player 500 also may support connections with a wireless network via a wireless network interface 516. The use of low-power data streaming techniques may also be applied to data transmitted via the wireless network interface 516, for example, from a remote device 517. The remote device 517 may be a server, personal computer, or DVD player used to download media objects to the media player 500. Alternatively, the remote device 517 may be another media player and low power data streaming may be used for sharing media between the media player 500 and the remote device 517.
Referring to
VoIP phone 550 may communicate with mass data storage 556 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices, for example hard disk drives HDD and/or DVDs. VoIP phone 550 may be connected to memory 557, which may be a RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. VoIP phone 550 is configured to establish communications link with a VoIP network via a broadband Internet Protocol (IP) connection (not depicted). The wireless interface 566 may be used to support the IP connection, but may also be used to communicate with a cordless handset 553 used in a telephone call. Low-power data streaming techniques may be used when communicating data via the wireless interface 566. Low power data streaming may also be used for a connection to an accessory 561, such as a Bluetooth headset, coupled to the microphone 558 and audio output 560 connections.
The various blocks, operations, and techniques described above may be implemented in hardware, firmware, software, or any combination of hardware, firmware, and/or software. When implemented in software, the software may be stored in any computer readable memory such as on a magnetic disk, an optical disk, or other storage medium, in a RAM or ROM or flash memory of a computer, processor, hard disk drive, optical disk drive, tape drive, etc. Likewise, the software may be delivered to a user or a system via any known or desired delivery method including, for example, on a computer readable disk or other transportable computer storage mechanism or via communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared and other wireless media. Thus, the software may be delivered to a user or a system via a communication channel such as a telephone line, a DSL line, a cable television line, a wireless communication channel, the Internet, etc. (which are viewed as being the same as or interchangeable with providing such software via a transportable storage medium). When implemented in hardware, the hardware may comprise one or more of discrete components, an integrated circuit, an application-specific integrated circuit (ASIC), etc.
While the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, it will be apparent to those of ordinary skill in the art that changes, additions or deletions in addition to those explicitly described above may be made to the disclosed embodiments without departing from the spirit and scope of the invention.
This application claims the benefit of U.S. Provisional Application No. 60/893,797, entitled “A METHOD FOR LOW-POWER MULTIMEDIA STREAMING OVER BLUETOOTH,” filed on Mar. 8, 2007. The disclosure of the above application is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5251211 | Mutoh et al. | Oct 1993 | A |
5692197 | Narad et al. | Nov 1997 | A |
5809334 | Galdun et al. | Sep 1998 | A |
5948080 | Baker | Sep 1999 | A |
6092116 | Earnest et al. | Jul 2000 | A |
6496520 | Acosta | Dec 2002 | B1 |
6973071 | Bourk | Dec 2005 | B1 |
7313104 | Kern et al. | Dec 2007 | B1 |
20040059825 | Edwards et al. | Mar 2004 | A1 |
20040064606 | Kimura | Apr 2004 | A1 |
20040160957 | Coffman | Aug 2004 | A1 |
20050033874 | Futral et al. | Feb 2005 | A1 |
20050058107 | Salokannel et al. | Mar 2005 | A1 |
20060106949 | Nicolson et al. | May 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20080219197 A1 | Sep 2008 | US |
Number | Date | Country | |
---|---|---|---|
60893797 | Mar 2007 | US |