本技術(shù)實施例涉及終端,尤其涉及一種時間同步方法及電子設(shè)備。
背景技術(shù):
1、以手機終端為例,終端中通常設(shè)置一個主應(yīng)用處理器(application?processor,ap)以及一個或多個微控制器單元(microcontroller?unit,mcu),ap與mcu之間需要保持時間戳同步,以保證終端業(yè)務(wù)與系統(tǒng)功能的正常運行。
2、然而,時間戳同步本身存在誤差,并且隨著各mcu的長時間運行,存在進一步擴大時間戳同步誤差的問題。
技術(shù)實現(xiàn)思路
1、為了解決上述技術(shù)問題,本技術(shù)提供一種時間同步方法及電子設(shè)備。該方法中,在電子設(shè)備的不同處理單元之間發(fā)送請求-響應(yīng)類型的指令時,根據(jù)指令中攜帶的時間戳信息,確定不同處理單元之間的關(guān)于時間戳的校正補償值。以及,利用校正補償值,對待同步處理單元的當(dāng)前時間戳進行校正,以實現(xiàn)不同處理單元之間的時間同步。
2、第一方面,本技術(shù)實施例提供了一種時間同步方法,應(yīng)用于電子設(shè)備,所述電子設(shè)備包括第一處理單元和第二處理單元,所述第一處理單元與所述第二處理單元之間通過物理通信鏈路傳輸數(shù)據(jù),所述方法由所述第一處理單元執(zhí)行,包括:向所述第二處理單元發(fā)送第一業(yè)務(wù)請求,并記錄發(fā)送所述第一業(yè)務(wù)請求時的第一發(fā)送時間戳;接收由所述第二處理單元響應(yīng)于所述第一業(yè)務(wù)請求返回的第一響應(yīng)數(shù)據(jù),并記錄收到所述第一響應(yīng)數(shù)據(jù)時的第一接收時間戳;根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳和所述第一響應(yīng)數(shù)據(jù),確定校正補償值;以及向所述第二處理單元發(fā)送所述校正補償值,以使所述第二處理單元利用所述校正補償值更新當(dāng)前時間戳。
3、利用請求-響應(yīng)類型指令中攜帶的時間戳信息,確定不同處理單元之間的關(guān)于時間戳的校正補償值,利用校正補償值對待同步處理單元的當(dāng)前時間戳進行校正,可以有效提升不同處理單元之間的時間同步精度,有利于提高電子設(shè)備的整體性能和運行穩(wěn)定性,有利于改善用戶使用體驗。
4、根據(jù)第一方面,所述根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳和所述第一響應(yīng)數(shù)據(jù),確定校正補償值,包括:解析所述第一響應(yīng)數(shù)據(jù),以獲取由所述第一響應(yīng)數(shù)據(jù)指示的所述第二處理單元收到所述第一業(yè)務(wù)請求時的第二接收時間戳,以及所述第二處理單元發(fā)送所述第一響應(yīng)數(shù)據(jù)時的第二發(fā)送時間戳;以及根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳、所述第二發(fā)送時間戳、所述第二接收時間戳和基準時間戳偏差,確定校正補償值。
5、上一次對第二處理單元進行時間戳校正時,所計算出的第一處理單元與第二處理單元之間的歷史時間戳偏差,構(gòu)成當(dāng)前次對第二處理單元進行時間戳校正的基準時間戳偏差。
6、通過提高時間戳對齊精度,可以更好地協(xié)調(diào)不同處理器的工作,有利于提升系統(tǒng)運行的穩(wěn)定性,有利于優(yōu)化電子設(shè)備的整體性能。
7、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳、所述第二發(fā)送時間戳、所述第二接收時間戳和基準時間戳偏差,確定校正補償值,包括:根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳、所述第二發(fā)送時間戳和所述第二接收時間戳,確定所述第一處理單元與所述第二處理單元之間的鏈路傳輸時延;在所述鏈路傳輸時延位于預(yù)設(shè)時長范圍內(nèi)的情況下,根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳、所述第二發(fā)送時間戳和所述第二接收時間戳,確定所述第一處理單元與所述第二處理單元之間的當(dāng)前時間戳偏差;以及根據(jù)所述當(dāng)前時間戳偏差和所述基準時間戳偏差,確定所述校正補償值。
8、如果鏈路傳輸時延過大或過小(即不在合理區(qū)間內(nèi)),則表示可能存在通信鏈路異常的情況,其他數(shù)據(jù)存在誤差較大的風(fēng)險,不對其他數(shù)據(jù)予以采信,并進行清理。在鏈路傳輸時延不位于預(yù)設(shè)時長范圍內(nèi)的情況下,確定當(dāng)前次的鏈路傳輸時延無效,清除對應(yīng)的數(shù)據(jù)記錄。
9、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,上一次對所述第二處理單元進行時間戳校正時,所計算出的所述第一處理單元與所述第二處理單元之間的歷史時間戳偏差,構(gòu)成當(dāng)前次對所述第二處理單元進行時間戳校正的所述基準時間戳偏差。
10、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述根據(jù)所述當(dāng)前時間戳偏差和所述基準時間戳偏差,確定所述校正補償值,包括:確定所述當(dāng)前時間戳偏差與所述基準時間戳偏差之間的第一差值是否大于預(yù)設(shè)精度閾值;在所述第一差值大于預(yù)設(shè)精度閾值的情況下,確定所述第一處理單元在基于當(dāng)前次的相鄰前m次向所述第二處理單元發(fā)送所述第一業(yè)務(wù)請求時,所述相鄰前m次中的任意次所計算出的所述第一處理單元與所述第二處理單元之間的歷史時間戳偏差和對應(yīng)的歷史基準偏差之間的第二差值是否均大于預(yù)設(shè)精度閾值,m為大于1的整數(shù);以及在m個所述第二差值均大于預(yù)設(shè)精度閾值的情況下,將所述第一差值作為所述校正補償值。
11、如果當(dāng)前時間戳偏差與基準時間戳偏差之間的差值未大于預(yù)設(shè)精度閾值,說明上一次對第二處理單元進行時間戳校正時所生成的基準時間戳偏差可用,無需更新。本次計算的當(dāng)前時間戳偏差無效,清除對應(yīng)的數(shù)據(jù)記錄。在當(dāng)前時間戳偏差與基準時間戳偏差之間的差值大于預(yù)設(shè)精度閾值的情況下,統(tǒng)計基于當(dāng)前次的相鄰前m次業(yè)務(wù)請求-響應(yīng)過程中,前述差值連續(xù)大于預(yù)設(shè)精度閾值的次數(shù)。
12、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述方法還包括:在m個所述第二差值均大于預(yù)設(shè)精度閾值的情況下,確定所述鏈路傳輸時延和所述相鄰前m次中的任意次所計算出的所述第一處理單元與所述第二處理單元之間的歷史傳輸時延是否滿足第一穩(wěn)定性條件,以及確定所述當(dāng)前時間戳偏差和m個所述歷史時間戳偏差是否滿足第二穩(wěn)定性條件;在所述第一穩(wěn)定性條件和所述第二穩(wěn)定性條件均被滿足的情況下,將所述第一差值作為所述校正補償值。
13、可以有效避免不穩(wěn)定的鏈路傳輸時延或當(dāng)前時間戳偏差,造成時間戳對齊精度受影響的情況,有利于保證不同處理單元之間時鐘同步的準確性。
14、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述方法還包括:在所述第一穩(wěn)定性條件和所述第二穩(wěn)定性條件均被滿足的情況下,將所述當(dāng)前時間戳偏差作為下一次對所述第二處理單元進行時間戳校正時的基準時間戳偏差。
15、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳、所述第二發(fā)送時間戳和所述第二接收時間戳,確定所述第一處理單元與所述第二處理單元之間的鏈路傳輸時延,包括:計算所述第一接收時間戳與所述第一發(fā)送時間戳之間的第三差值、所述第二接收時間戳與所述第二發(fā)送時間戳之間的第四差值;以及將所述第三差值和所述第四差值的均值,作為所述鏈路傳輸時延。
16、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳、所述第二發(fā)送時間戳和所述第二接收時間戳,確定所述第一處理單元與所述第二處理單元之間的當(dāng)前時間戳偏差,包括:計算所述第一發(fā)送時間戳與所述第二接收時間戳之間的第五差值、所述第一接收時間戳與所述第二發(fā)送時間戳之間的第六差值;以及將所述第五差值和所述第六差值的均值,作為所述當(dāng)前時間戳偏差。
17、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述方法還包括:在首次對所述第二處理單元進行時間戳校正時,向所述第二處理單元多次發(fā)送同步指令,并記錄每次發(fā)送所述同步指令時的第三發(fā)送時間戳;接收由所述第二處理單元返回的與各所述同步指令匹配的應(yīng)答消息,并記錄收到各所述應(yīng)答消息時的第三接收時間戳;解析各所述應(yīng)答消息,以獲取由各所述應(yīng)答消息指示的所述第二處理單元收到對應(yīng)同步指令時的第四接收時間戳,以及所述第二處理單元發(fā)送各所述應(yīng)答消息時的第四發(fā)送時間戳;根據(jù)與各所述同步指令匹配的所述第三發(fā)送時間戳、所述第三接收時間戳、所述第四發(fā)送時間戳和所述第四接收時間戳,確定所述第一處理單元與所述第二處理單元之間的多個初始時間戳偏差;以及將所述多個初始時間戳偏差的均值,作為下一次對所述第二處理單元進行時間戳校正時的基準時間戳偏差。
18、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述方法還包括:向具有時間同步需求的目標(biāo)客戶端發(fā)送所述校正補償值,以使所述目標(biāo)客戶端利用所述校正補償值更新當(dāng)前時間戳。
19、具有時間同步需求的目標(biāo)客戶端例如包括實時時鐘(rtc)應(yīng)用、硬件控制應(yīng)用、傳感器數(shù)據(jù)處理應(yīng)用等。
20、根據(jù)第一方面,或者以上第一方面的任意一種實現(xiàn)方式,所述方法還包括:在所述第一處理單元面向所述第二處理單元發(fā)起新的核間通信之前,通過所述第一處理單元的通用輸入/輸出gpio引腳輸出電信號,以使所述第二處理單元基于所述電信號觸發(fā)中斷服務(wù);以及記錄所述gpio引腳輸出電信號的第一輸出時間戳,并將所述第一輸出時間戳發(fā)送給所述第二處理單元,以使所述第二處理單元根據(jù)所述第一輸出時間戳和觸發(fā)中斷服務(wù)的第一觸發(fā)時間戳,確定所述第一處理單元與所述第二處理單元之間的當(dāng)前時間戳偏差。
21、gpio引腳所輸出的電信號例如包括高電平、低電平、上升沿或下降沿等。
22、第二方面,本技術(shù)實施例提供了一種時間同步方法,應(yīng)用于電子設(shè)備,所述電子設(shè)備包括第一處理單元、第二處理單元和第三處理單元,所述第一處理單元與所述第二處理單元、所述第二處理單元與所述第三處理單元之間分別通過物理通信鏈傳輸數(shù)據(jù),所述方法由所述第一處理單元執(zhí)行,包括:向所述第二處理單元發(fā)送第二業(yè)務(wù)請求,并記錄發(fā)送所述第二業(yè)務(wù)請求時的第五發(fā)送時間戳;接收由所述第二處理單元返回的第二響應(yīng)數(shù)據(jù),并記錄收到所述第二響應(yīng)數(shù)據(jù)時的第五接收時間戳,其中,所述第二響應(yīng)數(shù)據(jù)為所述第二處理單元將所述第二業(yè)務(wù)請求轉(zhuǎn)發(fā)給所述第三處理單元之后,由所述第三處理單元基于所述第二業(yè)務(wù)請求所生成的響應(yīng)數(shù)據(jù);根據(jù)所述第五發(fā)送時間戳、所述第五接收時間戳和所述第二響應(yīng)數(shù)據(jù),確定校正補償值;以及向所述第二處理單元發(fā)送所述校正補償值,以使所述第二處理單元將所述校正補償值轉(zhuǎn)發(fā)給所述第三處理單元,以實現(xiàn)所述第三處理單元利用所述校正補償值更新當(dāng)前時間戳。
23、根據(jù)第二方面,所述根據(jù)所述第五發(fā)送時間戳、所述第五接收時間戳和所述第二響應(yīng)數(shù)據(jù),確定校正補償值,包括:解析所述第二響應(yīng)數(shù)據(jù),以獲取由所述第二響應(yīng)數(shù)據(jù)指示的所述第二處理單元收到所述第二業(yè)務(wù)請求時的第六接收時間戳、所述第二處理單元轉(zhuǎn)發(fā)所述第二業(yè)務(wù)請求時的第六發(fā)送時間戳、所述第三處理單元收到所述第二業(yè)務(wù)請求時的第七接收時間戳、所述第三處理單元發(fā)送所述第二響應(yīng)數(shù)據(jù)時的第七發(fā)送時間戳、所述第二處理單元收到所述第二響應(yīng)數(shù)據(jù)時的第八接收時間戳以及所述第二處理單元轉(zhuǎn)發(fā)所述第二響應(yīng)數(shù)據(jù)時的第八發(fā)送時間戳;以及根據(jù)所述第五發(fā)送時間戳、所述第五接收時間戳、所述第六發(fā)送時間戳、所述第六接收時間戳、第七發(fā)送時間戳、所述第七接收時間戳、所述第八發(fā)送時間戳、所述第八接收時間戳和基準時間戳偏差,確定所述校正補償值。
24、根據(jù)第二方面,或者以上第二方面的任意一種實現(xiàn)方式,所述根據(jù)所述第五發(fā)送時間戳、所述第五接收時間戳、所述第六發(fā)送時間戳、所述第六接收時間戳、第七發(fā)送時間戳、所述第七接收時間戳、所述第八發(fā)送時間戳、所述第八接收時間戳和基準時間戳偏差,確定所述校正補償值,包括:根據(jù)所述第五發(fā)送時間戳、所述第五接收時間戳、所述第六發(fā)送時間戳、所述第六接收時間戳、第七發(fā)送時間戳、所述第七接收時間戳、所述第八發(fā)送時間戳和所述第八接收時間戳,確定所述第一處理單元與所述第三處理單元之間的鏈路傳輸時延;在所述鏈路傳輸時延位于預(yù)設(shè)時長范圍內(nèi)的情況下,根據(jù)所述第五發(fā)送時間戳、所述第五接收時間戳、所述第六發(fā)送時間戳、所述第六接收時間戳、第七發(fā)送時間戳、所述第七接收時間戳、所述第八發(fā)送時間戳和所述第八接收時間戳,確定所述第一處理單元與所述第三處理單元之間的當(dāng)前時間戳偏差;以及根據(jù)所述當(dāng)前時間戳偏差和所述基準時間戳偏差,確定所述校正補償值。
25、第三方面,本技術(shù)實施例提供了一種時間同步方法,應(yīng)用于電子設(shè)備,其特征在于,所述電子設(shè)備包括第一處理單元和第二處理單元,所述第一處理單元與所述第二處理單元之間通過物理通信鏈路傳輸數(shù)據(jù),所述方法由所述第二處理單元執(zhí)行,包括:接收由所述第一處理單元發(fā)送的第一業(yè)務(wù)請求,并記錄收到所述第一業(yè)務(wù)請求時的第二接收時間戳;將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容和時間戳信息填充于返回包中,以形成第一響應(yīng)數(shù)據(jù),所述時間戳信息包括所述第二接收時間戳和所述第二處理單元返回所述第一響應(yīng)數(shù)據(jù)時的第二發(fā)送時間戳;向所述第一處理單元返回所述第一響應(yīng)數(shù)據(jù),以使所述第一處理單元根據(jù)所述第一響應(yīng)數(shù)據(jù)確定校正補償值;以及接收由所述第一處理單元發(fā)送的校正補償值,并利用所述校正補償值更新當(dāng)前時間戳。
26、根據(jù)第三方面,所述方法還包括:利用所述校正補償值,對緩存隊列中的待處理事件的時間戳進行校正。
27、當(dāng)緩存隊列不為空的時候,需要對緩存隊列中的待處理事件的時間戳采用新的校正校準值進行更新,以確保其正確的時序關(guān)系和相對精度。
28、根據(jù)第三方面,或者以上第三方面的任意一種實現(xiàn)方式,所述將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容和時間戳信息填充于返回包中,以形成第一響應(yīng)數(shù)據(jù),包括:將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容、所述第二發(fā)送時間戳、所述第二發(fā)送時間戳與所述第二接收時間戳的差分時間戳填充于所述返回包中,以形成所述第一響應(yīng)數(shù)據(jù)。
29、根據(jù)第三方面,或者以上第三方面的任意一種實現(xiàn)方式,所述將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容和時間戳信息填充于返回包中,以形成第一響應(yīng)數(shù)據(jù),包括:在所述第二處理單元包括除所述第二接收時間戳和所述第二發(fā)送時間戳以外的其他時間戳的情況下,將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容、所述第二發(fā)送時間戳、所述第二發(fā)送時間戳與所述第二接收時間戳的差分時間戳、所述第二發(fā)送時間戳與各所述其他時間戳的差分時間戳填充于所述返回包中,以形成所述第一響應(yīng)數(shù)據(jù)。
30、根據(jù)第三方面,或者以上第三方面的任意一種實現(xiàn)方式,所述將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容和時間戳信息填充于返回包中,以形成第一響應(yīng)數(shù)據(jù),包括:在所述第二處理單元包括除所述第二接收時間戳和所述第二發(fā)送時間戳以外的其他時間戳的情況下,將基于所述第一業(yè)務(wù)請求的響應(yīng)內(nèi)容、所述第二發(fā)送時間戳、所述第二發(fā)送時間戳與所述第二接收時間戳的差分時間戳、各所述其他時間戳所對應(yīng)的待傳輸時間戳填充于所述返回包中,以形成所述第一響應(yīng)數(shù)據(jù),其中,所述差分時間戳的最高標(biāo)記位指示了所述待傳輸時間戳為對應(yīng)其他時間戳的原時間戳內(nèi)容,或者為所述第二發(fā)送時間戳與對應(yīng)其他時間戳的差分值。
31、根據(jù)第三方面,或者以上第三方面的任意一種實現(xiàn)方式,所述利用所述校正補償值更新當(dāng)前時間戳,包括:對所述當(dāng)前時間戳與所述校正補償值進行求和,得到補償后的當(dāng)前時間戳。
32、根據(jù)第三方面,或者以上第三方面的任意一種實現(xiàn)方式,所述方法還包括:利用所述補償后的當(dāng)前時間戳,對與所述第二處理單元連接的其他節(jié)點進行時間戳校正,所述其他節(jié)點與所述第二處理單元之間通過物理通信鏈路傳輸數(shù)據(jù)。
33、第四方面,本技術(shù)實施例提供了一種電子設(shè)備,包括第一處理單元和第二處理單元,所述第一處理單元與所述第二處理單元之間通過物理通信鏈路傳輸數(shù)據(jù),所述電子設(shè)備還包括:一個或多個處理器、存儲器以及一個或多個計算機程序,其中所述一個或多個計算機程序存儲在所述存儲器上,當(dāng)所述計算機程序被所述一個或多個處理器執(zhí)行時,使得所述電子設(shè)備執(zhí)行以下步驟:所述第一處理單元向所述第二處理單元發(fā)送第一業(yè)務(wù)請求,并記錄發(fā)送所述第一業(yè)務(wù)請求時的第一發(fā)送時間戳;所述第一處理單元接收由所述第二處理單元響應(yīng)于所述第一業(yè)務(wù)請求返回的第一響應(yīng)數(shù)據(jù),并記錄收到所述第一響應(yīng)數(shù)據(jù)時的第一接收時間戳;所述第一處理單元根據(jù)所述第一發(fā)送時間戳、所述第一接收時間戳和所述第一響應(yīng)數(shù)據(jù),確定校正補償值;以及所述第一處理單元向所述第二處理單元發(fā)送所述校正補償值,以使所述第二處理單元利用所述校正補償值更新當(dāng)前時間戳。
34、第四方面以及第四方面的任意一種實現(xiàn)方式分別與第一方面以及第一方面的任意一種實現(xiàn)方式相對應(yīng)。第四方面以及第四方面的任意一種實現(xiàn)方式所對應(yīng)的技術(shù)效果可參見上述第一方面以及第一方面的任意一種實現(xiàn)方式所對應(yīng)的技術(shù)效果,此處不再贅述。
35、第五方面,本技術(shù)實施例提供了一種計算機可讀介質(zhì),用于存儲計算機程序,該計算機程序包括用于執(zhí)行第一方面或第一方面的任意可能的實現(xiàn)方式中的方法的指令。
36、第六方面,本技術(shù)實施例提供了一種計算機程序,該計算機程序包括用于執(zhí)行第一方面或第一方面的任意可能的實現(xiàn)方式中的方法的指令。
37、第七方面,本技術(shù)實施例提供了一種芯片,該芯片包括處理電路、收發(fā)管腳。其中,該收發(fā)管腳、和該處理電路通過內(nèi)部連接通路互相通信,該處理電路執(zhí)行第一方面或第一方面的任一種可能的實現(xiàn)方式中的方法,以控制接收管腳接收信號,以控制發(fā)送管腳發(fā)送信號。