A channel selection method and chip

By calculating and mapping the channel index value, the problem of limited channel selection in dual Bluetooth systems is solved, the number of available channels is increased, channel isolation is guaranteed, and hardware design complexity is reduced.

CN122179907APending Publication Date: 2026-06-09ACTIONS ZHUHAI TECH CO

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ACTIONS ZHUHAI TECH CO
Filing Date
2024-12-06
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

In existing technologies, dual Bluetooth systems have limited channel selection, leading to increased hardware design complexity and insufficient bandwidth isolation.

Method used

By calculating the count values, channel identifiers, and number of channels used in the first and second Bluetooth subsystems, a channel index value is generated, and the corresponding channel index value is determined based on the channel mapping table. This ensures that the physical bandwidth isolation of the channel corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation in the channel mapping table and the channel mapping table.

Benefits of technology

It increases the number of channels available in the dual Bluetooth system, reduces the complexity of hardware design, and ensures sufficient isolation between channels.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122179907A_ABST
    Figure CN122179907A_ABST
Patent Text Reader

Abstract

The application discloses a channel selection method and a chip. First, a first channel index value corresponding to a first index value is determined based on a first channel mapping table, and a second channel index value corresponding to a second index value is determined based on a second channel mapping table. Then, a channel corresponding to the first channel index value is used as a channel of a first link, and a channel corresponding to the second channel index value is used as a channel of a second link. In the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of two channels corresponding to the same index value is greater than or equal to a preset physical bandwidth isolation. The first index value and the second index value correspond to two links of two Bluetooth subsystems respectively, and the first index value is equal to the second index value. Therefore, the physical bandwidth isolation of the channels corresponding to the two index values is greater than or equal to the preset physical bandwidth isolation. The channel selection method provided by the application can increase the channels available for selection of the two Bluetooth subsystems.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to a channel selection method and chip. Background Technology

[0002] For chips with two Bluetooth subsystems, the available channel ranges can be pre-assigned to each subsystem. For example, for BLE Bluetooth devices, the protocol specifies that the usable signal index values ​​are 0-36. If Bluetooth subsystem 1 selects usable channels only from channel index values ​​0-16, and Bluetooth subsystem 2 selects usable channels only from channel index values ​​20-36, the minimum bandwidth isolation required for the two Bluetooth subsystems to operate, such as 6MHz, can be met.

[0003] Although this channel selection method is relatively simple, the Bluetooth subsystem has a limited number of selectable channels, and the number of available channels decreases as the minimum bandwidth isolation increases. Summary of the Invention

[0004] This invention provides a channel selection method and chip to solve the problem in existing dual Bluetooth systems where there are few channels available for selection between the two Bluetooth subsystems.

[0005] Firstly, this application provides a channel selection method, the method comprising:

[0006] A first index value is calculated based on a first count value, a first channel identifier, and a first number of channels used corresponding to a first link of the first Bluetooth subsystem; and a second index value is calculated based on a second count value, a second channel identifier, and a second number of channels used corresponding to a second link of the second Bluetooth subsystem.

[0007] Based on the first channel mapping table, determine the first channel index value corresponding to the first index value, and based on the second channel mapping table, determine the second channel index value corresponding to the second index value;

[0008] The channel corresponding to the first channel index value is used as the channel of the first link, and the channel corresponding to the second channel index value is used as the channel of the second link.

[0009] Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

[0010] In one possible implementation, the second channel mapping table is determined in the following manner:

[0011] For each index value in the first channel mapping table, determine the first target channel index value corresponding to the index value in the first channel mapping table;

[0012] Determine the second target channel index value corresponding to the next index value in the first channel mapping table;

[0013] If it is determined that the first physical bandwidth isolation is less than the preset physical bandwidth isolation, the next index value corresponding to the second target channel index value is determined in the first channel mapping table, and the step of determining whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0014] All the resulting correspondences are defined as the second channel mapping table;

[0015] The steps following the determination of the second target channel index corresponding to the next index value in the first channel mapping table include:

[0016] Determine whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0017] If the first physical bandwidth isolation is determined to be greater than or equal to the preset physical bandwidth isolation, the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table.

[0018] In one possible implementation, the method further includes:

[0019] If the index value corresponding to the second target channel index value is determined to be the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

[0020] In one possible implementation, after using the correspondence between the index value and the second target channel index value as a correspondence in the second channel mapping table, the method further includes:

[0021] Mark the second target channel index value as a mapped channel;

[0022] Before determining whether the first physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the method further includes:

[0023] It was determined that the second target channel index value was not marked as a mapped channel.

[0024] In one possible implementation, the method further includes:

[0025] Update the third target channel index value corresponding to the target index value in the first channel mapping table;

[0026] Determine the fourth target channel index value corresponding to the next index value in the first channel mapping table;

[0027] Determine whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0028] If it is determined that the second physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value;

[0029] If the second physical bandwidth isolation is determined, the fourth target channel index value corresponding to the next index value is determined in the first channel mapping table, and the step of determining whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0030] In one possible implementation, calculating the first index value based on the first count value, the first channel identifier, and the first number of channels used corresponding to the first link of the first Bluetooth subsystem includes:

[0031] Based on the first count value, the first channel identifier, and the first number of channels used, the first index value is calculated using a channel selection algorithm.

[0032] The calculation of the second index value based on the second count value corresponding to the second link of the second Bluetooth subsystem, the second channel identifier, and the second number of channels used includes:

[0033] Based on the second count value, the second channel identifier, and the second number of channels used, the channel selection algorithm is used to calculate the second index value.

[0034] In one possible implementation, the first channel mapping table is determined in the following manner:

[0035] The index value is determined based on the first number of channels used;

[0036] Based on the usage channel table corresponding to the first link of the first Bluetooth subsystem, determine the available channel index value;

[0037] The determined index values ​​are sorted from smallest to largest, and the determined usable channel index values ​​are also sorted from smallest to largest. The correspondence between the sorted index values ​​and the sorted usable channel index values ​​is used as the first channel mapping table.

[0038] In one possible implementation, before determining the first channel index value corresponding to the first index value based on the first channel mapping table, the method further includes:

[0039] Based on the first count value and the first channel identifier, calculate the first unmapped channel index value. If it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, the channel corresponding to the first unmapped channel index value is used as the channel of the first link. Otherwise, execute the step of determining the first channel index value corresponding to the first index value based on the first channel mapping table.

[0040] Before determining the second channel index value corresponding to the second index value based on the second channel mapping table, the method further includes:

[0041] Based on the second count value and the second channel identifier, calculate the second unmapped channel index value. If it is determined that the channel corresponding to the second unmapped channel index value is a usable channel, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used by the second link. Otherwise, execute the step of determining the second channel index value corresponding to the second index value based on the second channel mapping table.

[0042] Wherein, the first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

[0043] Secondly, this application also provides a chip, comprising:

