Bidirectional synchronous link data transmission method, communication device and storage medium

By transmitting subsequent service data blocks in advance within the remaining time of the reserved transmission window, the problem of time slice fragmentation in bidirectional synchronous link data transmission is solved, the link switching frequency is reduced, and the scheduling efficiency is improved.

CN116405997BActive Publication Date: 2026-02-17CHONGQING SEEKWAVE TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310486416.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-04
Publication Date
2026-02-17
Estimated Expiration
2043-05-04

AI Technical Summary

Technical Problem

In bidirectional synchronous link data transmission, the fragmentation of reserved time slices leads to a high frequency of link/service switching, affecting the scheduling efficiency and difficulty of multi-link multi-service concurrency.

Method used

By transmitting subsequent service data blocks in advance when there is still enough time remaining in the reserved transmission window, time slice utilization can be optimized, link switching frequency can be reduced, and scheduling efficiency can be improved.

Benefits of technology

It improves the problem of time slice fragmentation, reduces the frequency of link switching, reduces the scheduling difficulty of multi-link multi-service concurrency, and improves scheduling efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116405997B_ABST
    Figure CN116405997B_ABST
Patent Text Reader

Abstract

The application discloses a bidirectional synchronous link data transmission method, a communication device and a storage medium. The bidirectional synchronous link comprises a first direction link and a second direction link. A first device generates a first service data block, and a second device generates a second service data block. Each first service data block and each second service data block corresponds to a reserved transmission window in time sequence. The method comprises the following steps: for the first direction link and the second direction link respectively, in response to the completion of data transmission associated with a previous service data block, judging whether a current transmission window has sufficient residual time; and in response to the current transmission window having sufficient residual time, performing data transmission associated with a current service data block to be transmitted with the second device within the residual time. The application can optimize the synchronous link of the pre-allocated time slice, improve the fragmentation problem of the time slice available for other links, reduce the link switching frequency, and improve the scheduling efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of wireless communication, in particular, to a bidirectional synchronous link data transmission method, a communication device and a storage medium. BACKGROUND

[0002] Synchronous link data transmission is a data transmission method associated with a system clock, which is usually implemented by reserving certain physical resources, that is, time slices are reserved for the link between two devices participating in communication at fixed intervals, which are used for the two devices to perform link data transmission. The communication link between the two devices can be a bidirectional data transmission link. The data streams generated by the two devices can be divided into data blocks in turn, and the data blocks generated by each device are transmitted in the reserved time slices in turn. This transmission method can guarantee a certain transmission bandwidth and is commonly used in some services with high real-time performance, such as voice, video or other data streams with high priority.

[0003] There are usually multiple concurrent services for the two devices participating in communication. When there is a synchronous link with reserved time slices, other services can only be transmitted in the time slices not used by the synchronous link, resulting in a high degree of fragmentation of the time slices available for other services and a high frequency of link / service switching, which directly affects the scheduling efficiency and difficulty of multiple link and multiple service concurrency. SUMMARY

[0004] To solve the above technical problems, the purpose of the present application is to provide a bidirectional synchronous link data transmission method, which optimizes the data transmission method of the bidirectional synchronous link with pre-allocated time slices, to improve the fragmentation problem of the time slices available for other links, thereby reducing the link switching frequency, reducing the scheduling difficulty of multiple link and multiple service concurrency, and improving the scheduling efficiency.

[0005] In one aspect of the present application, a method for data transmission in a bidirectional synchronous link between a first device and a second device is provided, the bidirectional synchronous link comprising a first directional link for data transmission from the first device to the second device and a second directional link for data transmission from the second device to the first device, the bidirectional synchronous link having a reserved transmission window set at a preset interval, the first device generating a first service data block, the second device generating a second service data block, each first service data block and each second service data block corresponding to the reserved transmission window in time sequence, the method being performed by the first device, the method comprising: performing steps S1 and S2 for the first directional link and the second directional link respectively. Step S1: in response to that data transmission associated with a last service data block has been completed, determining whether a current transmission window has sufficient remaining time for data transmission associated with a current service data block to be transmitted; Step S2: in response to that the current transmission window has sufficient remaining time, performing data transmission associated with the current service data block to be transmitted with the second device within the remaining time.

[0006] In some embodiments, the method further comprises: repeatedly performing steps S1 and S2 for the first directional link and the second directional link respectively until the current window has no sufficient remaining time for data transmission associated with a service data block in any one direction.

[0007] In some embodiments, the method further comprises: in response to that the current transmission window has no sufficient remaining time for data transmission associated with a service data block in any one direction, comparing a start time of a reserved transmission window corresponding to a first service data block to be transmitted currently with a start time of a reserved transmission window corresponding to a second service data block to be transmitted currently, taking the reserved transmission window with the earlier start time as a new transmission window, and performing data transmission associated with the first service data block to be transmitted currently and data transmission associated with the second service data block to be transmitted currently with the second device in the new transmission window.

[0008] In some embodiments, the preset interval of the link is determined by negotiation between the first device and the second device when the link is established.

[0009] In some embodiments, the current transmission window comprises first intervals and second intervals alternately distributed in time sequence, the first intervals being used for the first device to send packets to the second device, and the second intervals being used for the second device to send packets to the first device.

[0010] In some embodiments, the data transmission with the second device associated with the current to-be-transmitted service data block comprises: for the first direction link, sending a first packet comprising a current to-be-transmitted first service data block to the second device; and for the second direction link, receiving a second packet comprising a current to-be-transmitted second service data block from the second device.

