趙文劍 ,王竹剛
(1.中國(guó)科學(xué)院大學(xué)北京100190;2.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心,北京100190)
隨著對(duì)高效、高可靠性衛(wèi)星通信系統(tǒng)需求的增長(zhǎng),傳統(tǒng)的遙測(cè)同步和信道編碼系統(tǒng)已經(jīng)無(wú)法滿足實(shí)際的要求,在復(fù)雜多變的空間通信環(huán)境中如何降低系統(tǒng)信息傳輸誤碼率,實(shí)現(xiàn)可靠的信息傳輸已經(jīng)成為遙測(cè)系統(tǒng)需要解決的關(guān)鍵性問(wèn)題[1]。依照CCSDS制訂的分包遙測(cè)標(biāo)準(zhǔn)[2]體系中同步和信道編碼標(biāo)準(zhǔn)[3-8],文中在FPGA平臺(tái)上實(shí)現(xiàn)了一套遙測(cè)編碼系統(tǒng)。整個(gè)遙測(cè)同步和信道編碼流程可以概括為:首先,信道編碼使用LDPC碼,它具有接近香農(nóng)極限的誤碼性能和較高的編碼增益,適用于空間探測(cè)、載人航天等空間應(yīng)用領(lǐng)域[9];然后,數(shù)據(jù)加擾采用和偽隨機(jī)序列做相關(guān)運(yùn)算的方法,它保證了信道的轉(zhuǎn)變密度,避免了長(zhǎng)時(shí)間出現(xiàn)‘0’或‘1’[10];其次,加擾后的數(shù)據(jù)添加相對(duì)應(yīng)的同步碼,構(gòu)成適合于分包遙測(cè)體系傳輸?shù)倪b測(cè)信道數(shù)據(jù)訪問(wèn)單元(Channel Access Data Unit,CADU),再進(jìn)行物理層的基帶、中頻和射頻處理,最后送入物理信道進(jìn)行傳輸。
LDPC碼可以獲得較高的編碼增益,在衛(wèi)星通信場(chǎng)合具有很好的應(yīng)用前景[11]。本設(shè)計(jì)中采用了LDPC(2048,1024)碼,又稱1/2碼率LDPC碼。這是一種準(zhǔn)循環(huán)LDPC碼(Quasi-Cyclic Low Density Parity Check Code,QC-LDPC),可對(duì) 1024個(gè)信息比特編碼,并輸出2048位碼字,常應(yīng)用在深空通信場(chǎng)合。該碼的生成矩陣G具有系統(tǒng)循環(huán)結(jié)構(gòu),維數(shù)是1024×2048,結(jié)構(gòu)如式(1)

式(1)中,矩陣左邊是一個(gè)1024×1024的單位方陣,右邊是8行8列共64個(gè)128×128的循環(huán)子矩陣塊Bij構(gòu)成的1024×1024維矩陣。Bij的每一行由其上一行向右循環(huán)移位1位構(gòu)成,第一行是最后一行的循環(huán)移位,因此存儲(chǔ)生成矩陣簡(jiǎn)化為存儲(chǔ)其生成向量,可以節(jié)約大量的存儲(chǔ)資源。
為了保證信道的轉(zhuǎn)變密度,避免長(zhǎng)時(shí)間出現(xiàn)‘0’或‘1’,使用生成多項(xiàng)式h(x)=x8+x7+x5+x3+1產(chǎn)生周期為255的偽隨機(jī)序列與LDPC編碼之后的比特流相異或,即偽隨機(jī)化(Pseudo-Randomizer)。因?yàn)楫惢虿僮骶哂薪Y(jié)合性,假設(shè)原始數(shù)據(jù)為D,用來(lái)加擾的偽隨機(jī)序列為P,隨機(jī)化后的數(shù)據(jù)為R,則R⊕P=(D⊕P)⊕P=D⊕(P⊕P)=D⊕0=D。因此,地檢設(shè)備解幀時(shí)只需用同樣的偽隨機(jī)序列再次與除同步碼以外的每一位進(jìn)行異或,即可恢復(fù)原數(shù)據(jù)[12]。
為了實(shí)現(xiàn)幀定界,方便接收端幀同步,經(jīng)LDPC編碼和偽隨機(jī)化后的每幀數(shù)據(jù)需附加相應(yīng)的同步碼,依據(jù)標(biāo)準(zhǔn)建議,對(duì)應(yīng)LDPC(2048,1024)編碼的同步碼為64比特,其十六進(jìn)制表示為034776C7272895B0[13]。綜上所述,整個(gè)遙測(cè)同步和編碼的數(shù)據(jù)封裝過(guò)程如圖1所示。
已知信息碼序列M和式(1)生成矩陣G,可由式(2)求得碼字序列A。

