国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種星載計算機秒中斷間隔可控的校時方法

2020-05-04 08:32:48
中國空間科學(xué)技術(shù) 2020年2期
關(guān)鍵詞:計時器初值寄存器

北京空間飛行器總體設(shè)計部,北京 100094

航天器一般都有自己的時間系統(tǒng),在實際應(yīng)用過程中,由于各種原因,航天器的時間往往需要進行多次修正或周期性維護,以達到使用精度要求。這就涉及校時操作[1]。航天器的時間一般由星載計算機維護[2-3]。傳統(tǒng)的校時操作一般由CPU軟件實現(xiàn),CPU軟件在每一次秒中斷中,對由軟件維護的秒部時間進行加1操作。亞秒部時間由外部集成電路Intel 82C54芯片[4]維護,計數(shù)初值由CPU軟件進行配置。當(dāng)Intel 82C54芯片從計數(shù)初值倒計數(shù)到1時,會產(chǎn)生一次秒中斷,驅(qū)動CPU軟件執(zhí)行相應(yīng)的任務(wù)或進行相應(yīng)的操作。目前星務(wù)軟件任務(wù)調(diào)度安排、時序規(guī)劃等均基于秒中斷運行,且運行需要一定的時間。因此相鄰兩次秒中斷的時間間隔不能太小,否則會影響CPU軟件的任務(wù)調(diào)度及正常運行[5-10]。

為了避免校時過程中秒中斷間隔過小或過大,軟件需要通過復(fù)雜的邏輯和算法多次操作外部計時器Intel 82C54芯片才能完成一次校時,占用CPU機時較大。本文提出了一種基于FPGA的秒中斷間隔可控的校時方法。

1 傳統(tǒng)星載計算機校時方法

傳統(tǒng)星載計算機校時一般都會引起秒中斷間隔的變化,為了避免校時過程中秒中斷間隔過小或過大,軟件在每次校時前,需要根據(jù)校時的具體數(shù)值計算出下一秒Intel 82C54芯片需要計數(shù)的個數(shù),寫入Intel 82C54芯片的計數(shù)初值寄存器。Intel 82C54芯片采用倒計數(shù),當(dāng)從計數(shù)初值倒計數(shù)到1時,會產(chǎn)生一次秒中斷,并自動重新加載計數(shù)初值,繼續(xù)倒計數(shù)。軟件在需要校時時,需要在秒中斷服務(wù)程序中,將計算好的計數(shù)初值寫入Intel 82C54芯片計數(shù)初值寄存器進行更新,并在下次秒中斷中將計數(shù)初值恢復(fù),這樣一次校時操作才算完成。為了保證Intel 82C54芯片輸出的秒中斷間隔(計數(shù)初值范圍)在0.5~1.5 s的范圍內(nèi),CPU需要分4種情況計算計數(shù)初值。