[0044] The calculation module is used to calculate a first index value based on a first count value, a first channel identifier, and a first number of channels used corresponding to a first link of a first Bluetooth subsystem, and to calculate a second index value based on a second count value, a second channel identifier, and a second number of channels used corresponding to a second link of a second Bluetooth subsystem;

[0045] The first determining module is used to determine a first channel index value corresponding to the first index value based on a first channel mapping table, and to determine a second channel index value corresponding to the second index value based on a second channel mapping table;

[0046] The second determining module is used to use the channel corresponding to the first channel index value as the channel used by the first link, and to use the channel corresponding to the second channel index value as the channel used by the second link.

[0047] Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

[0048] In one possible implementation, the first determining module determines the second channel mapping table in the following manner:

[0049] For each index value in the first channel mapping table, determine the first target channel index value corresponding to the index value in the first channel mapping table;

[0050] Determine the second target channel index value corresponding to the next index value in the first channel mapping table;

[0051] If it is determined that the first physical bandwidth isolation is less than the preset physical bandwidth isolation, the next index value of the second target channel is determined in the first channel mapping table, and the step of determining whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0052] All the resulting correspondences are defined as the second channel mapping table;

[0053] Specifically, the first determining module is used for:

[0054] Determine whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0055] If the first physical bandwidth isolation is determined to be greater than or equal to the preset physical bandwidth isolation, the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table.

[0056] In one possible implementation, the first determining module is further configured to:

[0057] If the index value corresponding to the second target channel index value is determined to be the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

[0058] In one possible implementation, after establishing the correspondence between the index value and the second target channel index value as a correspondence in the second channel mapping table, the first determining module is further configured to:

[0059] Mark the second target channel index value as a mapped channel;

[0060] Before determining whether the first physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the method further includes:

[0061] It was determined that the second target channel index value was not marked as a mapped channel.

[0062] In one possible implementation, the first determining module is further configured to:

[0063] Update the third target channel index value corresponding to the target index value in the first channel mapping table;

[0064] Determine the fourth target channel index value corresponding to the next index value in the first channel mapping table;

[0065] Determine whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0066] If it is determined that the second physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value;

[0067] If the second physical bandwidth isolation is determined, the fourth target channel index value corresponding to the next index value is determined in the first channel mapping table, and the step of determining whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0068] In one possible implementation, the computing module is specifically used for:

[0069] Based on the first count value, the first channel identifier, and the first number of channels in use, a channel selection algorithm is used to calculate the first index value; and

[0070] Based on the second count value, the second channel identifier, and the second number of channels used, the channel selection algorithm is used to calculate the second index value.

[0071] In one possible implementation, the first determining module determines the first channel mapping table in the following manner:

[0072] The index value is determined based on the first number of channels used;

[0073] Based on the usage channel table corresponding to the first link of the first Bluetooth subsystem, determine the available channel index value;

[0074] The determined index values ​​are sorted from smallest to largest, and the determined usable channel index values ​​are also sorted from smallest to largest. The correspondence between the sorted index values ​​and the sorted usable channel index values ​​is used as the first channel mapping table.

[0075] In one possible implementation, before determining the first channel index value corresponding to the first index value based on the first channel mapping table, the calculation module is further configured to:

[0076] Based on the first count value and the first channel identifier, calculate the first unmapped channel index value. If it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, the channel corresponding to the first unmapped channel index value is used as the channel of the first link. Otherwise, execute the step of determining the first channel index value corresponding to the first index value based on the first channel mapping table.

[0077] Before determining the second channel index value corresponding to the second index value based on the second channel mapping table, the calculation module is further configured to:

[0078] Based on the second count value and the second channel identifier, calculate the second unmapped channel index value. If it is determined that the channel corresponding to the second unmapped channel index value is a usable channel, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used by the second link. Otherwise, execute the step of determining the second channel index value corresponding to the second index value based on the second channel mapping table.

[0079] Wherein, the first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

[0080] Thirdly, this application also provides a chip, comprising:

[0081] At least one processor, and

[0082] Memory connected to the at least one processor;

[0083] The memory stores instructions executable by the at least one processor, which executes the instructions stored in the memory to perform the method as described in any of the first aspects.

[0084] The beneficial effects of this invention are as follows:

[0085] This application provides a channel selection method and chip. The method includes: determining a first channel index value corresponding to a first index value based on a first channel mapping table; determining a second channel index value corresponding to a second index value based on a second channel mapping table; and finally, using the channel corresponding to the first channel index value as the channel used by the first link and the channel corresponding to the second channel index value as the channel used by the second link. In the first and second channel mapping tables, the physical bandwidth isolation between two channels corresponding to the same index value is greater than or equal to a preset physical bandwidth isolation. Since the first index value is calculated based on a first count value, a first channel identifier, and a first number of used channels corresponding to the first link of the first Bluetooth subsystem, and the second index value is calculated based on a second count value, a second channel identifier, and a second number of used channels corresponding to the second link of the second Bluetooth subsystem, the count values, channel identifiers, and number of used channels of the two links in the two Bluetooth subsystems are all equal. Therefore, the first index value and the second index value are equal, resulting in a physical bandwidth isolation between the channel corresponding to the first channel index value and the channel corresponding to the second index value being greater than or equal to the preset physical bandwidth isolation. Using the channel selection method provided in this application, the number of selectable channels for two Bluetooth subsystems can be increased. Attached Figure Description

[0086] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0087] Figure 1A flowchart illustrating a channel selection method provided in an embodiment of this application;

[0088] Figure 2 This is an overall block diagram of a channel selection algorithm #2 provided in an embodiment of this application;

[0089] Figure 3 A schematic diagram of the upper processing method of a channel selection algorithm #2 provided in an embodiment of this application;

[0090] Figure 4 A schematic diagram of the lower processing method of a channel selection algorithm #2 provided in an embodiment of this application;

[0091] Figure 5 A timing diagram illustrating simultaneous transmission of two Bluetooth subsystems provided in an embodiment of this application;

[0092] Figure 6 This is a schematic diagram of the structure of a chip provided in an embodiment of this application;

[0093] Figure 7 This is a schematic diagram of another chip structure provided in an embodiment of this application. Detailed Implementation

[0094] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are merely some embodiments of this invention, and not all embodiments. Based on the embodiments of this invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this invention.

[0095] If two Bluetooth subsystems are integrated on a single chip, each capable of independently implementing complete Bluetooth wireless transmission and reception functions, and each with its own independent antenna, we call this dual Bluetooth.

[0096] Because the two Bluetooth subsystems in a dual-Bluetooth system are integrated on the same chip, their radio frequency modules are very close together. If both subsystems operate simultaneously, significant interference will occur. To reduce hardware design complexity, the software design must ensure that the Bluetooth modules of both subsystems can transmit and receive simultaneously, while also guaranteeing sufficient isolation bandwidth for the channels used during simultaneous transmission and reception.