圖1 遙測(cè)同步和信道編碼數(shù)據(jù)封裝過(guò)程

其中M為輸入信息序列,I為式(1)中單位矩陣,B為式(1)中的循環(huán)矩陣,C為校驗(yàn)序列,編碼后的碼字序列A由輸入信息序列M和校驗(yàn)序列C兩部分組成。由式(2)可知,(2048,1024)LDPC碼的編碼實(shí)際上僅需要計(jì)算校驗(yàn)序列C=M×B[14]。矩陣B的每個(gè)塊矩陣具有循環(huán)特性,存儲(chǔ)生成矩陣時(shí)只需存儲(chǔ)每個(gè)塊矩陣的第一行,依次向右循環(huán)移位即可得整個(gè)生成矩陣,因此,原本需要1024×1024個(gè)存儲(chǔ)空間,現(xiàn)只需128×64個(gè)存儲(chǔ)空間。下面推導(dǎo)編碼運(yùn)算公式:記Bi,j=[bli,j(k)],其中i,j=1,2,…8表示8行8列塊矩陣;k=1,2,……,128表示每個(gè)塊矩陣的128列元素;l=0,1,…,127表示每個(gè)塊矩陣的行元素向右循環(huán)移位的位數(shù)。M(j)表示輸入信息的第j比特位;R(n),n=1,2,…1024表示1024個(gè)1024維矢量信號(hào)。
當(dāng)輸入第1比特信息M(1)時(shí),M(1)與B第1行全部元素相乘,結(jié)果為:

當(dāng)輸入第2比特信息M(2)時(shí),M(2)與B第2行全部元素相乘,結(jié)果為:

當(dāng)輸入第j比特信息M(j)時(shí),M(j)與B的第j行元素全部相乘,結(jié)果為:

其中,“%”表示求余,“/”表示整除所得的商。
綜上,記accv(v=1,2,…,8)表示8個(gè)128位校驗(yàn)碼寄存器,acc表示1024位的校驗(yàn)碼寄存器則

其中,“{}”表示8個(gè)128比特的accv寄存器拼湊為1024比特。
根據(jù)式(3)~(6)的計(jì)算過(guò)程,校驗(yàn)序列的計(jì)算電路設(shè)計(jì)如圖2所示,利用循環(huán)移位寄存器、乘法器及異或累加器為核心實(shí)現(xiàn)向量與矩陣的乘法,極大地減少了運(yùn)算量和資源消耗,有利于編碼器的硬件實(shí)現(xiàn)。
圖2工作過(guò)程如下:

圖2 LDPC編碼電路
1)初始時(shí)刻128位循環(huán)移位寄存器cshift1、cshift2…cshift8分別讀入G中B1,1,B1,2…,B1,8的第1行數(shù)據(jù)其中k=1,2,…,128 。同時(shí)與第1位信息位M(1)進(jìn)入與門做乘法,再由異或門相加后分別存入acc1,acc2,…,acc8;
3)重復(fù)步驟2);
4)當(dāng)M(128)輸入電路并運(yùn)算完成后,移位寄存器cshift1、cshift2…cshift8分別讀入G中B2,1,B2,2…,B2,8的第1行數(shù)據(jù)與第129位信息位M(129)進(jìn)入與門做乘法,結(jié)果分別與acc1,acc2,…,acc8中的值相異或后存入acc1,acc2,…,acc8。
重復(fù)上述過(guò)程直到信息序列M的最后一位M(1024)進(jìn)入電路運(yùn)算完成后,取出acc1,acc2,…,acc8中的值,賦值給校驗(yàn)碼寄存器acc,即acc={acc1,acc2,…,acc8},所得即為L(zhǎng)DPC編碼的校驗(yàn)碼字。
生成多項(xiàng)式h(x)=x8+x7+x5+x3+1產(chǎn)生周期為255的偽隨機(jī)序列與LDPC編碼之后的2048比特信息逐位異或,實(shí)現(xiàn)幀數(shù)據(jù)加擾。偽隨機(jī)電路使用如圖3所示的線性反饋移位寄存器(Linear Feedback Shifting Register,LFSR)實(shí)現(xiàn):

圖3 偽隨機(jī)化電路
初始化時(shí),8位寄存器置‘1’,偽隨機(jī)序列的每位輸出與LDPC編碼后碼字相異或同時(shí)返回LFSR中參與后一位隨機(jī)位的生成運(yùn)算,一個(gè)周期即255個(gè)時(shí)鐘周期之后,LFSR寄存器呈全‘1’,接著重復(fù)上一個(gè)周期的輸出,直至整幀數(shù)據(jù)完全加擾,即完成一幀數(shù)據(jù)的處理[15]。
偽隨機(jī)之后的2048比特信息碼附加64位同步碼構(gòu)成2112比特標(biāo)準(zhǔn)數(shù)據(jù)幀。每一幀數(shù)據(jù)經(jīng)過(guò)LDPC編碼和偽隨機(jī)處理后輸出一個(gè)時(shí)鐘周期的脈沖信號(hào),ASM電路接收到該脈沖后,將64位同步碼打進(jìn)64位移位寄存器,下一個(gè)時(shí)鐘即輸出同步碼最高位,同時(shí)將偽隨機(jī)后生成的信息碼逐位移入64位移位寄存器,從而實(shí)現(xiàn)CADU碼流的串行輸出,ASM電路實(shí)現(xiàn)如圖4所示。
本設(shè)計(jì)使用Xilinx公司的xc4vsx55芯片實(shí)現(xiàn),并在ISE14.6環(huán)境下使用Verilog HDL完成電路設(shè)計(jì)、綜合、布局布線及程序下載。本系統(tǒng)的實(shí)現(xiàn)結(jié)構(gòu)圖如圖5所示,clk為時(shí)鐘信號(hào);rst為系統(tǒng)復(fù)位信號(hào),高電平有效;inf_in為串行輸入數(shù)據(jù);inf_in_en,輸入數(shù)據(jù)有效標(biāo)識(shí)信號(hào),高電平有效;tm_out為串行輸出數(shù)據(jù);tm_out_en,輸出數(shù)據(jù)有效標(biāo)識(shí)信號(hào),高電平有效。
設(shè)計(jì)中遙測(cè)同步和信道編碼系統(tǒng)綜合后的FPGA資源使用情況如表1所示,可見(jiàn),系統(tǒng)在占用較少資源的情況下,實(shí)現(xiàn)了同步和編碼功能,大大節(jié)省了資源消耗。

圖4 幀同步電路

圖5 遙測(cè)同步及信道編碼系統(tǒng)結(jié)構(gòu)

表1 遙測(cè)同步及信道編碼系統(tǒng)資源占用
系統(tǒng)吞吐量Throughput的計(jì)算公式如式(7)所示,其中n表示一幀待處理信息數(shù)據(jù)的比特?cái)?shù),c表示完成一幀數(shù)據(jù)處理所需的主時(shí)鐘周期數(shù),T表示系統(tǒng)時(shí)鐘[16]。