[0011] In this embodiment, the synchronous link is a Bluetooth SCO link.

[0012] In this embodiment, the first packet is an HV2 packet or an HV3 packet.

[0013] In some embodiments, the data transmission with the second device associated with the current to-be-transmitted service data block comprises: for the first direction link, sequentially performing the following steps until the current to-be-transmitted first service data block transmission is completed: sending a first packet comprising the current to-be-transmitted first service data block to the second device; receiving feedback information sent by the second device indicating whether the second device successfully receives the last first packet sent by the first device; and determining whether the current to-be-transmitted first service data block transmission is completed.

[0014] In this embodiment, determining whether the current to-be-transmitted first service data block transmission is completed comprises: if the feedback information indicating that the second device successfully receives the last first packet sent by the first device is received within the current transmission window, it is determined that the current to-be-transmitted first service data block transmission is completed.

[0015] In some embodiments, determining whether the current to-be-transmitted first service data block transmission is completed further comprises: if the current transmission window ends, it is determined that the current to-be-transmitted first service data block transmission is completed.

[0016] In other embodiments, determining whether the current to-be-transmitted first service data block transmission is completed further comprises: if the current transmission window ends, but the feedback information indicating that the second device successfully receives the last first packet sent by the first device is not received, it is determined that the current to-be-transmitted first service data block transmission is not completed.

[0017] In some embodiments, the synchronous link is a Bluetooth eSCO link.

[0018] In some embodiments, the data transmission associated with the current to-be-transmitted service data block with the second device comprises: sequentially performing the following steps for the second directional link until the current to-be-transmitted second service data block transmission is completed: receiving a second packet sent by the second device and comprising the current to-be-transmitted second service data block; sending feedback information to the second device indicating whether the first device successfully receives the last second packet sent by the second device; and determining whether the current to-be-transmitted second service data block transmission is completed.

[0019] In this embodiment, determining whether the current to-be-transmitted second service data block transmission is completed comprises: if the last second packet sent by the second device is successfully received within the current transmission window, confirming that the current to-be-transmitted second service data block transmission is completed.

[0020] In some embodiments, determining whether the current to-be-transmitted second service data block transmission is completed further comprises: if the current transmission window ends, confirming that the current to-be-transmitted second service data block transmission is completed.

[0021] In some embodiments, determining whether the current to-be-transmitted second service data block transmission is completed further comprises: if the current transmission window ends, but the last second packet sent by the second device is not successfully received, confirming that the current to-be-transmitted second service data block transmission is not completed.

[0022] Another aspect of the present application provides a communication device, comprising a processor and a non-transitory storage medium storing computer executable instructions, which can be executed by the processor to perform the steps of the above-mentioned synchronous link data transmission method.

[0023] A third aspect of the present application provides a non-volatile computer readable storage medium storing computer executable instructions, which, when executed by a computer, performs the steps of the above-mentioned synchronous link data transmission method.

[0024] Through the synchronous link data transmission method, communication device and storage medium of the present application, the pre-allocated time slice link can be optimized, the subsequent service data block is transmitted in advance in the case that the current reserved transmission window corresponding to the service data block transmission is completed and has sufficient remaining time, so as to release the reserved transmission window corresponding to the subsequent service data block for data transmission of other links, improve the time slice fragmentation problem of other links, reduce the link switching frequency, reduce the scheduling difficulty of multi-link and multi-service concurrency, and improve the scheduling efficiency. BRIEF DESCRIPTION OF DRAWINGS

[0025] Figure 1 A schematic diagram of a Bluetooth eSCO link transmission window is shown;

[0026] Figure 2 A schematic diagram of eSCO link data transmission between a central device and a peripheral device as specified in the existing Bluetooth protocol is shown;

[0027] Figure 3 A flow chart of a synchronous link data transmission method 100 according to an embodiment of the present disclosure is shown;

[0028] Figure 4 A schematic diagram of time division of a transmission window is shown;

[0029] Figure 5 An embodiment of the method 100 according to the present disclosure is shown;

[0030] Figure 6 Another embodiment of the method 100 according to the present disclosure is shown, in which the first service data block B is pre-transmitted but the transmission is unsuccessful, and the second service data block 2 is pre-transmitted and the transmission is successful;

[0031] Figure 7 Another embodiment of the method 100 according to the present disclosure is shown, in which the first service data block B and the second service data block 3 are both pre-transmitted but the transmission is unsuccessful, and the transmission is continued in the pre-reserved transmission window with an earlier starting time corresponding to the two;

[0032] Figure 8 Another embodiment of the method 100 according to the present disclosure is shown, in which the first service data block B and C, and the second service data block 2 and 3 are all pre-transmitted and the transmission is successful;

[0033] Figure 9 A flow chart of a synchronous link data transmission method 400 according to another embodiment of the present disclosure is shown;

[0034] Figure 10 An embodiment of the method 400 according to the present disclosure is shown, in which the first service data block B and the second service data block 2 still have remaining time after successful pre-transmission in the current transmission window. DETAILED DESCRIPTION

[0035] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments can be utilized, and other changes can be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are explicitly contemplated and form part of this disclosure.

[0036] In order to facilitate the understanding of the present disclosure, the following will introduce the synchronous link data transmission process by taking Bluetooth technology as an example.

[0037] Bluetooth Basic Rate (BR) and Enhanced Data Rate (EDR) modes support Synchronous Connection-Oriented (SCO) logical transport and Extended Synchronous Connection-Oriented (eSCO) logical transport between a Central or Master and a Peripheral or Slave.