[0097] This application provides a channel selection method applied to dual Bluetooth chips, specifically, as shown in the embodiments below. Figure 1 As shown, it includes the following steps:

[0098] S101. Calculate a first index value based on the first count value, the first channel identifier, and the first number of channels used corresponding to the first link of the first Bluetooth subsystem; and calculate a second index value based on the second count value, the second channel identifier, and the second number of channels used corresponding to the second link of the second Bluetooth subsystem.

[0099] S102. Based on the first channel mapping table, determine the first channel index value corresponding to the first index value, and based on the second channel mapping table, determine the second channel index value corresponding to the second index value.

[0100] S103. The channel corresponding to the first channel index value is used as the channel of the first link, and the channel corresponding to the second channel index value is used as the channel of the second link.

[0101] Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

[0102] In this embodiment, a first channel index value corresponding to a first index value is determined based on a first channel mapping table, and a second channel index value corresponding to a second index value is determined based on a second channel mapping table. Finally, the channel corresponding to the first channel index value is used as the channel of the first link, and the channel corresponding to the second channel index value is used as the channel of the second link. In the first and second channel mapping tables, the physical bandwidth isolation between the two channels corresponding to the same index value is greater than or equal to a preset physical bandwidth isolation. Since the first index value is calculated based on the first count value, the first channel identifier, and the first number of used channels corresponding to the first link of the first Bluetooth subsystem, and the second index value is calculated based on the second count value, the second channel identifier, and the second number of used channels corresponding to the second link of the second Bluetooth subsystem, the count value, channel identifier, and number of used channels of the two links in the two Bluetooth subsystems are all equal. Therefore, the first index value and the second index value are equal, so that the physical bandwidth isolation between the channel corresponding to the first channel index value and the channel corresponding to the second index value is greater than or equal to the preset physical bandwidth isolation. By using the channel selection method provided in this embodiment, the number of channels available for selection in the two Bluetooth subsystems can be increased.

[0103] In this embodiment of the application, the first Bluetooth subsystem and the second Bluetooth subsystem are located on the same chip, the first Bluetooth subsystem corresponds to the first link, and the second Bluetooth subsystem corresponds to the second link.

[0104] In specific implementation, a channel selection algorithm is used to calculate a first index value based on a first count value, a first channel identifier, and a first number of channels in use corresponding to a first link of the first Bluetooth subsystem; the same channel selection algorithm is used to calculate a second index value based on a second count value, a second channel identifier, and a second number of channels in use corresponding to a second link of the second Bluetooth subsystem.

[0105] The channel selection algorithm in this application embodiment can be channel selection algorithm #2. The channel selection algorithm #2 will be explained below using the BIS event as an example.

[0106] According to the Bluetooth specification, BIS events need to use channel selection algorithm #2, such as... Figure 2 The diagram shown is an overall block diagram of channel selection algorithm #2. Channel selection algorithm #2 covers most scenarios of channel selection for Bluetooth Low Energy (LE) devices, including channel selection for connection events, channel selection for periodic broadcast events, and channel selection for isochronous events (which may be BIS or CIS events).

[0107] like Figure 2 As shown, the channel selection algorithm #2 is divided into two parts. If no sub-events are included, the upper part is used to generate the event channel index value. If sub-events are included, the upper part is used to generate the sub-event channel index value for the first sub-event, and the lower part is used to generate the sub-event channel index values ​​for all other sub-events. BIS events, as a type of isochronous event, have sub-events. The first sub-event in each event uses the sub-event channel index value generated in the upper part of the event mapping; all other sub-events use the sub-event channel index values ​​generated in the lower part of the sub-event mapping.

[0108] The input parameters for channel selection algorithm #2 are a 16-bit counter, a 16-bit channel identifier, a 6-bit number of channels to use N, and a remapping table. The first two inputs (the 16-bit counter and the 16-bit channel identifier) ​​are used to generate a pseudo-random number prn and an unmapped channel index value, while the last two inputs (the 6-bit number of channels to use N and the remapping table) are used to obtain the final channel index value.

[0109] The 16-bit counter corresponds to the event counter value of the LE link, such as the connection event counter value of ACL events and the periodic broadcast event counter value (paEventCounter). For event counters exceeding 16 bits, only the lower 16 bits are used. For example, the BIS event counter value (bigEventCounter) is 39 bits, so bits 0 to 15 are used as the 16-bit counter value.

[0110] The 16-bit channelIdentifier is obtained by XORing the high 16 bits and low 16 bits of the access address.

[0111] According to the Bluetooth protocol, LE devices use physical channel index values ​​ranging from 0 to 36. If 37 bits are used to represent the usage of 37 channels, the lowest bit corresponds to channel index value 0, and the highest bit corresponds to channel index value 36. When the value of a corresponding bit is 0, it indicates that the corresponding channel index value is unavailable. We call this mapping table the used channels map. The number of channels N used is calculated based on the used channels map, and then sorted in ascending order of the used channel index values ​​to generate the channel mapping table.

[0112] like Figure 3 As shown, this is an embodiment provided in this application. Figure 2 This diagram illustrates the specific implementation of mapping events to used channel indices, specifically how to map unmapped channel index values ​​to event channel index values ​​that are ultimately used.

[0113] Figure 3 In the process, when the channel corresponding to the unmapped channel index value is an available channel, the channel corresponding to the unmapped channel index value is used directly. When the channel corresponding to the unmapped channel index value is an unavailable channel, the mapping index value (remappingIndex), that is, the index value in the channel mapping table, is calculated using the first pseudo-random number prn_e and N, and then the channel index value of the corresponding event is searched from the remapping table.

[0114] like Figure 4 As shown, this is an embodiment provided in this application. Figure 2 The diagram illustrates the specific implementation of mapping neutron events to used channel indices, specifically how to obtain the channel index value of the used sub-event from pseudo-random numbers.

[0115] Figure 4In this context, n represents the current sub-event count value. The decision to use [the service / method] is based on the sub-event count value n. Figure 4 Process the channel index value of the sub-event. If the sub-event count value n is greater than 2, then use... Figure 4 When processing the channel index values ​​of sub-events, it should be noted that if n=2, the channel index values ​​are also used. Figure 4 The process is handled in the middle, but the "previous index value" is used as the input parameter. If n is greater than 2, the "previous sub-event index value" is used as an input parameter.

[0116] Figure 4 in, formula In this context, N represents the number of channels used, d represents the minimum channel index distance between adjacent sub-events, and prenSubEvent_se se_n The first pseudo-random number for the sub-event.

[0117] Figure 4 In this case, as long as the previous index value (remappingIndexOfLastUsedChannel) and the pseudo-random number of the sub-event (prnSubEvent_se) are the same, the processing is relatively simple.

