本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,特別是一種基于時間參數(shù)擬合處理的異步數(shù)據(jù)存儲方法。
背景技術(shù):
隨著制作工藝的不斷發(fā)展、各種先進材料的出現(xiàn),超大規(guī)模集成電路的功能越來越強大,特別是現(xiàn)場可編程邏輯門(Filed Programmable Gate Array,F(xiàn)PGA)依靠其方便快捷的可重復(fù)編程開發(fā)特性及豐富可配置接口資源,已經(jīng)逐漸成為控制、通信、檢測等領(lǐng)域的核心部件。
在航天領(lǐng)域中,小型化已經(jīng)成為了衛(wèi)星發(fā)展的主要趨勢,它要求所用電子元件必須具有集成度高、尺寸小的特點,這就使得現(xiàn)場可編程門陣列(FPGA)成為了星用電子元器件的主要選擇。目前,衛(wèi)星控制系統(tǒng)中的重要組成部分,各執(zhí)行機構(gòu)的驅(qū)動控制部件已經(jīng)普遍采用FPGA實現(xiàn)控制算法處理。
執(zhí)行機構(gòu)的驅(qū)動控制部件通過FPGA實現(xiàn)對應(yīng)的控制算法處理,比如確立整星姿態(tài)、軌道位置信息,控制算法處理過程中需要使用原始星圖、基準數(shù)據(jù)等原始數(shù)據(jù)作為比對依據(jù),這就要求存儲大量的數(shù)據(jù)信息,但在實現(xiàn)過程中存在著如下應(yīng)用問題需要解決:
(1)采用外部存儲器實現(xiàn)原始星圖、基準數(shù)據(jù)等數(shù)據(jù)信息的存儲,但是需要為存儲器芯片增加印制板面積,這帶來了衛(wèi)星體積增長的問題,另外外部存儲器一般為異步存儲方式,需要完整穩(wěn)定的接口處理時序才能保證數(shù)據(jù)存儲與使用時的準確,這就帶來了運行速度上的時間消耗;
(2)采用基于SRAM型FPGA內(nèi)部存儲器實現(xiàn)原始星圖、基準數(shù)據(jù)等數(shù)據(jù)信息的存儲,可以選擇內(nèi)部RAM資源或者FIFO資源實現(xiàn),但SRAM型FPGA對單粒子效應(yīng)敏感,易造成數(shù)據(jù)翻轉(zhuǎn)錯誤,必須配合有效可靠性措施,才能使用,這增加了系統(tǒng)實現(xiàn)的復(fù)雜度,降低了系統(tǒng)的可靠度;
(3)采用基于反熔絲型FPGA內(nèi)部存儲器實現(xiàn)原始星圖、基準數(shù)據(jù)等數(shù)據(jù)信息的存儲受限于中國能夠采購到的器件種類,無法在內(nèi)部通過時序資源實現(xiàn)大量數(shù)據(jù)的可靠存儲,即采用異步存儲資源實現(xiàn)數(shù)據(jù)存儲存在的數(shù)據(jù)訪問時序不可控制問題帶來的數(shù)據(jù)的精度和效率將會降低。
技術(shù)實現(xiàn)要素:
本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供了一種通過采集數(shù)據(jù)時刻點的前期擬合,收集和整理各個時刻點的擬合信息確定得到最優(yōu)的擬合時刻的基于時間參數(shù)擬合處理的異步數(shù)據(jù)存儲方法,解決了現(xiàn)有技術(shù)使用異步存儲單元與其他功能模塊進行數(shù)據(jù)交互時,數(shù)據(jù)采集輸出響應(yīng)時間易隨外部環(huán)境變化的問題。
本發(fā)明的技術(shù)解決方案是:一種基于時間參數(shù)擬合處理的異步數(shù)據(jù)存儲方法,包括如下步驟:
步驟1、將M個目標對應(yīng)的原始數(shù)據(jù)分別預(yù)置在FPGA的異步存儲單元中,其中,原始數(shù)據(jù)均不為恒定數(shù)據(jù),其中,M為正整數(shù);
步驟2、從外部獲取多個目標對應(yīng)的目標數(shù)據(jù)并存儲至異步存儲單元固定的地址空間中,其中,目標數(shù)據(jù)包括異步存儲單元中預(yù)置的當前目標對應(yīng)的部分或全部原始數(shù)據(jù)的倍數(shù)數(shù)據(jù),目標1的目標數(shù)據(jù)記為目標數(shù)據(jù)1,目標2的目標數(shù)據(jù)記為目標數(shù)據(jù)2,…,目標M的目標數(shù)據(jù)記為目標數(shù)據(jù)M,其中,M為正整數(shù);
步驟3、從外部獲取采集時刻點數(shù)量N,如果當前FPGA支持倍頻處理,則在采集器件倍頻時鐘的上升沿選取N個采集時刻點,或者在采集器件倍頻時鐘的上升沿、下降沿組合選取N個采集時刻點;
如果當前FPGA不支持倍頻處理,則在采集器件倍頻時鐘的上升沿、下降沿進行成對的組合選取采集時刻點,同時在上升沿、下降沿中間選取采集時刻點,直至選取到N個采集時刻點,其中,N為正整數(shù);
步驟4、對目標數(shù)據(jù)1在采集時刻點1進行數(shù)據(jù)采集,得到數(shù)據(jù)信息1_1并存入目標數(shù)據(jù)1數(shù)據(jù)采集時刻點確認集合中,在采集時刻點2進行數(shù)據(jù)采集,得到數(shù)據(jù)信息1_2并存入目標數(shù)據(jù)1數(shù)據(jù)采集時刻點確認集合中,…,對目標數(shù)據(jù)1在采集時刻點N進行數(shù)據(jù)采集,得到數(shù)據(jù)信息1_N并存入目標數(shù)據(jù)1數(shù)據(jù)采集時刻點確認集合中,對目標數(shù)據(jù)2在采集時刻點1進行數(shù)據(jù)采集,得到數(shù)據(jù)信息2_1并存入目標數(shù)據(jù)2數(shù)據(jù)采集時刻點確認集合中,在采集時刻點2進行數(shù)據(jù)采集,得到數(shù)據(jù)信息2_2并存入目標數(shù)據(jù)2數(shù)據(jù)采集時刻點確認集合中,…,在采集時刻點N進行數(shù)據(jù)采集,得到數(shù)據(jù)信息2_N存入目標數(shù)據(jù)2數(shù)據(jù)采集時刻點確認集合中,…,對目標數(shù)據(jù)M在采集時刻點1進行數(shù)據(jù)采集,得到數(shù)據(jù)信息M_1并存入目標數(shù)據(jù)M數(shù)據(jù)采集時刻點確認集合中,在采集時刻點2進行數(shù)據(jù)采集,得到數(shù)據(jù)信息M_2并存入目標數(shù)據(jù)M數(shù)據(jù)采集時刻點確認集合中,…,在采集時刻點N進行數(shù)據(jù)采集,得到數(shù)據(jù)信息M_N并存入目標數(shù)據(jù)M數(shù)據(jù)采集時刻點確認集合中;
步驟5、將目標數(shù)據(jù)1數(shù)據(jù)采集時刻點確認集合中采集時刻點i對應(yīng)的數(shù)據(jù)與異步存儲單元預(yù)置的目標1對應(yīng)的采集時刻點i的原始數(shù)據(jù)進行對比,如果兩者相同,則采集時刻點i的有效權(quán)重系數(shù)TIMEi_VAULE加1,否則,不對采集時刻點i的有效權(quán)重系數(shù)TIMEi_VAULE進行操作,遍歷所有的采集時刻點i;將目標數(shù)據(jù)2數(shù)據(jù)采集時刻點確認集合中采集時刻點i對應(yīng)的數(shù)據(jù)與異步存儲單元預(yù)置的目標2對應(yīng)的采集時刻點i的原始數(shù)據(jù)進行對比,如果兩者相同,則采集時刻點i的有效權(quán)重系數(shù)TIMEi_VAULE加1,否則,不對采集時刻點i的有效權(quán)重系數(shù)TIMEi_VAULE進行操作,遍歷所有的采集時刻點i;…將目標數(shù)據(jù)M數(shù)據(jù)采集時刻點確認集合中采集時刻點i對應(yīng)的數(shù)據(jù)與異步存儲單元預(yù)置的目標M對應(yīng)的采集時刻點i的原始數(shù)據(jù)進行對比,如果兩者相同,則采集時刻點i的有效權(quán)重系數(shù)TIMEi_VAULE加1,否則,不對采集時刻點i的有效權(quán)重系數(shù)TIMEi_VAULE進行操作,遍歷所有的采集時刻點i,其中,i=1,2,3…N;
步驟6,將前P個有效權(quán)重系數(shù)對應(yīng)的采集時刻點送至外部控制算法處理模塊,令外部控制算法處理模塊根據(jù)得到的采集時刻點從異步存儲單元預(yù)置的原始數(shù)據(jù)進行數(shù)據(jù)采集,然后根據(jù)采集得到的數(shù)據(jù)進行控制算法處理,并將控制算法處理結(jié)果送至異步存儲單元存儲,其中,P<N且為正整數(shù)。
所述的N在當前FPGA支持倍頻處理時為10,N在當前FPGA不支持倍頻處理時為3。
所述的步驟(3)中在上升沿、下降沿中間進行采集為通過IDELAY延遲模塊或邏輯門電路延遲模塊實現(xiàn)。
所述的數(shù)據(jù)采集時刻點確認集合能夠只存儲部分采集時刻點對應(yīng)的采集數(shù)據(jù)。
所述的原始數(shù)據(jù)包括異步存儲預(yù)設(shè)原碼值、單元存儲星圖或?qū)Ш綐硕c數(shù)據(jù)。
所述的P在N為10時取值為3,P在N為3時取值為1。
所述的步驟1-步驟6在反熔絲型FPGA上實現(xiàn)。
所述的控制算法處理模塊為星圖比對模塊或者驅(qū)動控制模塊。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
(1)本發(fā)明存儲方法通過一組有序的目標數(shù)據(jù),實現(xiàn)了采集數(shù)據(jù)時刻點的前期擬合,然后通過收集和整理各個時刻點的擬合信息確定得到最優(yōu)的采集時刻點,解決了現(xiàn)有技術(shù)使用異步存儲單元與其他功能模塊進行數(shù)據(jù)交互時,數(shù)據(jù)采集輸出響應(yīng)時間易隨外部環(huán)境變化的問題,為異步存儲單元數(shù)據(jù)提供了高速、穩(wěn)定、可靠的讀取訪問方法;
(2)本發(fā)明存儲方法與現(xiàn)有技術(shù)相比,能夠充分、合理的利用了FPGA,特別是衛(wèi)星控制系統(tǒng)常用反熔絲型FPGA的內(nèi)部資源,將衛(wèi)星控制系統(tǒng)各執(zhí)行機構(gòu)驅(qū)動控制部件中原本需要使用3片F(xiàn)PGA時序資源存儲的數(shù)據(jù)信息,通過1片F(xiàn)PGA的異步存儲單元完成了數(shù)據(jù)存儲,極大地降低了功能系統(tǒng)的復(fù)雜度、研制周期及經(jīng)費預(yù)算,能較好的適用于時序資源受限而又需要存儲大量數(shù)據(jù)的應(yīng)用環(huán)境。
附圖說明
圖1為本發(fā)明一種基于時間參數(shù)擬合處理的異步數(shù)據(jù)存儲方法原理示意圖;
圖2為本發(fā)明一種基于時間參數(shù)擬合處理的異步數(shù)據(jù)存儲方法原理流程圖。
具體實施方式
如圖1所示本發(fā)明一種基于時間參數(shù)擬合處理的異步數(shù)據(jù)存儲方法原理示意圖,本發(fā)明方法在控制算法處理模塊和異步存儲單元之間提出了一個基于時間參數(shù)的數(shù)據(jù)擬合處理模塊,該模塊通過外部輸入一組有序的目標數(shù)據(jù),實現(xiàn)了采集數(shù)據(jù)時刻點的前期擬合,然后通過收集和整理各個時刻點的擬合信息,確定得到最優(yōu)的采集時刻點?;跁r間參數(shù)的數(shù)據(jù)擬合處理模塊將最優(yōu)采集時刻點輸出至控制算法處理模塊,控制算法處理模塊在運行過程中,將通過最優(yōu)采集時刻點訪問異步存儲單元。本發(fā)明方法與現(xiàn)有技術(shù)相比,解決了使用異步存儲單元存儲數(shù)據(jù)時,因為與其他時鐘域功能模塊進行數(shù)據(jù)交互時,異步存儲單元數(shù)據(jù)輸出的響應(yīng)時間易隨外部環(huán)境變化的問題,下面結(jié)合附圖對本發(fā)明方法進行詳細說明,如圖2所示本發(fā)明方法包括如下步驟:
步驟1,控制算法處理模塊正式工作運行前,設(shè)置控制算法處理異步存儲單元訪問禁止標志,將異步存儲預(yù)設(shè)原碼值、單元存儲星圖或者導(dǎo)航標定點數(shù)據(jù)中的一種預(yù)置在FPGA中的異步存儲單元中,其中,預(yù)設(shè)原碼值、單元存儲星圖、導(dǎo)航標定點等數(shù)據(jù)均不為恒定數(shù)據(jù),預(yù)設(shè)原碼值為包括正向限、負向限的函數(shù)數(shù)據(jù),然后向基于時間參數(shù)的數(shù)據(jù)擬合處理模塊發(fā)送啟動指令,當基于時間參數(shù)的數(shù)據(jù)擬合處理模塊接收到啟動指令時,轉(zhuǎn)入步驟2。
步驟2,基于時間參數(shù)的數(shù)據(jù)擬合處理模塊從外部接收一組有序的目標數(shù)據(jù),這組有序的目標數(shù)據(jù)由使用者確定,包括多個目標數(shù)據(jù),應(yīng)具有一定的典型代表意義,即包括異步存儲單元中預(yù)設(shè)的部分或全部預(yù)設(shè)原碼值、部分或全部單元存儲星圖、部分或全部導(dǎo)航標定點數(shù)據(jù)的倍數(shù)數(shù)據(jù),或者異步存儲單元中預(yù)設(shè)的部分或全部預(yù)設(shè)原碼值、部分或全部單元存儲星圖、部分或全部導(dǎo)航標定點數(shù)據(jù),將目標數(shù)據(jù)存儲至異步存儲單元固定的地址空間中。
步驟3,設(shè)置實現(xiàn)數(shù)據(jù)擬合處理的采集時刻點數(shù)量,采集時刻點數(shù)量可在線配置,如果當前FPGA支持倍頻處理,那么將采集時刻點數(shù)量設(shè)置為N(N為大于0的整數(shù),一般可以設(shè)置為10),如果當前FPGA不支持倍頻處理,那么將采集時刻點數(shù)量設(shè)置為N(N為大于0的整數(shù),一般可以設(shè)置為3);
當采用倍頻模式實現(xiàn)數(shù)據(jù)采集時,根據(jù)上述配置的采集時刻點數(shù)量、采集所使用器件主頻,設(shè)置采集所使用數(shù)據(jù)采集器件在采集時刻點的倍頻參數(shù),保證所使用器件在倍頻時鐘的上升沿可以選取到對應(yīng)的采集時刻點數(shù)量,或者倍頻時鐘的上升沿、下降沿組合選取到對應(yīng)的采集時刻點數(shù)量;
當不支持倍頻實現(xiàn)數(shù)據(jù)采集時,利用所使用數(shù)據(jù)采集器件時鐘上升沿、下降沿進行成對的組合選取,同時提供了IDELAY延遲模塊或者邏輯門電路延遲模塊實現(xiàn)上升沿、下降沿中間的采集時刻點選取。
步驟4,啟動目標數(shù)據(jù)各個采集時刻點數(shù)據(jù)的擬合處理,具體操作如下:
步驟a,實現(xiàn)目標數(shù)據(jù)1在步驟3設(shè)置的采集時刻點的數(shù)據(jù)采集;
實現(xiàn)目標數(shù)據(jù)1在采集時刻點1處的數(shù)據(jù)采集,將數(shù)據(jù)信息1_1存入數(shù)據(jù)采集時刻點確認集合中;實現(xiàn)目標數(shù)據(jù)1在采集時刻點2處的數(shù)據(jù)采集,將數(shù)據(jù)信息1_2存入數(shù)據(jù)采集時刻點確認集合中;以此類推,實現(xiàn)目標數(shù)據(jù)1在采集時刻點N處的數(shù)據(jù)采集,將數(shù)據(jù)信息1_N存入數(shù)據(jù)采集時刻點確認集合中;
步驟b,實現(xiàn)目標數(shù)據(jù)2在步驟3中設(shè)置采集時刻點的數(shù)據(jù)采集;
實現(xiàn)目標數(shù)據(jù)2在采集時刻點1處的數(shù)據(jù)采集,將數(shù)據(jù)信息2_1存入數(shù)據(jù)采集時刻點確認集合中;實現(xiàn)目標數(shù)據(jù)2在采集時刻點2處的數(shù)據(jù)采集,將數(shù)據(jù)信息2_2存入數(shù)據(jù)采集時刻點確認集合中;以此類推,實現(xiàn)目標數(shù)據(jù)2在采集時刻點N處的數(shù)據(jù)采集,將數(shù)據(jù)信息2_N存入數(shù)據(jù)采集時刻點確認集合中;
步驟c,依據(jù)步驟a和b所描述,實現(xiàn)目標數(shù)據(jù)M在步驟3中設(shè)置采集時刻點的數(shù)據(jù)采集;
實現(xiàn)目標數(shù)據(jù)M在采集時刻點1處的數(shù)據(jù)采集,將數(shù)據(jù)信息M_1存入數(shù)據(jù)采集時刻點確認集合中;實現(xiàn)目標數(shù)據(jù)M在采集時刻點2處的數(shù)據(jù)采集,將數(shù)據(jù)信息M_2存入數(shù)據(jù)采集時刻點確認集合中;以此類推,實現(xiàn)目標數(shù)據(jù)M在采集時刻點N處的數(shù)據(jù)采集,將數(shù)據(jù)信息M_N存入數(shù)據(jù)采集時刻點確認集合中,其中,每個目標均對應(yīng)一個目標數(shù)據(jù),目標數(shù)據(jù)的個數(shù)可以與采集時刻點的數(shù)量不同,M、N均為正整數(shù);
步驟d,如果存儲資源有限,可以只將最先、最后、中間或者某幾個連續(xù)的采集時刻點(一般取步驟a、步驟b、步驟c得到數(shù)據(jù)矩陣的前三列、中間三列或者后三列)數(shù)據(jù)信息記錄入數(shù)據(jù)采集時刻點確認集合中。
步驟5,實現(xiàn)在步驟4中得到的數(shù)據(jù)采集時刻點確認集合中數(shù)據(jù)與目標數(shù)據(jù)的追溯與比對,具體操作如下:
步驟a,實現(xiàn)數(shù)據(jù)采集時刻點1的有效權(quán)重系數(shù);
將數(shù)據(jù)采集時刻點確認集合數(shù)據(jù)中在采集時刻點1記錄下的所有數(shù)據(jù)依次與異步存儲單元預(yù)設(shè)原碼值、單元存儲星圖或者導(dǎo)航標定點進行比較,如果數(shù)據(jù)采集時刻點確認集合中的數(shù)據(jù)與異步存儲單元預(yù)設(shè)數(shù)據(jù)相同,則將采集時刻點1的有效權(quán)重系數(shù)加1,否則放棄數(shù)據(jù)采集時刻點確認集合數(shù)據(jù)中當前數(shù)據(jù),然后比對采集時刻點1記錄的下一個數(shù)據(jù),直至將采集時刻點集合中采集時刻點1記錄的所有數(shù)據(jù)處理完成,得到采集時刻點1有效權(quán)重值,并標記為TIME1_VAULE;
步驟b,實現(xiàn)數(shù)據(jù)采集時刻點2的有效權(quán)重系數(shù);
將數(shù)據(jù)采集時刻點確認集合數(shù)據(jù)中在采集時刻點2記錄下的所有數(shù)據(jù)依次與異步存儲單元預(yù)設(shè)原碼值、單元存儲星圖或者導(dǎo)航標定點進行比較,如果數(shù)據(jù)采集時刻點確認集合中的數(shù)據(jù)與異步存儲單元預(yù)設(shè)數(shù)據(jù)相同,則將采集時刻點2的有效權(quán)重系數(shù)加1,否則放棄數(shù)據(jù)采集時刻點確認集合數(shù)據(jù)中當前數(shù)據(jù),然后比對采集時刻點2記錄的下一個數(shù)據(jù),直至將采集時刻點集合中采集時刻點2記錄的所有數(shù)據(jù)處理完成,得到采集時刻點2有效權(quán)重值,并標記為TIME2_VAULE;
步驟c,依據(jù)步驟a和b所描述,實現(xiàn)采集時刻點N的有效權(quán)重系數(shù);
將數(shù)據(jù)采集時刻點確認集合數(shù)據(jù)中在采集時刻點N記錄下的所有數(shù)據(jù)依次與異步存儲單元預(yù)設(shè)原碼值、單元存儲星圖或者導(dǎo)航標定點進行比較,如果數(shù)據(jù)采集時刻點確認集合中的數(shù)據(jù)與異步存儲單元預(yù)設(shè)數(shù)據(jù)相同,則將采集時刻點N的有效權(quán)重系數(shù)加1,否則放棄數(shù)據(jù)采集時刻點確認集合數(shù)據(jù)中當前數(shù)據(jù),然后比對采集時刻點N記錄的下一個數(shù)據(jù),直至將采集時刻點集合中采集時刻點N記錄的所有數(shù)據(jù)處理完成,得到采集時刻點N有效權(quán)重值,并標記為TIMEN_VAULE。
步驟6,整理所有采集時刻點的有效權(quán)重值,按照多數(shù)原則處理,最后得到最優(yōu)的采集時刻點,一般默認輸出有效權(quán)重系數(shù)最高的P(P為小于采集時刻點數(shù)量N的正整數(shù),當N為10時,P一般為3,當N為3時,P一般為1)個采集時刻點,其中,步驟2-步驟6均為基于時間參數(shù)的數(shù)據(jù)擬合處理模塊的工作過程,該模塊可以在反熔絲型FPGA上實現(xiàn)。
步驟7,將步驟6中產(chǎn)生的最優(yōu)采集時刻點送至外部的控制算法處理模塊,并將最優(yōu)采集時刻點配置入異步存儲單元中的讀取訪問模塊,同時設(shè)置控制算法處理異步存儲單元訪問允許標志,啟動控制算法的后續(xù)處理。其中,控制算法處理模塊可以為星圖比對模塊,星圖比對模塊接收到P個最優(yōu)采集時刻點后,啟動控制算法處理,首先接收當前的實際星圖數(shù)據(jù),然后根據(jù)P個最優(yōu)采集時刻點從異步存儲單元中獲得預(yù)設(shè)的背景閾值,用坐標星點的當前實際星圖數(shù)據(jù)減去背景閾值,得到坐標星點的像素灰度值;然后再通過從異步存儲單元中讀取出預(yù)設(shè)的孤立點坐標信息,完成坐標星點的剔除處理,得到有用的坐標星點信息;記錄入異步存儲單元中??刂扑惴ㄌ幚砟K也可以為驅(qū)動控制部件控制輸出模塊,驅(qū)動控制部件控制輸出模塊接收到P個最優(yōu)采集時刻點后,啟動控制算法處理,根據(jù)數(shù)字鎖相環(huán)模塊計算的相位累加和,并結(jié)合P個最優(yōu)采集時刻點,從異步存儲單元中獲得預(yù)設(shè)的正弦波模擬器數(shù)據(jù)的原碼值,實現(xiàn)對執(zhí)行機構(gòu)的驅(qū)動輸出控制。
步驟8,控制算法處理模塊根據(jù)最優(yōu)采集時刻點從異步存儲單元進行數(shù)據(jù)采集,然后控制算法處理模塊完成當前算法處理任務(wù),最后將得到處理后的數(shù)據(jù)結(jié)果送至異步存儲單元存儲。
步驟9,控制算法處理過程中,若有需要,可以在運行過程中返回步驟1,重新啟動一次數(shù)據(jù)擬合處理過程,以應(yīng)對內(nèi)部異步存儲單元數(shù)據(jù)輸出響應(yīng)時間易隨外部環(huán)境變化而變化等問題。
本發(fā)明說明書中未作詳細描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。