Deterministic transmission method among multiple synchronization domains
By dividing multiple time synchronization domains in the industrial Internet and adopting time-delay sharing strategies and asynchronous to synchronization mechanisms, the deterministic problem of multi-synchronous domain transmission is solved, and efficient and accurate data transmission between multiple synchronous domains is achieved.
Patent Information
- Application Number
- CN202410093180.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-23
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2044-01-23
AI Technical Summary
The prior art cannot achieve deterministic transmission between multiple time synchronization domains, and cannot meet the fusion transmission needs of information data and control data in the industrial Internet.
By dividing the network into multiple time synchronization domains, using a time-delay sharing strategy and an asynchronous to synchronization mechanism, each synchronization domain is independently scheduled to ensure the deterministic transmission of data flows between multiple synchronization domains.
Deterministic transmission between multiple time synchronization domains is realized, which meets the real-time and deterministic needs of information data and control data in the industrial Internet, and improves the efficiency and accuracy of transmission.
Smart Images

Figure CN119172382A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of deterministic real-time transmission of computer networks, and in particular to a deterministic transmission method between multiple synchronization domains. Background Art
[0002] In order to solve the problem of integrated transmission of information data (IT) and control data (OT) in the industrial Internet, the IEEE 802.1TSN Group proposed and standardized time-sensitive networking (TSN) in 2012. TSN has been widely accepted by academia and industry. TSN schedules the sending time of each switch on the transmission path through a time-triggered transmission mechanism to ensure the real-time and deterministic transmission of data streams. The accuracy of the sending time depends on the accuracy of time synchronization, so the deterministic transmission of TSN requires the establishment of time synchronization for the entire network. However, in actual applications, establishing time synchronization for the entire network is not always the best solution, and it may even be impossible to synchronize the entire network. Figure 1 The following diagram illustrates three typical scenarios of TSN networks that need to be divided into sub-synchronization domains. Scenario 1 is a train communication network, where most real-time control occurs inside the carriage, and a small amount of communication needs to be transmitted across carriages. If full-network synchronization is established, the loss of synchronization accuracy will spread to the entire network, causing the determinism of all real-time data transmission to decrease. Therefore, a better solution is to divide the synchronization domain, with one synchronization domain for each carriage and one synchronization domain for the backbone network, to keep the determinism of intra-domain communication unaffected. Scenario 2 is a multi-workshop industrial control network, which is a typical scenario for large-scale application of TSN networks. The excessively long network diameter leads to excessive loss of time synchronization accuracy, which cannot meet the deterministic transmission requirements of industrial control networks. Therefore, dividing the synchronization domain becomes a feasible solution. Each workshop constitutes a synchronization domain, and the deterministic transmission within the domain is not affected by inter-domain transmission. Scenario 3 is the access of asynchronous terminals. This type of scenario often occurs during the transformation of industrial control networks. The original control equipment does not support the time synchronization protocol and cannot be synchronized, but there is control data that needs to be transmitted. At this time, a single asynchronous terminal can be used as a synchronization domain, and the TSN network can be used as a synchronization domain for inter-domain deterministic transmission. Since there is no time synchronization in data transmission between synchronous domains, the arrival of messages may occur before or after the scheduled time point. Compared with the synchronous message transmission within the domain, it has obvious asynchrony and cannot use the deterministic transmission mechanism of the TSN network. The real-time and deterministic nature of data flow transmission between domains cannot be met.
[0003] The existing patent "CN113300798B A method for deterministic access of asynchronous terminal transmission" proposes an asynchronous-to-synchronous mechanism and a delay adaptation mechanism to ensure deterministic transmission of asynchronous terminals accessing TSN, such as Figure 2 However, this mechanism is only applicable to the situation where the network contains only one time synchronization domain, and cannot meet the requirements of deterministic transmission between multiple time synchronization domains. Therefore, a deterministic transmission method between multiple time synchronization domains needs to be proposed urgently. Summary of the invention
[0004] 1. Technical issues to be solved
[0005] The purpose of the present invention is to solve the problem that the transmission method in the prior art can only be applied to the situation where the network only contains one time synchronization domain and cannot meet the requirement of deterministic transmission between multiple time synchronization domains, and to propose a deterministic transmission method between multiple synchronization domains.
[0006] 2. Technical solution
[0007] In order to achieve the above object, the present invention adopts the following technical solutions:
[0008] A deterministic transmission method between multiple synchronization domains comprises the following steps:
[0009] Step 1: Deterministic transmission mechanism between multiple synchronization domains. The entire network is divided into N time synchronization domains. Each synchronization domain is time synchronized, but the domains are not synchronized. Data flow f i Send from terminal d1.v0 to terminal d N .v n+1 ;
[0010] Step 2: Scheduling method between multiple synchronization domains. To improve the scheduling efficiency of data flows between multiple synchronization domains, the upper limit of the delay of the data flow is allocated to each synchronization domain through which the data flow needs to be transmitted according to the delay allocation strategy. Each synchronization domain is scheduled separately and independently. Finally, the scheduling results of each synchronization domain are integrated to obtain a complete scheduling table for the data flow.
[0011] Step 3: Delay allocation strategy: In TSN, the delay required for a message from entering the switch to being sent out consists of four parts: receiving delay rdelay, forwarding delay fdelay, processing delay pdelay, and link delay ldelay. i Each time a switch is passed during transmission, a set of the above delays needs to be added, recorded as delay trans , whose value is shown in the following formula:
[0012] f i .delay trans =f i.length·(rdelay+fdelay+pdelay+ldelay) (6)
[0013] The symbol · represents the delay and the length of the data stream message f i .length; in addition, when the data flow f i With data flow f j When all packets need to be sent from the same port of the switch, because a port of the switch only allows a single message to be sent at the same time, the worst case for the data flow is to wait until the data flow f j After the transmission is completed, the data flow is sent again. The delay from the start of the switch to the completion of the transmission is the processing delay pedlay, the link delay ldelay and the receiving delay rdelay, so the data flow f i Each conflict with a data stream requires an additional set of delays, denoted as delay conflict , whose value is shown in the following formula:
[0014] f i .delay conflict =f j .length·(pdelay+ldelay+rdelay) (7)
[0015] The size of the conflict delay is related to the data flow f i The conflicting data streams j The length of the message f j .length, the data flow f can be calculated based on the above two indicators i The delay distribution in each synchronization domain.
[0016] Preferably, in step 1, the data stream f i The transmission process is as follows:
[0017] Step 1.1: In the starting synchronization domain d1, since the sending terminal d1.v0 belongs to d1, the time-triggered transmission method can be used directly in d1 for transmission. The data flow f i The delay at d1 can be expressed as:
[0018]
[0019] in Respectively represent the data flow f i The sending time of terminal d1.v0 and the last switch d1.v in synchronization domain d1 n The sending time point, because the time-triggered transmission method is adopted, the difference between the two is the data flow f iThe delay required for transmission in the synchronization domain d1;
[0020] Step 1.2: In other synchronization domains n ∈D other Among them, D other Indicates the data stream f excluding the initial synchronization domain d1 i The data flow is not synchronized between the synchronous domains. i Upon arrival n is not exactly equal to switch d n .v0 scheduling time point; at this time, the asynchronous to synchronous mechanism is adopted, that is, the data stream is not forwarded immediately, but waits for d n .f i .t s.wait time, and forward it at the next scheduled sending time point; at this time, the data flow f i It has been synchronized to the scheduling time in the domain, and then reaches the last switch in the domain using time-triggered transmission. n .v n In order to achieve deterministic transmission, the delay adaptation mechanism needs to make the data flow f i Keep additional d n .f i .t s.hold At the same time, in order to reduce the message congestion and jitter caused by the retention, the message is retained in the first switch of the next synchronization domain. n .f i .t s.hold The size of needs to satisfy the following formula:
[0021]
[0022] Where s is the data stream f i The sequence number of the sth message, that is, to ensure the data flow f i Any message sent in d n The delays in are all fixed values, equal to d n The difference between the sending time of the last switch and the first switch in the data flow f i In d n The sum of the scheduling periods in , its value can be expressed as follows:
[0023]
[0024] From equations (1) and (3), we can get the data flow f i The total delay during the entire transmission process:
[0025]
[0026] Except for the first synchronization domain d1, each other synchronization domain needs to add a scheduling period d because it involves cross-domain. n .f i .period delay.
[0027] Preferably, the step 1.2 should satisfy the data flow f i To ensure the real-time and deterministic performance among multiple synchronization domains, we only need to make equation (4) smaller than its timeout period, that is:
[0028]
[0029] where f i .timeout indicates data flow f i The timeout period.
[0030] Preferably, the scheduling method in step 2 is specifically as follows: given the N data stream information fs[N] to be scheduled and the number of synchronization domains M in the network, in lines 1-2 of code, firstly initialize the identification array isScheduleSuccess[M] of whether the synchronization domain is successfully scheduled and the scheduling result array scheduleResult[M] of the synchronization domain, and then enter the scheduling loop;
[0031] In the scheduling loop, firstly, the delay value delay[N][M] of the data stream in each synchronization domain is calculated according to the delay allocation algorithm splitDelay. Then, each synchronization domain is scheduled in a loop. If the current synchronization domain has been successfully scheduled, the current synchronization domain will not be scheduled anymore, and the next synchronization domain will be scheduled. If the scheduling result scheduleResult[i] obtained by the doSchedule() method meets the requirements, the flag isScheduleSuccess[i] indicating whether the i-th synchronization domain has been successfully scheduled is assigned to true, indicating that the scheduling is successful.
[0032] After all M synchronization domains are scheduled, if the number of true isScheduleSuccess[M] array is less than M and the value of isScheduleSuccess[M] has changed compared with the previous cycle, it means that there are synchronization domains that have not been successfully scheduled and are still capable of continuing scheduling. At this time, jump to line 4 of the code. Since the scheduling time point of the successfully scheduled synchronization domain has been determined, the actual value of the data flow transmission delay in it can be calculated, and the new available delay freeDelay[N] can be obtained. After the delay is re-allocated, the next round of scheduling cycle can be carried out; otherwise, it means that all synchronization domains have been successfully scheduled or there are synchronization domains that have not been successfully scheduled but the delay redundancy can no longer be obtained. At this time, the scheduling results scheduleResult[M] of each synchronization domain are integrated to obtain the final scheduling table scheduleTable, jump out of the loop, and end the scheduling.
[0033] Preferably, in step 3, the data flow f is calculated i The specific method for allocating delays in each synchronization domain is as follows: There are N time synchronization domains in the network to be allocated delays. After obtaining the transmission paths of all data flows, the data flow f can be calculated. i In the synchronization domain n The number of switches passed through The number of data flows that collide with each other (that is, each time a data flow collides with another data flow, it is counted once) Then the data flow f i In the synchronization domain n The transmission delay in trans and conflict delay conflict They are:
[0034]
[0035]
[0036] The data stream f i In the synchronization domain n The actual delay allocated in Its value can be expressed as follows:
[0037]
[0038] where f i .freeDelay indicates data flow f i The delay value available for delay sharing can be calculated according to formula (10) to obtain the delay shared by each synchronization domain.
[0039] Preferably, the step of calculating the delay allocation in the multi-synchronous domain scheduling process in step 3 is specifically as follows:
[0040] Step 3.1: First, initialize the array that stores the delays of N data streams in M synchronization domains, then enter the outer loop located in the second line of the code, set the delay value fs[i].freeDelay available for delay sharing of the data stream to its timeout time, and then enter the inner loop. If the value of isScheduleSuccess[j] is true, it means that the current synchronization domain has been successfully scheduled. The actual delay value consumed by the data stream fs[i] in the jth synchronization domain transmission is directly calculated according to the sending time point of the data stream fs[i] in the switch in the scheduling result scheduleResult[j], and assigned to delay[i][j]. At the same time, delay[i][j] is subtracted from the delay value fs[i].freeDelay available for delay sharing; otherwise, it means that the current synchronization domain is not scheduled or the scheduling fails;
[0041] Step 3.2: Calculate the delay allocation weight of data stream fs[i] in the jth synchronization domain according to equations (8) and (9), assign it to delay[i][j], and add it to the total delay allocation weight value of data stream fs[i];
[0042] Step 3.3: Repeat the above steps until the total delay weight value of all data streams and the delay weight in each synchronization domain are calculated, and then the loop ends. Finally, the delay value allocated to each synchronization domain of the data stream can be calculated according to formula (10), and the result delay[N][M] is returned.
[0043] 3. Beneficial effects
[0044] Compared with the prior art, the advantages of the present invention are:
[0045] In the present invention, through the design of a deterministic transmission mechanism among multiple synchronization domains, a scheduling method among multiple synchronization domains, and a delay sharing strategy, the transmission method can be applied to situations where the network contains multiple time synchronization domains, and can fully meet the requirements for deterministic transmission among multiple time synchronization domains. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] Figure 1 Schematic diagram of a typical scenario for dividing synchronization domains in a TSN network;
[0047] Figure 2 Schematic diagram of the deterministic access mechanism for asynchronous terminals;
[0048] Figure 3 This is a schematic diagram of the multi-synchronous inter-domain deterministic transmission mechanism proposed by the present invention;
[0049] Figure 4 This is a schematic diagram of the message transmission delay proposed by the present invention. DETAILED DESCRIPTION
[0050] The technical solutions in the embodiments of the present invention will be described clearly and completely below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all the embodiments.
[0051] Embodiment 1:
[0052] A deterministic transmission method between multiple synchronization domains comprises the following steps:
[0053] Step 1: Deterministic transmission mechanism between multiple synchronization domains, such as Figure 3 As shown in Figure 1, the entire network is divided into N time synchronization domains. Each synchronization domain is time synchronized, but the time between domains is not synchronized. i Send from terminal d1.v0 to terminal d N .v n+1 , the following will be through the data flow f i The transmission process of this mechanism is described as follows:
[0054] ① In the starting synchronization domain d1, since the sending terminal d1.v0 belongs to d1, the time-triggered transmission method can be used directly in d1 for transmission. The data flow f i The delay at d1 can be expressed as:
[0055]
[0056] in Respectively represent the data flow f i The sending time of terminal d1.v0 and the last switch d1.v in synchronization domain d1 n The sending time point, because the time-triggered transmission method is adopted, the difference between the two is the data flow f i The delay required for transmission in synchronization domain d1.
[0057] ②In other synchronization domains (excluding the data stream f outside the initial synchronization domain d1) i The synchronization domain passed is represented by D other (d) n ∈D other In the case of asynchronous data flow, the domains are not synchronized. i Upon arrival n is not exactly equal to switch d n .v0 scheduling time point; at this time, the asynchronous to synchronous mechanism is adopted, that is, the data stream is not forwarded immediately, but waits for d n .f i .t s.waittime, and forward it at the next scheduled sending time point; at this time, the data flow f i It has been synchronized to the scheduling time in the domain, and then reaches the last switch in the domain using time-triggered transmission. n .v n In order to achieve deterministic transmission, the delay adaptation mechanism needs to make the data flow f i Keep additional d n .f i .t s.hold In order to reduce the message congestion and jitter caused by the retention, the message is retained in the first switch of the next synchronization domain. n .f i .t s.hold The size of needs to satisfy the following formula:
[0058]
[0059] Where s is the data stream f i The sequence number of the sth message. That is, to ensure the data flow f i Any message sent in d n The delays in are all fixed values, equal to d n The difference between the sending time of the last switch and the first switch in the data flow f i In d n The sum of the scheduling periods in , its value can be expressed as follows:
[0060]
[0061] From equations (1) and (3), we can get the data flow f i The total delay during the entire transmission process:
[0062]
[0063] Except for the first synchronization domain d1, each other synchronization domain needs to add a scheduling period d because it involves cross-domain. n .f i .period delay. To satisfy the data flow f i To ensure the real-time and deterministic performance among multiple synchronization domains, we only need to make equation (4) smaller than its timeout period, that is:
[0064]
[0065] where f i .timeout indicates data flow f i The timeout period;
[0066] Step 2: Scheduling method among multiple synchronization domains. To improve the scheduling efficiency of data flows among multiple synchronization domains, the upper limit of the delay of the data flow is allocated to each synchronization domain that the data flow needs to pass through according to the delay sharing strategy. Each synchronization domain is scheduled separately and independently. Finally, the scheduling results of each synchronization domain are integrated to obtain a complete scheduling table for the data flow.
[0067] The specific scheduling algorithm is shown in Table 1. Given the N data stream information fs[N] that needs to be scheduled and the number of synchronization domains M in the network, in lines 1-2 of the code, the isScheduleSuccess[M] array indicating whether the synchronization domain is successfully scheduled and the scheduleResult[M] array of the synchronization domain scheduling results are initialized first, and then the scheduling loop is entered.
[0068] Table 1 Multi-synchronous inter-domain scheduling calculation method
[0069]
[0070]
[0071] In the scheduling loop, first calculate the delay value delay[N][M] of the data stream in each synchronization domain according to the delay allocation algorithm splitDelay. Next, schedule each synchronization domain in a loop. If the current synchronization domain has been successfully scheduled, the current synchronization domain will no longer be scheduled, and the next synchronization domain will be scheduled. If the scheduling result scheduleResult[i] obtained by the doSchedule() method meets the requirements, the isScheduleSuccess[i] flag indicating whether the i-th synchronization domain has been successfully scheduled is assigned to true, indicating that the scheduling is successful.
[0072] After all M synchronization domains are scheduled, if the number of true values in the isScheduleSuccess[M] array is less than M and the value of isScheduleSuccess[M] has changed compared to the previous cycle, it means that there are synchronization domains that have not been successfully scheduled and are still capable of continuing scheduling. At this time, jump to line 4 of the code. Since the scheduling time point of the successfully scheduled synchronization domain has been determined, the actual value of the data flow transmission delay in it can be calculated, and the new available delay freeDelay[N] can be obtained. After the delay is re-allocated, the next round of scheduling cycle can be carried out; otherwise, it means that all synchronization domains have been successfully scheduled or there are synchronization domains that have not been successfully scheduled but the delay redundancy can no longer be obtained. At this time, the scheduling results scheduleResult[M] of each synchronization domain are integrated to obtain the final scheduling table scheduleTable, jump out of the loop, and end the scheduling;
[0073] Step 3: Delay allocation strategy: Figure 4As shown in Figure 1, the delay required for a message in TSN from entering a switch to being sent out consists of four parts: receiving delay rdelay, forwarding delay rdelay, processing delay pdelay, and link delay ldelay. i Each time a switch is passed during transmission, a set of the above delays needs to be added, recorded as delay trans , whose value is shown in the following formula:
[0074] fi.delay trans =f i .length·(rdelay+fdelay+pdelay+ldelay) (6)
[0075] The symbol · represents the delay and the length of the data stream message f i .length. In addition, when the data stream f i With data flow f j When all packets need to be sent from the same port of the switch, because a port of the switch only allows a single message to be sent at the same time, the worst case for the data flow is to wait until the data flow f j After the transmission is completed, the data flow is sent again. The delay from the start of the transmission in the switch to the completion of the transmission is the processing delay pdelay, the link delay ldelay and the receiving delay rdelay, so the data flow f i Each conflict with a data stream requires an additional set of delays, denoted as delay conflict , whose value is shown in the following formula:
[0076] f i .delay conflict =f j .length·(pdelay+ldelay+rdelay) (7)
[0077] The size of the conflict delay is related to the data flow f i The conflicting data streams j The length of the message f j .length. Based on the above two indicators, the data flow f can be calculated. i The specific method for allocating delays in each synchronization domain is as follows: There are N time synchronization domains in the network to be allocated delays. After obtaining the transmission paths of all data flows, the data flow f can be calculated. i In the synchronization domain n The number of switches passed through The number of data flows that collide with each other (that is, each time a data flow collides with another data flow, it is counted once) Then the data flow fi In the synchronization domain n The transmission delay in trans and conflict delay conflict They are:
[0078]
[0079]
[0080] The data stream f i In the synchronization domain n The actual delay allocated in Its value can be expressed as follows:
[0081]
[0082] where f i ·freeDelay indicates data flow f i The delay value available for delay sharing can be calculated according to formula (10) to obtain the delay shared by each synchronization domain.
[0083] The following will specifically describe the steps of calculating the delay allocation in the multi-synchronous domain scheduling process based on the delay allocation algorithm shown in Table 2. First, initialize the array that stores the delays of N data streams in M synchronization domains, then enter the outer loop located in line 2 of the code, set the delay value fs[i].freeDelay of the data stream available for delay allocation to its timeout time, and then enter the inner loop. If the value of isScheduleSuccess[j] is true, it means that the current synchronization domain has been successfully scheduled. The data stream fs[i] is directly calculated based on the sending time point of the data stream fs[i] in the switch in the scheduling result scheduleResult[j]. The actual delay value consumed by the data stream fs[i] in the jth synchronization domain is assigned to delay[i][j], and delay[i][j] is subtracted from the delay value fs[i].freeDelay available for delay sharing; otherwise, it means that the current synchronization domain is not scheduled or the scheduling fails. The delay sharing weight of the data stream fs[i] in the jth synchronization domain is calculated according to equations (8) and (9), and assigned to delay[i][j], and added to the total delay sharing weight value of the data stream fs[i]. Repeat the above steps until the total delay sharing weight value of all data streams and the delay sharing weight in each synchronization domain are calculated, and the loop ends. Finally, the delay value shared by each synchronization domain of the data stream can be calculated according to equation (10), and the result delay[N][M] is returned.
[0084] Table 2 Delay amortization algorithm
[0085]
[0086]
[0087] In the present invention, through the design of a deterministic transmission mechanism among multiple synchronization domains, a scheduling method among multiple synchronization domains, and a delay sharing strategy, the transmission method can be applied to situations where the network contains multiple time synchronization domains, and can fully meet the requirements for deterministic transmission among multiple time synchronization domains.
[0088] Embodiment 2:
[0089] It has the implementation content of the above-mentioned embodiment, wherein the specific implementation of the above-mentioned embodiment can refer to the above description, and the embodiment here will not be repeated in detail; and in the embodiment of the present application, it is different from the above-mentioned embodiment in that:
[0090] In this embodiment, the data stream f i The specific implementation steps are described as follows:
[0091] S1: data stream f i After the sth message is sent from the sending terminal, it is transmitted in the first synchronization domain d1 where the sending path is located according to the time-triggered transmission mode, and continues to the last switch d1.v in the synchronization domain d1. n , save a hold time f in the message i .t s.hold , and initially assigns a value of 0, and then sends the message.
[0092] S2: In the last switch d1.v of the first synchronization domain d1 n When the message reaches the first switch d2.v0 in synchronization domain d2, it is first kept in the switch. i .t s.hold The time of the size is set, and a timestamp is added when the maintenance is completed. Then, the asynchronous to synchronous mechanism is used to wait for d2.f i .t s.wait After that time, it is aligned with the sending time scheduled by synchronization domain d2. Note the waiting time d2.f i .t s.wait It is the difference between the sending time and the time after the previous hold is completed, and then it is transmitted in a time-triggered manner until the last switch in the domain d2.v n , in order to eliminate the previous d2.f i .t s.wait The jitter of the size, update the size of the retention time f i .t s.hold , as shown in the following formula:
[0093] f i .t s.hold =d2.f i .t s.hold =d2.f i .period-d2.f i .t s.wait (11)
[0094] Update the hold time f according to formula (11) i .t s.hold After that, it is directly sent from the switch to the next synchronization domain.
[0095] S3: Until the last synchronization domain d N The last switch d N .v n Before sending, the data flow f i All are transmitted according to the rules of step 2, and the last switch d that reaches the nth synchronization domain n .v n When the holding time f is updated according to the following formula i .t s.hold Size:
[0096]
[0097] Where N represents the data flow f i The total number of synchronization domains traversed.
[0098] S4: The message is in the last synchronization domain d N The last switch d N .v n Before sending, keep f on the current switch i .t s.hold The time of the size is then forwarded to the receiving terminal.
[0099] The above description is only a preferred specific implementation manner of the present invention, but the protection scope of the present invention is not limited thereto. Any technician familiar with the technical field can make equivalent replacements or changes according to the technical scheme and inventive concept of the present invention within the technical scope disclosed by the present invention, which should be covered by the protection scope of the present invention.
Claims
1. A deterministic transmission method between multiple synchronization domains, It is characterized in that The following steps are involved: Step 1: Deterministic transmission mechanism between multiple synchronization domains. The entire network is divided into N time synchronization domains. Each synchronization domain is time synchronized, but the domains are not synchronized. Data flow f i From terminal d 1 .v 0 Send to terminal d N .v n+1 Step 2: Scheduling method between multiple synchronization domains. To improve the scheduling efficiency of data flows between multiple synchronization domains, the upper limit of the delay of the data flow is allocated to each synchronization domain through which the data flow needs to be transmitted according to the delay allocation strategy. Each synchronization domain is scheduled separately and independently. Finally, the scheduling results of each synchronization domain are integrated to obtain a complete scheduling table for the data flow. Step 3: Delay allocation strategy: In TSN, the delay required for a message from entering the switch to being sent out consists of four parts: receiving delay rdelay, forwarding delay fdelay, processing delay pdelay, and link delay ldelay. i Each time a switch is passed during transmission, a set of the above delays needs to be added, recorded as delay trans , whose value is shown in the following formula: f i .delay trans =f i .length·(rdelay+fdelay+pdelay+ldelay) (6) The symbol · represents the delay and the length of the data stream message f i .length; in addition, when the data flow f i With data flow f j When all packets need to be sent from the same port of the switch, because a port of the switch only allows a single packet to be sent at the same time, so for data flow f i In the worst case, we have to wait until the data flow f j After the transmission is completed, the data flow is sent again. The delay from the start of the transmission in the switch to the completion of the transmission is the processing delay pdelay, the link delay ldelay and the receiving delay rdelay, so the data flow f i Each conflict with a data stream requires an additional set of delays, denoted as delay conflict , whose value is shown in the following formula: f i .delay conflict =f j .length·(pdelay+ldelay+rdelay) (7) The size of the conflict delay is related to the data flow f i The conflicting data streams j The length of the message f j .length, the data flow f can be calculated based on the above two indicators i The delay distribution in each synchronization domain.
2. A deterministic transmission method between multiple synchronization domains according to claim 1, It is characterized in that In step 1, the data flow f i The transmission process is as follows: Step 1.1: In the initial synchronization domain d 1 In, due to the sending terminal d 1 .v 0 Belong to d 1 , so in d 1 The data stream can be directly transmitted using the time-triggered transmission method. i In d 1 The delay can be expressed as: in Respectively represent the data flow f i In the synchronization domain 1 Send terminal d 1 .v 0 The sending time point and the last switch d 1 .v n The sending time point, because the time-triggered transmission method is adopted, the difference between the two is the data flow f i In the synchronization domain 1 The delay required for transmission; Step 1.2: In other synchronization domains n ∈D other Among them, D otaer Indicates to remove the initial synchronization domain d 1 Data stream other than f i The data flow is not synchronized between the synchronous domains. i Upon arrival n is not exactly equal to switch d n .v 0 The scheduling time point; at this time, the asynchronous to synchronous mechanism is adopted, that is, the data stream is not forwarded immediately, but waits for d n .f i .t s.wait time, and forward it at the next scheduled sending time point; at this time, the data flow f i It has been synchronized to the scheduling time in the domain, and then reaches the last switch in the domain using time-triggered transmission. n .v n In order to achieve deterministic transmission, the delay adaptation mechanism needs to make the data flow f i Keep additional d n .f i .t s.hold At the same time, in order to reduce the message congestion and jitter caused by the retention, the message is retained in the first switch of the next synchronization domain. n .f i .t s.hold The size of needs to satisfy the following formula: Where s is the data stream f i The sequence number of the sth message, that is, to ensure the data flow f i Any message sent in d n The delays in are all fixed values, equal to d n The difference between the sending time of the last switch and the first switch in the data flow f i In d n The sum of the scheduling periods in , its value can be expressed as follows: From equations (1) and (3), we can get the data flow f i The total delay during the entire transmission process: Except for the first synchronization domain d 1 In addition, each other synchronization domain needs to add a scheduling period d because it involves cross-domain n .f i .period delay.
3. A deterministic transmission method between multiple synchronization domains according to claim 2, It is characterized in that In step 1.2, the data flow f i To ensure the real-time and deterministic performance among multiple synchronization domains, we only need to make equation (4) smaller than its timeout period, that is: where f i .timeout indicates data flow f i The timeout period.
4. A deterministic transmission method between multiple synchronization domains according to claim 1, It is characterized in that The scheduling method in step 2 is specifically as follows: given the N data stream information fs[N] to be scheduled and the number of synchronization domains M in the network, in lines 1-2 of code, firstly initialize the identification array isScheduleSuccess[M] of whether the synchronization domain is successfully scheduled and the scheduling result array scheduleResult[M] of the synchronization domain, and then enter the scheduling loop; In the scheduling loop, firstly, the delay value delay[N][M] of the data stream in each synchronization domain is calculated according to the delay allocation algorithm splitDelay. Then, each synchronization domain is scheduled in a loop. If the current synchronization domain has been successfully scheduled, the current synchronization domain will not be scheduled anymore, and the next synchronization domain will be scheduled. If the scheduling result scheduleResult[i] obtained by the doSchedule() method meets the requirements, the flag isScheduleSuccess[i] indicating whether the i-th synchronization domain has been successfully scheduled is set to true, indicating that the scheduling is successful. After all M synchronization domains are scheduled, if the number of true isScheduleSuccess[M] array is less than M and the value of isScheduleSuccess[M] has changed compared with the previous cycle, it means that there are synchronization domains that have not been successfully scheduled and are still capable of continuing scheduling. At this time, jump to line 4 of the code. Since the scheduling time point of the successfully scheduled synchronization domain has been determined, the actual value of the data flow transmission delay in it can be calculated, and the new available delay freeDelay[N] can be obtained. After the delay is re-allocated, the next round of scheduling cycle can be carried out; otherwise, it means that all synchronization domains have been successfully scheduled or there are synchronization domains that have not been successfully scheduled but the delay redundancy can no longer be obtained. At this time, the scheduling results scheduleResult[M] of each synchronization domain are integrated to obtain the final scheduling table scheduleTable, jump out of the loop, and end the scheduling.
5. A deterministic transmission method between multiple synchronization domains according to claim 3, It is characterized in that In step 3, the data flow f is calculated i The specific method for allocating delays in each synchronization domain is as follows: There are N time synchronization domains in the network to be allocated delays. After obtaining the transmission paths of all data flows, the data flow f can be calculated. i In the synchronization domain n The number of switches passed through The number of data flows that collide with each other (that is, each time a data flow collides with another data flow, it is counted once) Then the data flow f i In the synchronization domain n The transmission delay in trans and conflict delay conflict They are: The data stream f i In the synchronization domain n The actual delay allocated in Its value can be expressed as follows: where f i .freeDelay indicates data flow f i The delay value available for delay sharing can be used to calculate the delay shared by each synchronization domain according to formula (10).
6. A deterministic transmission method between multiple synchronization domains according to claim 1, It is characterized in that The steps of calculating the delay allocation in the multi-synchronous domain scheduling process in step 3 are as follows: Step 3.1: First, initialize the array that stores the delays of N data streams in M synchronization domains, then enter the outer loop located in the second line of the code, set the delay value fs[i].freeDelay available for delay sharing of the data stream to its timeout time, and then enter the inner loop. If the value of isScheduleSuccess[j] is true, it means that the current synchronization domain has been successfully scheduled. The actual delay value consumed by the data stream fs[i] in the jth synchronization domain transmission is directly calculated according to the sending time point of the data stream fs[i] in the switch in the scheduling result scheduleResult[j], and assigned to delay[i][j]. At the same time, delay[i][j] is subtracted from the delay value fs[i].freeDelay available for delay sharing; otherwise, it means that the current synchronization domain is not scheduled or the scheduling fails; Step 3.2: Calculate the delay allocation weight of data stream fs[i] in the jth synchronization domain according to equations (8) and (9), assign it to delay[i][j], and add it to the total delay allocation weight value of data stream fs[i]; Step 3.3: Repeat the above steps until the total delay weight value of all data streams and the delay weight in each synchronization domain are calculated, and then the loop ends. Finally, the delay value allocated to each synchronization domain of the data stream can be calculated according to formula (10), and the result delay[N][M] is returned.
Citation Information
Patent Citations
Hierarchical clock synchronization method between low-orbit small satellites
CN112904705A
High-reliability time-sensitive network time synchronization method and system
CN113055116A
Synchronization for 5GS time sensitive communications (TSC) using machine learning
WO2020171802A1
