Disclosure of Invention
In view of this, the present invention provides a data transmission method, a user equipment, a base station, and a system, so as to solve the problem that in an existing Long Term Evolution (LTE) system, when a plurality of UEs transmit uplink data, the same scheduling-free resource pool may be adopted, which may increase the probability of resource pool collision and decrease the reliability of data transmission.
To achieve the above object, the proposed solution is as follows:
the first aspect of the present invention discloses a data transmission method, which includes:
user Equipment (UE) sends uplink data to a base station, wherein the uplink data carries a UE identifier id and resource information, and the resource information comprises resource pool information of a first resource pool selected by the UE from a plurality of preset resource pools according to a current Modulation and Coding (MCS) value;
if the UE receives feedback information sent by the base station within a preset time, judging whether the feedback information is Negative Acknowledgement (NACK) information;
if the feedback information is the NACK information, judging whether the NACK information carries indication information or not, wherein the indication information is used for indicating that the first resource pool is crowded;
and if the first resource pool is crowded, the UE selects a second resource pool and retransmits the uplink data on the second resource pool.
Preferably, if the MCS values are in a value range of 0 to 1, a value range of 2 to 9, a value range of 10 to 16, a value range of 17 to 27, and a value range greater than 27 in an order of a value range from a lower order to a higher order, each of the value ranges corresponds to a resource pool, and the UE selects the first resource pool from the preset resource pools according to the current MCS value, the method includes:
and the UE determines the value range of the current MCS value, and selects the resource pool corresponding to the value range as the first resource pool.
Preferably, if the UE does not receive the feedback information within a preset time, or the NACK information does not carry the indication information, the method further includes:
and the UE retransmits the uplink data on the first resource pool.
Preferably, the process of selecting the second resource pool by the UE includes:
when the first resource pool is in a congestion state, the UE selects a resource pool corresponding to a value range which is lower than the value range of the current MCS value by one step as the second resource pool, and retransmits the uplink data on the second resource pool;
the MCS value is a value range of 0-1, a value range of 2-9, a value range of 10-16, a value range of 17-27 and a value range larger than 27 in the sequence of the value range from the low order to the high order, and each value range corresponds to a resource pool.
The second aspect of the present invention discloses a data transmission method, including:
a base station receives uplink data sent by User Equipment (UE), analyzes the uplink data and acquires resource information, wherein the resource information comprises resource pool information of a first resource pool selected by the UE from a plurality of preset resource pools according to the current modulation and coding MCS value;
the base station determines the resource occupancy of the first resource pool based on the pre-counted resource occupancy information of all preset resource pools;
and the base station generates feedback information and sends the feedback information to the UE, so that the UE executes corresponding operation based on the feedback information.
Preferably, the generating, by the base station, feedback information and sending the feedback information to the UE includes:
if the base station cannot correctly decode the uplink data, the base station generates Negative Acknowledgement (NACK) information and sends the NACK information to the UE;
if the resource occupancy of the first resource pool exceeds a preset threshold value t1, the base station generates NACK information carrying indication information, and sends the NACK information to the UE, where the indication information is used to indicate that the first resource pool is in a congestion state;
and if the base station can correctly decode the uplink data and the occupancy of the first resource pool does not exceed the preset threshold value t1, the base station generates Acknowledgement (ACK) information and sends the ACK information to the UE.
A third aspect of the present invention discloses a user equipment, comprising:
a sending unit, configured to send uplink data to a base station, where the uplink data carries a User Equipment (UE) identifier id and resource information, where the resource information includes resource pool information for the UE to select a first resource pool from multiple preset resource pools according to a current Modulation and Coding Scheme (MCS) value;
a receiving unit, configured to receive feedback information sent by the base station;
the first judging unit is used for judging whether the receiving unit receives the feedback information within a preset time, and if the receiving unit receives the feedback information within the preset time, the second judging unit is executed;
the second judging unit is configured to judge whether the feedback information is NACK information, and if the feedback information is the NACK information, execute a third judging unit;
the third determining unit is configured to determine whether the NACK information carries indication information, where the indication information is used to indicate that the first resource pool is congested, and if the NACK information carries the indication information, execute a second selecting unit;
the second selecting unit is configured to select a second resource pool when the first resource pool is congested, and the sending unit resends the uplink data in the second resource pool.
Preferably, the user equipment further includes:
a first selecting unit, configured to select the first resource pool from a plurality of preset resource pools according to the current MCS value, including: if the MCS values are in a value range of 0 to 1, a value range of 2 to 9, a value range of 10 to 16, a value range of 17 to 27 and a value range larger than 27 in the sequence of the value ranges from the lower order to the higher order, each value range corresponds to a resource pool, the first selection unit determines the value range in which the current MCS value is located, and selects the resource pool corresponding to the value range as the first resource pool.
Preferably, when the receiving unit does not receive the feedback information within a preset time, or the NACK information does not carry the indication information,
the sending unit is further configured to resend the uplink data on the first resource pool.
Preferably, the second selection unit is configured to select, from the first selection unit,
specifically, when the first resource pool is in a congested state, selecting a resource pool corresponding to a value range one order lower than the value range of the current MCS value as the second resource pool, where the MCS value is a value range 0-1, a value range 2-9, a value range 10-16, a value range 17-27, and a value range greater than 27 in an order of the value range from a low order to a high order, and each value range corresponds to one resource pool.
A fourth aspect of the present invention discloses a base station, including:
a data receiving unit, configured to receive uplink data sent by a user equipment UE;
the analysis unit is used for analyzing uplink data sent by the UE to acquire resource information, wherein the resource information comprises resource pool information of a first resource pool selected by the UE from a plurality of preset resource pools according to the current modulation and coding MCS value;
the statistical unit is used for determining the resource occupancy of the first resource pool based on the pre-counted resource occupancy information of all preset resource pools;
and the feedback unit is used for generating feedback information and sending the feedback information to the UE so that the UE executes corresponding operation based on the feedback information.
Preferably, the feedback unit includes:
a first feedback module, configured to generate negative acknowledgement NACK information and send the NACK information to the UE when the parsing unit cannot correctly decode the uplink data;
a second feedback module, configured to generate NACK information carrying indication information when the resource occupancy of the first resource pool exceeds a preset threshold value t1, and send the NACK information to the UE, where the indication information is used to indicate that the first resource pool is in a congestion state;
and a third feedback module, configured to generate acknowledgement ACK information and send the acknowledgement ACK information to the UE if the parsing unit can correctly decode the uplink data and the first resource pool occupancy does not exceed the preset threshold t 1.
A fifth aspect of the present invention discloses a data transmission system, including: the user equipment disclosed in the third aspect of the present invention and the base station disclosed in the fourth aspect of the present invention.
Based on the above technical solutions, the embodiments of the present invention disclose a data transmission method, user equipment, a base station, and a system. The method includes the steps that uplink data are sent to a base station through UE, the uplink data carry UE identification (id) and resource information, and the resource information comprises resource pool information of a first resource pool selected by the UE from a plurality of preset resource pools according to a current Modulation and Coding Scheme (MCS) value. If the UE receives the feedback information sent by the base station within the preset time, it is determined whether the feedback information is Negative ACKnowledgement (NACK) information. If the feedback information is NACK information, whether the NACK information carries indication information is judged, and the indication information is used for indicating congestion of the first resource pool. And if the first resource pool is crowded, the UE selects a second resource pool and retransmits the uplink data on the second resource pool. Based on the scheme provided by the invention, when a plurality of UEs send uplink data in the selected resource pool, the resource pool selection conflict can be effectively avoided, and the reliability of uplink data transmission is improved.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
In this application, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
As known from the background art, schedule-free transmission is a transmission mode in which data is transmitted randomly. The UE sends data to the base station, and the data is sent at the nearest time point immediately after arriving at the base station without the need of the UE to send the SR and wait for the base station to authorize scheduling. When the UE has the uplink data transmission requirement, the UE does not need to dynamically acquire scheduling information from the base station, and can directly transmit the uplink data on the scheduling-free resource pool. However, due to the lack of dynamic scheduling information indication, multiple UEs may use the same scheduling-free resource pool to transmit uplink data, so that the probability of resource pool collision is increased during data transmission, resulting in reduced transmission reliability. Therefore, in the data transmission method, the user equipment, the base station and the system disclosed by the embodiment of the invention, the UE selects the proper resource pool to transmit the uplink data according to the occupancy condition of the resource pool, so that the condition of resource pool selection collision when a plurality of UEs select the resource pool can be avoided, and the transmission reliability of the uplink data is improved. The details are explained in detail by the following examples.
Referring to fig. 1, a schematic configuration diagram of a preset resource pool provided in an embodiment of the present invention is shown, where the preset resource pool is arranged from a low order to a high order according to a value range of an MCS value: the resource pool 3 corresponding to the value range of the resource pool 1 corresponding to the value range of 0-1, the resource pool 2 corresponding to the value range of 2-9, the resource pool 4 corresponding to the value range of 10-16, and the resource pool 5 corresponding to the value range of 27 are larger, and each value range corresponds to one resource pool.
It should be noted that the resource pools 1 to 5 are in a circular arrangement structure, that is, if a resource pool lower than the resource pool 1 by one order is selected, the resource pool 5 should be selected.
Referring to fig. 2, a flowchart of a data transmission method provided by an embodiment of the present invention is shown, which may include the following steps:
step S201: and the UE sends uplink data to the base station.
In the process of implementing step S201 specifically, the uplink data carries a UE id and resource information, where the resource information includes resource pool information of a first resource pool selected by the UE from a plurality of preset resource pools according to a current MCS value.
It should be noted that the UE id may be a unique identifier of the UE, such as a Cell Radio Network Temporary identity (C-RNTI). The Resource information may be represented as a location of a Physical Resource Block (PRB).
To better explain the resource information, the following examples are given:
assuming that the system bandwidth is 20M, there are 100 resources available for the PRBs, and the resource information carried by the UE is some consecutive PRBs in the 100 PRBs.
Step S202: and the base station receives uplink data sent by the UE, analyzes the uplink data and acquires resource information.
It should be noted that the resource information includes resource pool information that the UE selects a first resource pool from a plurality of preset resource pools according to the current MCS value. Wherein the first resource pool is a resource pool currently selected by the UE.
Step S203: and the base station determines the resource occupancy of the first resource pool based on the pre-counted resource occupancy information of all preset resource pools.
In the process of implementing step S203 specifically, when the base station receives the uplink data sent by the UE, blind detection is performed, and the occupancy of each resource pool is counted. The Resource information may be represented as a position of a Physical Resource Block (PRB), and the information that the base station counts each Resource pool is represented as counting an occupancy of each PRB in the uplink data.
To better explain the process of the base station for counting the occupancy of each resource pool, the following example is given:
assuming that the system bandwidth is 20M, there are 100 PRBs available resources, the resource information carried by the UE is some consecutive PRBs in the 100 PRBs, and the blind detection statistics of the base station are the occupancy of each PRB of the 100 PRBs.
Step S204: and the base station generates feedback information and sends the feedback information to the UE.
In the process of implementing step S204 specifically, the base station generates different feedback information according to different analysis results of the received uplink data.
The method comprises the following steps: NACK information, or Acknowledgement (ACK) information, or NACK information carrying indication information.
Optionally, if the base station cannot correctly decode the uplink data, the base station generates NACK information and sends the NACK information to the UE.
Optionally, if the resource occupancy of the first resource pool exceeds a preset threshold t1, the base station generates NACK information carrying indication information, and sends the NACK information to the UE, where the indication information is used to indicate that the first resource pool is in a congestion state.
Optionally, if the base station can correctly decode the uplink data and the resource occupancy of the first resource pool does not exceed the preset threshold t1, the base station generates ACK information and sends the ACK information to the UE.
Step S205: and judging whether the UE receives feedback information sent by the base station within a preset time, if so, executing a step S207, and if not, executing a step S206.
In the process of implementing step S205 specifically, after the UE sends the uplink data, the UE is always turned on for a period of time to wait for receiving the feedback message sent by the base station, where the period of time is the preset time. In general, the preset time may be set according to the specific condition of the UE, or may be set by a technician according to specific requirements.
Step S206: and the UE resends the uplink data on the first resource pool, and returns to execute step S202.
In the process of implementing step S206 specifically, when the UE does not receive the feedback message sent by the base station within the preset time, the UE retransmits the uplink data in the currently selected resource pool, that is, in the first resource pool.
Step S207: and judging whether the feedback information is NACK information, if so, executing step S208, and if not, executing step S209.
Step S208: and judging whether the NACK information carries indication information, if so, executing step S210, and if not, executing step S211.
In the process of implementing step S208, it should be noted that the indication information is used to indicate that the first resource pool is in a congestion state.
Step S209: and ending the transmission of the uplink data.
In the process of implementing step S209 specifically, the feedback information received by the UE is ACK information, which indicates that the sending of the uplink data is completed, and the transmission of the uplink data this time is ended.
Step S210: and the UE selects a second resource pool, retransmits the uplink data on the second resource pool, and returns to execute step S202.
It should be noted that, in the process of implementing step S210 specifically, when the first resource pool is in a congestion state, the UE selects the second resource pool as a currently selected resource pool, and retransmits the uplink data on the second resource pool. At this time, the second resource pool becomes a resource pool currently selected by the UE.
Step S211: and the UE resends the uplink data on the first resource pool, and returns to execute step S202.
In the process of implementing step S211 specifically, when the UE receives the NACK information that does not carry indication information, it indicates that the uplink data is not decoded correctly by the base station, and the UE retransmits the uplink data in the currently selected resource pool, that is, in the first resource pool.
In the embodiment of the invention, the base station carries out blind detection when receiving the uplink data sent by the UE, counts the resource occupancy rate information of all the resource pools, generates the feedback information and sends the feedback information to the UE, and the UE selects the proper resource pool to transmit the uplink data according to the occupancy rate condition of the resource pools, so that the condition of resource pool selection collision when a plurality of UEs select the resource pools can be avoided, and the transmission reliability of the uplink data is improved.
Based on the above-mentioned flowchart of the data transmission method disclosed in the embodiment of the present invention, in combination with the configuration diagram of the preset resource pool shown in fig. 1, the specific implementation process of step S201 disclosed in fig. 2 in the embodiment of the present invention is as follows:
the UE selecting the first resource pool from the preset multiple resource pools according to the current MCS value, comprising: and the UE determines the value range of the current MCS value, selects the resource pool corresponding to the value range as the first resource pool, and sends the uplink data on the first resource pool.
With reference to the configuration diagram of the preset resource pool disclosed in fig. 1 of the embodiment of the present invention, how the UE selects the first resource pool according to the current MCS value is illustrated below:
and if the current MCS value is within the value range of 0-1, the UE selects a resource pool 1 corresponding to the value range of 0-1 as the first resource pool, and sends the uplink data on the first resource pool.
And if the current MCS value is within the value range of 2-9, the UE selects a resource pool 2 corresponding to the value range of 2-9 as the first resource pool, and sends the uplink data on the first resource pool.
And if the current MCS value is within the value range of 10-16, the UE selects a resource pool 3 corresponding to the value range of 10-16 as the first resource pool, and sends the uplink data on the first resource pool.
And if the current MCS value is within the value range of 17-27, the UE selects the resource pool 4 corresponding to the value range of 17-27 as the first resource pool, and sends the uplink data on the first resource pool.
And if the current MCS value is within a value range larger than 27, the UE selects a resource pool 5 corresponding to the value range larger than 27 as the first resource pool, and sends the uplink data on the first resource pool.
Based on the above flowchart of the data transmission method disclosed in the embodiment of the present invention, the specific implementation process of step S210 disclosed in fig. 2 in the embodiment of the present invention is as follows:
and when the first resource pool is in a congestion state, the UE selects a resource pool corresponding to a value range which is lower than the value range of the current MCS value by one step as the second resource pool, and uploads the uplink data on the second resource pool again.
To better explain how the UE selects the second resource pool in step S210, the following is illustrated by the procedures (1) - (2):
(1) assuming that the current MCS value is 6 and is within a value range of 2 to 9, based on the configuration diagram of the preset resource pool disclosed in fig. 1 in the embodiment of the present invention, that is, the resource pool 2 is selected as the first resource pool. When the first resource pool is congested, the UE selects a resource pool corresponding to a value range that is one order lower than the value range of the current MCS value, that is, the UE selects a resource pool 1 corresponding to a value range of 0-1 as the second resource pool, and transmits the uplink data on the second resource pool.
(2) Assuming that the current MCS value is 1 and is within a value range of 0 to 1, based on the configuration diagram of the resource pool disclosed in fig. 1 in the embodiment of the present invention, that is, the resource pool 1 is selected as the first resource pool. When the first resource pool is congested, the UE selects a resource pool corresponding to a value range that is lower than the value range of the current MCS value by one step, that is, the UE selects a resource pool 5 corresponding to a value range that is greater than 27 as the second resource pool, and transmits the uplink data on the second resource pool.
In the embodiment of the invention, the base station carries out blind detection when receiving the uplink data sent by the UE, counts the resource occupancy rate information of all the resource pools, generates the feedback information and sends the feedback information to the UE, and the UE selects the proper resource pool to transmit the uplink data according to the occupancy rate condition of the resource pools, so that the condition of resource pool selection collision when a plurality of UEs select the resource pools can be avoided, and the transmission reliability of the uplink data is improved.
Based on the data transmission method disclosed in the embodiment of the present invention, the embodiment of the present invention also correspondingly discloses a user equipment, and referring to fig. 3, a structural block diagram of the user equipment provided in the embodiment of the present invention is shown, including:
a sending unit 301, configured to send uplink data to a base station, where the uplink data carries a UE id and resource information, where the resource information includes resource pool information of a first resource pool selected by the sending unit from multiple preset resource pools according to a current MCS value.
A receiving unit 302, configured to receive feedback information sent by the base station.
A first determining unit 303, configured to determine whether the receiving unit 302 receives the feedback information within a preset time, and if the receiving unit 302 receives the feedback information within the preset time, execute a second determining unit 304.
The second determining unit 304 is configured to determine whether the feedback information is NACK information if the receiving unit 302 receives the feedback information within a preset time, and execute a third determining unit 305 if the feedback information is NACK information.
The third determining unit 305 is configured to determine whether the NACK information carries indication information if the feedback information is the NACK information, where the indication information is used to indicate that the first resource pool is congested, and if the NACK information carries the indication information, execute a second selecting unit 306.
The second selecting unit 306 is configured to select a second resource pool when the first resource pool is congested, and the sending unit 301 resends the uplink data in the second resource pool.
Preferably, referring to fig. 4 in combination with fig. 3, a user equipment provided in an embodiment of the present invention further includes:
a first selecting unit 307, configured to select the first resource pool from a plurality of preset resource pools according to the current MCS value. The specific process of the first selecting unit 307 selecting the first resource pool from the preset resource pools is as described in the above embodiment of the present invention with reference to the content corresponding to step S201 disclosed in fig. 2.
With reference to fig. 4, preferably, the sending unit 301 is further configured to resend the uplink data in the first resource pool when the receiving unit 302 does not receive the feedback information within a preset time, or the NACK information does not carry the indication information.
With reference to fig. 4, preferably, the second selecting unit 306 is specifically configured to select, as the second resource pool, a resource pool corresponding to a value range that is one order lower than the value range of the current MCS value when the first resource pool is in a congested state. The specific process of the second selecting unit 306 selecting the second resource pool refers to the content corresponding to step S210 disclosed in fig. 2 of the embodiment of the present invention.
Based on the data transmission method disclosed in the embodiment of the present invention, the embodiment of the present invention also discloses a base station correspondingly, and referring to fig. 5, a structural block diagram of a base station provided in the embodiment of the present invention is shown, including:
a data receiving unit 501, configured to receive uplink data sent by the UE.
An analyzing unit 502, configured to analyze the uplink data to obtain resource information, where the resource information includes resource pool information of a first resource pool selected by the UE from multiple preset resource pools according to a current MCS value.
The counting unit 503 is configured to determine the resource occupancy of the first resource pool based on the pre-counted resource occupancy information of all preset resource pools, and the specific process of the determining unit refers to the content corresponding to step S203 disclosed in fig. 2 in the embodiment of the present invention.
A feedback unit 504, configured to generate feedback information, send the feedback information to the UE, and enable the UE to perform a corresponding operation based on the feedback information.
Preferably, referring to fig. 6 in combination with fig. 5, in a base station provided in an embodiment of the present invention, feedback unit 504 includes:
a first feedback module 5041, configured to generate NACK information and send the NACK information to the UE when the parsing unit 502 cannot correctly decode the uplink data.
A second feedback module 5042, configured to generate NACK information carrying indication information when the resource occupancy of the first resource pool exceeds a preset threshold value t1, and send the NACK information to the UE, where the indication information is used to indicate that the first resource pool is in a congestion state.
A third feedback module 5043, configured to generate an ACK message and send the ACK message to the UE if the parsing unit 502 can correctly decode the uplink data and the first resource pool occupancy does not exceed the preset threshold t 1.
In the embodiment of the invention, the base station analyzes when receiving the uplink data sent by the UE, counts the resource occupancy rate information of all the resource pools, generates the feedback information and sends the feedback information to the UE, and the UE selects the proper resource pool to transmit the uplink data according to the occupancy rate condition of the resource pools, so that the condition of resource pool selection collision when a plurality of UEs select the resource pools can be avoided, and the transmission reliability of the uplink data is improved.
Based on the data transmission method, the user equipment and the base station disclosed in the embodiments of the present invention, the embodiments of the present invention also correspondingly disclose a data transmission system, and referring to fig. 7, a block diagram of a structure of the data transmission system provided in the embodiments of the present invention is shown, which includes: UE701 and base station 702;
wherein:
for the specific functions of the UE701, reference is made to the content corresponding to the structural block diagram of the user equipment disclosed in fig. 3 and fig. 4 in the above embodiment of the present invention.
For the specific function of the base station 702, reference is made to the content corresponding to the structural block diagram of the base station disclosed in fig. 5 and fig. 6 in the above embodiments of the present invention.
In summary, based on the above technical solutions, it can be seen that a data transmission method, user equipment, base station and system are disclosed in the embodiments of the present invention. And sending uplink data to the base station through the UE, wherein the uplink data carries the UE id and resource information, and the resource information comprises resource pool information of a first resource pool selected by the UE from a plurality of preset resource pools according to the current MCS value. And if the UE receives the feedback information sent by the base station within the preset time, judging whether the feedback information is NACK information. If the feedback information is NACK information, whether the NACK information carries indication information is judged, and the indication information is used for indicating congestion of the first resource pool. And if the first resource pool is crowded, the UE selects a second resource pool and retransmits the uplink data on the second resource pool. Based on the scheme provided by the invention, when a plurality of UEs send uplink data in the selected resource pool, the resource pool selection conflict can be effectively avoided, and the reliability of uplink data transmission is improved.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, the system or system embodiments are substantially similar to the method embodiments and therefore are described in a relatively simple manner, and reference may be made to some of the descriptions of the method embodiments for related points. The above-described system and system embodiments are only illustrative, wherein the units described as separate parts may or may not be physically separate, and the parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. One of ordinary skill in the art can understand and implement it without inventive effort.
Those of skill would further appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the various illustrative components and steps have been described above generally in terms of their functionality in order to clearly illustrate this interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. 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 invention.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.