SLAVE INITIATED INTERRUPTS FOR A COMMUNICATION BUS
Slave initiated interrupts for a communication bus are disclosed. In one aspect, the communication bus is a radio frequency front end (RFFE) bus, and a slave is allowed to indicate to a master on the RFFE bus that the slave has an interrupt condition. On receipt of a slave initiated interrupt, the master may initiate a polling sequence to determine which of a plurality of slaves associated with the RFFE bus initiated the interrupt and process the interrupt accordingly. Continuing the exemplary aspect, the slave may indicate the interrupt condition to the master by driving a clock line of the RFFE bus to a non-idle state. The master may detect this manipulation of the clock line and initiate the polling sequence.
The technology of the disclosure relates generally to interrupt signaling on a communication bus.
II. BackgroundComputing devices have become increasingly common in modern society. Mobile phones are among the more common computing devices. While such devices may initially have started out as simple devices that allowed audio communication through the Public Land Mobile Network (PLMN) to the Public Standard Telephone Network (PSTN), they have evolved into smart phones capable of supporting full multimedia experiences as well as supporting multiple wireless protocols. Even within the cellular wireless protocols, mobile phone radios have developed into highly complex, multi-band, and multi-standard designs that often have multiple radio frequency (RF) signal chains. Every component in the RF signal chain has to be in the desired configuration at any given time, or the system will fail. Therefore, accurate timing, triggers, and speed are all necessary.
As further explained on the MIPI Alliance® website, “[t]he MIPI Alliance Specification for RF Front-End Control Interface (RFFE) was developed to offer a common and widespread method for controlling RF front-end devices. There are a variety of front-end devices, including Power Amplifiers (PA), Low-Noise Amplifiers (LNA), filters, switches, power management modules, antenna tuners and sensors. These functions may be located either in separate devices or integrated into a single device, depending on the application. The trend in mobile radio communications is towards complex multi-radio systems comprised of several parallel transceivers. This implies a leap in complexity of the RF front-end design. Thus, the RFFE bus must be able to operate efficiently in configurations from the simplest one Master and one Slave configuration to, potentially, multi-Master configurations with tens of Slaves.”
In devices having an RFFE bus, the RFFE protocol dictates that the master periodically polls the slaves on the RFFE bus to determine if the slaves have an interrupt condition. Exemplary slaves include antenna switches and low noise amplifiers. In a typical implementation, this polling occurs once per millisecond. Cellular protocols are becoming increasingly stringent with latency issues and the mobile device may not be compliant with a particular cellular protocol if the master waits a full millisecond to poll an antenna switch. If the polling merely occurs more frequently, the polling may create an unwanted power drain as numerous polling cycles result in negative acknowledgments from the slaves. Accordingly, cellular protocol compliance and power savings may be effectuated with a better interrupt techniques for RFFE buses.
SUMMARY OF THE DISCLOSUREAspects disclosed in the detailed description include slave initiated interrupts for a communication bus. In an exemplary aspect, the communication bus is a radio frequency front end (RFFE) bus, and a slave is allowed to indicate to a master on the RFFE bus that the slave has an interrupt condition. On receipt of a slave initiated interrupt, the master may initiate a polling sequence to determine which of a plurality of slaves associated with the RFFE bus initiated the interrupt and process the interrupt accordingly. Continuing the exemplary aspect, the slave may indicate the interrupt condition to the master by driving a clock line of the RFFE bus to a non-idle state. The master may detect this manipulation of the clock line and initiate the polling sequence. By relying on the slave to initiate an indication of an interrupt, polling may begin before a periodic polling activity, which in turn may reduce latency and allow compliance with increasingly strict cellular protocols. Further, as unneeded periodic polling may be eliminated or a period increased, power savings may be effectuated.
In this regard in one aspect, a method for detecting an interrupt from a slave on an RFFE bus is disclosed. The method includes holding a clock line within an RFFE bus at a logical low when the RFFE bus is idle. The method also includes detecting, while the RFFE bus is idle, with detection circuitry at a master associated with the RFFE bus, a logical high on the clock line. The method also includes initiating an interrupt inquiry from the master.
In another aspect, a master is disclosed. The master includes an RFFE interface configured to be coupled to an RFFE bus. The master also includes a clock source coupled to the RFFE interface. The master also includes a transceiver coupled to the RFFE interface. The master also includes a detection circuit coupled to the RFFE interface. The detection circuit is configured to detect when a clock line of the RFFE bus is pulled high by a slave associated with the RFFE bus. The detection circuit is also configured to initiate an interrupt inquiry through the transceiver.
In another aspect, a method for a slave signaling an interrupt on an RFFE bus is disclosed. The method includes, at a slave coupled to an RFFE bus, detecting an interrupt condition within the slave. The method also includes, at the slave, driving a clock line of the RFFE bus from an idle state to a modified state to indicate the interrupt condition at the slave to a master. The method also includes subsequently responding to an interrupt inquiry from the master.
In another aspect, a slave is disclosed. The slave includes an RFFE interface configured to couple to an RFFE bus. The slave also includes a transceiver coupled to the RFFE interface. The slave also includes an interrupt circuit coupled to the RFFE interface. The interrupt circuit is configured to receive an indication that the slave has an interrupt condition. The interrupt circuit is also configured to drive a clock line in the RFFE bus from an idle state to a modified state.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed in the detailed description include slave initiated interrupts for a communication bus. In an exemplary aspect, the communication bus is a radio frequency front end (RFFE) bus, and a slave is allowed to indicate to a master on the RFFE bus that the slave has an interrupt condition. On receipt of a slave initiated interrupt, the master may initiate a polling sequence to determine which of a plurality of slaves associated with the RFFE bus initiated the interrupt and process the interrupt accordingly. Continuing the exemplary aspect, the slave may indicate the interrupt condition to the master by driving a clock line of the RFFE bus to a non-idle state. The master may detect this manipulation of the clock line and initiate the polling sequence. By relying on the slave to initiate an indication of an interrupt, polling may begin before a periodic polling activity, which in turn may reduce latency and allow compliance with increasingly strict cellular protocols. Further, as unneeded periodic polling may be eliminated or a period increased, power savings may be effectuated.
Before discussing exemplary aspects of slave initiated interrupts for a communication bus that include specific aspects of the present disclosure, a brief overview of a mobile terminal configured based on MIPI Alliance® (MIPI) defined architecture is first provided in
In this regard,
With continued reference to
With continued reference to
With continued reference to
Within the RFFE system 162 there is at least one master and typically at least one slave. The RFFE protocol contemplates a master with up to fifteen slaves. In the absence of the present disclosure, the master will periodically poll the slaves to see if any of the slaves have interrupt conditions that need to be addressed. The period between polling events adds latency to the system. Further, if the master polls and there are no interrupt conditions, then power may have been consumed needlessly. While there may be devices that are not concerned with power consumption because such devices may have access to a wall outlet and continuous power, other devices, such as battery powered mobile terminals, try to limit power consumption as much as possible so as to extend battery life. To alleviate such latency and power consumption, exemplary aspects of the present disclosure allow the slaves to initiate an interrupt indication to the master over the RFFE bus 102. In this regard, the master and slave are modified as better illustrated in
In this regard,
While
The master 200 may perform the interrupt inquiry in many different forms. In an exemplary aspect, the interrupt inquiry is a simple polling of the slaves on the RFFE bus 102. This polling may be done in ascending order by address or descending order by address. In still another exemplary aspect, the polling may step through the addresses using odd addresses first, then even addresses or vice versa such that the even addresses are polled first, then the odd addresses. In still another exemplary aspect, the master 200 may know that only a subset of the slaves associated with the RFFE bus 102 are authorized to request an interrupt, and the master 200 may poll only those authorized slaves. In still another exemplary aspect, the master 200 may have a look-up table that indicates an order in which the slaves are polled. In still another exemplary aspect, the master 200 may poll the slaves using a weighted order where slaves that are more likely to have an interrupt are polled before slaves that are less likely to have an interrupt. Likewise, the weighting may be based on quality of service requirements. For example certain slaves 202 may have a higher priority in getting services. As a specific example, an antenna tuner may be serviced before an antenna switch. Such weighting and ordering of service may have a discernable and detectable impact on the radio quality and thus the user experience.
The slave initiated interrupts for a communication bus according to aspects disclosed herein may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a mobile phone, a cellular phone, a smart phone, a tablet, a phablet, a server, a computer, a portable computer, a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, and an automobile.
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer readable medium and executed by a processor or other processing device, or combinations of both. The master devices, and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).
The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for detecting an interrupt from a slave on a radio frequency front end (RFFE) bus, the method comprising:
- holding a clock line within an RFFE bus at a logical low when the RFFE bus is idle;
- detecting, while the RFFE bus is idle, with detection circuitry at a master associated with the RFFE bus, a logical high on the clock line; and
- initiating an interrupt inquiry from the master.
2. The method of claim 1, wherein initiating the interrupt inquiry comprises polling slaves associated with the RFFE bus.
3. The method of claim 1, wherein initiating the interrupt inquiry comprises performing a weighted polling of slaves associated with the RFFE bus.
4. The method of claim 1, wherein initiating the interrupt inquiry comprises polling only slaves associated with the RFFE bus that are authorized to provide interrupts.
5. The method of claim 1, further comprising driving the clock line with a clock signal when the RFFE bus is not idle.
6. The method of claim 1, wherein initiating the interrupt inquiry comprises initiating the interrupt inquiry before a period for polling has passed.
7. The method of claim 1, wherein initiating the interrupt inquiry comprises one of polling slaves having even addresses followed by polling slaves having odd addresses or polling the slaves having the odd addresses followed by polling the slaves having the even addresses.
8. The method of claim 1, wherein initiating the interrupt inquiry comprises using a look-up table to define an order in which slaves are polled.
9. The method of claim 1, wherein initiating the interrupt inquiry comprises polling slaves based on an ascending address sequence.
10. The method of claim 1, wherein initiating the interrupt inquiry comprises polling slaves based on a descending address sequence.
11. A master comprising:
- a radio frequency front end (RFFE) interface configured to be coupled to an RFFE bus;
- a clock source coupled to the RFFE interface;
- a transceiver coupled to the RFFE interface; and
- a detection circuit coupled to the RFFE interface and configured to: detect when a clock line of the RFFE bus is pulled high by a slave associated with the RFFE bus; and initiate an interrupt inquiry through the transceiver.
12. The master of claim 11 integrated into an integrated circuit (IC).
13. The master of claim 11 integrated into a device selected from the group consisting of: a set top box; an entertainment unit; a navigation device; a communications device; a fixed location data unit; a mobile location data unit; a mobile phone; a cellular phone; a smart phone; a tablet; a phablet; a server; a computer; a portable computer; a desktop computer; a personal digital assistant (PDA); a monitor; a computer monitor; a television; a tuner; a radio; a satellite radio; a music player; a digital music player; a portable music player; a digital video player; a video player; a digital video disc (DVD) player; a portable digital video player; and an automobile.
14. A method for a slave signaling an interrupt on a radio frequency front end (RFFE) bus, the method comprising:
- at a slave coupled to an RFFE bus, detecting an interrupt condition within the slave;
- at the slave, driving a clock line of the RFFE bus from an idle state to a modified state to indicate the interrupt condition at the slave to a master; and
- subsequently responding to an interrupt inquiry from the master.
15. The method of claim 14, wherein driving the clock line to the modified state comprises pulling the clock line to a logical high.
16. The method of claim 14, wherein driving the clock line comprises waiting for the clock line to be idle before driving the clock line.
17. A slave comprising:
- a radio frequency front end (RFFE) interface configured to couple to an RFFE bus;
- a transceiver coupled to the RFFE interface; and
- an interrupt circuit coupled to the RFFE interface configured to: receive an indication that the slave has an interrupt condition; and drive a clock line in the RFFE bus from an idle state to a modified state.
Type: Application
Filed: Jul 26, 2016
Publication Date: Feb 1, 2018
Inventors: Lalan Jee Mishra (San Diego, CA), Helena Deirdre O'Shea (San Diego, CA), Richard Dominic Wietfeldt (San Diego, CA)
Application Number: 15/220,077