[0118] In one embodiment, if the first link and the second link belong to the same BIS link of the same BIG, then the first link and the second link have the same anchor point, the same event count value, and the same sub-event count value. Since the first link and the second link belong to the same BIG, the channel usage tables of the first link and the second link are the same, and the number of channels used calculated based on the channel usage tables is the same.

[0119] The channel identifier of the first link is known. Based on the seed access address, the same channel identifier as the first link can be obtained. That is, the channel identifier obtained based on the seed access address is used as the channel identifier of the second link, so that the channel identifier of the first link and the channel identifier of the second link are the same.

[0120] In another embodiment, if the first link and the second link do not belong to the same BIG BIS link, the first Bluetooth subsystem informs the second Bluetooth subsystem of the channel identifier used by the first link through Bluetooth inter-link messaging.

[0121] In specific implementation, before determining the first channel index value corresponding to the first index value based on the first channel mapping table, and before determining the second channel index value corresponding to the second index value based on the second channel mapping table, a channel selection algorithm is used to calculate the first unmapped channel index value and the first random number based on the first count value and the first channel identifier, and a channel selection algorithm is used to calculate the second unmapped channel index value and the second pseudo-random number based on the second count value and the second channel identifier.

[0122] Determine whether the channel corresponding to the first unmapped channel index value is a usable channel. If so, use the channel corresponding to the first unmapped channel index value as the usable channel for the first link; otherwise, calculate the first index value using a channel selection algorithm based on the first pseudo-random number and the first number of usable channels.

[0123] Determine whether the channel corresponding to the second unmapped channel index value is a usable channel. If it is, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used for the second link. Otherwise, calculate the second index value based on the second pseudo-random number and the second number of channels used, using a channel selection algorithm.

[0124] The first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

[0125] The channel selection algorithm can be channel selection algorithm #2.

[0126] In this embodiment, since the first unmapped channel index value is the same as the second unmapped channel index value, when it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, it is also determined that the channel corresponding to the second unmapped channel index value is a usable channel. That is, the channel corresponding to the first unmapped channel index value is the same as the channel corresponding to the second unmapped channel index value. If the channel corresponding to the first unmapped channel index value is used as the channel for the first link, then the channel cannot be used as the channel for the second link. Therefore, based on the second channel mapping table, the target channel index value corresponding to the target index value is determined, and the channel corresponding to the target channel index value is used as the channel for the second link. The target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value. Since the first unmapped channel index value and the second unmapped channel index value are the same, the target index value is also the index value in the first channel mapping table that corresponds to the second unmapped channel index value.

[0127] The first channel mapping table in this embodiment can be obtained in the following way: First, based on the first number of channels in use, determine the index value; then, based on the channel usage table corresponding to the first link of the first Bluetooth subsystem, determine the index value of the usable channel; finally, sort the determined index values ​​from smallest to largest, and sort the determined index values ​​of the usable channel from smallest to largest, and use the correspondence between the sorted index values ​​and the sorted index values ​​of the usable channel as the first channel mapping table.

[0128] For example, if the available channel index values ​​in the first link's channel usage table are 7, 10, and 15, and the number of first available channels determined based on this channel usage table is 3, and the index values ​​determined based on the number of first available channels 3 are 0, 1, and 2, then the available channel index values ​​7, 10, and 15 are sorted from smallest to largest, and the index values ​​0, 1, and 2 are also sorted from smallest to largest. The correspondence between index value 0 and available channel index value 7, the correspondence between index value 1 and available channel index value 10, and the correspondence between index value 2 and available channel index value 15 are used as the first channel mapping table.

[0129] After obtaining the first channel mapping table, the first channel mapping table is remapped to obtain the second channel mapping table. In the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the channel corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

[0130] The following is a detailed description of how the first channel mapping table is remapped to obtain a second channel mapping table according to an embodiment of this application.

[0131] For each index value in the first channel mapping table, determine the first target channel index value corresponding to that index value in the first channel mapping table, determine the second target channel index value corresponding to the next index value in the first channel mapping table, and determine whether the physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to a preset physical bandwidth isolation. If it is greater than or equal to, then the correspondence between that index value and the second target channel index value is used as a correspondence in the second channel mapping table. If it is less than, then return to the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table.

[0132] For example, if the first channel mapping table has three index values ​​0, 1, and 2, then first determine the channel index value corresponding to index value 0 in the first channel mapping table. Then determine the channel index value corresponding to index value 1 in the first channel mapping table. Determine the physical bandwidth isolation between the channel corresponding to index value 0 and the channel corresponding to index value 1. If the physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, then use the correspondence between the channel index value corresponding to index value 1 and index value 0 as a correspondence in the second channel mapping table. If the physical bandwidth isolation is less than the preset physical isolation, then determine the channel index value corresponding to index value 2, which is the channel index value corresponding to the next index value of index value 1. Determine the physical bandwidth isolation between the channel corresponding to index value 2 and the channel corresponding to index value 0, and so on.

[0133] It should be noted that in the process of determining the physical bandwidth isolation between the channel corresponding to index value 2 and the channel corresponding to index value 0, the channel index value corresponding to index value 0 is first determined in the first channel mapping table, and then the channel index value corresponding to index value 2 is determined. The physical bandwidth isolation is determined based on the two channel index values, which is the physical bandwidth isolation between the two channel index values.

[0134] In practice, if the index value corresponding to the second target channel index value is the last index value in the first channel mapping table, then the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

[0135] For example, if the first channel mapping table has three index values ​​0, 1, and 2, and it is determined that the physical bandwidth isolation between the channel corresponding to index value 2 and the channel corresponding to index value 1 is less than the preset physical bandwidth isolation, then it is necessary to determine the channel index value corresponding to the next index value. However, since index value 2 is the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the judgment continues. That is, first determine the channel index value corresponding to index value 0, and then determine the physical bandwidth isolation between the channel corresponding to index value 0 and the channel corresponding to index value 1.

[0136] In specific implementation, in order to avoid duplicate channel index values ​​in the second channel mapping table, after the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table, the second target channel index value is marked as a mapped channel; before determining whether the physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation, it is determined that the second target channel index value has not been marked as a mapped channel.

[0137] In one embodiment, if the channel index value in the first channel mapping table is updated, the second channel mapping table also needs to be updated. Specifically, the third target channel index value corresponding to the target index value in the first channel mapping table is updated, the fourth target channel index value corresponding to the next index value in the first channel mapping table is determined, and it is determined whether the physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to a preset physical bandwidth isolation. If it is greater than or equal to, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value; if it is less than, the step of determining the fourth target channel index value corresponding to the next index value in the first channel mapping table is returned.

[0138] For ease of understanding, this application will be described in detail below with reference to specific embodiments.

[0139] In a dual Bluetooth system, one Bluetooth subsystem is designated BT0, and the other BT1. There are currently two BIS links: BIS1 and BIS2, both belonging to the same BIG. Bluetooth subsystem BT0 is responsible for the BIS1 link, and Bluetooth subsystem BT1 is responsible for the BIS2 link. For example... Figure 5 The figure shows a timing diagram of Bluetooth subsystem BT0 and Bluetooth subsystem BT1 transmitting simultaneously.