由表1,當(dāng)系統(tǒng)工作頻率為150 MHz時(shí),對(duì)于1個(gè)數(shù)據(jù)幀,從第1個(gè)信息比特輸入,到CADU最后1個(gè)比特?cái)?shù)據(jù)輸出,實(shí)驗(yàn)結(jié)果表明一共需2 120個(gè)主時(shí)鐘周期,即c=2 120。系統(tǒng)中數(shù)據(jù)幀包含的信息比特?cái)?shù)為1 024,則由式(7)計(jì)算的吞吐量約為72 Mbps。
文中依照CCSDS分包遙測(cè)標(biāo)準(zhǔn)建議,在FPGA平臺(tái)上實(shí)現(xiàn)了一套遙測(cè)同步和信道編碼系統(tǒng)。該系統(tǒng)應(yīng)對(duì)復(fù)雜多變的空間環(huán)境,具有較高的數(shù)據(jù)傳輸可靠性,同時(shí)硬件實(shí)現(xiàn)簡(jiǎn)單,數(shù)據(jù)吞吐量高,在占用資源較少的情況下,能準(zhǔn)確完成遙測(cè)數(shù)據(jù)的同步和信道編碼任務(wù),滿足深空通信要求。
[1]Lin S,Costello D J,Jr.差錯(cuò)控制編碼[M].北京:機(jī)械工業(yè)出版社,2013.
[2]Packet Telemetry.CCSDS 102.0-B-5.Blue Book.Issue 5[S].2013.
[3]TM Synchronization and Channel Coding.CCSDS 131.0-B-2.Blue Book.Issue 2[s].2013.
[4]CCSDS.CCSDS130.0-G-3Overviewofspacecommunicationsprotocols[S]. Washington D.C.:CCSDS Secretariat,2014.
[5]CCSDS CCSDS 355.0-R-4 Space data link security protocol[S].Washington D.C:CCSDS,2014.
[6]CCSDS.CCSDS 732.0-B-3 AOS space data link protocol[S].Washington D.C:CCSDS Secretariat,2015.
[7]CCSDS.CCSDS 230.1-G-2 TCsynchronization and channel coding--summary of concept and rationale[S].Washington D.C:CCSDS Secretariat,2012.
[8]TM ChannelCoding Profiles.CCSDS 131.4-M-1.Magenta Book.Issue 1[S].2012.
[9]郭經(jīng).CCSDS遙測(cè)信道編碼標(biāo)準(zhǔn)簡(jiǎn)介[J].航天標(biāo)準(zhǔn)化,2012(2):42-45.
[10]馬苗,朱巖.基于CCSDS標(biāo)準(zhǔn)的衛(wèi)星數(shù)據(jù)處理軟件設(shè)計(jì)[J].電子設(shè)計(jì)工程,2015,23(1):16-20.
[11]雷光雄,王賽宇.基于CCSDS建議的糾錯(cuò)碼技術(shù)研究[J].計(jì)算機(jī)與網(wǎng)絡(luò),2015(2):19-25.
[12]杜兵團(tuán),趙建功.基于CCSDS標(biāo)準(zhǔn)的高速LDPC譯碼算法[J].無(wú)線電工程.2013(10):59-66.
[13]易茂祥,張浩,郭紅衛(wèi)等.m-序列數(shù)據(jù)擾碼技術(shù)及其在SATA中的應(yīng)用[J].微電子學(xué),2012,42(4):502-505.
[14]謝勇,姚遠(yuǎn)程,秦明偉.QC-LDPC碼編碼器的FPGA實(shí)現(xiàn)[J].西南科技大學(xué)學(xué)報(bào),2013,28(1):84-87.
[15]程磊,杜鋒,張健.深空通信中LDPC碼編碼器設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].電子質(zhì)量,2015(4):34-38.
[16]劉蘭,姚行中,王振宇等.適用于CCSDS的“一幀一密”加/解密方案的FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(10):84-88.