[0038] SCO / eSCO supports data transmission with fixed bandwidth by reserving fixed interval transmission window (SCO / eSCO window), so it can be considered as a circuit switched connection between central device and peripheral device. Each reserved transmission window includes several time slots, and the starting point of the transmission window is called SCO / eSCO instant. The data stream generated by the central device or the peripheral device is divided into service data blocks in sequence, and each service data block is transmitted in the reserved transmission window in turn. According to the different logical transmission types, the transmission of each service data block can include one or several times of sending. Each time of sending, the service data block is carried by the payload field of the packet. The central device sends a packet to the peripheral device at the SCO / eSCO instant, and the peripheral device sends a packet to the central device after the end of the packet sent by the central device. For eSCO logical transmission, the packets sent by the central device and the peripheral device can contain the acknowledgement indication ARQN bit, which is used to indicate whether the receiving device successfully receives the last packet sent by the sending device. The ARQN bit includes ACK and NAK, if ARQN=ACK, it means that the device sending the packet successfully receives the last packet sent by the opposite device; if ARQN=NAK, it means that the device sending the packet does not successfully receive the last packet sent by the opposite device. According to the ARQN bit in the packet sent by the opposite device, the sending device can retransmit the service data block which is not successfully sent last time. The opposite device is the receiving device relative to the sending device, if the sending device is the first device, the opposite device is the second device, if the sending device is the second device, the opposite device is the first device.

[0039] Figure 1 The eSCO link transmission window diagram is shown. Figure 1 In the figure, the packet sent by the central device is marked as C, and the packet sent by the peripheral device is marked as P. The time required for the central device or the peripheral device to send the packet is in time slots, and the number of time slots required for the transmission of the packet C and the packet P is determined by the central device and the peripheral device when establishing the link. The eSCO transmission window includes a reserved time slot and a retransmission window, wherein the reserved time slot includes the time interval for the central device to send the packet at the eSCO instant and the peripheral device to send the packet, and the retransmission window is located after the reserved time slot.

[0040] The central device transmits the corresponding packet in the retransmission window only if the retransmission window has enough time slots for the central device and the peripheral device to complete the packet transmission. If the central device transmits a NULL packet with ARQN=ACK, the time required is one time slot. The NULL packet is a packet without payload. If the central device transmits a packet other than the NULL packet, the time required is determined according to whether the central device successfully receives the last packet transmitted by the peripheral device. If the central device successfully receives the last packet transmitted by the peripheral device, the time required is the number of time slots of the packet of the central device plus one. If the central device does not successfully receive the last packet transmitted by the peripheral device, the time required is the number of time slots of the packet of the central device plus the number of time slots of the packet of the peripheral device. If there is still time left in the retransmission window after the transmission of the service data block is completed, the time left can be used for the transmission of data of other services. The main difference between the SCO and the eSCO is that the SCO does not support retransmission, so the transmission window of the SCO does not include the retransmission window. However, after the transmission of the SCO link data block is completed, if there is still time left before the next transmission window, the time left can be used for the transmission of data of other services.

[0041] Figure 2 A diagram illustrating the transmission of the eSCO link data between the central device and the peripheral device as specified in the existing Bluetooth protocol is shown. The service data streams generated by the central device and the peripheral device are divided into service data blocks in time sequence, each service data block of each device corresponds to a reserved transmission window in time sequence, and can only be transmitted in the reserved transmission window corresponding to the service data block. Figure 2 Three consecutive service data blocks A, B, and C generated by the central device and three consecutive service data blocks 1, 2, and 3 generated by the peripheral device are shown as examples. Among them, the service data blocks A and 1 correspond to the reserved transmission window 240, the service data blocks B and 2 correspond to the reserved transmission window 241, and the service data blocks C and 3 correspond to the reserved transmission window 242, each service data block is transmitted in the corresponding reserved transmission window in turn. Figure 2 As shown, the central device transmits the packet containing the service data block A to the peripheral device after the start of the reserved transmission window 240, and then the peripheral device transmits the packet containing the service data block 1 and the feedback information indicating whether the peripheral device successfully receives the last packet transmitted by the central device to the central device. The data block transmitted for the first time by the central device or the peripheral device is called the initial version of the data block. After receiving the packet transmitted by the peripheral device, if the central device determines that the service data block A fails to be transmitted successfully, the central device retransmits the packet containing the service data block A in the reserved transmission window 240. Similarly, if the peripheral device determines that the service data block 1 fails to be transmitted successfully, the peripheral device retransmits the packet containing the service data block 1 in the reserved transmission window 240. The data block retransmitted by the central device or the peripheral device is called the retransmission version.Figure 2 In the example of FIG. 10, the service data block A and the service data block 1 are both successfully transmitted once, and thus are not transmitted again. After the central device transmits the NULL packet with ARQN = ACK to the peripheral device, the central device does not transmit the service data block again, regardless of whether there is remaining time in the reserved transmission window 240. After the service data block A and the service data block 1 are successfully transmitted or unsuccessfully transmitted but the reserved transmission window 240 ends, if there is idle time before the next reserved transmission window 241, the idle time before the next reserved transmission window 241 can be used to transmit other link data. In the reserved transmission window 241, the service data block B is unsuccessfully transmitted twice, and because the reserved transmission window 241 does not have sufficient remaining time for transmission, the service data block B is not transmitted again. The service data block 2 is successfully transmitted once, and thus the peripheral device transmits the NULL packet without the service data block to the central device in the second transmission. For the reserved transmission window 242, the service data block C is successfully transmitted twice, but the service data block 3 is unsuccessfully transmitted twice, and because the reserved transmission window 242 does not have sufficient remaining time, the central device does not transmit the packet containing the feedback information again.