[0140] BIS1 and BIS2 links share the same anchor point, and both transmit Event x Subevt 1 data packets from this same anchor point. The event count (both are x) and sub-event count (both are 1) are identical for both links. Since BIS1 and BIS2 belong to the same BIG, their channel tables are identical, and therefore, they use the same number of channels.

[0141] The access address of a BIS link is generated by the seed access address (SAA) according to a pre-defined rule. Since BIS1 and BIS2 belong to the same BIG, they have the same seed access address. Therefore, BIS2 can obtain the access address of BIS1 through the SAA, and thus obtain the same channelIdentifier as BIS1.

[0142] from Figure 2As can be seen, the same input parameters counter and channelIdentifier can produce the same output unmapped channel index value, prn_e, and pseudo-random sub-event (prnSubEvent_se).

[0143] If using Figure 2 The lower half of the process involves calculating the mapping index using prn_e and the number of channels N, and then looking up the corresponding event channel index in the remapping table. Therefore, it is sufficient to ensure that the physical channels corresponding to the channel index values ​​at the same index position in the remapping tables of BT0 and BT1 links meet the minimum isolation requirement.

[0144] In specific implementation, the first channel mapping table remapping table1 of the BIS1 link in Bluetooth subsystem BT0 is still generated in ascending order of the channel index values ​​used. The second channel mapping table remapping table2 of the BIS2 link in Bluetooth subsystem BT1 is obtained by remapping with reference to the first channel mapping table remapping table1 of the BIS1 link.

[0145] Specifically, starting from index 0 of the first channel mapping table (remapping table1) of the BIS1 link, the system searches sequentially forward, recording the channels that meet the preset physical bandwidth isolation for each index value in remapping table1, thus generating the second channel mapping table (remapping table2) for use by the BIS2 link. Recorded channels are marked as already used and will not be used by subsequent indexes to prevent different index values ​​from corresponding to the same channel in remapping table2.

[0146] The following example illustrates the process of remapping a table:

[0147] Index value Channel 0 6 1 7 2 16 3 17 4 18 5 33 6 34 7 35 8 36

[0148] Table 1

[0149] Index value Channel 0 16 1 17 2 33 3 34 4 35 5 36 6 6 7 7 8 18

[0150] Table 2

[0151] Assuming the channel table used is 0x1E000700C0, its corresponding first channel mapping table, remapping table1, is shown in Table 1. The total number of available channels is 9, with index values ​​of 0, 1, 2, 3, 4, 5, 6, 7, and 8. If the preset physical bandwidth isolation is 6MHz, meaning the minimum physical bandwidth isolation requirement is 6MHz, remapping is performed starting from index 0 in the first channel mapping table and proceeding sequentially.

[0152] As shown in Table 1, the channel index value corresponding to index 0 is 6, and the channel index value corresponding to the next index 1 is 7. Channel index value 7 and channel index value 6 are only 2MHz apart, which does not meet the requirement. Continuing to search for the next index after index 1, i.e., index 2, the channel index value corresponding to index 2 is 16. Channel index value 16 and channel index value 6 are 22MHz apart, which meets the requirement. Therefore, the remapped channel index value corresponding to index 0 is 16. Figure 2 As shown, the channel index value corresponding to index 0 in the second channel mapping table is 16, and the channel index value 16 is marked as already mapped.

[0153] After remapping the channel index value of index 0, the channel index value of index 1 is remapped. In the first channel mapping table, the channel index value corresponding to index 1 is 7. The next index after index 1 is determined, i.e., index 2. The channel index value corresponding to index 2 is determined to be 16. Since channel index value 16 is marked as already mapped, it is skipped, and the channel index value corresponding to the next index is found, i.e., the channel index value corresponding to index 3. The channel index value corresponding to index 3 is 17. The channel index value 17 is 22MHz away from channel index value 7, which meets the requirement. Therefore, as... Figure 2 As shown, the channel index value corresponding to index 1 in the second channel mapping table is 17, and the channel index value 17 is marked as already mapped.

[0154] Similarly, the channel index values ​​for the remapping of indices 2 to 5 can be obtained.

[0155] In the first channel mapping table, the channel index value corresponding to index 6 is 34, and the channel index value corresponding to the next index 7 is 35. Since channel index value 35 is marked as already mapped, it is skipped. The next index, 8, corresponds to channel index value 36. Since channel index value 36 is marked as already mapped, it is skipped. Because index 8 is the last index in the first channel mapping table, we need to loop back to the first index in the first channel mapping table, i.e., index 0, and continue the search. The channel index value 6 corresponding to index 0 in the first channel mapping table is 58MHz apart from 34, which meets the requirement. Therefore, in the second channel mapping table, the remapped channel index value corresponding to index 6 is 6, as shown in Table 2, and channel index value 6 is marked as already mapped.

[0156] In practice, when performing a remapping lookup for each index, it starts from the index immediately following it, continues to the last index, and then loops back to index 0 to start the sequential search again, until it finds the index preceding the one being remapped. For example, the remapping process for index 6 first searches for indices 7 and 8, then loops back to index 0, and at most ends at index 5.

[0157] Similarly, the remapping channel index values ​​for indices 7 and 8 can be obtained.

[0158] If the search ends without finding a suitable channel index value, to prevent the failure to find a channel index value that meets the preset physical bandwidth isolation, a limit needs to be placed on the minimum number of available channels. Specifically, the device responsible for generating the channel table can be configured to ensure that the number of available channels in its generated channel table is not less than the minimum number of available channels. For example, if the preset physical bandwidth isolation is 6MHz, and the minimum interval between two adjacent BLE channel index values ​​is 2MHz (channel index values ​​10 and 11 are special, separated by 4MHz), then when the minimum number of available channels is ((6 / 2)+1)=4, the remapping process will definitely find a suitable channel index value.

[0159] Table 3 shows the relationship between BLE channel index values ​​and actual RF physical channels. Channel index values ​​37, 38, and 39 correspond to channels reserved for BLE main broadcast, while the channel index values ​​used for general channels are 0 to 36.

[0160] It should be noted that, Figure 3 The physical channel identifier in the table is the channel index value mentioned above.

[0161]

[0162]

[0163] Table 3

[0164] if Figure 3 The upper branch is used, meaning that if the unmapped channel index value is a usable channel index value, then the BIS1 link in Bluetooth subsystem BT0 still processes it according to the standard channel selection algorithm #2, generating the corresponding channel index value and the previous index value (remappingIndexOfLastUsedChannel). After Bluetooth subsystem BT1 calculates the second unmapped channel index value and determines that the channel corresponding to the second unmapped channel index value is a usable channel, it first obtains the index value corresponding to the second unmapped channel index value based on the original remapping table, and then obtains the corresponding channel index value from the remapping table based on the obtained index value. The first and second unmapped channel index values ​​are equal, and the previous index value found by Bluetooth subsystem BT0 is the same as the index value obtained by Bluetooth subsystem BT1 based on the original remapping table. The original remapping table is the first channel mapping table, and the remapping table is the second channel mapping table.