假定CPU收到的亞秒部校時值為t(0

表1 CPU計算計數(shù)初值的4種情況Table 1 Four situations with CPU calculating the counter’s initial value

在每次校時過程中,CPU軟件如果需要讀取時間碼,還需根據(jù)每種情況對Intel 82C54的計數(shù)值進行時間換算,換算公式見表1中“亞秒部時間換算公式”一列(注:秒部不需要換算)。

從表1中看出,每次校時時,CPU軟件需根據(jù)亞秒部校時的具體數(shù)值,分為4種情況,根據(jù)4種計算公式進行計數(shù)初值的計算,校時邏輯十分復(fù)雜,校時過程中每次讀取時間碼都要進行時間換算,很容易出錯,且占用CPU機時較多,不利于軟件實現(xiàn)其他更加復(fù)雜的任務(wù)。隨著未來航天器智能處理的任務(wù)越來越多,CPU機時越來越緊張,因此需要將CPU從繁瑣的校時操作和時間維護操作中解放出來,使CPU專注于智能處理任務(wù)的實現(xiàn)。

2 基于FPGA的秒中斷間隔可控校時方法

針對CPU軟件校時邏輯復(fù)雜,容易出錯的問題,已經(jīng)有學(xué)者專門針對軟件設(shè)計過程中遇到的時間獲取與時間維護沖突的問題進行了機理分析,并提出了3種有效的解決辦法,保證了在各種復(fù)雜情況下星上時間獲取的正確性,但耗費的CPU機時較多[11]。

本文提出了一種基于FPGA的秒中斷間隔可控的校時方法,采用FPGA邏輯電路設(shè)計星時計時器,利用秒中斷間隔約束條件設(shè)計校時觸發(fā)條件,當(dāng)滿足校時觸發(fā)條件時,F(xiàn)PGA邏輯電路自動實現(xiàn)校時操作,很好地解決了校時過程中秒中斷間隔過小或過大的問題,極大地節(jié)約了CPU機時?;贔PGA的秒中斷間隔可控的校時方法原理框圖如圖1所示,主要由星時計時器、校時寄存器、加法器、時鐘生成器、校時觸發(fā)器和比較器組成。

圖1 基于FPGA的秒中斷間隔可控的校時方法Fig.1 A time-calibration method with controllable second interrupt interval based on FPGA

星時計時器用來記錄計時脈沖個數(shù),并產(chǎn)生秒中斷信號輸出。主要由一個記錄計時脈沖個數(shù)的計數(shù)器組成,通過對計時脈沖進行計數(shù)獲得時間值。星時計時器分為秒部和亞秒部兩部分[12]。亞秒部每收到一個計時脈沖其計數(shù)值加1,當(dāng)亞秒部累計計數(shù)值達到規(guī)定的模值時向秒部進位,表示累計計時達到1 s,并輸出秒中斷信號。秒部只有在收到亞秒部的進位時才加1。

校時寄存器用來轉(zhuǎn)換和保存CPU送來的校時數(shù)據(jù)。校時寄存器也分為秒部和亞秒部兩部分,主要功能是將CPU送來的校時數(shù)據(jù)進行格式轉(zhuǎn)換,并按照秒部校時值和亞秒部校時值兩部分保存。秒部校時值采用補碼格式的數(shù)據(jù)保存,以便于進行撥快或撥慢操作。亞秒部校時值采用原碼格式的數(shù)據(jù)保存。

加法器用來實現(xiàn)校時寄存器和計時器當(dāng)前值的秒部和亞秒部分別相加的功能。當(dāng)亞秒部相加的結(jié)果超過規(guī)定的模值時,亞秒部會向秒部產(chǎn)生進位。秒部相加是補碼格式的數(shù)據(jù)相加,秒部相加的結(jié)果還需要再加上亞秒部的進位。

時鐘生成器用來產(chǎn)生系統(tǒng)時鐘和計時脈沖。系統(tǒng)時鐘用來驅(qū)動星時計時器、校時寄存器、加法器、比較器和校時觸發(fā)器在統(tǒng)一的時鐘下同步工作。計時脈沖由系統(tǒng)時鐘生成,其脈沖寬度為一個系統(tǒng)時鐘周期,其頻率不能大于系統(tǒng)時鐘頻率的一半。計時脈沖周期就是星時計時器亞秒部時間碼的最低分辨率,可根據(jù)時間分辨率要求選擇合適的計時脈沖周期。

校時觸發(fā)器用來監(jiān)視CPU是否有校時操作以及星時校時是否完成。當(dāng)校時觸發(fā)器監(jiān)視到CPU對校時寄存器進行了更新,則會認(rèn)為CPU進行了校時操作,從而發(fā)出校時啟動信號,通知比較器需要進行校時操作;當(dāng)校時觸發(fā)器收到比較器輸出的校時完成信號后,則會撤銷校時啟動信號,認(rèn)為本次校時操作已完成。

比較器用來將加法器輸出的結(jié)果與給定的數(shù)值進行比較,并配合校時觸發(fā)器完成校時過程。比較器在收到校時啟動信號后,在每個系統(tǒng)時鐘周期都會判斷加法器輸出結(jié)果是否與給定數(shù)值(比較門限數(shù)值)滿足條件關(guān)系。如果滿足條件關(guān)系,則執(zhí)行校時過程,將校時結(jié)果更新到計時器,并發(fā)出校時完成信號;如果不滿足,則繼續(xù)等待,等待時間不會超過1 s,直到條件關(guān)系滿足。

通過修改比較器的比較門限數(shù)值,可以靈活地控制校時執(zhí)行時刻,進而控制秒中斷輸出間隔。因此比較條件設(shè)置是本校時方案的關(guān)鍵。假定校時寄存器亞秒部校時值為x(0

1)如果在任意一個系統(tǒng)時鐘內(nèi)比較器判斷滿足x+y<0.5 s×f條件,則比較器執(zhí)行校時操作,將星時計時器亞秒部y值更新為加法器輸出的x+y的計算結(jié)果值,將星時計時器秒部更新為加法器輸出的秒部相加的結(jié)果值。本次校時過程前后兩次秒中斷的間隔為1s-x/f,且可以證明該值在0.5~1 s之間。證明過程如下:

∵滿足條件x+y<0.5 s×f(x>0,y>0,f>0)

又 ∵x>0,y>0,f>0

2)如果不滿足前述第一個條件x+y<0.5 s×f,則判斷是否滿足第二個條件x+y>1.0 s×f,如果滿足則比較器也立即執(zhí)行校時操作,將星時計時器亞秒部y值更新為加法器輸出的(x+y-1.0 s×f)計算結(jié)果值(只保留去掉模值之后的值,此時亞秒部產(chǎn)生了進位,但不產(chǎn)生秒中斷,秒中斷只有在自然計數(shù)到模值時才產(chǎn)生);將星時計時器秒部值更新為加法器輸出的兩個秒部和亞秒部進位值的和。本次校時過程中前后兩次秒中斷間隔為2 s-x/f,且可以證明該值在1~1.5 s之間,證明過程同上。

