本申請涉及數據傳輸技術領域,尤其涉及一種主從機tdma時隙同步校準方法及裝置。
背景技術:
目前時分多址(timedivisionmultipleaccess,tdma)時隙同步的實現方法中,大部分都要依靠rtc時鐘或者是gps模塊來提供精準的時鐘源進行時隙同步,即需要設置一個rtc(real-timeclock)時鐘源或者全球衛(wèi)星定位系統(tǒng)(globlepositioningsystem,gps)模塊提供精準的時鐘信息。之后,利用該時鐘信息進行時隙同步。
然而,采用rtc時鐘源或者gps模塊不僅會增加成本,而且使用時具有局限性。例如,采用gps模塊時,在室內環(huán)境下,由于gps信號較弱或者消失,導致方案無法實現,采用rtc時鐘源時,需要對rtc時鐘進行校準才能確保時鐘信息的準確性。
技術實現要素:
為克服相關技術中存在的問題,本申請實施例提供一種主從機tdma時隙同步校準方法及裝置,用以解決相關技術中的技術問題。
根據本申請實施例的第一方面,提供一種主從機tdma時隙同步校準方法,所述方法包括:
至少一個從機接收來自主機的同步幀;所述同步幀中包括所述主機中定時計數器的第一計數值;
至少一個所述從機解析所述同步幀得到所述第一計數值;
針對每個所述從機,根據所述第一計數值和該從機中定時計數器的第二計數值調整該從機的tdma時隙,以使所述從機的tdma時隙與所述主機的tdma時隙保持同步。
可選地,至少一個從機接收來自主機的同步幀的步驟之前,所述方法包括:
針對每個從機,對該從機中時鐘源進行分頻操作以確定所述從機中定時計數器的時間粒度;
設置所述從機中比較寄存器的第三計數值。
可選地,根據所述第一計數值和該從機中定時計數器的第二計數值調整該從機的tdma時隙的步驟,包括:
若所述第一計數值與所述第二計數值之差為零,則保持該從機中定時計數器的第二計數值不變;
若所述第一計數值大于所述第二計數值,且兩者之差為第一數值a,則使該從機中定時計數器的第二計數值延時所述第一數值a個時間粒度之后再控制所述定時計數器重新計數;
若所述第一計數值小于所述第二計數值,且兩者之差為第二數值b,則將該從機的比較寄存器中第三計數值減去所述第二數值b得到第四計數值,在所述第二計數值到達所述第四計數值時控制所述定時計數器重新計數。
根據本申請實施例的第二方面,提供一種主從機tdma時隙同步校準方法,所述方法包括:
主機獲取定時計數器的第一計數值;
主機讀取比較寄存器中的第三計數值;
在所述第一計數值與所述第三計數值相等時,執(zhí)行預設中斷程序生成同步幀發(fā)送給至少一個從機,并控制所述定時計數器重新計數。
可選地,主機獲取定時計數器的第一計數值的步驟之前,所述方法包括:
對所述主機中時鐘源進行分頻操作以確定所述主機中定時計數器的時間粒度;
設置所述主機中比較寄存器的第三計數值。
根據本申請實施例的第三方面,提供一種主從機tdma時隙同步校準裝置,配置在每個從機中,所述裝置包括:
接收模塊,用于接收來自主機的同步幀;所述同步幀中包括所述主機中定時計數器的第一計數值;
解析模塊,用于從機解析所述同步幀得到所述第一計數值;
調整模塊,用于根據所述第一計數值和該從機中定時計數器的第二計數值調整該從機的tdma時隙,以使所述從機的tdma時隙與所述主機的tdma時隙保持同步。
可選地,所述裝置還包括:
第一確定模塊,用于對該從機中時鐘源進行分頻操作以確定所述從機中定時計數器的時間粒度;
第一設置模塊,用于設置所述從機中比較寄存器的第三計數值。
可選地,所述調整模塊包括:
第一比較單元,用于在所述第一計數值與所述第二計數值之差為零時,保持該從機中定時計數器的第二計數值不變;
第二比較單元,用于在所述第一計數值大于所述第二計數值,且兩者之差為第一數值a時,使該從機中定時計數器的第二計數值延時所述第一數值a個時間粒度之后再控制所述定時計數器重新計數;
第三比較單元,用于在所述第一計數值小于所述第二計數值,且兩者之差為第二數值b時,將該從機的比較寄存器中第三計數值減去所述第二數值b得到第四計數值,在所述第二計數值到達所述第四計數值時控制所述定時計數器重新計數。
根據本申請實施例的第四方面,提供一種主從機tdma時隙同步校準裝置,其特征在于,配置在每個從機中,所述裝置包括:
獲取模塊,用于獲取主機中定時計數器的第一計數值;
讀取模塊,用于讀取所述主機中比較寄存器中的第三計數值;
生成模塊,用于在所述第一計數值與所述第三計數值相等時,執(zhí)行預設中斷程序生成同步幀發(fā)送給至少一個從機,并控制所述定時計數器重新計數。
可選地,所述裝置還包括:
第二確定模塊,用于對所述主機中時鐘源進行分頻操作以確定所述主機中定時計數器的時間粒度;
第二設置模塊,用于設置所述主機中比較寄存器的第三計數值。
本申請的實施例提供的技術方案可以包括以下有益效果:
本申請實施例提供的上述方法,通過接收主機生成的同步幀,然后解析出同步幀中包括的第一計數值,最后根據該第一計數值與本地定時計數中的第二計數值調整該從機的tdma時隙??梢姡旧暾堉苯永弥鳈C和從機各自時鐘源進行同步,無需增加rtc時鐘源和gps模塊,降低成本的同時提高準確性。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本申請。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是本申請一實施例提供的主從機tdma時隙同步校準方法的流程示意圖;
圖2是是本申請另一實施例提供的主從機tdma時隙同步校準方法的流程示意圖;
圖3是是本申請一實施例提供的主從機tdma時隙同步校準裝置的框圖;
圖4是是本申請另一實施例提供的主從機tdma時隙同步校準裝置的框圖;
圖5是是本申請又一實施例提供的主從機tdma時隙同步校準裝置的框圖;
圖6是是本申請再一實施例提供的主從機tdma時隙同步校準裝置的框圖;
圖7是是本申請又一實施例提供的主從機tdma時隙同步校準裝置的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據一示例性實施例示出的主從機tdma時隙同步校準方法的流程示意圖。如圖1所示,該主從機tdma時隙同步校準方法,包括:
步驟101,至少一個從機接收來自主機的同步幀;所述同步幀中包括所述主機中定時計數器的第一計數值;
步驟102,至少一個所述從機解析所述同步幀得到所述第一計數值;
步驟103,針對每個所述從機,根據所述第一計數值和該從機中定時計數器的第二計數值調整該從機的tdma時隙,以使所述從機的tdma時隙與所述主機的tdma時隙保持同步。
下面針對主機與至少一個從機交互過程,詳細說明上述主從機tdma時隙同步校準方法。
本申請實施例中,利用主機和從機中微控制器mcu里面自帶的時鐘源為tdma時隙同步的時鐘源。
首先,本申請一實施例中,對主機中微控制器mcu的時鐘源進行分頻操作,以確定主機中定時計數器的時間粒度。每個時間粒度通常為毫秒級別。然后,設置主機中比較寄存器的工作模式,例如,使能定時計數器的自動重加載功能即重新計數,并且設置主機中比較寄存器的第三計數值。當定時計數器的第一計數值與比較寄存器的第三計數值相等時,主機中控制器便會產生中斷信號來執(zhí)行預設中斷程序,同時定時計數器的第一計數值自動清零并重新計數。
例如,定義一個tdma的時隙為20ms,則可以通過設置定時計數器的第一計數值來達到每次計數值為20ms,在到達20ms時產生一個中斷信號來執(zhí)行預設中斷程序,并重新開始計數。
通常情況下,一個tdma系統(tǒng)中會存在一個主機和至少一個從機的情況,因此,由于主機和從機啟動定時計數器的時刻不一樣,所以從機需要進行tdma時隙的校準才能跟主機的時隙進行同步。
為使從機的時隙跟主機的時隙保持一致,本申請一實施例中構造一個同步幀并將主機的定時計數器的第一計數值發(fā)送給至少一個從機進行參考。然后,每個從機通過解析同步幀得到該同步幀中攜帶的第一計數值,然后跟本地的第二計數值進行比較,最后第一計數值和第二計數值兩者之差來調整本地定時計數器的第二計數值,從而達到校準時隙的目的。
本申請一實施例中,主機定時向每個從機發(fā)送同步幀,以使每個從機與主機進行tdma時隙同步,如圖2所示,包括:
步驟201:在第一計數值和第二計數值相同,即兩者之差為零,則該從機的本地定時計數器不需要進行校準操作。
步驟202:同步幀攜帶的第一計數值大于從機中第二計數值,且第一計數值與第二計數值兩者之差為第一數值a,該從機根據第一數值a來調整本地定時計數器的第二計數值。這種情況需要在定時計數器的第二計數值的基礎上增加上述第一數值a,使得從機的定時計數器延后a個時間粒度后才觸發(fā)中斷并重新加載計數值,從而確保從機在重新加載計數值后,該從機的第二計數值與主機中第一計數值保持同步。
步驟203:同步幀攜帶的第一計數值小于從而中第二計數值,且第一計數值和第二計數值兩者之差為第二數值b,從機根據第二數值b來調整本地定時計數器的第二計數值。此時,需要在第二計數值的基礎上減法第二計數值b,使得從機的定時計數器提前b個時間粒度后觸發(fā)中斷并重新加載計數值,從而確保從機在重新加載計數值后,本地定時計數器的第二計數值與主機的第一計數值保持同步。
至此,本申請實施例中,利用主機和從機中微控制器mcu里面都自帶有時鐘源,作為tdma時隙同步的時鐘源,可以實現主機和從機同步??梢?,本申請的方案實現簡單,適用性較強,不需要增加額外的器件成本。
根據本申請另一實施例提供一種主從機tdma時隙同步校準裝置,配置在每個從機中,如圖3所示,所述裝置包括:
接收模塊301,用于接收來自主機的同步幀;所述同步幀中包括所述主機中定時計數器的第一計數值;
解析模塊302,用于從機解析所述同步幀得到所述第一計數值;
調整模塊303,用于根據所述第一計數值和該從機中定時計數器的第二計數值調整該從機的tdma時隙,以使所述從機的tdma時隙與所述主機的tdma時隙保持同步。
可選地,如圖4所示,所述裝置還包括:
第一確定模塊401,用于對該從機中時鐘源進行分頻操作以確定所述從機中定時計數器的時間粒度;
第一設置模塊402,用于設置所述從機中比較寄存器的第三計數值。
可選地,如圖5所示,所述調整模塊包括:
第一比較單元501,用于在所述第一計數值與所述第二計數值之差為零時,保持該從機中定時計數器的第二計數值不變;
第二比較單元502,用于在所述第一計數值大于所述第二計數值,且兩者之差為第一數值a時,使該從機中定時計數器的第二計數值延時所述第一數值a個時間粒度之后再控制所述定時計數器重新計數;
第三比較單元503,用于在所述第一計數值小于所述第二計數值,且兩者之差為第二數值b時,將該從機的比較寄存器中第三計數值減去所述第二數值b得到第四計數值,在所述第二計數值到達所述第四計數值時控制所述定時計數器重新計數。
根據本申請實施例的第四方面,提供一種主從機tdma時隙同步校準裝置,配置在每個從機中,如圖6所示,所述裝置包括:
獲取模塊601,用于獲取所述主機中定時計數器的第一計數值;
讀取模塊602,用于讀取所述主機中比較寄存器中的第三計數值;
生成模塊603,用于在所述第一計數值與所述第三計數值相等時,執(zhí)行預設中斷程序生成同步幀發(fā)送給至少一個從機,并控制所述定時計數器重新計數。
可選地,如圖7所示,所述裝置還包括:
第二確定模塊701,用于對所述主機中時鐘源進行分頻操作以確定所述主機中定時計數器的時間粒度;
第二設置模塊702,用于設置所述主機中比較寄存器的第三計數值
關于上述實施例中的裝置,其中各個單元或者模塊執(zhí)行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本領域技術人員在考慮說明書及實踐這里公開的公開后,將容易想到本申請的其它實施方案。本申請旨在涵蓋本申請的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本申請的一般性原理并包括本申請未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本申請的真正范圍和精神由下面的權利要求指出。
應當理解的是,本申請并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本申請的范圍僅由所附的權利要求來限制。