Adaptive Frequency Hopping (AFH) Channel Classification Algorithm for Narrowband Wireless Radio in Battery Management System-like (BMS-like) Environment
20250293727 ยท 2025-09-18
Assignee
Inventors
- Oleksandr Karpin (Lviv, UA)
- Ruslan Omelchuk (Lviv, UA)
- Igor Kravets (Lviv, UA)
- Oleksandr Hoshtanar (Lviv, UA)
- Thiam Poh Tan (Singapore, SG)
- Ashok Kapur (Frederick, MD, US)
- Victor ZHODZISHSKY (Potomac, MA, US)
- Daniel Lee (Salt Lake City, UT, US)
Cpc classification
International classification
Abstract
Techniques are disclosed to detect deep fading caused by magnitude drop and rapid phase change on channels within a frequency band of a narrowband wireless radio operating in a BMS-like environment with strong multipath. The techniques may identify an interference channel, a deep fading channel, or a weak signal channel. A channel assessment algorithm may receive packets on one of multiple channels to determine a received signal strength for each packet associated with the channel. The algorithm may determine a PER associated with the channel based on a number of packets received in error and a difference between the received signal strength of each packet and a reference signal strength associated with other channels of the frequency band. The PER may be compared with a PER threshold. The channel may be excluded from use by the wireless radio if the PER for the channel is greater than the PER threshold.
Claims
1. A method for detecting interference in wireless communication, comprising: receiving, by a device, a plurality of packets on a channel of a plurality of channels of a frequency band used for communication network; determining a received signal strength of each packet of the plurality of packets; determining a packet error rate (PER) for the channel based on a number of packets received in error and a difference between the received signal strength of each packet and a reference signal strength associated with one or more other channels of the frequency band; determining whether the PER for the channel is greater than a PER threshold; and excluding the channel from use for wireless communication in responsive to the PER for the channel is determined as greater than the PER threshold.
2. The method of claim 1, wherein determining the PER for the channel comprises: determining a difference between the received signal strength of each packet of the plurality of packets and the reference signal strength when the packet is received in error; determining the packet is corrupted due to deep fading when the difference is greater than a gradient threshold; and determining the PER for the channel as a proportion of the plurality of packets that are corrupted due to deep fading.
3. The method of claim 2, wherein excluding the channel from use comprises: determining the channel is a deep fading channel when the PER for the channel is greater than the PER threshold.
4. The method of claim 2, wherein determining the PER for the channel further comprises: determining the packet is corrupted due to signal interference when the difference fails to be greater than the gradient threshold and the signal strength of the packet is greater than an interference threshold; determining a dominant type of corruption based on a larger of a number of the plurality of packets corrupted due to deep fading and a number of the plurality of packets corrupted due to signal interference; and determining the PER for the channel as a portion of the plurality of packets that are corrupted due to the dominant type of corruption.
5. The method of claim 4, wherein excluding the channel from use comprises: determining the channel as experiencing the dominant type of corruption when the PER for the channel is greater than the PER threshold.
6. The method of claim 4, wherein determining the PER for the channel further comprises: determining the packet is corrupted due to weak signal when the difference fails to be greater than the gradient threshold and the signal strength of the packet is less than a weak signal threshold, wherein the weak signal threshold is less than the interference threshold; determining a dominant type of corruption based on a largest among a number of the plurality of packets corrupted due to deep fading, a number of the plurality of packets corrupted due to signal interference, and a number of the plurality of packets corrupted due to weak signal; and determining the PER for the channel as a portion of the plurality of packets that are corrupted due to the dominant type of corruption.
7. The method of claim 1, wherein the reference signal strength comprises an average received signal strength of a subset of the plurality of channels surrounding the channel associated with the plurality of packets.
8. The method of claim 1, wherein the reference signal strength comprises an average signal strength of a second channel adjacent to the channel associated with the plurality of packets.
9. The method of claim 1, further comprising: adjusting the PER threshold based on a number of the plurality of channels excluded from use for wireless communication.
10. The method of claim 1, further comprising: using the channel for wireless communication in responsive to the PER for the channel is determined as failing to be greater than the PER threshold.
11. The method of claim 1, further comprising: determining a channel map containing information on one or more of the channels excluded from use for wireless communication, wherein the information includes a classification of interference on each of the channels and the PER for each of the channels.
12. The method of claim 11, further comprising: reclaiming a subset of the channels excluded from use when a number of channels excluded from use is greater than a maximum channel threshold, wherein the subset of the channels reclaimed is determined based on the PER for the channels in the channel map.
13. An apparatus comprising: a processing unit configured to perform operations, the operations comprising: receive a plurality of packets on a channel of a plurality of channels of a frequency band used for communication network; determine a received signal strength of each packet of the plurality of packets; determine a packet error rate (PER) for the channel based on a number of packets received in error and a difference between the received signal strength of each packet and a reference signal strength associated with one or more other channels of the frequency band; determine whether the PER for the channel is greater than a PER threshold; and exclude the channel from use for wireless communication in responsive to the PER for the channel is determined as greater than the PER threshold.
14. The apparatus of claim 13, wherein to determine the PER for the channel, the processor is further configured to perform operations comprising: determine a difference between the received signal strength of each packet of the plurality of packets and the reference signal strength when the packet is received in error; determine the packet is corrupted due to deep fading when the difference is greater than a gradient threshold; and determine the PER for the channel as a proportion of the plurality of packets that are corrupted due to deep fading.
15. The apparatus of claim 14, wherein to exclude the channel from use, the processing unit is further configured to perform operations comprising: determine the channel is a deep fading channel when the PER for the channel is greater than the PER threshold.
16. The apparatus of claim 14, wherein to determine the PER for the channel, the processor is further configured to perform operations comprising: determine the packet is corrupted due to signal interference when the difference fails to be greater than the gradient threshold and the signal strength of the packet is greater than an interference threshold; determine a dominant type of corruption based on a larger of a number of the plurality of packets corrupted due to deep fading and a number of the plurality of packets corrupted due to signal interference; and determine the PER for the channel as a portion of the plurality of packets that are corrupted due to the dominant type of corruption.
17. The apparatus of claim 16, wherein to exclude the channel from use, the processing unit is further configured to perform operations comprising: determine the channel as experiencing the dominant type of corruption when the PER for the channel is greater than the PER threshold.
18. The apparatus of claim 13, wherein the reference signal strength comprises an average received signal strength of a subset of the plurality of channels surrounding the channel associated with the plurality of packets.
19. The apparatus of claim 13, wherein the reference signal strength comprises an average signal strength of a second channel adjacent to the channel associated with the plurality of packets.
20. The apparatus of claim 13, wherein the processor is further configured to perform operations comprising: adjust the PER threshold based on a number of the plurality of channels excluded from use for wireless communication.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The described embodiments and the advantages thereof may best be understood by reference to the following description taken in conjunction with the accompanying drawings. These drawings in no way limit any changes in form and detail that may be made to the described embodiments by one skilled in the art without departing from the spirit and scope of the described embodiments.
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
DETAILED DESCRIPTION
[0017] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the presented concepts. The presented concepts may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail so as not to unnecessarily obscure the described concepts. While some concepts will be described in conjunction with the specific examples, it will be understood that these examples are not intended to be limiting.
[0018] Narrowband wireless communication technologies such as Bluetooth (BT), Bluetooth Low Energy (BLE), 802.11x (Wi-Fi), etc., may operate in different environments across a wide range of applications. Increasingly, a battery management system (BMS) deployed in an electrical vehicle may wirelessly monitor, report, and manage operating characteristics of cells of a battery using BLE. A wireless BMS architecture offers many advantages such as harness reduction, flexible placement, easy maintenance, lower assembly and labor cost. The BMS is typically housed in a metal car battery box to reduce interference from external radios such as Wi-Fi radios that share the transmission medium with BLE. BLE may use an adaptive frequency hopping (AFH) scheme to further mitigate interference when transmitting packets by rapidly hopping between narrow channels (e.g., 40 channels) of the 2.4 GHz ISM operating frequency band in a pattern mutually known to a transmitter and a receiver. In AFH, a BLE transceiver may perform a channel assessment to detect channels that are noisy and busy so as to adaptively avoid these channels (referred to as channel blacklisting) when the transceiver selects the hopping sequence.
[0019] In a metal-box operating environment such as the BMS, the quality of a channel may also degrade due to internal factors such as multipath fading, shadowing effect, stationary standing waves, etc. For example, a BMS may experience high packet error rate (PER) for some channels due to deep multipath fading and shadowing despite relatively strong signals (e.g., the received signal strength indicator (RSSI) is far greater than the receiver sensitivity). Multipath signal propagation may cause fluctuations in the received signal's amplitude, phase and angle of arrival. Severe drop in the channel signal-to-noise ratio and signal distortion (caused by rapid magnitude and phase jump) may result in failure of communication at certain channel frequencies. Other internal factors contributing to poor channel qualities and high PER may include wideband noise from DC/DC converters of the BMS, environmental variables such as the broad range of operating temperatures (40 C. to +125 C.) due to heating and cooling of the vehicle, etc.
[0020] While an AFH algorithm may perform channel assessment to identify noise and busy channels for blacklisting these channels, channel assessment may not be effective in detecting channels experiencing strong multipath and shadowing effects encountered in a BMS-like environment. For example, channel assessment may measure the RSSI of packets received on a channel and collect the PER statistics of these packets to identify an interfering channel as one having a high RSSI and yet with a high PER. Conversely, channel assessment may measure the RSSI on blacklisted channels to determine whether to reclaim a blacklisted channel for AFH use when the RSSI of the channel from an interfering source falls below a threshold. These types of channel assessment are not intended to identify channels experiencing deep fading (e.g., RSSI is low) in a strong multipath and shadowing environment. As a result, these deep fading channels may be misinterpreted as interference-free and used by the hopping sequence when they should be blacklisted.
[0021] Disclosed are techniques to detect deep fading with low channel signal-to-noise ratio and signal distortion caused by rapid magnitude or phase change on channels within a frequency band of a narrowband wireless radio operating in a BMS-like environment with strong multipath. In one aspect, the techniques may identify a channel as a busy channel due to external interference, a channel experiencing deep fading due to rapid magnitude or phase change associated with multipath, or a channel with weak signal due to factors other than deep-fading. The AFH scheme may classify the blacklisted channels in an AFH channel map based on the channel characteristics identified by the channel assessment. The classification of the blacklisted channels in the AFH channel map may aid the AFH scheme in determining which channels to reclaim when the conditions of the channels or the operating environment change.
[0022] In one aspect, the channel assessment may dynamically adjust a packet error rate-threshold (PER-threshold) used for classifying deep-fading channels based on a number of blacklisted channels so there is a sufficient number of good channels for AFH. Advantageously, the disclosed channel assessment techniques may flexibly adapt to changing channel conditions in a BMS-like environment that has a mix of deep fading channels and noisy interfering channels to decrease PER when using an AFH scheme.
[0023]
[0024] Packets received with low RSSI may be due to weak signal 120 caused by the construction and location of the battery rather than deep fading. A BLE transceiver may detect a weak signal channel by determining that the proportion of packets that are received in error on the channel and having measured RSSI below a weak signal threshold is greater than a PER threshold. The number of packets received with weak signal 120 may be relatively low. Weak signal channels may be characterized as semi-static channels and once blacklisted may be reclaimed slowly for AFH.
[0025] Packets received with measured RSSI higher than a weak signal threshold but lower than an interference signal threshold may be due to deep fading 130 caused by rapid magnitude and phase change associated with strong multipath and shadowing. A BLE transceiver may detect a deep fading channel by comparing the measured RSSI of packets received on the channel with the RSSI of packets received on other channels. For example, a BLE transceiver may measure the decrease in RSSI of a packet on the channel relative to the average RSSI of packets received on other channels. The BLE transceiver may determine whether this decrease in RSSI is greater than a delta threshold. If the proportion of packets that are received in error on the channel and having decreased RSSI satisfying this delta threshold condition is greater than a PER threshold, the BLE transceiver may classify the channel as a deep fading channel. The number of channels affected by deep fading 130 may be a function of the location of the BLE transceiver in the shielded-metal box of the BMS. Deep fading channels may also be characterized as semi-static channels because their channel characteristics tend to change slowly. Once blacklisted, deep fading channels may be reclaimed slowly for AFH.
[0026] Packets received in error but having relatively high RSSI (e.g., higher than an interference signal threshold) may be from Wi-Fi interference 140. A BLE transceiver may detect a Wi-Fi interfering channel by determining that the proportion of packets that are received in error on the channel despite having measured RSSI above an interference signal threshold is greater than a PER threshold. The number of channels affected by Wi-Fi interference 140 may be a function of the extent of frequency overlap between the BLE channels of the BMS and Wi-Fi channels operated by interfering sources. Wi-Fi interfering channels may be characterized as dynamic channels because their channel characteristics change when the interfering sources stop transmitting on the channels. Once blacklisted, Wi-Fi interfering channels may be quickly reclaimed for AFH if the interference stops.
[0027]
[0028] The magnitude of received signals on frequency channels 210 may experience deep fading (e.g., 40 dB) due to rapid magnitude drop and phase jumps 220 and 230 associated with multipath and shadowing effect. Packets transmitted on frequency channels 210 may be received with sufficiently low RSSI to cause high PER. The rapid magnitude drop and phase jumps 220 and 230 may be manifested as RSSI exhibiting a large gradient in a narrow band of frequency channels (e.g., frequency channels 210). Techniques to detect deep fading channels may blacklist such channels in an AFH channel map to improve system performance when using AFH in a BMS-like environment.
[0029]
[0030] The RSSI.sub.avg(i) 320 may represent the average RSSI measured for received packets at channel i of the BLE frequency band. Channel 15 may exhibit deep fading as shown by the steep gradient in RSSI.sub.avg(i) 320 at channel 15. A moving average RSSI.sub.MA(i) 330 may represent an average of the RSSI.sub.avg(i) 320 of the channels within a window of channels centered on channel i. The size of the window may be determined based on the operating environment of the BLE radio. The moving average RSSI.sub.MA(i) 330 may act as a low-pass filter to smooth fluctuations of the RSSI.sub.avg(i) 320 across the channels in the window.
[0031] A channel assessment algorithm may calculate RSSI.sub.i 340 for channel i as the difference between RSSI.sub.avg(i) 320 of channel i and moving average RSSI.sub.MA(i) 330 associated with channel i. For example, RSSI; 340 for channel 15 may represent the difference between RSSI.sub.avg(i) 320 of channel 15 and moving average RSSI.sub.MA(i) 330 centered on channel 15. Because of the steep gradient of RSSI.sub.avg(i) 320 at channel 15, RSSI.sub.i 340 for channel 15 is large. The steeper the gradient of RSSI.sub.avg(i) 320 at a channel, the larger the RSSI.sub.i 340 for that channel. The channel assessment algorithm may compare the RSSI.sub.i 340 for channel i with a gradient threshold Th.sub.grad to determine if channel i is a deep fading channel (e.g., (RSSI.sub.i=RSSI.sub.avg(i)RSSI.sub.MA(i))<Th.sub.grad).
[0032]
[0033] Instead of using RSSI.sub.MA(i) 330 for the metric, a channel assessment algorithm may calculate the difference between RSSI.sub.avg(i) of channel i with RSSI.sub.avg(i) of its two adjacent channels i1 and i+1, respectively. For example, (RSSI.sub.avg(i)RSSI.sub.avg(i1)) 390 for channel 15 may represent the difference between RSSI.sub.avg(i) 320 of channel 15 and RSSI.sub.avg(i) 320 of channel 14. (RSSI.sub.avg(i)RSSI.sub.avg(i+1)) 395 for channel 15 may represent the difference between RSSI.sub.avg(i) 320 of channel 15 and RSSI.sub.avg(i) 320 of channel 16. The channel assessment algorithm may compare (RSSI.sub.avg(i)RSSI.sub.avg(i1)) 390 or (RSSI.sub.avg(i)RSSI.sub.avg(i+1) 395 for channel i with a gradient threshold Th.sub.grad to determine if channel i is a deep fading channel (e.g., ((RSSI.sub.avg(i)RSSI.sub.avg(i1))<Th.sub.grad) or ((RSSI.sub.avg(i)RSSI.sub.avg(i+1)<Th.sub.grad).
[0034]
[0035] In one embodiment, a channel assessment algorithm may determine the difference (RSSI) between the measured RSSI of a packet received on a channel with the moving average RSSI.sub.MA(i) 330 centered around the channel or the RSSI.sub.avg(i) 320 of adjacent channels as described for
[0036]
[0037] In operation 401, the BLE receiver may initialize a RSSI.sub.MA(i) (e.g., RSSI.sub.MA(i) 330 of
[0038] In operation 403, the BLE receiver may initialize a counter N_good.sub.f to keep a count of packets interpreted as not corrupted by deep fading over a channel, and a counter N_bad.sub.f to keep a count of packets interpreted as corrupted by deep fading over the channel. The BLE receiver may maintain a pair of N_good.sub.f and N_bad.sub.f counters for each of the BLE channels.
[0039] In operation 405, the BLE receiver may start a channel classification update interval (e.g., 3 seconds) over which the BLE receiver may scan for packets received over one or more channel to determine whether any one channel is subject to deep fading. In one embodiment, the BLE receiver may scan for packets until a configured number of packets (e.g., 50 packets) have been received over a channel or until a PER threshold is exceeded.
[0040] In operation 407, the BLE receiver may receive packets over one or more channels. The BLE receiver may measure the RSSI of each packet.
[0041] In operation 410, the BLE receiver may determine whether a packet is received in error. For example, a packet may be received in error when it fails a cyclic redundancy check (CRC) or when there is a synchronization timeout.
[0042] In operation 421, if a packet is received in error over a channel, the BLE receiver may determine the difference (RSSI) between the measured RSSI of the packet with the moving average RSSI.sub.MA(i) 330 associated with the channel. The RSSI may be similar to the RSSI.sub.i 340 as described for
[0043] In operation 423, the BLE receiver may determine if the RSSI for a packet is more than a gradient threshold Th.sub.grad (e.g., RSSI<Th.sub.grad when expressed in dB). The gradient threshold Th.sub.grad may represent the RSSI above which a packet may be interpreted as experiencing deep fading. Th.sub.grad may be preconfigured individually for each channel, or with the same value for all channels. In one embodiment, Th.sub.grad may be dynamically changed as the operating environment changes.
[0044] In operation 425, if the RSSI for a packet received over a channel is more than a gradient threshold Th.sub.gra for the channel, the BLE receiver may increment the N_bad.sub.f counter for the channel to indicate that the packet is corrupted by deep fading and to keep a running count of the number of packets corrupted by deep fading on the channel during the channel classification update interval.
[0045] In operation 431, if the RSSI for a packet received over a channel is not more than a gradient threshold Th.sub.gra for the channel, the BLE receiver may increment the N_good.sub.f counter for the channel to indicate that the packet is not corrupted by deep fading even though the packet is received in error and to keep a running count of the number of such packets on the channel during the channel classification update interval. Such packets may be corrupted by noise or interference rather than deep fading. Similarly, from operation 410, if the packet is correctly received over a channel, the BLE receiver may also increment the N_good.sub.f counter for the channel to indicate that the packet is not corrupted by deep fading.
[0046] In operation 440, the BLE receiver may determine if the channel classification update interval has expired. If not, the BLE receiver may receive additional packets over one or more channels to determine if any of the packets are corrupted by deep fading and to accumulate the N_good.sub.f and N_bad.sub.f counters for the corresponding channels accordingly.
[0047] Otherwise, if the channel classification update interval has expired, in operation 450, the BLE receiver may determine if the proportion of the packets that have been corrupted by deep fading over the channel classification update interval for a channel is greater than a PER threshold. For example, the BLE receiver may determine if (N_bad.sub.f/(N_bad.sub.f+N_good.sub.f)) for a channel is greater than PER.sub.Th_f, where PER.sub.Th_f is the PER threshold for deep fading. (N_bad.sub.f/(N_bad.sub.f+N_good.sub.f)) for a channel may be interpreted as the measured PER due to deep fading for the channel.
[0048] In operation 461, if ((N_bad.sub.f/(N_bad.sub.f+N_good.sub.f))>PER.sub.Th_f) for a channel, the BLE receiver may classify the channel as a bad channel due to deep fading. In one embodiment, the BLE receiver may also classify one or more neighboring channels of a bad channel as bad channels but making the classification using a lower PER.sub.Th_f. The BLE receiver may suspend (also referred to as blacklist) a bad channel in the AFH channel map to exclude the channel from use by the AFH scheme. In one embodiment, the AFH channel map may store the measured PER, the average of the measured RSSI (e.g., RSSI.sub.avg(i)), and the channel number for each bad channel.
[0049] In operation 471, if ((N_bad.sub.f/(N_bad.sub.f+N_good.sub.f)PER.sub.Th_f) for a channel, the BLE receiver may classify the channel as a good channel in the AFH channel map so that the channel is suitable for use by the AFH scheme.
[0050] In one embodiment, the PER.sub.Th_f may be very small (e.g., 0.01) and may be dynamically adjusted to improve the AFH channel classification in response to changing operating conditions and to ensure that there are a sufficient number of good channels for use by the AFH scheme. For example, if there are not a sufficient number of good channels, the BLE receiver may reclaim blacklisted channel(s) that have the lowest/lower PER or highest/higher RSSI.sub.avg(i) in the AFH channel map. The BLE receiver may increase the PER.sub.Th_f for the reclaimed channels so that at the next channel classification update interval, the reclaimed channels are not immediately blacklisted if the measured PER remains the same. On the other hand, if there are few blacklisted channels and some good channels experience low level deep fading but not enough to be blacklisted, the BLE receiver may decrease the PER.sub.Th_f to try to catch some of these channels that have higher measured PER due to deep fading to suspend them.
[0051] In one embodiment, a channel assessment algorithm may scan not only for deep fading channels, but also for weak signal channels and Wi-Fi interference channels based on the measured RSSI and PER of packets received on the channels. The channel assessment algorithm may classify the blacklisted channels in the AFH channel map as belonging to the categories of deep-fading, weak signal, or Wi-Fi interference channels. Blacklisted channels classified as Wi-Fi interference channels may be checked more frequently to determine whether they can be reclaimed for AFH (e.g., faster recovery time) than for deep fading channels due to the dynamic nature of Wi-Fi interference compared to the semi-static nature of deep fading associated with multipath.
[0052]
[0053] Operations 501 to initialize a moving window average RSSI.sub.MA(i) of RSSI.sub.avg(i) of channels associated with channel i may be similar to operation 401 of
[0054] Operation 503 may initialize a N_good counter for each BLE channel to count the number of packets interpreted as not corrupted by deep fading, radio interference, or weak signal over the channel, a N_bad.sub.f counter to count the number of packets interpreted as corrupted by deep fading over each channel, a N_bad.sub.b counter to count the number of packets interpreted as corrupted by radio interference (e.g., busy channel due to Wi-Fi interference) over each channel, and a N_bad.sub.w counter to count the number of packets interpreted as weak signal packets over each channel.
[0055] Operation 505 to start a channel classification update interval may be similar to operation 405 of
[0056] Operation 507 to measure RSSI of packets received over one or more channels may be similar to operation 407 of
[0057] Operation 510 to determine whether a packet is received in error may be similar to operation 410 of
[0058] Operation 521 to determine the RSSI between the measured RSSI of a packet on a channel with the moving average RSSI.sub.MA(i) 330 associated with the channel may be similar to operation 421 of
[0059] Operation 523 to determine whether the RSSI for a packet is more than a gradient threshold Th.sub.grad (e.g., RSSI<Th.sub.grad when expressed in dB) may be similar to operation 423 of
[0060] Operation 525 to increment the N_bad.sub.f counter for the channel to indicate that a packet on the channel is corrupted by deep fading when the RSSI for the packet is more than the gradient threshold Th.sub.grad is similar to operation 425 of
[0061] In operation 531, if the RSSI for a packet received over a channel is not more than a gradient threshold Th.sub.gra for the channel (e.g., packet interpreted as not corrupted by deep fading), the BLE receiver may determine if the measured RSSI for the packet is more than a RSSI threshold RSSI.sub.high_thresh. The RSSI.sub.high_thresh may represent the interference RSSI threshold above which a packet may be interpreted as corrupted by the interference from an external source (e.g., Wi-Fi transmission). A BLE receiver would normally receive the packet having an RSSI greater than RSSI.sub.high_thresh without error if not for the interfering transmission. RSSI.sub.high_thresh may be preconfigured individually for each channel, or with the same value for all channels. In one embodiment, RSSI.sub.high_thresh may be dynamically changed as the operating environment changes.
[0062] In operation 533, if the measured RSSI for a packet received over a channel is more than RSSI.sub.high_thresh for the channel, the BLE receiver may increment the N_bad.sub.b counter for the channel to indicate that the packet is corrupted by interference on a busy channel and to keep a running count of the number of packets corrupted by interference on the channel during the channel classification update interval.
[0063] In operation 535, if the measured RSSI for a packet received over a channel is not more than RSSI.sub.high_thresh for the channel (e.g., packet interpreted as not corrupted by deep fading nor by interference), the BLE receiver may determine if the measured RSSI for the packet is less than a RSSI threshold RSSI.sub.low_thresh. The RSSI.sub.low_thresh may be less than the RSSI.sub.high_thresh. The RSSI.sub.low_thresh may represent the RSSI threshold below which a channel may be interpreted as having poor signal quality for reasons other than deep fading (e.g., due to the location of the BLE receiver, the geometry of the BMS-like environment, etc.).
[0064] In operation 535, if the measured RSSI for a packet receiver over a channel is less than RSSI.sub.low_thresh for the channel, the BLE receiver may increment the N_bad.sub.w counter for the channel to indicate that the packet is corrupted because of weak signal and to keep a running count of the number of weak signal packets on the channel during the channel classification update interval.
[0065] In operation 539, if the measured RSSI for a packet receiver over a channel is not less than RSSI.sub.low_thresh for the channel, the BLE receiver may increment the N_good counter for the channel to indicate that the packet is not corrupted by deep fading, interference, or weak signal even though the packet is received in error and to keep a running count of the number of such packets on the channel during the channel classification update interval. Similarly, from operation 510, if the packet is correctly received over a channel, the BLE receiver may also increment the N_good counter for the channel.
[0066] In operation 540, the BLE receiver may determine if the channel classification update interval has expired. If not, the BLE receiver may receive additional packets over one or more channels to determine if any of the packets are corrupted by deep fading, interference, or weak signal and to accumulate the corresponding N_good, N_bad.sub.f, N_bad.sub.b, or N_bad.sub.w counters for the corresponding channels.
[0067] In operation 545, the BLE receiver may determine the largest count among the N_bad.sub.f, N_bad.sub.b, or N_bad.sub.w counters for a channel. A BLE receiver may receive corrupted packets of multiple types (e.g., see
[0068] In operation 550, the BLE receiver may determine if the proportion of packets interpreted as corrupted over the channel classification update interval for a channel is greater than a PER threshold. For example, the BLE receiver may determine if (N_bad/(N_bad+N_good)) for a channel is greater than PER.sub.Th.
[0069] In operation 561, if ((N_bad/(N_bad+N_good))>PER.sub.Th) for a channel, the BLE receiver may classify the channel as a bad channel due to deep fading, interference, or weak signal as determined by the dominant type of corruption associated with N_bad. The BLE receiver may suspend a bad channel in the AFH channel map to exclude the channel from use by the AFH scheme. In one embodiment, the AFH channel map may store the measured PER, the average of the measured RSSI (e.g., RSSI.sub.avg(i)), the channel classification, and the channel number for each bad channel. In one embodiment, the PER.sub.Th may be dynamically adjusted to improve AFH channel classification in response to changing operating conditions and to ensure that there are a sufficient number of channels for use by the AFH scheme.
[0070] In operation 571, if (N_bad/(N_bad+N_good)PER.sub.Th for a channel, the BLE receiver may classify the channel as a good channel in the AFH channel map so that the channel is suitable for use by the AFH scheme.
[0071]
[0072] The AFH channel map 600 shows the channel number 610, measured PER 620, average RSSI 630, bad channel type 640, and the recovery time 650 associated with each channel. The channel number 610, measured PER 620, average RSSI 630, and bad channel type 640 may be provided by the methods of
[0073] For example, channel 1 has a PER of 10% and an average RSSI of 20 dbm. Channel 1 has been classified as a Wi-Fi interference channel based on the high PER despite the relatively high average RSSI. Channel 1 is associated with a quick recovery time to indicate the channel can be reclaimed for AFH more frequently than deep fading channels due to the dynamic nature of Wi-Fi interference compared to the semi-static nature of deep fading associated with multipath. Channel 1 is suspended for use by the AFH scheme. In one embodiment, the AFH channel map 600 may order the channels based on the PER or the average RSSI (e.g., ordering channels from good to bad based on the quality metric) so that the channel assessment algorithm may reclaim suspended channels associated with better quality metric first.
[0074] Channel 34 has a PER of 100% and an average RSSI of 50 dBm. Channel 34 has been classified as a deep fading channel due to rapid magnitude drop and phase jump associated with multipath. Channel 34 is associated with a slow recovery time because of the semi-static nature of deep fading associated with multipath. Similarly, channels 4 and 35 are classified as deep fading channels. Channels 4, 34, and 35 are suspended for use by the AFH scheme.
[0075] Channels 2 and 3 are classified as good channels due to zero packet error and may be used for AFH. Channels 36 and 37 exhibit relatively high PER despite relatively high average RSSI. Channels 36 and 37 may be interpreted as susceptible to Wi-Fi interference but are may still be used for AFH because the PER does not exceed a threshold. A channel assessment algorithm may receive additional packets on the channels to determine whether to suspend the channels if the interference continues.
[0076] As previously described, the PER.sub.Th_f used to classify channels as deep fading channels may be dynamically adjusted to improve AFH channel classification in response to changing operating conditions and to ensure that there are a sufficient number of channels for use by the AFH scheme.
[0077]
[0078] In operation 701, the BLE receiver may initialize a PER-threshold (good_to_suspended_PER) used to suspend a channel if the measured PER for the channel exceeds the PER_threshold. In one embodiment, good_to_suspended_PER may be the PER threshold for deep fading (PER.sub.Th_f) of
[0079] In operation 703, the BLE receiver may run the channel assessment algorithm to measure the PER for the channels of a frequency band and to update the AFH channel mapping based on the measured PER. In one embodiment, operation 703 may be method 400 of
[0080] In operation 710, the BLE receiver may determine if the number of suspended channels in the AFH channel map is greater than a threshold Th.sub.suspended_Hi. Th.sub.suspended_Hi may represent the maximum number of suspended channels to ensure there are a sufficient number of good channels available for AFH. Th.sub.suspended_Hi may be configured based on the number of channels (e.g., 40) in the frequency band and the operating environment.
[0081] In operation 731, if the number of suspended channels in the AFH channel map is greater than Th.sub.suspended_Hi, the BLE receiver may move one or more suspended channels that have the lowest PER among all suspended channels in the AFH channel map from the suspended classification to good. The BLE receiver may thus reclaim suspended channel(s) that experience the least deep fading. For example, in the AFH channel map of
[0082] In operation 733, the BLE receiver may increase the PER-threshold good_to_suspended_PER so that at the next channel classification update interval, the reclaimed channels are not immediately re-suspended if the measured PER for the reclaimed channels remains the same.
[0083] If, on the other hand, the number of suspended channels in the AFH channel map is not greater than Th.sub.suspended_Hi, in operation 721, the BLE receiver may determine if the number of suspended channels in the AFH channel map is less than a threshold Th.sub.suspended_Low. Th.sub.suspended_Low may represent the minimum number of expected suspended channels. If the number of suspended channels is less than Th.sub.suspended_Low, it may indicate that the PER-threshold (good_to_suspended_PER) may have been set too high. Th.sub.suspended_Low may be configured based on the operating environment.
[0084] In operation 723, if the number of suspended channels in the AFH channel map is less than Th.sub.suspended_Low, the BLE receiver may decrease the PER-threshold (good_to_suspended_PER) so that at the next channel classification update interval, the channel assessment algorithm may suspend channel(s) that have higher measured PER than the lowered PER-threshold (good_to_suspended_PER).
[0085] If the number of number of suspended channels in the AFH channel map is not less than Th.sub.suspended_Low, in operation 741, the BLE receiver may reduce the measured PER for all suspended channels in the AFH channel map by a small amount (e.g., 0.1%). Reducing the measured PER for the suspended channels after each channel classification update interval may eliminate the possibility that channels are suspended indefinitely by increasing the chance that a suspended channel may be reclaimed. Similarly, after increasing the PER-threshold (good_to_suspended_PER) in operation 733 or decreasing the PER-threshold (good_to_suspended_PER) in operation 723, the BLE receiver may invoke operation 741 to reduce the measured PER for all suspended channels in the AFH channel map by a small amount.
[0086] After operation 741, the BLE receiver may run the channel assessment algorithm in operation 703 for the next channel classification update interval to update the AFH channel map. Operations 710, 731, 733, 721, 723, and 741 may be repeated after every channel classification update interval to dynamically adjust the PER-threshold (good_to_suspended_PER).
[0087]
[0088] In operation 801, the BLE receiver may initialize PER.sub.th that is compared against the measured PER for a channel to determine whether to suspend a channel. The BLE receiver may initialize PER.sub.th to the preconfigured value of good_to_suspended_PER. In one embodiment, PER.sub.th may be the PER threshold for deep fading (PER.sub.Th_f) of
[0089] In operation 803, the BLE receiver may run the channel assessment algorithm to measure the PER for the channels of a frequency band and to update the AFH channel mapping based on the measured PER. In one embodiment, operation 803 may be method 400 of
[0090] In operation 805, the BLE receiver may determine if the measured PER for any scanned channels in the channel assessment algorithm of operation 803 is greater than PER.sub.th. Operation 805 may determine if any channels have been suspended in the current channel classification update interval.
[0091] If the measured PER for at least one scanned channel is greater than PER.sub.th so that at least one channel is suspended, in operation 810, the BLE receiver may determine if the number of suspended channels (N.sub.suspended_channel) in the AFH channel map is greater than a threshold Th.sub.suspended_Hi. Th.sub.suspended_Hi may represent the maximum number of suspended channels to ensure there are a sufficient number of good channels available for AFH. Th.sub.suspended Hi may be configured based on the number of channels in the frequency band and the operating environment.
[0092] If the number of suspended channels (N.sub.suspended_channel) in the AFH channel map is greater than Th.sub.suspended_Hi, in operation 831, the BLE receiver may move (N.sub.suspended_channel-Th.sub.suspended_Hi) channel(s) with the lowest PER among all suspended channels in the AFH channel map from the suspended classification to good. The BLE receiver may thus reclaim (N.sub.suspended_channelTh.sub.suspended_Hi) suspended channel(s) that experience the least deep-fading so as to bring N.sub.suspended_channel down to Th.sub.suspended_Hi.
[0093] In operation 833, the BLE receiver may increase PER.sub.th so that at the next channel classification update interval, the reclaimed channels are not immediately re-suspended if the measured PER for the reclaimed channels remains the same.
[0094] In operation 841, the BLE receiver may reduce the measured PER for all suspended channels in the AFH channel map by a small amount (e.g., 0.1%). Reducing the measured PER for the suspended channels after each channel classification update interval may eliminate the possibility that channels are suspended indefinitely by increasing the chance that a suspended channel may be reclaimed.
[0095] If from operation 810, the number of suspended channels (N.sub.suspended_channel) in the AFH channel map is not greater than Th.sub.suspended_Hi, the BLE receiver does not reclaim any suspended channels or change PER.sub.th, and may invoke operation 841 to reduce the measured PER for all suspended channels in the AFH channel map by a small amount.
[0096] If from operation 805, the measured PER for all scanned channels are not greater than PER.sub.th, in operation 820, the BLE receiver may determine if PER.sub.th is greater than the preconfigured good_to_suspended_PER. When none of the measured PER for the scanned channels are greater than PER.sub.th, and PER.sub.th is greater than good_to_suspended_PER, it may indicate that PER.sub.th has been raised too high such that no channels have been suspended. For example, when operation 833 increases PER.sub.th to prevent the resuspension of reclaimed channels least corrupted by deep fading, the higher PER.sub.th may also be preventing other channels that experience more deep fading from being suspended.
[0097] If PER.sub.th is greater than good_to_suspended_PER, in operation 823, the BLE receiver may decrease PER.sub.th so that at the next channel classification update interval, the channel assessment algorithm may suspend channel(s) that have higher measured PER than the lowered PER.sub.th due to deep fading. The BLE receiver may invoke operation 841 to reduce the measured PER for all suspended channels in the AFH channel map by a small amount.
[0098] If PER.sub.th is not greater than good_to_suspended_PER, PER.sub.th stays the same for the next channel classification update interval. The BLE receiver may invoke operation 841 to reduce the measured PER for all suspended channels in the AFH channel map by a small amount.
[0099] After operation 841, the BLE receiver may run the channel assessment algorithm in operation 803 for the next channel classification update interval to update the AFH channel map. Operations 805, 810, 831, 833, 820, 823, and 841 may be repeated after every channel classification update interval to dynamically adjust the PER.sub.th.
[0100]
[0101] In operation 901, the BLE receiver may initialize a PER.sub.conn(Last) that holds the last value of the measured PER for a channel to 0. The BLE receiver may initialize PER.sub.threshold that is compared against the measured PER for a channel to determine whether to suspend a channel. The BLE receiver may initialize PER.sub.threshold to a preconfigured Pr. In one embodiment, PER.sub.threshold may be the PER threshold (PER.sub.Th) for suspending a channel of
[0102] In operation 903, the BLE receiver may use the AFH channel map based on a previous channel classification update and may blank (suspend) channels including channels corrupted by WLAN interference. The AFH channel map may contain information on the classification of suspended channels as shown in
[0103] In operation 904, the BLE receiver may perform a passive scan to measure the PER for the channels of a frequency band based on the packets received over the channels in a nominal measurement period (e.g., 3 seconds). In one embodiment, the BLE receiver may receive the packets over channels that are classified as good channels or over WLAN interference channels that have been temporarily un-blanked. In one embodiment, operation 904 may be method 500 of
[0104] In operation 905, the BLE receiver may determine if the measured PER for any channel for the current measurement period (PER.sub.conn(Current)) is greater than PER.sub.threshold (PT). Operation 905 may thus determine if at least one channel may be suspended based on the latest measured PER.
[0105] If PER.sub.conn(Current) for any channel is greater than PER.sub.threshold, in operation 907, the BLE receiver may determine if PER.sub.conn(Current) for a channel is greater than PER.sub.conn(Last). Operation 907 may thus determine if the PER for a channel measured over the current measurement period is increasing compared to the PER for the channel measured over the last measurement period.
[0106] If PER.sub.conn(Current) for a channel is greater than PER.sub.conn(Last), in operation 917, the BLE receiver may update the AFH channel map for the channel based on the current channel classification. For example, the AFH channel map may be updated to suspend any previously clean channel if PER.sub.conn(Current) for the channel is now greater than PER.sub.threshold. Conversely, any temporarily un-blanked WLAN interference channel may be reclaimed if PER.sub.conn(Current) for the channel no longer exceeds PER threshold.
[0107] In operation 919, the BLE receiver may assign PER.sub.conn(Last) for a channel to be PER.sub.conn(Current) for the channel to prepare for the passive scan to measure the PER for the channel over the next measurement period.
[0108] If PER.sub.conn(Current) for a channel is not greater than PER.sub.conn(Last), in operation 909, the BLE receiver may decay PER conn (Last) for the channel by the decaying factor .
[0109] In operation 924, the BLE receiver may perform an active scan to measure the average RSSI (RSSI.sub.avg) for any suspended channel in the AFH channel map. In contrast to the passive scan of operation 904 in which the BLE receiver assesses the channels based on packets received over any channels, the BLE may need to schedule a time interval and channel resources for an active scan of suspended channels The BLE receiver may perform the active scan when scheduled or over a configurable time interval (e.g., every 6 seconds). In one embodiment, the BLE receiver may perform the active scan in the background when the BLE transceiver is not active.
[0110] In operation 945, based on the RSSI.sub.avg measured for each suspended channel during the active scan, the BLE receiver may un-blank a channel. For example, the BLE receiver may temporarily un-blank a WLAN interference channel if the measured RSSI.sub.avg for the channel falls below a threshold. Even though the channel is un-blanked, the BLE receiver may not yet update the AFH channel map to indicate that the un-blanked channel has been reclaimed as a good channel.
[0111] In one embodiment, to perform the active scan and to un-blank a WLAN interference channel of operation 924 and 945, the BLE receiver may measure the RSSI of packets for each suspended channel in operation 930. In operation 932, the BLE receiver may average the RSSI measured for all the packets received on a channel over the active scan interval to compute RSSI.sub.avg for each suspended channel. In operation 934, the BLE receiver may compare RSSI.sub.avg for each suspended channel with a RSSI.sub.Threshold. If the RSSI.sub.avg for a suspended channel is greater than a RSSI.sub.Threshold, the channel may remain suspended (blanked) in operation 938 due to WLAN interference. On the other hand, if the RSSI.sub.avg for a suspended channel is not greater than a RSSI.sub.Threshold, the BLE receiver may un-blank the channel in operation 936 to temporarily use the channel. As indicated, even though the channel is un-blanked, the AFH channel map is not updated until a later time (e.g., at operation 917).
[0112] In operation 947, the BLE receiver may determine if the interference is still present on all the previously suspended channels. For example, the interference is still present on a suspended channel when the RSSI.sub.avg for the channel measured during the active scan interval is greater than RSSI.sub.Threshold (operations 934 and 938).
[0113] If the interference is still present on the suspended channel, in operation 959, the BLE receiver may continue to use the AFH channel map based on the previous classification update based on the passive scan (e.g., from operation 917).
[0114] On the other hand, if the interference is no longer present on the suspended channel, in operation 949, the BLE receiver may decay PER conn (Last) for the channel by the decaying factor . For example, if a WLAN interference channel is temporarily un-blanked in operation 936 because the RSSI.sub.avg for the channel is no longer greater than a RSSI.sub.Threshold, the BLE receiver may decay the PER.sub.conn (Last) for the un-blanked channel. Decaying the PER.sub.conn (Last) for the temporarily un-blanked channel increases the chance that the channel may eventually be reclaimed when the AFH channel map is updated.
[0115]
[0116] In operation 1001, the BLE receiver receives multiple packets on one of multiple channels of a frequency band used for wireless communication.
[0117] In operation 1003, the BLE receiver determines a received signal strength (e.g., RSSI) for each of the packets received over the one channel.
[0118] In operation 1005, the BLE receiver determines a packet error rate (PER) for the channel based on a number of packets received in error and a difference between the received signal strength of each packet and a reference signal strength associated with one or more other channels of the frequency band.
[0119] In operation 1007, the BLE receiver determines if the PER associated with the channel is greater than a PER threshold.
[0120] In operation 1009, if the PER associated with the channel is greater than the PER threshold, the BLE receiver excludes the channel from use for wireless communication.
[0121] In operation 1011, if the PER associated with the channel is not greater than the PER threshold, the BLE receiver uses the channel for wireless communication.
[0122] Various embodiments of the techniques for BLE devices to detect deep fading with low channel signal-to-noise ratio and signal distortion caused by rapid magnitude drop and phase change on channels within a frequency band of a narrowband wireless radio operating in a BMS-like environment with strong multipath may include various operations. Various embodiments of the techniques for BLE devices to dynamically adjust a PER-threshold used for classifying deep-fading channels based on a number of blacklisted channels to update the AFH channel map so there is a sufficient number of good channels for AFH may also include various operation. These operations may be performed and/or controlled by hardware components, digital hardware and/or firmware/programmable registers (e.g., as implemented in computer-readable medium), and/or combinations thereof. The methods and illustrative examples described herein are not inherently related to any particular device or other apparatus. Various systems (e.g., such as a wireless device including an antenna, a radio frequency (RF) transceiver, a controller operating in a near field environment, pico area network, wide area network, etc.) may be used in accordance with the teachings described herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear as set forth in the description above
[0123]
[0124] The Bluetooth device 1111 may include one or more antennas 1121, Bluetooth hardware 1113 and Bluetooth driver 1115. The Bluetooth driver 1115 may include Bluetooth Tx/RX controller 1117 (e.g., Bluetooth core scheduler or link manager). The Bluetooth hardware 1113 may include a RF transceiver configured to transmit or receive packets on one or more channels of a Bluetooth frequency band. The Bluetooth Tx/RX controller 1117 may execute a channel assessment algorithm to scan channels to classify the channels as corrupted by deep fading, Wi-Fi interference, or weak signal, and to update an AFH channel map showing suspended channels not used for AFH and good channels that may be used for AFH.
[0125] In one embodiment, the Bluetooth device 1111 may include a memory and a processing device (e.g., Bluetooth Tx/RX controller 1117). The memory may be synchronous dynamic random access memory (DRAM), read-only memory (ROM)), or other types of memory, which may be configured to store the code to perform the function of the Bluetooth driver 1115. The processing device may be provided by one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. In an illustrative example, the processing device may comprise a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processing device may also comprise one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device may be configured to execute the operations described herein, in accordance with one or more aspects of the present disclosure, for performing the operations and steps discussed herein.
[0126] A computer-readable medium used to implement operations of various aspects of the disclosure may be non-transitory computer-readable storage medium that may include, but is not limited to, electromagnetic storage medium, magneto-optical storage medium, read-only memory (ROM), random-access memory (RAM), erasable programmable memory (e.g., EPROM and EEPROM), flash memory, or another now-known or later-developed non-transitory type of medium that is suitable for storing configuration information.
[0127] The above description is intended to be illustrative, and not restrictive. Although the present disclosure has been described with references to specific illustrative examples, it will be recognized that the present disclosure is not limited to the examples described. The scope of the disclosure should be determined with reference to the following claims, along with the full scope of equivalents to which the claims are entitled.
[0128] As used herein, the singular forms a, an and the are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms comprises, comprising, may include, and/or including, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Therefore, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.
[0129] It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
[0130] Although the method operations were described in a specific order, it should be understood that other operations may be performed in between described operations, described operations may be adjusted so that they occur at slightly different times or the described operations may be distributed in a system which allows the occurrence of the processing operations at various intervals associated with the processing. For example, certain operations may be performed, at least in part, in a reverse order, concurrently and/or in parallel with other operations.
[0131] Various units, circuits, or other components may be described or claimed as configured to or configurable to perform a task or tasks. In such contexts, the phrase configured to or configurable to is used to connote structure by indicating that the units/circuits/components include structure (e.g., circuitry) that performs the task or tasks during operation. As such, the unit/circuit/component can be said to be configured to perform the task, or configurable to perform the task, even when the specified unit/circuit/component is not currently operational (e.g., is not on). The units/circuits/components used with the configured to or configurable to language include hardwarefor example, circuits, memory storing program instructions executable to implement the operation, etc. Reciting that a unit/circuit/component is configured to perform one or more tasks, or is configurable to perform one or more tasks, is expressly intended not to invoke 35 U.S.C. 112, sixth paragraph, for that unit/circuit/component.
[0132] Additionally, configured to or configurable to can include generic structure (e.g., generic circuitry) that is manipulated by firmware (e.g., an FPGA) to operate in manner that is capable of performing the task(s) at issue. Configured to may also include adapting a manufacturing process (e.g., a semiconductor fabrication facility) to fabricate devices (e.g., integrated circuits) that are adapted to implement or perform one or more tasks. Configurable to is expressly intended not to apply to blank media, an unprogrammed processor, or an unprogrammed programmable logic device, programmable gate array, or other unprogrammed device, unless accompanied by programmed media that confers the ability to the unprogrammed device to be configured to perform the disclosed function(s).
[0133] The foregoing description, for the purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the embodiments and its practical applications, to thereby enable others skilled in the art to best utilize the embodiments and various modifications as may be suited to the particular use contemplated. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.