The technology of the disclosure relates generally to circuits having trigger events such as a wireless communication device having trigger events based on a wireless communication protocol.
Computing devices abound in modern society. The prevalence of these mobile communication devices is driven in part by the many functions that are now enabled on such devices. Increased processing capabilities in such devices means that mobile communication devices have evolved from pure communication tools into sophisticated mobile entertainment centers, thus enabling enhanced user experiences.
Most such mobile communication devices have a suite of circuits coupled to one another by a bus to serve as a radio front end. The MIPI® Alliance has promulgated a standard to make devices associated with such radio front ends compatible. This standard is descriptively named the Radio Frequency Front End Control Interface (RFFE). The standard was initially released in July 2010 as v.1.00.00. Subsequently, RFFE has been updated to accommodate 5G communication requirements. In particular, RFFE 3.0 has introduced the concept of a Timed-Trigger that permits reduction in control latency, but necessitates tracking multiple trigger events in RFFE slave devices. Typically, such trigger tracking demands multiple counters.
Aspects disclosed in the detailed description include nested commands for a radio frequency front end (RFFE) bus. In particular, timing commands may be nested inside a normal data flow. On receipt of a nested timing command, a slave on the RFFE bus suspends or halts an active command and addresses the nested timing command. On completion of the nested timing command, the slave returns to the halted command. By allowing such nested commands, counters in the slave that would otherwise be used to track triggers may be eliminated or reduced, and power may be conserved by placing a clock signal associated with the bus into a low-power mode.
In this regard in one aspect, a circuit is disclosed. The circuit includes a bus interface coupled to a two-wire bus. The circuit also includes a counter circuit. The circuit also includes a control circuit coupled to the bus interface. The control circuit is configured to generate a trigger command responsive to a count within the counter circuit expiring. The control circuit is also configured to send the trigger command to a slave through the bus interface as a nested command.
In another aspect, a circuit is disclosed. The circuit includes a bus interface coupled to a two-wire bus. The circuit also includes a control circuit coupled to the bus interface. The control circuit is configured to detect a nested command within an active data stream, the nested command sent by a master through the two-wire bus. The control circuit is also configured to halt an active process responsive to receipt of the nested command. The control circuit is also configured to execute the nested command after halting the active process.
In another aspect, an RFFE system is disclosed. The RFFE system includes a two-wire bus including a clock line and a data line. The RFFE system also includes a master circuit. The master circuit includes a bus interface coupled to the two-wire bus. The master circuit also includes a control circuit. The control circuit is configured to send a command to a slave circuit over the data line of the two-wire bus. The control circuit is also configured to determine that the slave circuit needs a trigger. The control circuit is also configured to nest a trigger command in the command to the slave circuit. The RFFE system also includes the slave circuit. The slave circuit includes a slave bus interface coupled to the two-wire bus. The slave circuit also includes a slave control circuit. The slave control circuit is configured to detect the command. The slave control circuit is also configured to activate a process responsive to the command. The slave control circuit is also configured to detect the trigger command nested in the command. The slave control circuit is also configured to, responsive to the trigger command, halt the process. The slave control circuit is also configured to activate the trigger according to the trigger command.
In another aspect, a method for controlling an RFFE bus is disclosed. The method includes initiating a command from a master to a slave across the RFFE bus. The method also includes, while a data line of the RFFE bus is active, sending a nested command to the slave. The method also includes halting at the slave an active process responsive to the nested command. The method also includes acting on the nested command.
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 nested commands for a radio frequency front end (RFFE) bus. In particular, timing commands may be nested inside a normal data flow. On receipt of a nested timing command, a slave on the RFFE bus suspends or halts an active command and addresses the nested timing command. On completion of the nested timing command, the slave returns to the halted command. By allowing such nested commands, counters in the slave that would otherwise be used to track triggers may be eliminated or reduced and power may be conserved by placing a clock signal associated with the bus into a low-power mode.
To understand the context of the present disclosure, an overview of a computing device that includes an RFFE system including an RFFE bus is provided in
In this regard,
With continued reference to
With continued reference to
It should be appreciated that typically the RFIC 140 is considered the master or host of the RFFE system 164 and particularly the master of the RFFE bus 158. In contrast, the antenna tuner 152, the switch 154, and the power amplifier 156 are typically considered to be slaves for the RFFE system 164 and the RFFE bus 158.
A generic RFFE slave 200, sometimes referred to as a slave circuit, is illustrated in
By way of example, the RFFE slave 200 may be the power amplifier 156, and the active elements 206 may be individual low noise amplifiers (LNAs) for different frequency bands. The active elements 206 may need to be triggered at certain times depending on which frequencies are being used to effectuate wireless communications (e.g., to or from a remote base station). In view of this need to activate or trigger the active elements 206, they are also referred to as triggered elements. The RFFE 3.0 standard introduces the concept of immediate triggers, which cause the trigger element to act immediately on receipt of the trigger command, and timed triggers, which trigger triggered elements at specific subsequent times. It should further be appreciated that while the term “triggered elements” is used, an actual active element 206 is in reality a circuit within an IC or chip that is the RFFE slave 200. While exemplary aspects of the RFFE slave 200 may include new circuit structures within the control circuit 204, the actual active elements 206 are generally conventional and well understood.
Conventional systems provide individual counters and registers for each active element to track timed trigger events. To assist in understanding this conventional system,
Similarly,
The presence of the plural N-bit down-counters 324(1)-324(K), one for each trigger element 322(1)-322(K) consumes relatively large amounts of space within an IC. Likewise, each N-bit down-counter 324(1)-324(K) requires an active clock signal from the master, which consumes power which, in turn, may negatively impact time between recharging a battery associated with a mobile terminal.
Exemplary aspects of the present disclosure remove most of the counters from the slaves and keep track of trigger events using counters at the master. Then when the master detects an upcoming trigger event, the master may send an immediate trigger command as a nested command to the slave. The slave halts any active processes based on the arrival of the nested command, executes the immediate trigger command, and then resumes the halted process. Reduction of the number of counters at the slave reduces the size of the IC associated with the slave and reduces or eliminates the need for a clock signal to be maintained on the RFFE bus. Accordingly, the RFFE bus may enter a sleep mode to conserve power.
In this regard,
With continued reference to
In use, the master 402 controls the RFFE bus 418. Commands are sent to a given slave 404 to cause the slave 404 to operate in a particular fashion (e.g., change frequency at a particular time, change power levels, or the like). Because the slaves 404(1)-404(N) may have limited (or no) counters 428 for use for timed triggers, the master 402 may track triggers using the counters 414. When a counter 414 expires by reaching zero (if a count-down counter) or by reaching a threshold (if a count-up counter), the master 402 may need to send an immediate trigger command to a slave 404(1)-404(N) while an active process is ongoing. To effectuate such an immediate command, the halt generator circuit 412 may receive a signal from the counter 414 that has expired and inject a nested command onto the data line 422 of the RFFE bus 418 in the midst of the active command on the data line 422. This process is set forth with greater detail in
In this regard,
While the data line 422 is active, a counter 414 in the master 402 expires (block 510). Note this counter 414 may have started counting before the current active command (e.g., at bock 502) or during the active command (not shown). The halt generator circuit 412 may activate and prepare a nested command. In an exemplary aspect, the master 402 sends an incorrect parity bit in the midst of the active data flow, followed by a nested command (block 512). On receiving the incorrect parity bit as detected by the halt detect circuit 426, the slave 404 may stall an active process (block 514) and read the nested command. The slave 404 may then activate the trigger from the nested command (block 516).
At the end of the nested command, the master 402 sends a new parity bit (block 518) that is correct to show the end of the nested command. The slave 404 then resumes the stalled process (block 520). At the end of the active data flow, the master 402 sends a final parity bit that is correct (block 522).
Exemplary aspects of the present disclosure send an incorrect parity bit at parity bit 604 or parity bit 612 to signal to the slave 404 that there is a nested command following. While other locations in either frame 600 or frame 610 may be used, such other locations may require more bits (which may introduce unwanted latency) or require more sophisticated detection hardware. In addition to the change in the parity bit, the period of a concurrent clock cycle may be extended to double that of adjacent clock cycles. Such exemplary aspects are illustrated in
A different perspective is provided in
The nested commands for an RFFE 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 global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc.), 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, an automobile, a vehicle component, avionics systems, a drone, and a multicopter.
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 devices described herein may be employed in any circuit, hardware component, 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. 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.