[0042] When the Bluetooth device is working, there are usually multiple concurrent links. Because the SCO / eSCO link needs to reserve a fixed transmission window, data of other services or links can only be transmitted in the time slice occupied by the non-SCO / eSCO link between two SCO / eSCO transmission moments. Therefore, when there is an SCO / eSCO link that reserves a time slice, the fragmentation degree of the time slice available for other links or services is high, and the switching frequency of the links / services is high, thereby directly affecting the scheduling efficiency and scheduling difficulty of the concurrent scheduling of multiple links and multiple services.

[0043] To solve the problem of fragmentation of the time slice of the bidirectional synchronous link data transmission, the present disclosure provides a bidirectional synchronous link data transmission method. When there is sufficient remaining time in the reserved transmission window, the remaining time is used to transmit the service data block corresponding to the next reserved transmission window.

[0044] The synchronous link data transmission method of the present disclosure is described below with reference to the accompanying drawings.

[0045] Figure 3A flow chart of a method 100 of bi-directional synchronous link data transmission is shown. The method 100 is performed by a first device for bi-directional synchronous link data transmission between the first device and a second device. The link through which the first device transmits data to the second device is a first direction link, and the link through which the second device transmits data to the first device is a second direction link. The bi-directional synchronous link has a reserved transmission window set at a preset interval. The preset interval refers to the interval of the start time of the reserved transmission window. The preset interval and the length of the reserved transmission window can be determined by negotiation between the first device and the second device when the link is established. The preset interval can be greater than the length of the reserved transmission window, or can be equal to the length of the reserved transmission window. The first device generates a first service data block, and the second device generates a second service data block. The first device transmits the first service data block to the second device in time sequence, and the second device transmits the second service data block to the first device in time sequence. Each first service data block and each second service data block corresponds to a reserved transmission window in time sequence, and the lifetime of each first service data block or each second service data block is the end time of the reserved transmission window corresponding to the service data block. The method 100 includes the following steps:

[0046] Steps 110 and 120 are performed for the first direction link and the second direction link respectively. In order to distinguish the first direction link and the second direction link, Figure 3 Steps 110 and 120 performed for the first direction link are denoted as 110-1 and 120-1 respectively, and steps 110 and 120 performed for the second direction link are denoted as 110-2 and 120-2 respectively. It should be noted that steps 110-1 and 120-2 performed for the first direction link and steps 110-2 and 120-2 performed for the second direction link are performed in parallel.

[0047] In step 110, in response to the data transmission associated with the last service data block being completed, it is determined whether the current transmission window has sufficient remaining time for transmission associated with the service data block to be transmitted currently.

[0048] The first device and the second device can perform link data transmission through packets. The packet includes a header (Header) and a payload (Payload), and the service data block generated by the sending device is carried in the payload (Payload) part of the packet. The packet sent by the first device to the second device is referred to as a first packet, and the packet sent by the second device to the first device is referred to as a second packet.

[0049] The transmission of a service data block associated with a sending device in the present disclosure refers to the sending device sending a packet containing the service data block to a receiving device. Thus, the transmission of a first service data block associated with a first device refers to the first device sending a packet containing the first service data block to a second device; the transmission of a second service data block associated with the second device refers to the second device sending a packet containing the second service data block to the first device.

[0050] The first device and the second device perform data transmission through reserved transmission windows, and the currently used reserved transmission window is a current transmission window. Each reserved transmission window can be sequentially divided into first intervals and second intervals in time order, as shown in Figure 4 The first intervals are used for the first device to send packets to the second device, and the second intervals are used for the second device to send packets to the first device. The lengths of the first intervals and the second intervals can be the same or different.

[0051] In the present disclosure, the transmission of a service data block associated with the first device or the second device can be performed in different ways as needed.

[0052] In some embodiments, the transmission of a service data block associated with the first device or the second device can be performed in a non-retransmission manner. When performed in the non-retransmission manner, the sending device considers that the transmission of the service data block associated with the sending device is completed after it sends a packet containing the service data block to the opposite device in its sending interval.

[0053] In other embodiments, the transmission of a service data block associated with the first device or the second device can be performed in a non-cross-transmission-window retransmission manner. When performed in this manner, the sending device receives feedback information sent by the opposite device to indicate whether the opposite device successfully receives the last packet sent by the sending device in its subsequent receiving interval after it sends a packet containing the service data block to the opposite device in its sending interval; if the opposite device does not successfully receive the service data block, the sending device re-sends a packet containing the service data block in the next sending interval and receives feedback information sent by the opposite device in the subsequent receiving interval. The process continues until the opposite device feeds back that it has successfully received the packet containing the service data block, or the current transmission window ends, and then the sending device considers that the transmission of the service data block associated with the sending device is completed.

[0054] In some other embodiments, the transmission of a service data block associated with the first device or the second device can be performed in a manner that allows retransmission across transmission windows. The difference between this manner and the manner that does not allow retransmission across transmission windows is that, in the former, if the sending device does not receive feedback information from the opposite device indicating that the service data block sent by the sending device has been successfully received by the opposite device until the end of the current transmission window, it is considered that the transmission of the service data block is not completed, and the transmission of the service data block is continued in the next available transmission window until the opposite device feeds back that it has successfully received the service data block or the life of the service data block expires. It can be seen that the difference between the manner that allows retransmission across transmission windows and the manner that does not allow retransmission across transmission windows is that the former can continue the transmission of the same service data block across transmission windows.