[0165] For the sub-event channel index, since the remappingIndexOfLastUsedChannel and prnSubEvent_se are guaranteed to be the same for both BIS1 and BIS2 links, the final output sub-event channel index value subEventIndex is also the same. Next, we only need to retrieve the channel index value of subEventIndex from the original remapping table (first channel mapping table) and the remapping table (second channel mapping table) for both BIS1 and BIS2 links, respectively.

[0166] Based on the same inventive concept, this invention also provides a chip. Specific implementation details of this chip can be found in the description of the method embodiments section; repeated details will not be repeated here. Figure 6 The device includes:

[0167] The calculation module 601 is used to calculate a first index value based on a first count value, a first channel identifier, and a first number of channels used corresponding to a first link of the first Bluetooth subsystem, and to calculate a second index value based on a second count value, a second channel identifier, and a second number of channels used corresponding to a second link of the second Bluetooth subsystem.

[0168] The first determining module 602 is used to determine a first channel index value corresponding to the first index value based on a first channel mapping table, and to determine a second channel index value corresponding to the second index value based on a second channel mapping table.

[0169] The second determining module 603 is used to determine the channel corresponding to the first channel index value as the channel used by the first link, and to determine the channel corresponding to the second channel index value as the channel used by the second link.

[0170] Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

[0171] In one embodiment, the first determining module 602 determines the second channel mapping table in the following manner:

[0172] For each index value in the first channel mapping table, determine the first target channel index value corresponding to the index value in the first channel mapping table;

[0173] Determine the second target channel index value corresponding to the next index value in the first channel mapping table;

[0174] If the first physical bandwidth isolation is determined to be less than the preset physical bandwidth isolation, the next index value of the second target channel is determined in the first channel mapping table, and the step of determining whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0175] All the resulting correspondences are defined as the second channel mapping table;

[0176] Specifically, the first determining module 602 is used for:

[0177] Determine whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0178] If the first physical bandwidth isolation is determined to be greater than or equal to the preset physical bandwidth isolation, the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table.

[0179] In one embodiment, the first determining module 602 is further configured to:

[0180] If the index value corresponding to the second target channel index value is determined to be the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

[0181] In one embodiment, after the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table, the first determining module 602 is further configured to:

[0182] Mark the second target channel index value as a mapped channel;

[0183] Before determining whether the first physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the method further includes:

[0184] It was determined that the second target channel index value was not marked as a mapped channel.

[0185] In one embodiment, the first determining module 602 is further configured to:

[0186] Update the third target channel index value corresponding to the target index value in the first channel mapping table;

[0187] Determine the fourth target channel index value corresponding to the next index value in the first channel mapping table;

[0188] Determine whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0189] If it is determined that the second physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value;

[0190] If the second physical bandwidth isolation is determined, the fourth target channel index value corresponding to the next index value is determined in the first channel mapping table, and the step of determining whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0191] In one embodiment, the computing module 601 is specifically used for:

[0192] Based on the first count value, the first channel identifier, and the first number of channels in use, a channel selection algorithm is used to calculate the first index value; and

[0193] Based on the second count value, the second channel identifier, and the second number of channels used, the channel selection algorithm is used to calculate the second index value.

[0194] In one embodiment, the first determining module 602 determines the first channel mapping table in the following manner:

[0195] The index value is determined based on the first number of channels used;

[0196] Based on the usage channel table corresponding to the first link of the first Bluetooth subsystem, determine the available channel index value;

[0197] The determined index values ​​are sorted from smallest to largest, and the determined usable channel index values ​​are also sorted from smallest to largest. The correspondence between the sorted index values ​​and the sorted usable channel index values ​​is used as the first channel mapping table.

[0198] In one embodiment, before determining the first channel index value corresponding to the first index value based on the first channel mapping table, the calculation module 601 is further configured to:

[0199] Based on the first count value and the first channel identifier, calculate the first unmapped channel index value. If it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, the channel corresponding to the first unmapped channel index value is used as the channel of the first link. Otherwise, execute the step of determining the first channel index value corresponding to the first index value based on the first channel mapping table.

[0200] Before determining the second channel index value corresponding to the second index value based on the second channel mapping table, the calculation module 601 is further configured to:

[0201] Based on the second count value and the second channel identifier, calculate the second unmapped channel index value. If it is determined that the channel corresponding to the second unmapped channel index value is a usable channel, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used by the second link. Otherwise, execute the step of determining the second channel index value corresponding to the second index value based on the second channel mapping table.

[0202] Wherein, the first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

[0203] Based on the same inventive concept, embodiments of the present invention also provide another chip. Specific implementation details of this chip can be found in the description of the method embodiments section; repeated details will not be repeated here. Figure 7 The device includes:

[0204] At least one processor 701, and

[0205] Memory 702 connected to the at least one processor 701;

[0206] The memory 702 stores instructions that can be executed by the at least one processor 701. The at least one processor 701 executes the following steps by executing the instructions stored in the memory:

[0207] A first index value is calculated based on a first count value, a first channel identifier, and a first number of channels used corresponding to a first link of the first Bluetooth subsystem; and a second index value is calculated based on a second count value, a second channel identifier, and a second number of channels used corresponding to a second link of the second Bluetooth subsystem.

[0208] Based on the first channel mapping table, determine the first channel index value corresponding to the first index value, and based on the second channel mapping table, determine the second channel index value corresponding to the second index value;

[0209] The channel corresponding to the first channel index value is used as the channel of the first link, and the channel corresponding to the second channel index value is used as the channel of the second link.

[0210] Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

[0211] In one embodiment, the processor 701 determines the second channel mapping table in the following manner:

[0212] For each index value in the first channel mapping table, determine the first target channel index value corresponding to the index value in the first channel mapping table;

[0213] Determine the second target channel index value corresponding to the next index value in the first channel mapping table;

[0214] If the first physical bandwidth isolation is determined to be less than the preset physical bandwidth isolation, the next index value of the second target channel is determined in the first channel mapping table, and the step of determining whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0215] All the resulting correspondences are defined as the second channel mapping table;

[0216] Processor 701 is specifically used for:

[0217] Determine whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0218] If the first physical bandwidth isolation is determined to be greater than or equal to the preset physical bandwidth isolation, the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table.

[0219] In one embodiment, the processor 701 is further configured to:

[0220] If the index value corresponding to the second target channel index value is determined to be the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

[0221] In one embodiment, after setting the correspondence between the index value and the second target channel index value as a correspondence in the second channel mapping table, the processor 701 is further configured to:

