US 20090175381 A1
A digital receiver is disclosed. In one aspect, the receiver includes a receiving module for receiving packetized data. The receive may further include a first processing module for packet detection having a first programmable processor. The receiver may further include a second processing module for demodulation and packet decoding having a second programmable processor. The receiver may further include a first digital receive controller having a third processor arranged for being notified of detection of data by the first processing module and for activating the second processing module.
1. A digital receiver comprising:
a receiving module for receiving packetized data;
a first processing module for packet detection comprising a first programmable processor;
a second processing module for demodulation and packet decoding comprising a second programmable processor;
a first digital receive controller comprising a third processor arranged for being notified of detection of data by the first processing module and for activating the second processing module.
2. The digital receiver as in
3. The digital receiver as in
4. The digital receiver as in
5. The digital receiver as in
6. The digital receiver as in
7. The digital receiver as in
8. The digital receiver as in
9. The digital receiver as in
10. The digital receiver as in
11. The digital receiver as in
12. The digital receiver as in
13. The digital receiver as in
14. The digital receiver as in
15. The digital receiver as in
16. The digital receiver as in
17. The digital receiver as in
18. The digital receiver as in
19. The digital receiver as in
20. The digital receiver as in
21. The digital receiver as in
22. The digital receiver as in
23. The digital receiver as in
24. The digital receiver as in
25. The digital receiver as in
26. The digital receiver as in
27. The digital receiver as in
28. The digital receiver as in
29. The digital receiver as in
30. The digital receiver as in
31. The digital receiver as in
32. The digital receiver as in
33. The digital receiver as in
34. Use of a mobile terminal comprising a digital receiver as in
35. A digital receiver comprising:
means for receiving packetized data;
means for packet detecting, the detecting means being programmable;
means for demodulating and packet decoding, the demodulating and decoding means being programmable; and
means for being notified of detection of data by the detecting means and for activating the second processing module.
This application is a continuation of PCT Application No. PCT/EP2007/54770, filed May 16, 2007, which is incorporated by reference hereby in its entirety.
1. Field of the Invention
The present invention relates to a digital receiver structure suitable for a software-defined radio platform.
2. Brief Description of the Related Technology
Software-defined radio (SDR) is a collection of hardware and software technologies that enable reconfigurable system architectures for wireless networks and user terminals. SDR provides an efficient and comparatively inexpensive solution to the problem of building multi-mode, multi-band, multi-functional wireless devices that can be adapted, updated or enhanced by using software upgrades. As such, SDR can be considered an enabling technology that is applicable across a wide range of areas within the wireless community.
Handheld digital receiver cost reduction and time-to-market improvement call for software defined radio (SDR) implementation. To be viable in portable handheld devices, SDR needs to be low power. SDR low cost and low power requirements implies:
State-of-the-art solutions tackle multiple standards and future-proof SDR platforms with e.g.:
Many different architecture styles have already been proposed for SDR. Most of these are designed keeping in mind the most important characteristics of wireless physical layer processing: high data level parallelism (DLP) and data flow dominance. For the first characteristic, hybrid VLIW (Very Long Instruction Word) and vector/SIMD (Single Instruction/Multiple Data) architectures are often considered to exploit the data level parallelism with limited instruction fetching overhead. However, directly mapping C-code, even with high DLP, on such architectures remains a challenge for the compiler. The second characteristic is exploited by fine-grain reconfigurable arrays (FGA) and coarse grain reconfigurable arrays (CGA). The main bottleneck of the FGAs is the high interconnect cost that hampers their scalability and that yields significant energy overhead. CGAs improve on this point proposing less but more complex functional units.
Although several proposals (see e.g. also ‘Finding the optimum partitioning for multi-standard radio systems’, Bluethgen, Proc. Int'l SDR Technical Conference, November 2005) have contributed significantly to the integration of SDR in personal communication handhelds, none of the proposed platforms has the required features to enable reactive radio. Specifically, no solution has been proposed for multi-mode reactivity. Also their computing power at reasonable energy-efficiency is still too limited to exploit multiple signalling dimensions. This is mainly due to the fact that only the characteristics of the modulation/demodulation baseband processing are considered. In practice, a radio standard implementation also contains functionalities for medium access control and, in case of burst-based communication, signal detection and time synchronization. The desired characteristic of data level parallelism (DLP) does not hold for medium access control (MAC) processing which is, by definition, control dominated and, hence, better fits on RISC processors. Besides, packet detection and coarse time synchronization of burst-based transmission have a significantly higher duty cycle than packet modulation and demodulation. They hence require another flexibility/efficiency trade-off.
One possible application of such a reactive digital receiver relates to a mechanism for a hand-over operation between two base stations or access points of a mobile terminal comprising such receiver. The base stations are each arranged to cover a particular coverage area or cell. The coverage areas are partly overlapping, such that the arrangement supports a cellular network.
A hand-over can be a hard hand-over whereby the mobile terminal is (physically) connected to only one base station at a time, so that the connection to the current base-station must be terminated before the connection to the new base-station can be achieved. This implies an unconnected period (a “break”) during the hand-over. The hard hand-over is also referred to as “break-before-make”. On the contrary, a soft hand-over is a hand-over mechanism where the mobile terminal can be connected to two base-stations at the same time. This is also called “make-before-break”.
With seamless hand-over is meant a hand-over going by unnoticed from a user perspective, i.e. without interruption of ongoing services. Seamless hand-over does not necessarily imply soft-handover (though soft-handover makes seamless handover easier).
Soft handover is possible between two 3G base stations operating at the same frequency and distinguished by two different CDMA scrambling codes. In the 3G cellular systems, a scrambling code, associated to each base station, is super-imposed to the usual CDMA code that separates the mobile terminals. One mobile terminal can make use of the scrambling codes to receive the signals of two base stations simultaneously with a single front-end.
Seamless hard handover can be achieved through synchronization of the base stations. Based on this synchronization the base station allows the terminal to scan neighboring cells during a limited time and if needed it triggers a hard hand-over that can happen relatively fast. This technique is not possible for hard hand-over between different network technologies on one hand, and requires complex network synchronization for a single network on the other hand.
For 802.11 wireless LAN, there is the possibility of connecting one terminal to multiple access points at the same time, through a time division scheme using the power save mechanism provided by the 802.11 protocol. This technique is useful for protocols and applications where the protocol provides a power-save feature with a time constant smaller than the latency bound of the application.
In patent application EP1328066-A2 a semiconductor device is disclosed that is functionally divided into blocks. The power supply systems of the blocks are divided into a non-controlled power supply group in which power is always on and a cascade of controlled power supply groups in each of which groups a supply of power can be turned on/off independently, but in a chained way. This means that the power of a given block is controlled by the predeceasing block in the cascade. The blocks that are not necessary for performing a specific piece of processing are not supplied with power. For example, the decoding block is only switched on when the processing in the preceding demodulation block has been done. The division into various blocks is purely functional and does not take into account any consideration regarding the actual static or dynamic power of the blocks, their duty cycle, nor their trade-off between energy efficiency and flexibility. By construction, the higher the hierarchical level of a block, the higher the duty cycle is.
U.S. Pat. No. 6,978,149-B1 relates to a transceiver the receiver part of which is switchable between a sleep mode and an active mode. A control circuit is provided for switching the receiver from sleep mode to the active mode when an information signal to be received is detected. The control circuit takes a decision to switch based on a power level of the information signal, the power level being represented by a received signal strength indicator (RSSI) signal. Here again, a cascaded activation chain is foreseen, with a purely functional partitioning.
It is desirable to have a scalable, energy-efficient digital receiver structure enabling spectrum environment awareness and gradual system wake-up in response to incoming radio transmissions.
Certain inventive aspects relate to a digital receiver comprising
In a preferred embodiment the receiving module for receiving packetized data is an analogue front end.
Advantageously, in use, the power consumption of the first processor is lower than the power consumption of the second processor. In use, the flexibility of the first processing module is lower than the flexibility of the second processing module. Specifically, the instruction set of the second processing module is richer and allows usage of high-level language compilers.
Preferably the first processor is an application specific instruction set processor. On the other hand, the second processor advantageously is a general purpose processor.
In a preferred embodiment the first processing module comprises a third processing module for power level detection and a fourth processing module for synchronization. The fourth processing module comprising the first processor.
The third processing module is arranged for being fed with packetized data from the receiving module for receiving packetized data. The third processing module is preferably a hardware block.
The digital receiver may further comprise a second controller for the first processing module, the second controller being arranged for receiving at its input notification of power detection from the third processing module and arranged for activating the fourth processing module. The fourth processing module is typically arranged for receiving control signals from the second controller. It further receives data packets from the receiving module for receiving packetized data via a filtering unit. The second controller is a configurable hardware block. Advantageously the third processing module is arranged for providing settings for the receiving module for receiving packetized data. The first processor (in the fourth processing module) is preferably optimized for correlation.
In another preferred embodiment the digital receiver comprises a plurality of the first processing modules, which advantageously have a same architecture. Preferably at least some of the first processing modules are arranged for sharing a same bus interface. The receiver may then further comprise a plurality of receiving modules for receiving packetized data. Each receiving module for receiving packetized data is then preferably connected to a corresponding antenna.
In another embodiment, the digital receiver comprises a plurality of the second processing modules, having a general purpose architecture or an architecture dedicated to specific subparts of the demodulation/decoding.
The digital receiver is arranged for operating in different modes, each of the first processing modules being programmable for operating in one of the modes.
In another embodiment the first processing modules share the second controller. Alternatively, each of the first processing modules has its own second controller.
Preferably the fourth processing module is arranged for filtering and further comprises a first memory for buffering data packets. The first memory is preferably a circular data buffer. Advantageously, the fourth processing module is further arranged for performing the filtering operation on a configurable hardware block.
In a further embodiment the digital receiver further comprises a second memory for data reception, in parallel to the first memory. The receiver may further comprise transfer module for data transfer between the first or the second memory on the one hand and memory of the second processor on the other hand. The transfer module for data transfer preferably comprises a bus and a direct memory access. The bus preferably is a shared bus. Optionally a plurality of busses can be provided, as well as a plurality of direct memory accesses.
In another embodiment the digital receiver further comprises a FEC coder arranged for being fed with data from the second processing module, the FEC coder being arranged for being activated by the first digital receive controller.
In a preferred embodiment the digital receiver as previously described is arranged for processing signals according to any standard of the following: IEEE802.11a, IEEE802.11n, 3GPP-LTE, IEEE802.16e.
Another aspect relates to the use of a mobile terminal comprising a digital receiver as described for establishing a soft hand-over between two base stations of a wireless communication system.
In another aspect, a digital receiver is disclosed. The receiver comprises a receiving module for receiving packetized data, a first processing module for packet detection comprising a first programmable processor, a second processing module for demodulation and packet decoding comprising a second programmable processor, and a first digital receive controller comprising a third processor arranged for being notified of detection of data by the first processing module and for activating the second processing module.
In another aspect, a digital receiver is disclosed. The receiver comprises means for receiving packetized data. The receiver further comprises means for packet detecting, the detecting means being programmable. The receiver further comprises means for demodulating and packet decoding, the demodulating and decoding means being programmable. The receiver further comprises means for being notified of detection of data by the detecting means and for activating the second processing module.
In the approach according to one embodiment the power consumption is taken into account from a system perspective. More specifically, it employs a partitioning selected for obtaining predetermined performance in terms of flexibility and power consumption and hierarchical activation with aggressive power management. Such opportunistic partitioning aims at providing flexibility where and when it is needed. Such targeted flexibility calls for heterogeneous Multi-Processor System-on-Chip (MPSOC) architectures. The main idea behind hierarchical activation is to gradually enable increasingly power-consuming parts of the platform to perform a sequence of tasks with increased capability to detect the signal. The gradual wake up capitalizes on a cascade of functional blocks that are implemented with a monotonically increasing flexibility and hereby decreasing energy efficiency, which is compensated by the decreasing duty cycle obtained by construction.
With platform is meant the framework on which applications may be run. This comprises a hardware platform System-on-Chip (SoC), hardware abstraction layer software, tools to get application software mapped on the platform System-on-Chip (SoC) and possibly application software libraries. In the following the focus is on the HW platform SoC.
Parts of the application that have low duty cycle can be grouped together to be mapped to highly flexible hardware. The cost of flexibility is then well amortized by implementing the aggressive power management exploiting the low duty cycle. For parts having a higher duty cycle and therefore a higher impact on the average power, less flexible application-specific hardware are required. Parametrizable hardware blocks or multiple specialized cores are pragmatic solutions. Within the part to be targeted to programmable/reconfigurable hardware, a sub-partition can be achieved between control-dominated tasks (low number of operations per control branch) and computation- and/or transfer-dominated tasks. The former are later targeted to scalar micro-architecture, the latter being candidate for instruction-level parallel micro-architecture. Finally, the degree of data level parallelism and the operation per memory ratio are used to decide if multiple flavors of those architectures must be considered simultaneously. From this partitioning, one can extract the top-level platform architecture defining the number and type of cores.
The digital receiver can be subdivided in a number of building blocks.
A digital front-end associated to the analogue front-end is provided for radio signal scanning, analogue front-end steering (e.g. automatic gain control (AGC)), short-loop analogue front-end control, I/Q sample interfacing, packet detection, decimation and burst pre-synchronization in receive mode and signal interpolation in transmit mode. Those functions are characterized by a relatively high duty cycle. The DFE power is therefore critical.
The remaining modem functionalities are split into two groups. Baseband digital signal processing units implement receive functions relative to fine synchronization, front-end impairment compensation, multi-antenna processing and demodulation. In transmit mode, channel encoding and modulation are implemented on the baseband units too. The considered processor architecture is based on a hybrid SIMD-CGA approach. Forward error correction engines accelerate the data (de)coding from the (de)multiplexed streams (outer modem). The former is computing-intensive, with high data-level parallelism and is dominated by saturated fixed-point complex number manipulations. The baseband processor architecture can be one with multiple baseband cores. The architecture may comprise programmable and/or reconfigurable hardware blocks, possibly containing a plurality of (parallel) cores. A scalable interconnect may be provided between the various cores. The interconnect may be a segmented bus interconnect (see next paragraph for more details). The second group of functionalities is transfer-intensive and often requires special arithmetic. Both have reasonably low duty-cycle in application scenarios. Finally, medium access control (MAC) and cognitive control processing are both transfer- and control-dominated with low duty cycle. They hence form a fourth partition. The platform control and media access control can be carried by a general purpose core (e.g. an ARM9 processor).
As already mentioned, the scalable interconnect (see
Programmable solutions intrinsically suffer from higher power consumption when compared to dedicated solutions. In the proposed platform, the scalable digital front-end comprises multiple ‘tiles’, which, as already mentioned, implement signal detection and pre-synchronization functions. These multiple tiles require both very high energy efficiency and sufficient programmability to implement detection of different standards on the same tile. The digital front-end of the scalable, energy-efficient digital receiver has a flexible detection/time synchronizer unit allowing for major savings in the average power consumption of the platform by supporting a gradual wake-up of the system in response to incoming radio transmissions.
In general terms the digital front-end is the part of the system that:
The digital front-end (DFE) is the signal entry/exit point of the reactive radio platform. It is connected to one or multiple RF front-end/antenna sections via an analogue front-end. To minimize its overall power consumption its flexibility is kept to a minimum. Commonalities between most digital radio schemes are exploited to derive a generic architecture. Due to the versatility of synchronization algorithms across digital radio standards, flexibility is still required for the synchronization section. An application specific processor with specific support for autocorrelation and crosscorrelation is considered.
Incoming packetized data are input to a first processing module (10) (this term is used in this description as a synonym for ‘detector tile’). This first processing module (10) is in connection with an antenna section (95) via an analogue front-end (90). Data detection by the first processing module is signalled to a digital receive controller (30). This controller (30) is arranged for copying the available data from the first processing module memory towards a second processing module memory and activating a second processing module (50), which takes care of demodulating and decoding the packets of data. The detector tile (10) comprises a first processor (15), preferably an application specific instruction set processor (ASIP). The second processing module (50) comprises a second processor (55), typically a general purpose processor. It is to be noted that the data flow does not pass through the controller (30). Data copy is done by direct memory access over the system bus.
The transmitter part of a DFE tile includes or consists of a buffer and a VLSI interpolation filter. A start command can be issued allowing the samples to be clocked out towards the analog front-end through the filters. The transmit (TX) buffers (see
The receiver part of the DFE tile in
In a preferred embodiment the digital receiver further comprises a resource activity controller (20) for the first processing module (10) to which the detection of power by the third processing module and/or the success of data synchronization by the fourth processing module are signalled. The resource activity controller (20) controls which parts of the DFE are activated at a certain point in time, based on the inputs provided by those different blocks to support gradual wakeup of the platform. The controller (20) may be a configurable hardware block. The resource activity controller (20) is capable of activating a fourth processing module (16) and of generating a message to wake-up the digital receive controller. This fourth processing module (16) also belongs to the first processing module (10). In one embodiment this fourth processing module (16) does not receive input from the third processing module (12). The data paths in the third (12) and the fourth (16) processing modules are in parallel.
It is this fourth processing module (16) that receives control signals from the second controller (20). The fourth processing module (16) also receives data packets from the receiving module of receiving packetized data. The fourth processing module (16) comprises the first processor (15). It also comprises a filtering module (17). The output of the receive filters (17) is stored in a data buffer (18). This is necessary, as the data needs to be buffered while the first processor (15) performs the coarse synchronization algorithm on the filtered samples. The processor (15) can be connected to the data buffer or to a replica of this data buffer, depending on the implementation choices. Further, there is the connection from the data buffer to the main data bus through a system bus interface.
In one embodiment of the invention the described data path is duplicated as many times as there are antennas in the system, each antenna having its own receiving module (90) for receiving packetized data, preferably being an analogue front-end as already mentioned. Each tile (first processor module 10) may then have the same architecture. The multiple detection tiles allow a flexible support for MIMO reception and/or multi-mode scanning. The detection can then be performed simultaneously for different modes. Flexible time synchronization is performed in the first processor in each tile. The tile configuration and (hierarchical) activation can be performed by a shared global resource activity controller (20). Alternatively, a dedicated resource activity controller can be provided for each tile separately.
In such an embodiment with a plurality of detection tiles the digital receiver can be configured for operating in different modes, whereby each detection is programmed for operating in one of the possible modes.
The digital receiver system is made up of a processing hierarchy (including the DFE units and the baseband processors) and a control hierarchy (made of one or several DFE/resource activity controller(s)). The data may flow straight from the input interface to downsampler/anti-aliasing filter to the circular buffer and synchronization processor scratch path and then, depending on synchro pointer to the baseband processor memory. The data does not flow to the platform controller, nor to the AGC, nor to the resource activity controller.
The blocks of the third and fourth processing module are now described more in detail.
The basic idea of the architecture is to keep the main data path as straight-through as possible. This means that it should be possible to pass the input samples that come out of the receive filter (17) to the rest of the system without requiring explicit action from the first processor (15). The proposed architecture takes this into account.
The purpose of the AGC controller is to steer the amplification of the front-end and to detect a possible incoming signal. In case of certain working modes the AGC controller needs to be by-passed, since signal detection will only be possible after e.g. a coarse synchronization operation or a despreading operation. The default working mode of the third processing module (12) can be detailed as follows. When the AGC is in free-running mode (default mode on start-up), it starts measuring power and steers the front-end amplification chain to reach a maximum SNR. The amplification table (optimal gain distribution) is depending on the front-end used. The power measurement is performed in multiple steps. Normally there is a power exploration performed followed by fine power estimation. The power estimation itself is an averaging over the incoming samples. When the incoming power reaches a certain threshold, the AGC controller will signal this, enabling a time synchronization. During this time, the AGC is put in hold mode, allowing the time synchronization in the fourth processing module (16) to find a possible start of packet. If the time synchronization doesn't find a start of packet, or when the packet transmission has ended, the AGC will go into free-running mode again. The AGC release signal can come from a failed time synchronization or an end of packet.
The receive anti-aliasing filters (17) perform the downsampling on the incoming signal. They are heavily power-optimized.
The first processor (15) is preferably an application specific instruction set processor (ASIP), as previously explained. The so-called synchronization processor (i.e. the first processor) is provided with the filtered data samples that have to be analyzed to determine the coarse synchronization point. The synchronization processor starts its synchronization search on the incoming data in reaction to an ACG lock event. Once it detects a valid synchronization sequence, it interrupts the host controller and passes the start address of the data in the circular buffer to the platform controller. The controller can subsequently start burst transfers of data from the circular buffer through the bus slave interface to the other base band processing parts of the system.
The resource activity controller (RAC) controls what parts of the DFE receive path are activated at each point in time. It is a register configurable hardware block. The RAC takes decisions based on the input signals generated by the AGC controller, the synchronization processor and the platform controller. When e.g. a certain AGC asserts the RX enable signal, the RAC will activate the filter, buffer, and ASIP clock for the corresponding detector tile. Exceptions to this behavior are when operating modes are selected where the ASIP first needs to run a certain algorithm. In this case the complete detector tile is activated, regardless of the status of the AGC. The RAC furthermore take care of releasing the AGC from hold mode. It therefore depends on information generated by the synchronization processor (in case of a false AGC trigger), or the digital receive controller (in case of an ‘end of packet’).
One possible way to perform the (de)activation is to use clock gating and memory substrate biasing in sleep mode. The activation first restores nominal bias to the memories (so that they can be accessed at normal speed at cost of leakage). Then the core is clocked again. For processors, a small wake-up block (always clocked) catches the wake-up signal for the wake up process. Processors can deactivate themselves by a specific instruction.
The bus interface provides the digital receive controller with access to the data buffers of the different detector tiles. Through the interface, the controller can perform burst data transfers from the data buffers to the rest of the system.
The default working principle of the DFE RX subsystem is the following:
As already mentioned, the digital receiver as disclosed above may be arranged for processing signals according to various standards, like e.g. IEEE802.11a, IEEE802.11n, 3GPP-LTE, IEEE802.16e.
As an example,
Similarly, the sequence of operation occurring at the reception of a blocker signal (false trigger) is depicted in
The attention is now drawn to the design of the platform System-on-Chip. The cores micro-architecture and interconnect being known, an Electronic System Level (ESL) platform model based on instruction-set simulators, cycle-accurate interconnect models and behavioral models for the parametrizable cores can be assembled. It is used as reference for the development and integration of the SDR software and partly as test bench for the gradual refinement of the platform hardware. Software and hardware development can then be decoupled.
The virtual platform design is a key step in the high level methodology design flow. It aims at assembling a platform simulator at a level of abstraction fitting both for software development (platform control API, functional physical layer, functional medium access control and data link API) and as reference for platform hardware design. Translation between different levels of abstraction is done via so-called transactors. This enables executable models with parts at different level of abstraction. The development of the virtual platform mainly consists of the development of the IP core models, the optimization of the interconnection and execution control/handshaking subsystems and the platform model integration. A significant part of the platform integration is the determination of the memory map.
By way of example, a particular application wherein the digital receiver as described herein can advantageously be used, is now given. The application relates to a case of a seamless hand-over of a mobile terminal with two or more antennas between two base stations or access points not synchronized in time and operating at a different frequency (with identical standards or not). The base stations may advantageously apply Multiple Input-Multiple Output (MIMO) communication schemes that possibly support high mobility of the terminal.
The proposed solution enables seamless hand-over between two base stations of a different network technology (inter-mode handover) as well as between two base stations operating in the same standard but using different carrier frequencies.
As the digital receiver structure as presented above enables a flexible allocation of resources (antennas+analogue front-ends) to different communication modes, it allows optimizing the overall communication performance according to the user needs/communication conditions, provided that a smart controller leads the resource allocation. One of the antennas of the mobile terminal can be used to scan and initiate association to the new base station, while other antennas are still used to communicate with the current base station, thus enabling soft handover. The quickly switchable and/or reconfigurable blocks in the receiver support communication whereby the terminal antennas are exploited for communication with at least one antenna less in case at least one antenna is used for hand-over scanning.
In order to switch from a dual-antenna operation to a single antenna operation in one network, the base station should be informed of the reduced capacity/reliability of the link. For example, spatially multiplexed streams could not be supported anymore, the constellation and/or coding rate could be changed to ensure a given communication quality.
The application of the digital receiver of the foregoing embodiments for a soft hand-over application illustrates the beneficial effect whereby the same hardware blocks can be reused.
The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention may be practiced in many ways. It should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated.
While the above detailed description has shown, described, and pointed out novel features of the invention as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the device or process illustrated may be made by those skilled in the technology without departing from the spirit of the invention. The scope of the invention is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.