3)如果以上兩個條件均不滿足,則繼續(xù)等待至下一個系統(tǒng)時鐘周期,再次判斷以上兩個條件是否滿足,依此類推。隨著時間的延長,亞秒部計數(shù)值y會不斷增加,在1 s的時間內(nèi),總有一個時刻會使得第二個條件x+y>1.0 s×f滿足,至此校時完成。通過以上兩個比較條件的設(shè)置,可以很好地控制校時發(fā)生的時刻,無論亞秒部校時值是多少,都能使得校時過程中前后兩次秒中斷的間隔控制在0.5~1.5 s之間。

3 應(yīng)用驗證

根據(jù)上述校時方案,下面以撥快8 s+120 ms為例,介紹一下校時過程。假定時鐘生成器產(chǎn)生的計時脈沖頻率為1 000 Hz,周期為1 ms,即星時計時器每計數(shù)1次代表1 ms時間,則校時具體過程如下:

1)CPU將校時數(shù)據(jù)8 s+120 ms寫入校時寄存器。

2)校時寄存器將數(shù)據(jù)格式轉(zhuǎn)換后分別保存在秒部和亞秒部校時值寄存器。其中秒部數(shù)值“8”采用補碼格式保存,即“0x00000008”。亞秒部數(shù)值“120”采用原碼格式保存,即“0x00000078”。

3)校時觸發(fā)器監(jiān)視到CPU進行了校時操作,發(fā)出校時啟動信號,通知比較器進行校時。

4)加法器將當(dāng)前星時計時器亞秒部計數(shù)值(假定當(dāng)前星時計時器亞秒部計數(shù)值為230)與校時寄存器亞秒部校時值120相加,結(jié)果為350;將當(dāng)前星時計時器秒部計數(shù)值(假定當(dāng)前星時計時器秒部的計數(shù)值為3 100)與校時寄存器秒部校時值8相加,結(jié)果為3 108。

5)比較器在收到校時啟動信號后,將加法器亞秒部輸出的結(jié)果與350進行比較,判斷是否滿足第一個比較條件:x+y<0.5 s×f,即120+230 < 0.5×1 000,條件滿足,則比較器執(zhí)行校時操作,將計時器亞秒部計數(shù)值230更新為350,將計時器秒部值3 100更新為3 108。本次校時過程前后兩次秒中斷的間隔為1 s-120/1 000 Hz=0.88 s,該間隔在0.5~1 s之間,星時計時器以后會以3 108 s+350 ms為起點繼續(xù)對計時脈沖進行計數(shù),至此校時完成。

從上述校時過程看出,CPU軟件僅需將校時數(shù)值寫入FPGA中的校時寄存器即可,其余校時過程全部由FPGA完成,CPU軟件大大簡化。

該校時方法經(jīng)過在某型高分辨率遙感衛(wèi)星星載計算機上實測驗證,軟件校時所需的CPU機時相比原來縮短90%以上,有效緩解了CPU機時緊張的問題,使得復(fù)雜的自主任務(wù)規(guī)劃等算法能夠在有限性能的CPU上流暢運行,提高了航天器智能化水平。本校時方法已獲得國家發(fā)明專利授權(quán)[13],相比類似專利[14],在解決秒中斷間隔突變問題上更具有優(yōu)勢。

4 結(jié)束語

本文提出的基于FPGA的秒中斷間隔可控的校時方法極大簡化了CPU軟件的校時操作,無需像原來一樣分4種情況多次操作Intel 82C54芯片才實現(xiàn)一次校時,大大節(jié)約了CPU機時。采用本校時方法后,CPU只需向FPGA校時寄存器寫入一個校時值即可完成校時操作。本方法校時過程中星時秒部和亞秒部時間碼是同時更新的,CPU任何時刻讀取的時間碼都是有效的,可以直接使用,無需再進行換算,進一步減輕了CPU的負(fù)擔(dān)。本文提出的校時方法已在多臺星載計算機上應(yīng)用,取得了較好的應(yīng)用效果。

猜你喜歡
計時器初值寄存器
松鼠的計時器
具非定常數(shù)初值的全變差方程解的漸近性
一種適用于平動點周期軌道初值計算的簡化路徑搜索修正法
Lite寄存器模型的設(shè)計與實現(xiàn)
超高精度計時器——原子鐘
三維擬線性波方程的小初值光滑解
分簇結(jié)構(gòu)向量寄存器分配策略研究*
抗繆勒氏管激素:卵巢功能的計時器!
媽媽寶寶(2017年2期)2017-02-21 01:21:22
豎向固定電火花打點計時器的技巧
具有無窮大初值的二維奇異攝動問題的漸近解
太和县| 藁城市| 大冶市| 宝丰县| 荥经县| 高雄县| 辽宁省| 泰兴市| 巴南区| 建宁县| 凤山市| 惠安县| 治县。| 乐山市| 隆昌县| 弥渡县| 津南区| 惠安县| 高邮市| 汤原县| 沁源县| 区。| 噶尔县| 邵东县| 普兰店市| 大石桥市| 南汇区| 教育| 浦县| 阿图什市| 渝中区| 桐乡市| 年辖:市辖区| 灌阳县| 武清区| 安庆市| 丹巴县| 大港区| 滨海县| 西乌珠穆沁旗| 兴业县|