[0055] For the retransmission manners in the above two embodiments, a check code can be added in the packet sent by the sending device, and the check code contains check information of the service data block sent by the sending device. The opposite device can determine whether the packet sent by the sending device is successfully received by calculating whether the check code is correct.

[0056] In the present disclosure, after the data transmission associated with the last first service data block or second service data block is completed, it is determined whether the current transmission window has sufficient remaining time for the data transmission associated with the current service data block to be transmitted. It is noted that, since the transmission conditions of the first direction link and the second direction link can be different, the determination of whether the current transmission window has sufficient remaining time is performed for the first direction link and the second direction link respectively.

[0057] Since the length of the service data block of each direction is usually fixed, the length of time for the sending device to send the packet containing the service data block to the opposite device is fixed. The length of time required for the opposite device to send the packet can vary depending on the specific situation. For example, when the opposite device needs to send the packet containing the service data block, the length of time required is also fixed. When the opposite device has no link data to send to the sending device, the packet sent by the opposite device can not contain the payload, but only feedback information indicating whether the packet sent by the sending device is successfully received by the opposite device. For the non-retransmission manner, the opposite device can not send the packet. The first device can determine whether the current transmission window has sufficient remaining time according to the above situation.

[0058] In step 120, in response to the current transmission window having sufficient remaining time, the data transmission associated with the current service data block to be transmitted is performed with the second device in the remaining time.

[0059] When the transmission of the service data block associated with the transmitting device has been completed, the next service data block to be transmitted by the transmitting device is taken as the current service data block to be transmitted. It can be understood that, since each service data block corresponds to a reserved transmission window, the starting time of the reserved transmission window corresponding to the current service data block to be transmitted is later than the current transmission window.

[0060] In this step, if the first device confirms that there is still sufficient remaining time in the current transmission window, the remaining time can continue to be used for the transmission of the service data block to be transmitted. In this way, the service data block to be transmitted is sent in advance in the current transmission window, and the resources of the reserved transmission window can be fully utilized. If the service data blocks corresponding to the same reserved transmission window in the future in both direction links are successfully transmitted in the current transmission window, the reserved transmission window in the future can be used for the transmission of other links or service data.

[0061] In this disclosure, the manner in which the first or second service data block corresponding to the reserved transmission window in the future is sent before the starting time of the reserved transmission window in the future is reached is referred to as pre-transmission of the first or second service data block.

[0062] It should be noted that in this step, the pre-transmission of the service data block of each direction link is also performed respectively, and as long as there is sufficient remaining time for the transmission of the service data block of the direction, the pre-transmission of the service data block to be transmitted associated with the direction is performed.

[0063] In some embodiments, after step 120 is performed, step 110 can be continuously performed until there is not sufficient remaining time in the current transmission window for the transmission of the service data block associated with any one direction. If there is not sufficient remaining time in the current transmission window for the transmission of the service data block associated with any one direction, steps 130 to 140 are performed.

[0064] In step 130, the starting times of the reserved transmission window corresponding to the first service data block to be transmitted and the reserved transmission window corresponding to the second service data block to be transmitted are compared, and the reserved transmission window with the earlier starting time is taken as the new transmission window.

[0065] The service data block to be transmitted in a certain direction can be a new service data block that has not been transmitted by the transmitting device to the opposite device, or a service data block that has been pre-transmitted by the transmitting device to the opposite device in the previous transmission window but not transmitted completely.

[0066] Since the packet transmission of the first direction and the second direction can be different, the reserved transmission window corresponding to the to-be-transmitted service data block of the first direction and the to-be-transmitted service data block of the second direction can be different at the end of the current transmission window. Considering that the lifetime of each service data block is the end time of the corresponding reserved transmission window, the reserved transmission window with an earlier start time of the reserved transmission windows corresponding to the to-be-transmitted service data blocks of the two directions is selected as the new transmission window.

[0067] In step 140, data transmission associated with the currently to-be-transmitted first service data block and the currently to-be-transmitted second service data block is performed between the new transmission window and the second device.

[0068] The currently to-be-transmitted first service data block and the currently to-be-transmitted second service data block can both correspond to the new transmission window, or the currently to-be-transmitted service data block of one direction corresponds to the new transmission window, and the currently to-be-transmitted service data block of the other direction corresponds to a reserved transmission window later than the new transmission window. For the service data block corresponding to the reserved transmission window later than the new transmission window, pre-transmission is performed in the new transmission window.

[0069] As can be seen from the above steps, the method 100 of the present disclosure uses the pre-transmission mechanism, so that the reserved transmission window corresponding to the service data block transmitted by the pre-transmission mechanism is no longer used for the transmission of the current data link, thereby leaving more continuous time slices for the data transmission of other links, reducing the fragmentation degree of the time slices, reducing the link switching frequency, and thus also reducing the scheduling difficulty in the case of concurrent multiple links and multiple services.

[0070] It should be noted that, since the Bluetooth SCO link does not perform retransmission, the embodiment of the method 100 regarding the transmission mode of the non-retransmitted service data block can be applied to the Bluetooth SCO link. Since the sending interval of the HV2 packet in the Bluetooth SCO link is 4 slots and the sending interval of the HV3 packet is 6 slots, but the time slot length required by the HV2 and HV3 packets is 1 slot, there is still time left after one packet interaction between the first device and the second device before the next reserved transmission window. Therefore, the method 100 of the present disclosure can be applied to the Bluetooth SCO link, and the type of the packet sent by the first device or the second device can be HV2 or HV3.

