0 引言
隨著航天技術(shù)的進(jìn)一步發(fā)展,,于1982年成立的空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(CCSDS)制定了以滿足復(fù)雜航天器的需要為目標(biāo)的高級(jí)在軌系(AO-S)體制和標(biāo)準(zhǔn),。目前該標(biāo)準(zhǔn)仍在不斷修正補(bǔ)充與發(fā)展。它是航天測(cè)控與通信進(jìn)入國(guó)際合作時(shí)代的產(chǎn)物,,也是航天測(cè)控與通信技術(shù)發(fā)展的必然,。航天任務(wù)越來越具有強(qiáng)烈的國(guó)際性質(zhì),為合理開發(fā)與利用空間資源必須走國(guó)際合作的道路。我國(guó)的航天技術(shù)要走向世界,,與AOS標(biāo)準(zhǔn)接軌是最好的選擇,。
根據(jù)標(biāo)準(zhǔn)的相關(guān)要求,可以將AOS系統(tǒng)分成如下幾個(gè)主要部分:數(shù)據(jù)源,、鏈路控制器,、合路器/分路器等。上行鏈路控制器首先接收分路器傳來的VCD格式數(shù)據(jù),,并從中提取M_PDU,,然后相應(yīng)恢復(fù)成M_SDU或E_PDU,并根據(jù)應(yīng)用進(jìn)程標(biāo)識(shí)符(APID)的值,,把數(shù)據(jù)傳送到相應(yīng)的業(yè)務(wù)用戶,。
由以上功能劃分來看上行鏈路控制器是整個(gè)系統(tǒng)中的關(guān)鍵設(shè)備,屬于空間鏈路層中的硬件實(shí)體,,其作用相當(dāng)于虛擬信道鏈路控制子層數(shù)據(jù)存取過程,。
1 控制器的設(shè)計(jì)
AOS體制主要用于復(fù)雜航天器的數(shù)據(jù)系統(tǒng)中。復(fù)雜航天器需要傳輸?shù)臄?shù)據(jù)種類很多,,有圖像,、話音、數(shù)據(jù),、文件,、電子郵件等,數(shù)據(jù)的碼速率也相差很大,,從幾個(gè)b/s到幾百Gb/s,,總信息量很大。AOS體制的特點(diǎn)是能夠?qū)Σ煌愋偷臄?shù)據(jù)采用不同的業(yè)務(wù),,而不同業(yè)務(wù)對(duì)數(shù)據(jù)的處理方法和格式是不同的,。
采用AOS體制的航天器數(shù)據(jù)系統(tǒng)中,上行鏈路控制器存在于空間數(shù)據(jù)鏈路層的VCLC層中,,其主要功能有:對(duì)由分路器傳給上行鏈路控制器的數(shù)據(jù)(VC_PDU),,利用虛擬信道存取子層的VCA業(yè)務(wù)進(jìn)行解VCA,生成M-PDU數(shù)據(jù)單元,,再進(jìn)行解多路復(fù)用,,生成E_PDU數(shù)據(jù),對(duì)E_PDU數(shù)據(jù)進(jìn)行解包裝功能,,分別生成路徑業(yè)務(wù)數(shù)據(jù)(O_SDU,,P_SDU)及網(wǎng)間業(yè)務(wù)數(shù)據(jù)(I_SDU)。
上行鏈路控制器的功能框圖如圖1所示,。
幾種主要數(shù)據(jù)單元格式如下:
(1)虛擬信道數(shù)據(jù)單元
虛擬信道數(shù)據(jù)單元(VCDU)如下:
(2)M_PDU數(shù)據(jù)單元
M_PDU數(shù)據(jù)單元如下:
(3)包裝協(xié)議數(shù)據(jù)單元
包裝協(xié)議數(shù)據(jù)單元(E_PDU)如下:
2 控制器的實(shí)現(xiàn)
在控制器的實(shí)現(xiàn)平臺(tái)的選擇上使用了我國(guó)方舟(ARCA)科技公司GT2000嵌入式開發(fā)板,,因?yàn)镚T2000是方舟科技的一款基于方舟二號(hào)為核心的嵌入式CPU產(chǎn)品,,是我國(guó)第一個(gè)具有自主知識(shí)產(chǎn)權(quán)CPU。它在主頻400 MHz下運(yùn)行時(shí)最大功耗只有360 mW,,具有高性能,、低功耗的特點(diǎn),對(duì)于研究具有我國(guó)自主知識(shí)產(chǎn)權(quán)的AOS的底層接口器件,、關(guān)鍵模塊和設(shè)備具有重要的意義,。GT2000提供兩個(gè)串口,一個(gè)以太網(wǎng)口及其他外設(shè)接口,。鏈路控制器就是利用其提供的以太網(wǎng)口進(jìn)行數(shù)據(jù)傳輸,。同時(shí)由于GT2000內(nèi)嵌Linux操作系統(tǒng)使進(jìn)程間通信機(jī)制十分靈活,而且Linux系統(tǒng)所提供的Socket通信接口和各種豐富的系統(tǒng)異步時(shí)間處理方式為在其上快速地處理數(shù)據(jù)提供了極大的方便,。
根據(jù)前述控制器所完成的功能,,在Linux平臺(tái)上采用標(biāo)準(zhǔn)的C語言進(jìn)行實(shí)現(xiàn)。
上行鏈路控制器工作過程中最重要的是解復(fù)用功能,。首先判斷首導(dǎo)頭指針,,當(dāng)首導(dǎo)頭的指針在M_PDU數(shù)據(jù)域長(zhǎng)度范圍內(nèi)時(shí),M_PDU模塊把首導(dǎo)頭指針?biāo)甘镜纳弦粋€(gè)CCSDS包的剩余部分放入CCSDS緩沖區(qū),,此時(shí)CCSDS緩沖區(qū)的數(shù)據(jù)是一個(gè)完整的CCSDS格式包,,然后判斷它的數(shù)據(jù)類型,如果是包裝數(shù)據(jù),,則調(diào)用DE_PDU模塊,,進(jìn)行解包,然后進(jìn)行轉(zhuǎn)發(fā),,緩沖區(qū)清零,。接著處理M_PDU包區(qū)中新開始的CCSDS包,首先判斷該CC-SDS導(dǎo)頭是否包含長(zhǎng)度域,,如果不包含長(zhǎng)度域,,則把該M_PDU包的剩余部分全部放入CCSDS緩沖區(qū),繼續(xù)接收下一個(gè)M_PDU包,。如果包含有長(zhǎng)度域,,則計(jì)算此CCSDS包的長(zhǎng)度,,并與M_PDU剩余的長(zhǎng)度進(jìn)行比較,,CCSDS包的長(zhǎng)度大于M_PDU剩余長(zhǎng)度時(shí),則把M_PDU的剩余部分?jǐn)?shù)據(jù)全部放入CCSDS緩沖區(qū),,繼續(xù)接收下一個(gè)M_PDU數(shù)據(jù),。CCSDS包的長(zhǎng)度等于M_PDU剩余長(zhǎng)度時(shí),則把M_PDU的剩余部分?jǐn)?shù)據(jù)全部放入CCSDS緩沖區(qū),,繼續(xù)接收下一個(gè)M_PDU數(shù)據(jù),。CCSDS包的長(zhǎng)度小于M_PDU剩余長(zhǎng)度時(shí),則把此CCSDS包全部放入CCSDS緩沖區(qū),判斷其版本號(hào),,如果是可復(fù)用數(shù)據(jù)就直接轉(zhuǎn)發(fā)出去,,如果是不可復(fù)用數(shù)據(jù),則調(diào)用解包裝模塊DE_PDU,,進(jìn)行解包,,再進(jìn)行轉(zhuǎn)發(fā),然后循環(huán)判斷M_PDU中下一個(gè)CCSDS包,,直至CCSDS包的長(zhǎng)度大于或等于M_PDU剩余長(zhǎng)度后,,繼續(xù)接收時(shí)的剩余部分?jǐn)?shù)據(jù)全部放入CCSDS緩沖區(qū),繼續(xù)接收下一個(gè)M_PDU數(shù)據(jù),。解復(fù)用模塊的工作流程如圖2所示,。
3 測(cè)試及驗(yàn)證
鏈路控制器可以支持多路數(shù)據(jù),首先模擬一些真實(shí)的數(shù)據(jù):非定界字符串,,IPV6,,IPV4,CP_PDU,,把PC機(jī)和控制器通過以太網(wǎng)口相聯(lián),,把模擬的各種數(shù)據(jù)發(fā)送給控制器,控制器接收數(shù)據(jù)進(jìn)行識(shí)別處理,。測(cè)試結(jié)果表明該控制器可以較好地進(jìn)行數(shù)據(jù)的解VCA和解復(fù)用,,無丟包現(xiàn)象,工作穩(wěn)定,、可靠,。
4 結(jié)語
本文介紹了基于國(guó)產(chǎn)芯片設(shè)計(jì)的AOS系統(tǒng)的上行鏈路控制器,采用該控制器可以較好地處理模擬的航天器數(shù)據(jù),,并且對(duì)數(shù)據(jù)傳輸中的一些關(guān)鍵技術(shù)進(jìn)行了驗(yàn)證,,為今后進(jìn)一步的研究打下基礎(chǔ)。