時鐘跳變?nèi)蒎e處理方法及裝置的制造方法
【專利摘要】本發(fā)明適用于計算機技術領域,提供一種時鐘跳變?nèi)蒎e處理方法及裝置,應用于具有雙CPU的駕駛艙語音記錄儀QACVR,所述方法包括:在駕駛艙語音記錄儀QACVR上電初始化時,獲取所述QACVR上一次斷電時的時鐘信息、第一CPU的系統(tǒng)時鐘信息、第二CPU的系統(tǒng)時鐘信息;根據(jù)所述第一CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差;根據(jù)所述第二CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一CPU的系統(tǒng)時鐘和第二CPU的系統(tǒng)時鐘。本發(fā)明實現(xiàn)了對QACVR的第一CPU和第二CPU的時鐘容錯處理,解決了現(xiàn)有的QACVR上電或下電時存在的時鐘跳變問題。
【專利說明】
時鐘跳變?nèi)蒎e處理方法及裝置
技術領域
[0001]本發(fā)明屬于計算機技術領域,提供了時鐘跳變?nèi)蒎e處理方法及裝置。
【背景技術】
[0002]早期軟件版本的QACVR (駕駛艙語音記錄儀)應用在空客飛機上時,未能采集飛機上的arinc429總線上的時鐘信息。而實驗室仿真測試發(fā)現(xiàn),在給QACVR上電或下電的過程中,QACVR的實時時鐘RTC硬件平臺工作不穩(wěn)定,通過實時時鐘RTC硬件平臺讀取到的實時時鐘會發(fā)生時鐘跳變的現(xiàn)象。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例提供了一種時鐘跳變?nèi)蒎e處理方法及裝置,以解決QACVR上電或下電時存在的時鐘跳變問題。
[0004]第一方面,一種時鐘跳變?nèi)蒎e處理方法,應用于具有雙CPU的駕駛艙語音記錄儀QACVR,所述方法包括:
[0005]在駕駛艙語音記錄儀QACVR上電初始化時,獲取所述QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二 CPU的系統(tǒng)時鐘信息;
[0006]根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差;
[0007]根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;
[0008]在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘。
[0009]進一步地,所述預設條件為第二時鐘差大于零且第二時鐘差小于第一時鐘差與預設時間閾值的差值;
[0010]所述在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘包括:
[0011]判斷所述第二時鐘差是否大于零;
[0012]在所述第二時鐘差大于零時,計算所述第一時鐘差與預設時間閾值之間的差值;
[0013]判斷所述第二時鐘差是否小于所述差值;
[0014]在所述第二時鐘差小于所述差值時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二CPU的系統(tǒng)時鐘;
[0015]所述預設時間閾值為第一 CPU與第二 CPU的時鐘差最大值。
[0016]進一步地,所述預設條件為第二時鐘差大于零且第一時鐘差小于零;
[0017]所述在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘包括:
[0018]判斷所述第二時鐘差是否大于零;
[0019]在所述第二時鐘差大于零時,判斷所述第一時鐘差是否小于零;
[0020]在所述第一時鐘差小于零時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。
[0021]進一步地,所述預設條件為第一時鐘差小于零且第二時鐘差小于零;
[0022]所述在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘包括:
[0023]判斷所述第一時鐘差是否小于零;
[0024]在所述第一時鐘差小于零時,判斷所述第二時鐘差是否小于零;
[0025]在所述第二時鐘差小于零時,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述QACVR上一次斷電時的時鐘信息。
[0026]進一步地,所述方法還包括:
[0027]在駕駛艙語音記錄儀QACVR上電初始化過程完成后,每當接收到arinc49總線上的時鐘,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述arinc49總線上的時鐘。
[0028]第二方面,一種時鐘跳變?nèi)蒎e處理裝置,應用于具有雙CPU的駕駛艙語音記錄儀QACVR,所述裝置包括:
[0029]獲取模塊,用于在駕駛艙語音記錄儀QACVR上電初始化時,獲取所述QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二 CPU的系統(tǒng)時鐘信息;
[0030]第一計算模塊,用于根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差;
[0031]第二計算模塊,用于根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;
[0032]第一更新模塊,用于在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘。
[0033]進一步地,所述預設條件為第二時鐘差大于零且第二時鐘差小于第一時鐘差與預設時間閾值的差值;
[0034]所述第一更新模塊包括:
[0035]第一判斷單元,用于判斷所述第二時鐘差是否大于零;
[0036]第二判斷單元,用于在所述第一判斷單元的判斷結果為是時,計算所述第一時鐘差與預設時間閾值之間的差值,并判斷所述第二時鐘差是否小于所述差值;
[0037]第一更新單元,用于在所述第二判斷單元的判斷結果為是時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘;
[0038]所述預設時間閾值為第一 CPU與第二 CPU的時鐘差最大值。
[0039]進一步地,所述預設條件為第一時鐘差小于零且第二時鐘差大于零;
[0040]所述第一更新模塊包括:
[0041]第三判斷單元,用于判斷所述第二時鐘差是否大于零,并在所述第二時鐘差大于零時,判斷所述第一時鐘差是否小于零;
[0042]第二更新單元,用于在所述第一時鐘差小于零且第二時鐘差大于零時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。
[0043]進一步地,所述預設條件為第一時鐘差小于零且第二時鐘差小于零;
[0044]所述第一更新模塊包括:
[0045]第四判斷單元,用于判斷所述第一時鐘差是否小于零,并在所述第一時鐘差小于零時,判斷所述第二時鐘差是否小于零;
[0046]第三更新單元,用于在所述第一時鐘差小于零且第二時鐘差小于零時,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述QACVR上一次斷電時的時鐘信息。
[0047]進一步地,所述裝置還包括:
[0048]第二更新模塊,用于在駕駛艙語音記錄儀QACVR上電初始化過程完成后,每當接收到arinc49總線上的時鐘,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述arinc49總線上的時鐘。
[0049]與現(xiàn)有技術相比,本發(fā)明實施例在駕駛艙語音記錄儀QACVR上電初始化的過程中增加了對時鐘的邏輯比較,通過獲取QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘、第二CPU的系統(tǒng)時鐘;根據(jù)所述第一 CPU的系統(tǒng)時鐘和上一次斷電時的時鐘信息計算第一時鐘差;根據(jù)所述第二 CPU的系統(tǒng)時鐘和上一次斷電時的時鐘信息計算第二時鐘差;在所述第一時鐘差和第二時鐘差滿足預設條件時,則按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘,從而實現(xiàn)了對QACVR的第一 CPU和第二 CPU的時鐘容錯處理,解決了現(xiàn)有的QACVR上電或下電時存在的時鐘跳變問題,提高了第一 CPU和第二 CPU的系統(tǒng)時鐘的準確性。
【附圖說明】
[0050]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。
[0051]圖1是本發(fā)明實施例一提供的時鐘跳變?nèi)蒎e處理方法的第一實現(xiàn)流程圖;
[0052]圖2是本發(fā)明實施例二提供的時鐘跳變?nèi)蒎e處理方法中步驟S104的第一實現(xiàn)流程圖;
[0053]圖3是本發(fā)明實施例三提供的時鐘跳變?nèi)蒎e處理方法中步驟S104的第二實現(xiàn)流程圖;
[0054]圖4是本發(fā)明實施例四提供的時鐘跳變?nèi)蒎e處理裝置的組成結構圖。
【具體實施方式】
[0055]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0056]本發(fā)明實施例在駕駛艙語音記錄儀QACVR上電初始化的過程中增加了對時鐘信息的邏輯比較,通過獲取QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二CPU的系統(tǒng)時鐘信息;并根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差,根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;在所述第一時鐘差和第二時鐘差滿足預設條件時,則按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘,從而實現(xiàn)了對QACVR的第一 CPU和第二 CPU的時鐘容錯處理,解決了現(xiàn)有的QACVR上電或下電時存在的時鐘跳變問題,提高了第一 CPU和第二 CPU的系統(tǒng)時鐘的準確性。本發(fā)明實施例還提供了相應的裝置,以下分別進行詳細的說明。
[0057]實施例一
[0058]圖1示出了本發(fā)明實施例一提供的時鐘跳變?nèi)蒎e處理方法的第一實現(xiàn)流程,為了便于說明,僅示出了與本發(fā)明相關的部分。
[0059]在本發(fā)明實施例中,所述方法應用于QACVR (駕駛艙語音記錄儀)。所述QACVR應用于空客飛機或者波音飛機上,包括兩個獨立工作的CPU。所述QACVR擁有四個錄音通道,每個CPU負責兩個錄音通道的正常工作。本發(fā)明實施例提供的時鐘跳變?nèi)蒎e處理方法基于QACVR的設備特點,使用其內(nèi)部的兩個CPU的時鐘信息來進行邏輯比較,以采用相對較準確的時鐘。
[0060]如圖1所示,所述方法包括:
[0061]在步驟SlOl中,在駕駛艙語音記錄儀QACVR上電初始化時,獲取QACVR上一次斷電的系統(tǒng)時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二 CPU的系統(tǒng)時鐘信息。
[0062]在本發(fā)明實施例中,當飛機掉電后,QACVR無外部供電電源,此時QACVR會通過電壓的變化來判定飛機已掉電,獲取并保存其本身的實時時鐘RTC,并保存已錄制的錄音文件。在QACVR重新上電初始化的過程中,直接獲取上一次斷電時所保存的實時時鐘RTC,即QACVR上一次斷電時的時鐘信息,記為T0,并獲取第一 CPU的系統(tǒng)時鐘信息Tl、第二 CPU的系統(tǒng)時鐘信息T2。所述第一 CPU的系統(tǒng)時鐘信息Tl為所述第一 CPU內(nèi)部自帶的RTC時鐘,所述第二 CPU的系統(tǒng)時鐘信息T2為所述第二 CPU內(nèi)部自帶的RTC時鐘。
[0063]在步驟S102中,根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差。
[0064]優(yōu)選地,所述第一時鐘差tmpl為所述第一 CPU的系統(tǒng)時鐘信息Tl減去上一次斷電時的時鐘信息T0,即tmpl = Tl-TOo
[0065]在步驟S103中,根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差。
[0066]優(yōu)選地,所述第二時鐘差tmp2為所述第一 CPU的系統(tǒng)時鐘信息T2減去上一次斷電時的時鐘信息T0,即tmp2 = T2-T0。
[0067]在步驟S104中,在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘。
[0068]在本發(fā)明實施例中,所述第一時鐘差tmpl為第一 CPU當前的系統(tǒng)時鐘信息Tl與上一次斷電時的時鐘信息TO之間的差值,反應了第一 CPU的時鐘是否發(fā)生跳變。同理,所述第二時鐘差tmp2為第二 CPU當前的系統(tǒng)時鐘信息T2與上一次斷電時的時鐘信息TO之間的差值,反應了第二 CPU的時鐘是否發(fā)生跳變。本發(fā)明實施例結合第一時鐘差tmpl和第二時鐘差tmp2之間的邏輯比較,在所述第一時鐘差tmpl和第二時鐘差tmp2滿足預設條件時,則按照與所述預設條件對應的方式更新所述第一 CPU和第二 CPU的時鐘。其中,所述預設條件為預先根據(jù)第一 CPU和第二 CPU的性能特點設定的容錯處理方式的判定標準,每一個預設條件有對應的容錯處理方式,以使得第一 CPU和第二 CPU容錯處理后為相對較準確的時鐘。后續(xù)實施例將對每一個預設條件及其對應的容錯處理方式進行詳細的描述,具體請參見后續(xù)實施例的描述。
[0069]優(yōu)選地,所述方法還包括:
[0070]在駕駛艙語音記錄儀QACVR上電初始化過程完成后,每當接收到arinc49總線上的時鐘,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述arinc49總線上的時鐘。
[0071]在所述QACVR上電完成后,獲取飛機的arinc49總線上的時鐘,并根據(jù)所述arinc49總線上的時鐘更新第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘,從而使得第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘分別與arinc總線上的時鐘保持同步,及時地解決了所述QACVR上的時鐘跳變問題。
[0072]本發(fā)明實施例在駕駛艙語音記錄儀QACVR上電初始化的過程中增加了對時鐘信息的邏輯比較,通過獲取QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二CPU的系統(tǒng)時鐘信息;并根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差,根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;在所述第一時鐘差和第二時鐘差滿足預設條件時,則按照與所述預設條件對應的方式更新所述第一 CPU和第二 CPU的系統(tǒng)時鐘,從而實現(xiàn)了對QACVR的第一 CPU和第二 CPU的時鐘容錯處理,解決了現(xiàn)有的QACVR上電或下電時存在的時鐘跳變問題,提高了第一 CPU和第二 CPU的系統(tǒng)時鐘的準確性。
[0073]實施例二
[0074]圖2示出了本發(fā)明實施例二提供的時鐘跳變?nèi)蒎e處理方法中步驟S104的第一實現(xiàn)流程,為了便于說明,僅示出了與本發(fā)明相關的部分。
[0075]在本發(fā)明實施例中,所述預設條件為所述第二時鐘差tmp2大于零且第一時鐘差tmpl與第二時鐘差tmp2的差值大于預設時間閾值。所述預設時間閾值為第一 CPU與第二CPU的時鐘差最大值。
[0076]步驟S104具體包括:
[0077]在步驟S201中,判斷所述第二時鐘差是否大于零。
[0078]在本發(fā)明實施例中,在所述第二時鐘差大于零時,執(zhí)行步驟S202。
[0079]在步驟S202中,計算第一時鐘差與預設時間閾值之間的差值。
[0080]假設所述預設時間閾值為△ t,則所述第一時鐘差與所述預設時間閾值之間的差值為tmpl-Δ t。正常情況下QACVR的MCUl和MCU2的時鐘差不會超過I秒。考慮到余量,選取預設時間閾值為2秒,即Δ t = 2秒。
[0081]在步驟S203中,判斷所述第二時鐘差是否小于所述差值。
[0082]對所述第二時鐘差tmp2與所述差值進行邏輯判斷。在所述第二時鐘差tmp2和所述差值滿足所述第二時鐘差小于所述差值時,執(zhí)行步驟S204。
[0083]在本發(fā)明實施例中,通過判斷所述第二時鐘差tmp2獲知所述第二時鐘差tmp2小于所述差值且所述第二時鐘差tmp2大于零時,判定所述第一 CPU的時鐘發(fā)生跳變,而第二CPU的時鐘未發(fā)生跳變,則執(zhí)行步驟S204。
[0084]在步驟S204中,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。
[0085]所述第二 CPU的時鐘未發(fā)生跳變,而第一 CPU的時鐘發(fā)生了跳變,則第二 CPU的系統(tǒng)時鐘信息為相對較準確的時鐘信息,采用所述第二 CPU的系統(tǒng)時鐘更新所述第一 CPU的系統(tǒng)時鐘。
[0086]示例性地,假設上次掉電的時間為2014年12月5日12:00,上電時第二CPU的系統(tǒng)時鐘信息為2014年12月5日12:01,第一 CPU的系統(tǒng)時鐘信息為2014年12月5日12:30,此時,第一時鐘差tmpl為30秒,第二時鐘差tmp2為I秒,預設時間閾值Δ t為2秒,則可以明顯地得到tmp2>0且tmp2〈tmpl- Δ t,可以判定第一 CPU發(fā)生了時鐘跳變,而第二 CPU未發(fā)生時鐘跳變,采用第二 CPU的系統(tǒng)時鐘信息更新所述第一 CPU的系統(tǒng)時鐘,從而完成了對第一 CPU和第二 CPU時鐘跳變的容錯處理。
[0087]實施例三
[0088]圖3示出了本發(fā)明實施例三提供的時鐘跳變?nèi)蒎e處理方法中步驟S104的第二實現(xiàn)流程,為了便于說明,僅示出了與本發(fā)明相關的部分。
[0089]在本發(fā)明實施例中,所述預設條件為第一時鐘差tmpl小于零且第二時鐘差tmp2大于零或者第一時鐘差tmpl小于零且第二時鐘差tmp2小于零。
[0090]如圖3所示,步驟S104包括:
[0091]在步驟S301中,判斷所述第一時鐘差是否小于零。
[0092]在本發(fā)明實施例中,若第一時鐘差tmpl小于零,則判定第一 CPU發(fā)生了時鐘跳變,且第一 CPU的時鐘跳變到上一次斷電之前的時鐘。繼續(xù)執(zhí)行步驟S302。
[0093]在步驟S302中,判斷所述第二時鐘差是否大于零。
[0094]在所述第二時鐘差大于零時,判定第二 CPU的時鐘未發(fā)生跳變,第二 CPU的時鐘相對于第一 CPU的時鐘來說更準確,則執(zhí)行步驟S303 ;否則,執(zhí)行步驟S304。
[0095]在步驟S303中,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。
[0096]在步驟S304中,判斷所述第二時鐘差是否小于零。
[0097]在本發(fā)明實施例中,若所述第二時鐘差tmp2小于零,則判定第二 CPU發(fā)生了時鐘跳變,且第二 CPU的時鐘跳變到上一次斷電之前的時鐘。此時,第一 CPU和第二 CPU均發(fā)生了跳變,則執(zhí)行步驟S305。
[0098]在步驟S305中,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為QACVR上一次斷電時的時鐘信息。
[0099]通過上述步驟,在駕駛艙語音記錄儀QACVR上電初始化的過程中增加對時鐘信息的邏輯比較,實現(xiàn)了 QACVR上電初始化時對第一 CPU和第二 CPU的時鐘容錯處理,使得第一CPU和第二CPU的時鐘更新為相對較準確的時鐘信息,解決了現(xiàn)有的QACVR上電或下電時存在的時鐘跳變問題。
[0100]應理解,在本發(fā)明實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內(nèi)在邏輯確定。本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,而不應對本發(fā)明實施例的實施過程構成任何限定。
[0101]實施例四
[0102]圖4示出了本發(fā)明實施例四提供的時鐘跳變?nèi)蒎e處理裝置的組成結構,為了便于說明,僅示出了與本發(fā)明相關的部分。
[0103]在本發(fā)明實施例中,所述裝置用于實現(xiàn)圖1至圖3實施例所述的時鐘跳變?nèi)蒎e處理方法,可以為設置于QACVR(駕駛艙語音記錄儀)的軟件單元、硬件單元或者軟硬件結合的單元。所述QACVR應用于空客飛機或者波音飛機上,包括兩個獨立工作的CPU。
[0104]如圖4所示,所述裝置包括:
[0105]獲取模塊41,用于在駕駛艙語音記錄儀QACVR上電初始化時,獲取QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二 CPU的系統(tǒng)時鐘信息;
[0106]第一計算模塊42,用于根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘ig息計算第一時鐘差;
[0107]第二計算模塊43,用于根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘ig息計算第二時鐘差;
[0108]第一更新模塊44,用于在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘。
[0109]優(yōu)選地,所述預設條件為第二時鐘差大于零且第二時鐘差小于第一時鐘差與預設時間閾值的差值;
[0110]所述第一更新模塊44包括:
[0111]所述第一更新模塊包括:
[0112]第一判斷單元441,用于判斷所述第二時鐘差是否大于零;
[0113]第二判斷單元442,用于在所述第一判斷單元的判斷結果為是時,計算所述第一時鐘差與預設時間閾值之間的差值,并判斷所述第二時鐘差是否小于所述差值;
[0114]第一更新單元443,用于在所述所述第二判斷單元的判斷結果為是時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘;
[0115]所述預設時間閾值為第一 CPU與第二 CPU的時鐘差最大值。
[0116]優(yōu)選地,所述預設條件為第一時鐘差小于零且第二時鐘差大于零;
[0117]所述第一更新模塊44包括:
[0118]第三判斷單元444,用于判斷所述第二時鐘差是否大于零,并在所述第二時鐘差大于零時,判斷所述第一時鐘差是否小于零;
[0119]第二更新單元445,用于在所述第一時鐘差小于零且第二時鐘差大于零時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。
[0120]進一步地,所述預設條件為第一時鐘差小于零且第二時鐘差小于零;
[0121]所述第一更新模塊44包括:
[0122]第四判斷單元446,用于判斷所述第一時鐘差是否小于零,并在所述第一時鐘差小于零時,判斷所述第二時鐘差是否小于零;
[0123]第三更新單元447,用于在所述第一時鐘差小于零且第二時鐘差小于零時,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為QACVR上一次斷電時的時鐘信息。
[0124]優(yōu)選地,所述裝置還包括:
[0125]第二更新模塊45,用于在駕駛艙語音記錄儀QACVR上電初始化過程完成后,每當接收到arinc49總線上的時鐘,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述arinc49總線上的時鐘。
[0126]需要說明的是,本發(fā)明實施例中的裝置可以用于實現(xiàn)上述方法實施例中的全部技術方案,其各個功能模塊的功能可以根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述實施例中的相關描述,此處不再贅述。
[0127]本發(fā)明實施例在駕駛艙語音記錄儀QACVR上電初始化的過程中增加了對時鐘信息的邏輯比較,通過獲取QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二CPU的系統(tǒng)時鐘信息;并根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差,根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;在所述第一時鐘差和第二時鐘差滿足預設條件時,則按照與所述預設條件對應的方式更新所述第一 CPU和第二 CPU的系統(tǒng)時鐘,從而實現(xiàn)了對QACVR的第一 CPU和第二 CPU的時鐘容錯處理,解決了現(xiàn)有的QACVR上電或下電時存在的時鐘跳變問題,提高了第一 CPU和第二 CPU的系統(tǒng)時鐘的準確性。
[0128]本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
[0129]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0130]在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0131]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0132]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0133]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0134]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。
【主權項】
1.一種時鐘跳變?nèi)蒎e處理方法,其特征在于,應用于具有雙CPU的駕駛艙語音記錄儀QACVR,所述方法包括: 在駕駛艙語音記錄儀QACVR上電初始化時,獲取所述QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二 CPU的系統(tǒng)時鐘信息; 根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差;根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差;在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘。2.如權利要求1所述的時鐘跳變?nèi)蒎e處理方法,其特征在于,所述預設條件為第二時鐘差大于零且第二時鐘差小于第一時鐘差與預設時間閾值的差值; 所述在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘包括: 判斷所述第二時鐘差是否大于零; 在所述第二時鐘差大于零時,計算所述第一時鐘差與預設時間閾值之間的差值; 判斷所述第二時鐘差是否小于所述差值; 在所述第二時鐘差小于所述差值時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘; 所述預設時間閾值為第一 CPU與第二 CPU的時鐘差最大值。3.如權利要求1所述的時鐘跳變?nèi)蒎e處理方法,其特征在于,所述預設條件為第二時鐘差大于零且第一時鐘差小于零; 所述在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘包括: 判斷所述第二時鐘差是否大于零; 在所述第二時鐘差大于零時,判斷所述第一時鐘差是否小于零; 在所述第一時鐘差小于零時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。4.如權利要求1所述的時鐘跳變?nèi)蒎e處理方法,其特征在于,所述預設條件為第一時鐘差小于零且第二時鐘差小于零; 所述在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘包括: 判斷所述第一時鐘差是否小于零; 在所述第一時鐘差小于零時,判斷所述第二時鐘差是否小于零; 在所述第二時鐘差小于零時,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述QACVR上一次斷電時的時鐘信息。5.如權利要求1所述的時鐘跳變?nèi)蒎e處理方法,其特征在于,所述方法還包括: 在駕駛艙語音記錄儀QACVR上電初始化過程完成后,每當接收到arinc49總線上的時鐘,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述arinc49總線上的時鐘。6.一種時鐘跳變?nèi)蒎e處理裝置,其特征在于,應用于具有雙CPU的駕駛艙語音記錄儀QACVR,所述裝置包括: 獲取模塊,用于在駕駛艙語音記錄儀QACVR上電初始化時,獲取所述QACVR上一次斷電時的時鐘信息、第一 CPU的系統(tǒng)時鐘信息、第二 CPU的系統(tǒng)時鐘信息; 第一計算模塊,用于根據(jù)所述第一 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第一時鐘差; 第二計算模塊,用于根據(jù)所述第二 CPU的系統(tǒng)時鐘信息和上一次斷電時的時鐘信息計算第二時鐘差; 第一更新模塊,用于在所述第一時鐘差和第二時鐘差滿足預設條件時,按照與所述預設條件對應的方式更新所述第一 CPU的系統(tǒng)時鐘和第二 CPU的系統(tǒng)時鐘。7.如權利要求6所述的時鐘跳變?nèi)蒎e處理裝置,其特征在于,所述預設條件為第二時鐘差大于零且第二時鐘差小于第一時鐘差與預設時間閾值的差值; 所述第一更新模塊包括: 第一判斷單元,用于判斷所述第二時鐘差是否大于零; 第二判斷單元,用于在所述第一判斷單元的判斷結果為是時,計算所述第一時鐘差與預設時間閾值之間的差值,并判斷所述第二時鐘差是否小于所述差值; 第一更新單元,用于在所述第二判斷單元的判斷結果為是時,更新所述第一 CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘; 所述預設時間閾值為第一 CPU與第二 CPU的時鐘差最大值。8.如權利要求6所述的時鐘跳變?nèi)蒎e處理裝置,其特征在于,所述預設條件為第一時鐘差小于零且第二時鐘差大于零; 所述第一更新模塊包括: 第三判斷單元,用于判斷所述第二時鐘差是否大于零,并在所述第二時鐘差大于零時,判斷所述第一時鐘差是否小于零; 第二更新單元,用于在所述第二時鐘差大于零且第一時鐘差小于零時,更新所述第一CPU的系統(tǒng)時鐘為所述第二 CPU的系統(tǒng)時鐘。9.如權利要求6所述的時鐘跳變?nèi)蒎e處理裝置,其特征在于,所述預設條件為第一時鐘差小于零且第二時鐘差小于零; 所述第一更新模塊包括: 第四判斷單元,用于判斷所述第一時鐘差是否小于零,并在所述第一時鐘差小于零時,判斷所述第二時鐘差是否小于零; 第三更新單元,用于在所述第一時鐘差小于零且第二時鐘差小于零時,更新所述第一CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述QACVR上一次斷電時的時鐘信息。10.如權利要求6所述的時鐘跳變?nèi)蒎e處理裝置,其特征在于,所述裝置還包括: 第二更新模塊,用于在駕駛艙語音記錄儀QACVR上電初始化過程完成后,每當接收到arinc49總線上的時鐘,更新所述第一 CPU的系統(tǒng)時鐘和所述第二 CPU的系統(tǒng)時鐘為所述arinc49總線上的時鐘。
【文檔編號】G06F11/00GK106033376SQ201510126523
【公開日】2016年10月19日
【申請日】2015年3月20日
【發(fā)明人】余賢沐, 周平華, 蔡朝陽, 林帆, 喻建黎
【申請人】深圳市航電技術研究院