[0071] Since the Bluetooth eSCO link supports retransmission, the embodiment of the method 100 regarding the transmission mode of the retransmitted service data block can be applied to the Bluetooth eSCO link. Moreover, the transmission mode associated with the first or second service data block can be a mode without crossing the transmission window or a mode crossing the transmission window.

[0072] For the purpose of facilitating the understanding of the present disclosure for those skilled in the art, Figures 5-8 The method 100 of the present disclosure is further illustrated by different embodiments respectively. Figures 5-7 In the figure, three consecutive reservation transmission windows 240, 241 and 242 are exemplarily shown, and the first device generates three consecutive first service data blocks A, B and C, and the second device generates three consecutive second service data blocks 1, 2 and 3, which correspond to the reservation transmission windows 240, 241 and 242 respectively. A, B or C in the figure represents that the first service data block A, B or C is contained in the first packet sent by the first device, and 1, 2 or 3 represents that the second service data block 1, 2 or 3 is contained in the second packet sent by the second device. "ACK" represents the feedback information generated by the corresponding sending device indicating that it successfully receives the last packet sent by the opposite end device, and "NAK" represents the feedback information generated by the corresponding sending device indicating that it does not successfully receive the last packet sent by the opposite end device.

[0073] Figure 5 An embodiment using the method 100 of the present disclosure is shown, in which the first service data block B and the second service data block 2 are pre-transmitted and the transmission is successful.

[0074] As Figure 5As shown, the first device and the second device start the data transmission associated with the first service data block A and the second service data block 1 at the start time of the reserved transmission window 240 corresponding to the first service data block A and the second service data block 1, and thus the reserved transmission window 240 is the current transmission window. The first device transmits the first packet containing the first service data block A in the first interval 2401, and receives the second packet sent by the second device in the second interval 2402 next to the first interval 2401, the second packet including the second service data block 1 and an "ACK" for the first packet. After receiving the "ACK", the first device confirms that the data transmission associated with the first service data block A has been completed, and the first service data block to be currently transmitted is B. The first device judges whether there is enough time left in the current transmission window 240 for the data transmission associated with the first service data block (step 110-1), and after confirming that there is enough time left, performs the data transmission associated with the first service data block B in the time left (step 120-1). In addition, the first device judges that it successfully receives the packet containing the second service data block 1 sent by the second device, and confirms that the data transmission associated with the second service data block 1 has been completed, and sets ARQN=ACK in the first packet containing the service data block B sent by the first device. The second service data block to be currently transmitted is 2. The first device judges whether there is enough time in the current transmission window for the data transmission associated with the second service data block (step 110-2), and after confirming that there is enough time left, performs the data transmission associated with the second service data block 2 in the time left (step 120-2). The first service data block B is completed after two transmissions, and the second service data block 2 is completed after one transmission, and thus the first service data block to be currently transmitted is C, and the second service data block to be currently transmitted is 3. The first device judges that there is not enough time left in the current transmission window, and compares the start time of the reserved transmission window corresponding to the first service data block C to be currently transmitted and the reserved transmission window corresponding to the second service data block 3 to be currently transmitted, and takes the reserved transmission window with the earlier start time as the new transmission window (step 130). Since both correspond to the reserved transmission window 242, the reserved transmission window 242 is taken as the new transmission window, and the data transmission associated with the first service data block C to be currently transmitted and the second service data block 3 to be currently transmitted is performed with the second device (step 140).

[0075] As can be seen from the embodiment, the first service data block B and the second service data block 2 are both completed in the reserved transmission window 240, and the corresponding reserved transmission window 241 is empty and can be used for the transmission of other links or service data. Thus, the continuous time slice from the end time of the transmission window 240 to the start time of the transmission window 242 can be used for the transmission of other links or service data.

[0076] Figure 6Another embodiment of using the method 100 of the present disclosure is shown, in which the first service data block B is pre-transmitted but the transmission is not successful, and the second service data block 2 is pre-transmitted and the transmission is successful.

[0077] The difference between this embodiment and the embodiment shown in Figure 5 The difference between this embodiment and the embodiment shown in

[0078] Figure 7 Another embodiment of using the method 100 of the present disclosure is shown, in which the second service data block 2 is pre-transmitted and the transmission is successful, and the first service data block B and the third service data block 3 are pre-transmitted but the transmission is not successful, and the transmission is continued in the pre-reserved transmission window with earlier starting time.

[0079] The difference between this embodiment and the embodiment shown in Figure 6 The difference between this embodiment and the embodiment shown in

[0080] For this embodiment, since the pre-transmitted service data blocks in both directions can be retransmitted across the transmission windows, the service data blocks in each direction have more transmission opportunities, and thus the probability of successful transmission of the service data blocks can be improved.

[0081] Figure 8Another embodiment of the method 100 of the present disclosure is shown, in which the first traffic data blocks B and C, and the second traffic data blocks 2 and 3 are all pre-transmitted and transmitted successfully.

[0082] In this embodiment, for the data transmission in the first direction, after the first traffic data block A transmitted by the first device in the current transmission window is transmitted successfully, it is determined whether there is enough remaining time in the current transmission window for the data transmission associated with the first traffic data block (step 110-1). After confirming that there is enough remaining time, the data transmission associated with the first traffic data block B is performed in the remaining time (step 120-1). After the first traffic data block B is transmitted successfully, it is determined whether there is enough remaining time in the current transmission window for the data transmission associated with the first traffic data block (step 110-1). After confirming that there is enough remaining time, the data transmission associated with the first traffic data block C is performed in the remaining time (step 120-1). The case for the data transmission in the second direction is similar, and thus is not described again.

