鄒業(yè)楠,董振興,朱 巖
(1.中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心,北京100190;2.中國(guó)科學(xué)院大學(xué) 北京100190)
基于CFDP標(biāo)準(zhǔn)的空間數(shù)據(jù)鏈路傳輸協(xié)議軟件實(shí)現(xiàn)
鄒業(yè)楠1,2,董振興1,2,朱 巖1
(1.中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心,北京100190;2.中國(guó)科學(xué)院大學(xué) 北京100190)
當(dāng)前我國(guó)衛(wèi)星數(shù)據(jù)的存儲(chǔ)和傳輸,仍采用位流的、不可靠傳輸方式。為了在特殊的空間環(huán)境下實(shí)現(xiàn)高速可靠的數(shù)據(jù)傳輸,研究了空間數(shù)據(jù)咨詢委員會(huì)(CCSDS)提出的文件傳輸協(xié)議(CFDP)的傳輸機(jī)理,并以此為基礎(chǔ),對(duì)CFDP協(xié)議在實(shí)際工程中應(yīng)用做了一些預(yù)先研究。提出了適用于星載大容量存儲(chǔ)器(Solid State Recorder,SSR)的類文件化管理系統(tǒng),并采用FPGA與CFDP軟件相結(jié)合的方式實(shí)現(xiàn)高速數(shù)據(jù)存取。同時(shí),結(jié)合特殊的空間數(shù)據(jù)傳輸鏈路,采用特殊的數(shù)據(jù)鏈路層同步碼實(shí)現(xiàn)數(shù)據(jù)同步傳輸。最終實(shí)現(xiàn)星載大容量存儲(chǔ)器上的文件可靠傳輸。
深空通信;CCDSD文件傳輸協(xié)議;文件系統(tǒng);同步傳輸
隨著衛(wèi)星任務(wù)需求的不斷增加,有效載荷對(duì)星載大容量固態(tài)存儲(chǔ)器(Solid State Recorder,SSR)的數(shù)據(jù)存儲(chǔ)管理及境內(nèi)載荷數(shù)據(jù)下行傳輸提出了更高要求。傳統(tǒng)的星載數(shù)據(jù)存儲(chǔ)和傳輸,采用不可靠的位流形式,不能很好的適應(yīng)一些高標(biāo)準(zhǔn)航天任務(wù)的數(shù)據(jù)要求,數(shù)據(jù)完整性也不能得到有效保障。
文中在類文件化管理的基礎(chǔ)上進(jìn)一步整合出SSR動(dòng)態(tài)文件管理系統(tǒng)[1],提出了空間數(shù)據(jù)的文件化管理的方式,不僅降低了存儲(chǔ)數(shù)據(jù)的復(fù)雜性,更加方便的實(shí)現(xiàn)對(duì)星載大容量存儲(chǔ)器文件的管理。依托現(xiàn)有空間數(shù)據(jù)管理系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)CFDP應(yīng)用軟件,驗(yàn)證CFDP傳輸協(xié)議,實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸。
核心CFDP[2]傳輸協(xié)議提供了類似FTP的傳輸機(jī)制,都采用ARQ自動(dòng)請(qǐng)求重傳機(jī)制。與FTP不同的是CFDP可應(yīng)用于長(zhǎng)延時(shí)、非對(duì)稱信道的深空傳輸環(huán)境。CFDP提供了標(biāo)準(zhǔn)的實(shí)體(entities)到實(shí)體的文件可靠傳輸方式。實(shí)體可以是航天器到地面控制中心,航天器到航天器,也可以是地面控制中心到航天器[3]。CFDP作為應(yīng)用層和傳輸層的傳輸協(xié)議[4],獨(dú)立于底層數(shù)據(jù)傳輸協(xié)議。
CFDP協(xié)議實(shí)體收到用戶應(yīng)用程序發(fā)出的回放任務(wù)請(qǐng)求后,文件數(shù)據(jù)單元[5](File Data Unit,F(xiàn)DU)被創(chuàng)建。FDU包括一個(gè)包含待傳文件名字、大小等文件信息的協(xié)議數(shù)據(jù)單元(Protocol Data Units,PDUs)——元數(shù)據(jù)PDU(Metadata PDUs),和一系列包含文件數(shù)據(jù)的文件數(shù)據(jù)PDU(FileData PDUs)。
CFDP給出了兩種類型的不同傳輸模式,分別為不可靠傳輸模式和可靠傳輸模式。在不可靠傳輸模式下,數(shù)據(jù)文件僅被傳輸一次,接收實(shí)體不對(duì)接收到的文件數(shù)據(jù)做出反饋。在可靠傳輸模式下,通過(guò)一系列的肯定確認(rèn)(ACKs)、否定確認(rèn)(NAKs)和定時(shí)器(Timers)來(lái)保證文件被接收實(shí)體完整正確的接收。CFDP應(yīng)用丟失檢測(cè)重傳機(jī)制來(lái)保證文件的完整性和正確性[6],與傳統(tǒng)的ARQ機(jī)制不同的是,接收實(shí)體僅對(duì)傳輸出錯(cuò)和傳輸丟失的PDU向發(fā)送實(shí)體反饋NAK,而不是對(duì)正確接收的PDU做ACK確認(rèn),ACK確認(rèn)僅用于對(duì)EOF PDU和Finished PDU的確認(rèn),以此來(lái)降低協(xié)議信令的開銷。本文實(shí)現(xiàn)在可靠傳輸模式下傳輸文件,在文件數(shù)據(jù)PDU傳輸?shù)倪^(guò)程中,CFDP實(shí)體可對(duì)接收到的文件數(shù)據(jù)PDU的完整性做出判定,當(dāng)檢測(cè)到有PDU丟失時(shí),接收實(shí)體通過(guò)反饋鏈路給發(fā)送實(shí)體反饋丟失數(shù)據(jù)包信息NAK。CFDP給出了4種反饋NAK給接收實(shí)體的方式,分別為立即NAK(Immediate NAK)、延遲 NAK(Deferred NAK)、異步 NAK(Asynchronous NAK)和提示NAK(Prompted NAK)[7-10]??紤]到實(shí)際協(xié)議實(shí)體在數(shù)據(jù)處理速度和長(zhǎng)傳輸延時(shí)等方面的限制,本文采用延遲NAK方式。
航天器實(shí)體發(fā)送元數(shù)據(jù)PDU之后,接著將所有文件數(shù)據(jù)PDU依次發(fā)送,當(dāng)所有文件數(shù)據(jù)PDU發(fā)送結(jié)束后,實(shí)體發(fā)送一個(gè)包含已發(fā)送文件大小和文件校驗(yàn)和的EOF PDU。為了確保地面接收實(shí)體能夠收到EOFPDU,航天器實(shí)體在發(fā)送EOF PDU后啟動(dòng)一個(gè)定時(shí)器,超時(shí)時(shí)間根據(jù)往返時(shí)延來(lái)確定。在超時(shí)時(shí)間內(nèi)若沒(méi)有收到地面實(shí)體發(fā)送的EOFACK,且重發(fā)次數(shù)沒(méi)有超過(guò)預(yù)設(shè)的門限值,那么發(fā)送實(shí)體對(duì)EOFPDU進(jìn)行重發(fā)。完整的軟件設(shè)計(jì)流程圖如圖1所示。
圖1 軟件設(shè)計(jì)流程圖
地面實(shí)體接收到EOF PDU后,對(duì)沒(méi)有正確接收到PDU信息組織成NAK反饋給發(fā)送實(shí)體。為了確保發(fā)送實(shí)體收到NAK,接收實(shí)體在發(fā)出NAK后啟動(dòng)一個(gè)定時(shí)器,當(dāng)定時(shí)器超時(shí)后仍有PDU沒(méi)有接收到,再次發(fā)送NAK,并重啟定時(shí)器。
當(dāng)?shù)孛鎸?shí)體完整正確的接收到所有文件數(shù)據(jù)PDU后,反饋給航天器實(shí)體一個(gè)結(jié)束PDU(Finished PDU),標(biāo)識(shí)請(qǐng)求發(fā)送的文件已經(jīng)全部完整的接收到,并啟動(dòng)一個(gè)定時(shí)器。航天器實(shí)體反饋給地面實(shí)體一個(gè)Finished ACK,直到地面實(shí)體接收到FinishedACK,整個(gè)文件傳輸過(guò)程結(jié)束。
圖2 上行CFDPPDU
在工程模型中包含兩個(gè)CFDP實(shí)體,分別為模擬航天器實(shí)體和模擬地面實(shí)體,考慮到實(shí)際應(yīng)用中長(zhǎng)延時(shí)的特性,采用確認(rèn)模式和延遲NAK方式。為了適應(yīng)工程約束的需要,減輕對(duì)星載CPU和內(nèi)存的負(fù)載,對(duì)CFDP按照工程定制做一些簡(jiǎn)化[11]。
1)文件為單向傳輸,即從航天器到地面控制中心
2)UT(Unitdata Transfer layer)層采用CAN和LVDS,模擬遙測(cè)幀上行和傳輸幀下行
CFDP的UT層是特定于實(shí)現(xiàn)的,該模型簡(jiǎn)化了無(wú)線功率放大傳輸?shù)氖瞻l(fā)模塊。包括上行的遙測(cè)控制幀和下行的傳輸數(shù)據(jù)幀。對(duì)于上行幀,PDU放置在CAN傳輸幀的數(shù)據(jù)域,航天器實(shí)體接收到CAN傳輸幀后,提取PDU,并路由給CFDP控制軟件,上行幀格式如圖2所示。
對(duì)于CFDP下行幀,復(fù)用底層AOS[12]傳輸幀,將CFDP PDU作為AOS傳輸幀的用戶數(shù)據(jù),復(fù)用AOS傳輸幀導(dǎo)頭,并添加CFDPPDU同步導(dǎo)頭。下行幀格式如圖3所示。在地面實(shí)體接收到AOS幀后,提取CFDPPDU并路由給地面檢測(cè)軟件。
圖3 下行CFDPPDU
考慮到航天器資源的限制,針對(duì)該模型僅實(shí)現(xiàn)CFDP核心功能,即實(shí)現(xiàn)從航天器實(shí)體到地面實(shí)體的單向文件傳輸。由于僅有文件下行,為了簡(jiǎn)化設(shè)計(jì),除去了航天器實(shí)體軟件的文件重構(gòu)功能,并采用可靠傳輸?shù)难舆tNAK方式。具體實(shí)現(xiàn)流程如圖4所示。
圖4 CFDP航天器實(shí)體工程軟件
航天器實(shí)體CFDP軟件包括一個(gè)事務(wù)表,NAKs隊(duì)列,文件系統(tǒng)及回放任務(wù)。事務(wù)表存儲(chǔ)了待傳輸?shù)奈募男畔ⅲㄎ募?,待回放文件部分。NAKs隊(duì)列存儲(chǔ)了待重傳的文件數(shù)據(jù)信息,當(dāng)NAKs隊(duì)列有重傳請(qǐng)求時(shí)優(yōu)先處理回放請(qǐng)求。
當(dāng)?shù)孛嫔献⒅噶畹竭_(dá)航天器實(shí)體時(shí),首先喚醒命令解析任務(wù)。對(duì)于接收到的不同指令,啟動(dòng)相應(yīng)的處理任務(wù)。
該模型支持的CFDPPDU包括以下幾種:
1)Request——提取回放文件信息存儲(chǔ)在事務(wù)表中,啟動(dòng)回放任務(wù)
2)NAK——一個(gè)NAK PDU可能包含多個(gè)重傳請(qǐng)求,分別提取NAK放置在NAKs隊(duì)列中,每個(gè)重傳請(qǐng)求包括文件名,偏移量,等待回放任務(wù)調(diào)用。
3)EOFACK——停止對(duì)應(yīng)文件的EOF Timer
4)Finished——觸發(fā)程序發(fā)送ACK Finished
回放任務(wù)是CFDP的主要任務(wù),空間探測(cè)的科學(xué)數(shù)據(jù)和工程遙測(cè)源包都需要經(jīng)回放任務(wù)下行到地面控制中心處理。當(dāng)接收到回放指令后,將回放文件信息存儲(chǔ)到事務(wù)表中,啟動(dòng)回放任務(wù)。當(dāng)下行鏈路可用時(shí),首先檢測(cè)是否有EOF和Finished ACK等待傳輸,如果有那么優(yōu)先傳輸他們。然后再檢測(cè)NAKs重傳請(qǐng)求隊(duì)列是否有重傳請(qǐng)求,傳輸?shù)却貍鞯奈募?shù)據(jù)幀。如果NAKs傳輸隊(duì)列也為空,那么開始回放文件數(shù)據(jù)[13]。
為了實(shí)現(xiàn)高速數(shù)據(jù)的可靠傳輸,采用與FPGA配合的方式完成數(shù)據(jù)讀取、組幀、回放。數(shù)據(jù)讀取以簇為單位進(jìn)行。當(dāng)軟件響應(yīng)回放信號(hào)產(chǎn)生的中斷后,根據(jù)中斷狀態(tài)字啟動(dòng)回放過(guò)程,向硬件電路發(fā)送“回放命令字”。該命令字指定了目標(biāo)簇的地址,然后硬件電路在FLASH存儲(chǔ)區(qū)處于空閑的時(shí)刻啟動(dòng)目標(biāo)簇的數(shù)據(jù)回放過(guò)程。硬件在啟動(dòng)回放過(guò)程后,將立即產(chǎn)生一個(gè)中斷申請(qǐng)信號(hào),軟件響應(yīng)中斷后,通過(guò)回放狀態(tài)口查詢?cè)胤琶畹膱?zhí)行情況,并檢測(cè)是否回放完整個(gè)文件,否則再次向硬件電路發(fā)送下一簇的回放命令字,直至回放完整個(gè)文件。
硬件電路啟動(dòng)目標(biāo)簇的回放過(guò)程中,將目標(biāo)簇?cái)?shù)據(jù)讀取出放入緩存,由復(fù)接硬件電路按照CFDP傳輸幀格式組幀,并最終組成圖2所示的傳輸下行幀。
回放任務(wù)除了完成和硬件電路聯(lián)合實(shí)現(xiàn)文件數(shù)據(jù)的高速讀取,還要處理定時(shí)器。定時(shí)器包括EOF定時(shí)器、NAK定時(shí)器和FIN定時(shí)器。完成定時(shí)器的創(chuàng)建和超時(shí)處理功能。
為了實(shí)現(xiàn)文件化管理存儲(chǔ)器的有效載荷,F(xiàn)PGA在控制往FLASH中寫入數(shù)據(jù)時(shí),將簇使用信息寫入簇的空余區(qū),F(xiàn)PGA上電初始化時(shí)掃面整個(gè)存儲(chǔ)區(qū)的簇使用信息,并組織塊分配表送往CPU軟件。CPU軟件以此為基礎(chǔ),重新組織成文件存儲(chǔ)分配表IBAT。IBAT的每一個(gè)記錄項(xiàng)為64位,包含塊狀態(tài),文件號(hào),下一塊地址指針和時(shí)間碼等信息。如圖5所示。
圖5 IBAT組織結(jié)構(gòu)
航天器實(shí)體接收到回放文件指令后,在IBAT中找到回放起始?jí)K地址。在回放任務(wù)啟動(dòng)后,將回放指令傳輸給FPGA,F(xiàn)PGA根據(jù)回放指令的簇地址,在SSR中讀取相應(yīng)簇?cái)?shù)據(jù)。當(dāng)指定簇回放結(jié)束后,F(xiàn)PGA給CPU一個(gè)回放結(jié)束中斷,CPU發(fā)送下一簇回放簇地址,直到回放指令的結(jié)束簇地址,完成整個(gè)回放過(guò)程。
地面接收實(shí)體需要對(duì)發(fā)送實(shí)體發(fā)送的數(shù)據(jù)包進(jìn)行實(shí)時(shí)接收和解幀,并對(duì)接收到的數(shù)據(jù)包的正確性和完整性做校驗(yàn)。當(dāng)檢測(cè)到有數(shù)據(jù)包出錯(cuò)和丟失時(shí),將出錯(cuò)和丟失數(shù)據(jù)包的信息組織成NAK。在地面接收到EOF PDU后,將NAK PDU通過(guò)上行鏈路反饋給發(fā)送實(shí)體。地面實(shí)體軟件如圖6所示,發(fā)送實(shí)體根據(jù)NAK重傳請(qǐng)求檢索IBAT,和FPGA交互完成重傳請(qǐng)求。
圖6 地面實(shí)體檢測(cè)軟件
當(dāng)?shù)孛娼邮諏?shí)體接收到完整文件后,要向發(fā)送實(shí)體反饋Finished PDU,標(biāo)識(shí)地面接收實(shí)體完整正確的收到了回放文件。航天器實(shí)體接收到Finished PDU后,向地面接收實(shí)體反饋ACK Finished PDU。地面接收到ACK Finished PDU后整個(gè)回放過(guò)程結(jié)束。
該CFDP原型樣機(jī)以CCSDSCFDP傳輸協(xié)議為基礎(chǔ),整合SSR類文件化管理技術(shù)并與FPGA交互完成星載大容量存儲(chǔ)器的文件管理和高速數(shù)據(jù)可靠傳輸。對(duì)CFDP在實(shí)際型號(hào)的應(yīng)用做進(jìn)一步的研究,以期不斷提高型號(hào)任務(wù)的技術(shù)水平,滿足不斷提升的未來(lái)航天任務(wù)需求。
[1]朱巖.基于閃存的星載高速大容量存儲(chǔ)技術(shù)的研究[D].北京:中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心,2006.
[2]Consultative Committee for Space Data Systems.CCSDS 727.0-B-4-2007 CCSDS File Delivery Protocol Recommendation for Space Data System Standards[S].2007.
[3]Consultative Committee for Space Data Systems.CCSDSFile Delivery Protocol(CFDP)-PART 1 INTRODUCTION AND OVERVIEW Report Concerning Space Data System Standards.Consultative Committee for Space Data Systems:CCSDS 720.1-G-3[R].2007.
[4]蔣嘯天.深空網(wǎng)絡(luò)文件傳輸協(xié)議研究[D].西安:西安電子科技大學(xué),2010.
[5]Consultative Committee for Space Data Systems.CCSDSFile Delivery Protocol(CFDP)-PART 2 IMPLEMENTERSGUID Report Concerning Space Data System Standards.Consultative Committee for Space Data Systems:CCSDS 720.2-G-3[R].2007.
[6]Baek W,Lee D C.Expected File Delivery Time of Immediate NAK ARQ in CCSDS File Delivery Protocol[J].IEEE Transactions on Aerospace and Electronic Systems,2005,41(2):503-524.
[7]李旭,張欽宇,李暉,等.深空通信中CFDP協(xié)議的四種可靠傳輸方式比較 [C]//中國(guó)宇航學(xué)會(huì)深空探測(cè)技術(shù)專業(yè)委員會(huì)第五屆學(xué)術(shù)年會(huì).長(zhǎng)沙,中國(guó):中國(guó)宇航學(xué)會(huì)深空探測(cè)技術(shù)專業(yè)委員會(huì),2008.
[8]李旭,張欽宇,李暉,等.深空通信中提示否定確認(rèn)型CFDP協(xié)議延時(shí)估算[J].上海航天,2009,26(5):11-16.
[9]BaekW,LeeDC.Lee.Expected File-Delivery Timeof Immediate NAK ARQ in CCSDS File Delivery Protocol[J].IEEE TransactionsonCommunications,2005,41(2):503-524.
[10]Baek W,Lee D C.Expected File-Delivery Time of Deferred NAK ARQ in CCSDS File-Delivery Protocol[J].IEEE Transactions on Communications,2003,3(8):1509-1523.
[11]Christopher J.Krupiarz,Scott C.Burleigh,Constantine M. Frangos,Brian K.Heggestad,Douglas B.Holland,Kevin M.Lyons,William C.Stratton.The Use of the CCSDS File Delivery Protocol on MESSENGER[C]//2002 Space Ops and World Space Congress.Houston,Texas,United States.Aiaa Journal,2002.
[12]孫輝先,陳小敏,白云飛,等.CCSDS高級(jí)在軌系統(tǒng)及在我國(guó)航天器中的應(yīng)用[J].航天器工程,2003,12(1):12-18.
[13]周大衛(wèi).基于噴泉編碼的深空通信文件傳輸協(xié)議[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
The implementation of the software based on the CCSDS file delivery protocol
ZOU Ye-nan1,2,DONG Zhen-xing1,2,ZHU Yan1
(1.National Space Science Center,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100190,China)
The satellite data storage and transmission in our country is still have such characteristics that bit stream and unreliable transmission.In order to delivery files in the specialspace environmentwith high speed and in reliablemanner,this file have research the CCSDS File Delivery Protocol,and based on the CFDP have done some research in advance for the practicalengineering.In this paper,tomeet the requirement that the data delivery in high speed and in reliablemanner,this paper based on like dynamic file system used on high-capacity solid state recorder,CFDPtightly coupled to the onboard file system implementation and FPGA tomeet the high data rates.Using special synchronization code to deal with the data link layer,to realize the data synchronization transmission.Finally realize the reliable transmission of the file on the satellite.
deep space communication;CCSDS file delivery protocol;file system;synchronization transmission
TN919.5
A
1674-6236(2016)20-0013-04
2015-11-05 稿件編號(hào):201511053
鄒業(yè)楠(1990—),男,山東臨沂人,碩士。研究方向:空間數(shù)據(jù)存儲(chǔ)與處理。