[0222] Mark the second target channel index value as a mapped channel;

[0223] Before determining whether the first physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the method further includes:

[0224] It was determined that the second target channel index value was not marked as a mapped channel.

[0225] In one embodiment, the processor 701 is further configured to:

[0226] Update the third target channel index value corresponding to the target index value in the first channel mapping table;

[0227] Determine the fourth target channel index value corresponding to the next index value in the first channel mapping table;

[0228] Determine whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation.

[0229] If it is determined that the second physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value;

[0230] If the second physical bandwidth isolation is determined, the fourth target channel index value corresponding to the next index value is determined in the first channel mapping table, and the step of determining whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

[0231] In one embodiment, processor 701 is specifically used for:

[0232] Based on the first count value, the first channel identifier, and the first number of channels in use, a channel selection algorithm is used to calculate the first index value; and

[0233] Based on the second count value, the second channel identifier, and the second number of channels used, the channel selection algorithm is used to calculate the second index value.

[0234] In one embodiment, the processor 701 determines the first channel mapping table in the following manner:

[0235] The index value is determined based on the first number of channels used;

[0236] Based on the usage channel table corresponding to the first link of the first Bluetooth subsystem, determine the available channel index value;

[0237] The determined index values ​​are sorted from smallest to largest, and the determined usable channel index values ​​are also sorted from smallest to largest. The correspondence between the sorted index values ​​and the sorted usable channel index values ​​is used as the first channel mapping table.

[0238] In one embodiment, before determining the first channel index value corresponding to the first index value based on the first channel mapping table, the processor 701 is further configured to:

[0239] Based on the first count value and the first channel identifier, calculate the first unmapped channel index value. If it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, the channel corresponding to the first unmapped channel index value is used as the channel of the first link. Otherwise, execute the step of determining the first channel index value corresponding to the first index value based on the first channel mapping table.

[0240] Before determining the second channel index value corresponding to the second index value based on the second channel mapping table, the processor 701 is further configured to:

[0241] Based on the second count value and the second channel identifier, calculate the second unmapped channel index value. If it is determined that the channel corresponding to the second unmapped channel index value is a usable channel, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used by the second link. Otherwise, execute the step of determining the second channel index value corresponding to the second index value based on the second channel mapping table.

[0242] Wherein, the first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

[0243] This application provides a channel selection method and chip. The method includes: determining a first channel index value corresponding to a first index value based on a first channel mapping table; determining a second channel index value corresponding to a second index value based on a second channel mapping table; and finally, using the channel corresponding to the first channel index value as the channel used by the first link and the channel corresponding to the second channel index value as the channel used by the second link. In the first and second channel mapping tables, the physical bandwidth isolation between two channels corresponding to the same index value is greater than or equal to a preset physical bandwidth isolation. Since the first index value is calculated based on a first count value, a first channel identifier, and a first number of used channels corresponding to the first link of the first Bluetooth subsystem, and the second index value is calculated based on a second count value, a second channel identifier, and a second number of used channels corresponding to the second link of the second Bluetooth subsystem, the count values, channel identifiers, and number of used channels of the two links in the two Bluetooth subsystems are all equal. Therefore, the first index value and the second index value are equal, resulting in a physical bandwidth isolation between the channel corresponding to the first channel index value and the channel corresponding to the second index value being greater than or equal to the preset physical bandwidth isolation. Using the channel selection method provided in this application, the number of selectable channels for two Bluetooth subsystems can be increased.

[0244] The present application has been described above with reference to block diagrams and / or flowcharts illustrating methods, apparatus (systems), and / or computer program products according to embodiments of the present application. It should be understood that a block of a block diagram and / or flowchart, as well as combinations of blocks of block diagrams and / or flowcharts, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, and / or other programmable data processing means to produce a machine, such that the instructions, executable via the computer processor and / or other programmable data processing means, create methods for implementing the functions / actions specified in the blocks of the block diagrams and / or flowcharts.

[0245] Accordingly, this application can also be implemented using hardware and / or software (including firmware, resident software, microcode, etc.). Furthermore, this application can take the form of a computer program product on a computer-usable or computer-readable storage medium, having computer-usable or computer-readable program code implemented in the medium for use by or in conjunction with an instruction execution system. In the context of this application, a computer-usable or computer-readable medium can be any medium that can contain, store, communicate, transmit, or deliver a program for use by or in conjunction with an instruction execution system, apparatus, or device.

[0246] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.

Claims

1. A channel selection method, characterized in that, The method includes: A first index value is calculated based on a first count value, a first channel identifier, and a first number of channels used corresponding to a first link of the first Bluetooth subsystem; and a second index value is calculated based on a second count value, a second channel identifier, and a second number of channels used corresponding to a second link of the second Bluetooth subsystem. Based on the first channel mapping table, determine the first channel index value corresponding to the first index value, and based on the second channel mapping table, determine the second channel index value corresponding to the second index value; The channel corresponding to the first channel index value is used as the channel of the first link, and the channel corresponding to the second channel index value is used as the channel of the second link. Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

2. The method as described in claim 1, characterized in that, The second channel mapping table is determined in the following manner: For each index value in the first channel mapping table, determine the first target channel index value corresponding to the index value in the first channel mapping table; Determine the second target channel index value corresponding to the next index value in the first channel mapping table; If it is determined that the first physical bandwidth isolation is less than the preset physical bandwidth isolation, the process returns to determining the second target channel index value corresponding to the next index value in the first channel mapping table, and then returns to the step of determining whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation. All the resulting correspondences are defined as the second channel mapping table; The step of determining the second target channel index value corresponding to the next index value in the first channel mapping table includes: Determine whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation. If the first physical bandwidth isolation is determined to be greater than or equal to the preset physical bandwidth isolation, the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table.

3. The method as described in claim 2, characterized in that, The method further includes: If the index value corresponding to the second target channel index value is determined to be the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

4. The method as described in claim 2, characterized in that, After using the correspondence between the index value and the second target channel index value as a correspondence in the second channel mapping table, the method further includes: Mark the second target channel index value as a mapped channel; Before determining whether the first physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the method further includes: It was determined that the second target channel index value was not marked as a mapped channel.

5. The method as described in claim 2, characterized in that, The method also includes: Update the third target channel index value corresponding to the target index value in the first channel mapping table; Determine the fourth target channel index value corresponding to the next index value in the first channel mapping table; Determine whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation. If it is determined that the second physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value; If the second physical bandwidth isolation is determined, the fourth target channel index value corresponding to the next index value is determined in the first channel mapping table, and the step of determining whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

6. The method according to any one of claims 1 to 5, characterized in that, The calculation of the first index value based on the first count value, the first channel identifier, and the first number of channels used corresponding to the first link of the first Bluetooth subsystem includes: Based on the first count value, the first channel identifier, and the first number of channels used, the first index value is calculated using a channel selection algorithm. The calculation of the second index value based on the second count value corresponding to the second link of the second Bluetooth subsystem, the second channel identifier, and the second number of channels used includes: Based on the second count value, the second channel identifier, and the second number of channels used, the channel selection algorithm is used to calculate the second index value.