[0083] In this embodiment, since the first traffic data blocks B and C, and the second traffic data blocks 2 and 3 are all pre-transmitted in the transmission window 240, the reserved transmission window 241 corresponding to the first traffic data block B and the second traffic data block 2, and the reserved transmission window 242 corresponding to the first traffic data block C and the second traffic data block 3 can be used for the transmission of other links or traffic data.

[0084] Figure 9 A flow chart of another embodiment of a synchronous link data transmission method 400 of the present disclosure is shown. Similar to the method 100, the method 400 is performed by the first device, and is used for the bidirectional synchronous link data transmission between the first device and the second device. The method 400 comprises the following steps:

[0085] The steps 410 and 420 are performed for the first direction link and the second direction link, respectively. Figure 9 The steps 410 and 420 performed for the first direction link are denoted as 410-1 and 420-1, respectively, and the steps 410 and 420 performed for the second direction link are denoted as 410-2 and 420-2, respectively.

[0086] In step 410, in response to the data transmission associated with the last traffic data block being completed, it is determined whether the current transmission window has enough remaining time for the data transmission associated with the current traffic data block to be transmitted.

[0087] In step 420, in response to the current transmission window having enough remaining time, the data transmission associated with the current traffic data block to be transmitted is performed with the second device in the remaining time.

[0088] In step 430, in response to the current transmission window not having enough time left for data transmission of the data blocks associated with any one direction, the starting time of the reserved transmission window corresponding to the first data block to be transmitted currently is compared with the starting time of the reserved transmission window corresponding to the second data block to be transmitted currently, and the reserved transmission window with the earlier starting time is taken as the new transmission window.

[0089] In step 440, the new transmission window is used for data transmission associated with the first data block to be transmitted newly and the second data block to be transmitted newly with the second device.

[0090] The above steps correspond to steps 110-140 of the method 100 respectively, and thus will not be described here again. The method 400 is different from the method 100 in that, if step 420 is executed, i.e. pre-transmission is performed once, whether the current transmission window has time left or not, the pre-transmission of the new data block to be transmitted is not continued in the current transmission window, but the first and second data blocks to be transmitted newly are transmitted after the new transmission window starts.

[0091] Figure 10 An embodiment of using the method 400 of the present disclosure is shown, in which the first data block B and the second data block 2 both have time left after the pre-transmission in the current transmission window is successful.

[0092] As Figure 10As shown, the first device starts the data transmission associated with the first service data block A and the second service data block 1 at the start time of the reserved transmission window 240 corresponding to the first service data block A and the second service data block 1. For the first direction data transmission, after confirming that the data transmission associated with the first service data block A is completed, the first service data block currently to be transmitted is B. The first device determines whether there is sufficient remaining time in the current transmission window 240 for the data transmission associated with the first service data block (step 410-1), and after confirming that there is sufficient remaining time, the data transmission associated with the first service data block B is performed in the remaining time (step 420-1). After the data transmission associated with the first service data block B is completed, the first service data block currently to be transmitted is C. At this time, although the current transmission window still has sufficient remaining time for transmitting the first service data block C, the first device does not continue to transmit the first service data block C in the remaining time. For the second direction data transmission, similarly, after the data transmission associated with the second service data block 2 is completed, the second service data block currently to be transmitted is 3. Then, the first device compares the start time of the reserved transmission window corresponding to the first service data block C currently to be transmitted and the start time of the reserved transmission window corresponding to the second service data block 3 currently to be transmitted, and takes the reserved transmission window with the earlier start time as the new transmission window (step 430). Here, the reserved transmission windows corresponding to the service data blocks to be transmitted in both directions are 242, so the transmission window 242 is taken as the new transmission window, and when the new transmission window arrives, the data transmission associated with the first service data block C and the second service data block 3 is performed with the second device (step 440).

[0093] As can be seen from this embodiment, after a pre-transmission is performed in the remaining time of the current transmission window, although the current transmission window still has remaining time, the first device no longer uses the remaining time to perform transmission of a new service data block, but waits until the corresponding reserved transmission window in the subsequent to perform transmission. Therefore, for the method 400, the transmission time of the service data block participating in the pre-transmission is less than the preset interval from the start time of the reserved transmission window of the service data block, so that the time jitter of the service data block received by the receiving device is small, and the method is suitable for occasions with strict requirements on time delay jitter. The method 400 is actually a trade-off between the improvement degree of time slice fragmentation and the time jitter of the service data block.

[0094] The present disclosure also provides a communication device including a processor and a non-transitory storage medium having computer executable instructions stored therein. The computer executable instructions can be executed by the processor to perform various functions or steps of various embodiments of the synchronization link data transmission method 100 or 400 described above.

[0095] The present disclosure also provides a non-transitory computer readable storage medium storing computer executable instructions that, when executed by a computer, perform various functions or steps of various embodiments of the methods 100 or 400.

[0096] Those skilled in the art can understand and implement other changes to the disclosed embodiments by reading the specification, disclosure content and drawings and the attached claims. In the claims, the word "comprising" does not exclude other elements and steps, and the word "a" or "one" does not exclude a plurality. In the practical application of the present application, one part can perform the functions of multiple technical features referred to in the claims. Any reference signs in the claims should not be understood as limiting the scope.