7. The method according to any one of claims 1 to 5, characterized in that, The first channel mapping table is determined in the following manner: The index value is determined based on the first number of channels used; Based on the usage channel table corresponding to the first link of the first Bluetooth subsystem, determine the available channel index value; The determined index values ​​are sorted from smallest to largest, and the determined usable channel index values ​​are also sorted from smallest to largest. The correspondence between the sorted index values ​​and the sorted usable channel index values ​​is used as the first channel mapping table.

8. The method according to any one of claims 1 to 5, characterized in that, Before determining the first channel index value corresponding to the first index value based on the first channel mapping table, the method further includes: Based on the first count value and the first channel identifier, calculate the first unmapped channel index value. If it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, the channel corresponding to the first unmapped channel index value is used as the channel of the first link. Otherwise, execute the step of determining the first channel index value corresponding to the first index value based on the first channel mapping table. Before determining the second channel index value corresponding to the second index value based on the second channel mapping table, the method further includes: Based on the second count value and the second channel identifier, calculate the second unmapped channel index value. If it is determined that the channel corresponding to the second unmapped channel index value is a usable channel, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used by the second link. Otherwise, execute the step of determining the second channel index value corresponding to the second index value based on the second channel mapping table. Wherein, the first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

9. A chip, characterized in that, include: The calculation module is used to calculate a first index value based on a first count value, a first channel identifier, and a first number of channels in use corresponding to a first link of the first Bluetooth subsystem, and to calculate a second index value based on a second count value, a second channel identifier, and a second number of channels in use corresponding to a second link of the second Bluetooth subsystem; The first determining module is used to determine a first channel index value corresponding to the first index value based on a first channel mapping table, and to determine a second channel index value corresponding to the second index value based on a second channel mapping table; The second determining module is used to use the channel corresponding to the first channel index value as the channel used by the first link, and to use the channel corresponding to the second channel index value as the channel used by the second link. Wherein, the first count value and the second count value are the same, the first channel identifier and the second channel identifier are the same, the first number of channels used and the second number of channels used are the same, and in the first channel mapping table and the second channel mapping table, the physical bandwidth isolation of the two channels corresponding to the same index value is greater than or equal to the preset physical bandwidth isolation.

10. The chip as described in claim 9, characterized in that, The first determining module determines the second channel mapping table in the following manner: For each index value in the first channel mapping table, determine the first target channel index value corresponding to the index value in the first channel mapping table; Determine the second target channel index value corresponding to the next index value in the first channel mapping table; If the first physical bandwidth isolation is determined to be less than the preset physical bandwidth isolation, the next index value of the second target channel is determined in the first channel mapping table, and the step of determining whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation is returned. All the resulting correspondences are defined as the second channel mapping table; Specifically, the first determining module is used for: Determine whether the first physical bandwidth isolation between the channel corresponding to the second target channel index value and the channel corresponding to the first target channel index value is greater than or equal to the preset physical bandwidth isolation. If the first physical bandwidth isolation is determined to be greater than or equal to the preset physical bandwidth isolation, the correspondence between the index value and the second target channel index value is used as a correspondence in the second channel mapping table.

11. The chip as described in claim 10, characterized in that, The first determining module is further configured to: If the index value corresponding to the second target channel index value is determined to be the last index value in the first channel mapping table, the first index value in the first channel mapping table is used as the next index value, and the step of determining the second target channel index value corresponding to the next index value in the first channel mapping table is executed.

12. The chip as described in claim 10, characterized in that, After the first determining module uses the correspondence between the index value and the second target channel index value as a correspondence in the second channel mapping table, it is further configured to: Mark the second target channel index value as a mapped channel; Before determining whether the first physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the method further includes: It was determined that the second target channel index value was not marked as a mapped channel.

13. The chip as described in claim 10, characterized in that, The first determining module is further configured to: Update the third target channel index value corresponding to the target index value in the first channel mapping table; Determine the fourth target channel index value corresponding to the next index value in the first channel mapping table; Determine whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation. If it is determined that the second physical bandwidth isolation is greater than or equal to the preset physical bandwidth isolation, the channel index value corresponding to the target index value in the second channel mapping table is updated to the fourth target channel index value; If the second physical bandwidth isolation is determined, the fourth target channel index value corresponding to the next index value is determined in the first channel mapping table, and the step of determining whether the second physical bandwidth isolation between the channel corresponding to the fourth target channel index value and the channel corresponding to the third target channel index value is greater than or equal to the preset physical bandwidth isolation is returned.

14. The chip as described in any one of claims 9 to 13, characterized in that, The calculation module is specifically used for: Based on the first count value, the first channel identifier, and the first number of channels in use, a channel selection algorithm is used to calculate the first index value; and Based on the second count value, the second channel identifier, and the second number of channels used, the channel selection algorithm is used to calculate the second index value.

15. The chip as described in any one of claims 9 to 13, characterized in that, The first determining module determines the first channel mapping table in the following ways: The index value is determined based on the first number of channels used; Based on the usage channel table corresponding to the first link of the first Bluetooth subsystem, determine the available channel index value; The determined index values ​​are sorted from smallest to largest, and the determined usable channel index values ​​are also sorted from smallest to largest. The correspondence between the sorted index values ​​and the sorted usable channel index values ​​is used as the first channel mapping table.

16. The chip as described in any one of claims 9 to 13, characterized in that, Before determining the first channel index value corresponding to the first index value based on the first channel mapping table, the calculation module is further configured to: Based on the first count value and the first channel identifier, calculate the first unmapped channel index value. If it is determined that the channel corresponding to the first unmapped channel index value is a usable channel, the channel corresponding to the first unmapped channel index value is used as the channel of the first link. Otherwise, execute the step of determining the first channel index value corresponding to the first index value based on the first channel mapping table. Before determining the second channel index value corresponding to the second index value based on the second channel mapping table, the calculation module is further configured to: Based on the second count value and the second channel identifier, calculate the second unmapped channel index value. If it is determined that the channel corresponding to the second unmapped channel index value is a usable channel, determine the target channel index value corresponding to the target index value based on the second channel mapping table, and use the channel corresponding to the target channel index value as the channel used by the second link. Otherwise, execute the step of determining the second channel index value corresponding to the second index value based on the second channel mapping table. Wherein, the first unmapped channel index value is the same as the second unmapped channel index value, and the target index value is the index value in the first channel mapping table that corresponds to the first unmapped channel index value.

17. A chip, characterized in that, include: At least one processor, and Memory connected to the at least one processor; The memory stores instructions executable by the at least one processor, which executes the method as described in any one of claims 1 to 8 by executing the instructions stored in the memory.