Claims

1. A bidirectional synchronous link data transmission method, used for data transmission between a first device and a second device via a bidirectional synchronous link, wherein the bidirectional synchronous link includes a first-direction link for transmitting data from the first device to the second device, and a second-direction link for transmitting data from the second device to the first device, characterized in that, The bi-directional synchronous link has reserved transmission windows set at preset intervals, the first device generates first service data blocks for data transmission of the first direction link, and the second device generates second service data blocks for data transmission of the second direction link, each first service data block and each second service data block correspond to a reserved transmission window in time sequence, the method is executed by the first device, and the method comprises: The following steps are executed respectively for the first direction link and the second direction link: Step S1: in response to that data transmission associated with a last service data block has been completed, determining whether a current transmission window has sufficient remaining time for data transmission associated with a current service data block to be transmitted; Step S2: in response to that the current transmission window has sufficient remaining time, performing, within the remaining time, data transmission associated with the current service data block to be transmitted with the second device.

2. The method of claim 1, wherein, The method further comprises: Steps S1 and S2 are repeatedly executed respectively for the first direction link and the second direction link until the current window does not have sufficient remaining time for data transmission associated with a service data block of any one direction.

3. The method of claim 1, wherein, The method further comprises: in response to that the current transmission window does not have sufficient remaining time for data transmission associated with a service data block of any one direction, comparing start time of a reserved transmission window corresponding to a first service data block to be transmitted currently and start time of a reserved transmission window corresponding to a second service data block to be transmitted currently, and taking the reserved transmission window with earlier start time as a new transmission window; performing, in the new transmission window, data transmission associated with the current first service data block to be transmitted and data transmission associated with the current second service data block to be transmitted with the second device.

4. The method of claim 1, wherein, The preset intervals of the link are determined by negotiation between the first device and the second device when the link is established.

5. The method of claim 1, wherein, The current transmission window comprises first intervals and second intervals alternately distributed in time sequence, the first intervals are used for the first device to send packets to the second device, and the second intervals are used for the second device to send packets to the first device.

6. The method of claim 1, wherein, The data transmission associated with the current service data block to be transmitted with the second device comprises: for the first direction link, sending, to the second device, a first packet comprising the first service data block to be transmitted currently; and for the second direction link, receiving, from the second device, a second packet comprising the second service data block to be transmitted currently.

7. The method of claim 6, wherein, The synchronous link is a Bluetooth SCO link.

8. The method of claim 7, wherein, The first packet is an HV2 packet or an HV3 packet.

9. The method of claim 1, wherein, The data transmission associated with the current service data block to be transmitted with the second device comprises: for the first direction link, the following steps are sequentially executed until the first service data block to be transmitted currently is transmitted completely: sending, to the second device, a first packet comprising the first service data block to be transmitted currently; receiving feedback information sent by the second device and indicating whether the second device successfully receives a last first packet sent by the first device; and determining whether the first service data block currently to be transmitted is transmitted completely.

10. The method of claim 9, wherein, The determining whether the first service data block currently to be transmitted is transmitted completely comprises: if the feedback information indicating that the second device has successfully received the last first packet sent by the first device is received from the second device within the current transmission window, it is determined that the first service data block currently to be transmitted is transmitted completely.

11. The method of claim 10, wherein, The determining whether the first service data block currently to be transmitted is transmitted completely further comprises: if the current transmission window ends, it is determined that the first service data block currently to be transmitted is transmitted completely.

12. The method of claim 10, wherein, The determining whether the first service data block currently to be transmitted is transmitted completely further comprises: if the current transmission window ends, but the feedback information indicating that the second device has successfully received the last first packet sent by the first device is not received from the second device, it is determined that the first service data block currently to be transmitted is not transmitted completely.

13. The method of claim 9, wherein, The synchronous link is a Bluetooth eSCO link.

14. The method of claim 1, wherein, The data transmission associated with the service data block currently to be transmitted with the second device comprises: for the second direction link, the following steps are executed in sequence until the second service data block currently to be transmitted is transmitted completely: receiving the second packet sent by the second device, the second packet comprising the second service data block currently to be transmitted; sending the feedback information to the second device, the feedback information indicating whether the last second packet sent by the second device is successfully received by the first device; and determining whether the second service data block currently to be transmitted is transmitted completely.

15. The method of claim 14, wherein, The determining whether the second service data block currently to be transmitted is transmitted completely comprises: if the last second packet sent by the second device is successfully received within the current transmission window, it is determined that the second service data block currently to be transmitted is transmitted completely.

16. The method of claim 15, wherein, The determining whether the second service data block currently to be transmitted is transmitted completely further comprises: if the current transmission window ends, it is determined that the second service data block currently to be transmitted is transmitted completely.

17. The method of claim 15, wherein, The determining whether the second service data block currently to be transmitted is transmitted completely further comprises: if the current transmission window ends, but the last second packet sent by the second device is not successfully received, it is determined that the second service data block currently to be transmitted is not transmitted completely.

18. A communication device, characterized by The communication device comprises a processor and a non-transitory storage medium storing computer executable instructions, the computer executable instructions being executable by the processor to perform the method of any one of claims 1-17.

19. A non-transitory computer readable storage medium, comprising: The computer executable instructions stored in the non-transitory storage medium, when executed by a computer, perform the method of any one of claims 1-17.

Citation Information

Patent Citations

  • Bluetooth data transmission method, device and user equipment

    CN109429206A