何品權(quán),耿晨曦,張力丹,鄭婉迅,夏巧橋
(華中師范大學(xué)物理科學(xué)與技術(shù)學(xué)院,武漢 430079)
隨著航天科技的高速發(fā)展,衛(wèi)星有效載荷的數(shù)據(jù)率也在日益提升,這給衛(wèi)星數(shù)傳分系統(tǒng)帶來了巨大壓力[1]。在整個(gè)衛(wèi)星系統(tǒng)中,衛(wèi)星數(shù)傳分系統(tǒng)[2]占據(jù)著十分重要的位置,但其技術(shù)相對(duì)復(fù)雜且更新周期短,因此在每套數(shù)傳分系統(tǒng)投入使用之前都要經(jīng)歷十分嚴(yán)格的測(cè)試。而考慮到現(xiàn)實(shí)情況與經(jīng)濟(jì)成本,衛(wèi)星前端的有效載荷很難在數(shù)傳分系統(tǒng)研制測(cè)試期間直接投入測(cè)試[3],故需要數(shù)傳基帶數(shù)據(jù)模擬源代替前端載荷為數(shù)傳分系統(tǒng)提供測(cè)試激勵(lì)[4]。
傳統(tǒng)的基帶數(shù)據(jù)模擬源一般采用單板卡的形式,在板卡上集成控制器、存儲(chǔ)器、大容量緩存及接口電路,通過總線由主機(jī)發(fā)送控制指令到控制器,控制器在接收到相應(yīng)指令后從儲(chǔ)存器中將數(shù)據(jù)讀取到大容量緩存中,緩存的數(shù)據(jù)以一定的時(shí)序通過接口電路發(fā)送出去。楊兆君[5]研制的高速載荷數(shù)據(jù)加載器,采用現(xiàn)場(chǎng)可編程邏輯門陣列(field programmable gate array,F(xiàn)PGA)作為核心控制器件,單路數(shù)據(jù)儲(chǔ)存容量可以達(dá)到32 GB,使用FLASH陣列使板上容量達(dá)到了128 GB,低電壓差分訊號(hào)(low-voltage differential signaling,LVDS)接口發(fā)送速率最高可達(dá)300 Mbps。但是該系統(tǒng)設(shè)計(jì)較為復(fù)雜,需要對(duì)16片的Flash芯片進(jìn)行管理,可靠性較低,還需要額外使用一塊EEPROM做壞塊記錄[5]。張卓等[6]研制的基帶數(shù)據(jù)模擬源,采用XC2C1000芯片作為主控制器,選用NAND FLASH 芯片作為存儲(chǔ)模塊,輸出接口為RS422與LVDS,速率最高可達(dá)250 Mbps。計(jì)算機(jī)通過USB接口將數(shù)據(jù)傳給FPGA,由FPGA將數(shù)據(jù)寫入16 GB NAND FLASH中,在數(shù)據(jù)發(fā)送的過程中對(duì)數(shù)據(jù)進(jìn)行讀取,整個(gè)過程涉及對(duì)FLASH的讀、寫、擦除操作以及壞塊管理操作。魯琴等[7]設(shè)計(jì)的衛(wèi)星圖像模擬源、張貴祥等[8]設(shè)計(jì)的星載光學(xué)遙感相機(jī)圖像模擬源以及文獻(xiàn)[9-15]也采取了上述設(shè)計(jì)方案。這些方案在當(dāng)時(shí)的衛(wèi)星數(shù)傳分系統(tǒng)測(cè)試中發(fā)揮了十分重要的作用,但隨著科技的不斷發(fā)展也逐漸顯露出了一些弊端?,F(xiàn)今,模擬源的數(shù)據(jù)傳輸帶寬低,數(shù)據(jù)存儲(chǔ)容量小,已經(jīng)無法滿足對(duì)數(shù)傳分系統(tǒng)高速率大容量的測(cè)試數(shù)據(jù)需求,對(duì)于數(shù)據(jù)處理速度較高的部件也無法檢測(cè)其性能。隨著技術(shù)的發(fā)展進(jìn)步,當(dāng)前大多數(shù)傳分系統(tǒng)數(shù)據(jù)接口采用TLK2711接口,大量的學(xué)者進(jìn)行相關(guān)的研究,蔣志勝等[16]提出了一種基于高速并串行與串并行轉(zhuǎn)換器(serializer/deserializer,SERDES)接口芯片TLK2711應(yīng)用設(shè)計(jì)的星載多通道高速串行數(shù)據(jù)路由系統(tǒng),為衛(wèi)星數(shù)傳分系統(tǒng)數(shù)據(jù)路由提供了可行方案,并同時(shí)介紹了TLK2711的工作原理。對(duì)于數(shù)據(jù)的大容量存儲(chǔ),也有學(xué)者進(jìn)行相關(guān)研究。白雪等[17]提出了一種基于FPGA的SATA 3.0存儲(chǔ)陣列控制器,實(shí)現(xiàn)的陣列控制器,存儲(chǔ)容量達(dá)4 TB,寫入帶寬達(dá)3.3 GB/s,讀出帶寬達(dá)3.4 GB/s。李晉濤等[18]優(yōu)化了一種基于FPGA的控制存儲(chǔ)系統(tǒng),系統(tǒng)以SATA3.0作為傳輸總線,固態(tài)硬盤陣列作為存儲(chǔ)介質(zhì),對(duì)存儲(chǔ)邏輯進(jìn)行了設(shè)計(jì),并對(duì)硬件電路和帶外(out of band,OOB)狀態(tài)機(jī)進(jìn)行了優(yōu)化。最終實(shí)現(xiàn)了一種高速率,高穩(wěn)定性的存儲(chǔ)系統(tǒng),解決了大容量存儲(chǔ)系統(tǒng)的傳輸穩(wěn)定性問題。
在參考中外相關(guān)研究以及現(xiàn)有技術(shù)的基礎(chǔ)上提出了一種高速率、大容量的衛(wèi)星數(shù)傳基帶模擬源。該模擬源采用Xilinx公司的xc7k480tffv1156-2芯片作為主控制器,采用自主設(shè)計(jì)的SATA3.0控制器作為數(shù)據(jù)源接口,為模擬源提供數(shù)據(jù),可解決模擬源高輸出帶寬、大容量存儲(chǔ)等瓶頸。采用FPGA自帶的高速收發(fā)器實(shí)現(xiàn)TLK2711接口,節(jié)省FPGA的輸入輸出(input output,IO)資源,可實(shí)現(xiàn)16路TLK2711接口并行輸出,同時(shí)接口線速率可動(dòng)態(tài)調(diào)整,可解決模擬源的多通道高帶寬輸出問題。
本系統(tǒng)的主控制器芯片為Xilinx公司的xc7k480tffv1156-2,支持48個(gè)全雙工收發(fā)器通道;外掛一片8 GB(第三代雙倍數(shù)據(jù)率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(double-data-rate three synchronous dynamic random access memory,DDR3)提供大容量緩存;并行掛載8路SSD硬盤提供模擬源數(shù)據(jù),總帶寬可達(dá)36.2 Gbps;采用FPGA內(nèi)置高速收發(fā)器與DS100MB230芯片實(shí)現(xiàn)TLK2711接口時(shí)序;采用200 MHz恒溫晶振為FPGA提供時(shí)鐘信號(hào)。系統(tǒng)硬件結(jié)構(gòu)如圖1所示,其通過SSD硬盤或內(nèi)部自檢數(shù)據(jù)源提供有效載荷數(shù)據(jù),由FPGA預(yù)處理后送入外部DDR3中緩存。輸出控制模塊從DDR3中獲取數(shù)據(jù)送入高速收發(fā)器中,轉(zhuǎn)換為TLK2711接口時(shí)序,高速收發(fā)器信號(hào)經(jīng)DS100MB230芯片進(jìn)行預(yù)加重與隔離處理后由超小型連接器(subminiature version A,SMA)接口輸出。
SSD為固態(tài)硬盤;GTX為G比特收發(fā)器,常稱為Serdes、高速收發(fā)器圖1 系統(tǒng)硬件結(jié)構(gòu)框圖Fig.1 Structure diagram of the system hardware
上位機(jī)通過千兆以太網(wǎng)與模擬源設(shè)備進(jìn)行交互,更新模擬數(shù)據(jù),配置數(shù)據(jù)源模式、數(shù)據(jù)發(fā)送的正逆程、線速率等參數(shù)。本系統(tǒng)包含兩種數(shù)據(jù)源:第一種數(shù)據(jù)源為自定義格式數(shù)據(jù)源,可以生成計(jì)數(shù)器、棋盤格、偽隨機(jī)數(shù)等數(shù)據(jù)內(nèi)容;第二種為固態(tài)硬盤(solid state disk,SSD)數(shù)據(jù)源,SSD中的數(shù)據(jù)可以預(yù)先寫入,也可以通過千兆以太網(wǎng)將數(shù)據(jù)進(jìn)行上載。兩種數(shù)據(jù)源經(jīng)過數(shù)據(jù)選擇器將數(shù)據(jù)傳輸給DDR3多端口控制器模塊,輸出控制模塊從DDR3多端口控制器模塊讀取緩存的數(shù)據(jù)進(jìn)行處理,輸出控制模塊將處理后數(shù)據(jù)送入高速收發(fā)器,經(jīng)高速收發(fā)器轉(zhuǎn)換為TLK2711接口時(shí)序輸出到相對(duì)應(yīng)的物理管腳上。FPGA設(shè)計(jì)框圖如圖2所示。
圖2 FPGA設(shè)計(jì)框圖Fig.2 Structure diagram of FPGA
大容量DDR3高速緩存可使TLK2711接口穩(wěn)定平滑地輸出數(shù)據(jù)。本模擬源中DDR3的傳輸帶寬為12.8 GB/s(DDR3-1600),儲(chǔ)存容量高達(dá)8 GB??紤]單個(gè)用戶邏輯無須使用如此高的數(shù)據(jù)帶寬以及存儲(chǔ)容量,而在本系統(tǒng)中存在多個(gè)用戶側(cè)邏輯同時(shí)緩存數(shù)據(jù)的需求,于是設(shè)計(jì)多端口控制器,提供多個(gè)先進(jìn)先出(first input first output,F(xiàn)IFO)型接口,供多個(gè)用戶側(cè)邏輯同時(shí)讀寫數(shù)據(jù)。
DDR3控制器使用高性能擴(kuò)展總線接口(advanced eXtensible interface,AXI4)總線進(jìn)行訪問,為實(shí)現(xiàn)多個(gè)AXI4主機(jī)接口對(duì)從機(jī)接口的訪問,使用AXI-Interconnect進(jìn)行AXI4總線擴(kuò)展,可響應(yīng)多個(gè)主機(jī)接口發(fā)起的訪問請(qǐng)求。FIFO型端口由FIFO To AXI4模塊完成地址更新,作為AXI4主機(jī)接口向從機(jī)DDR3控制器發(fā)起讀寫訪問請(qǐng)求,其數(shù)據(jù)僅可讀出一次,對(duì)外表現(xiàn)為大容量FIFO。其內(nèi)部由AXI-Interconnect IP對(duì)多個(gè)AXI4主機(jī)接口發(fā)起的突發(fā)訪問進(jìn)行仲裁,按優(yōu)先級(jí)響應(yīng)多個(gè)FIFO的讀寫數(shù)據(jù)操作,其多個(gè)端口的讀寫總帶寬小于DDR3的實(shí)際帶寬??紤]到輸入數(shù)據(jù)與多端口控制器工作時(shí)鐘域不匹配的情況,在大容量FIFO外接一個(gè)異步FIFO對(duì)數(shù)據(jù)進(jìn)行跨時(shí)鐘處理。由16個(gè)FIFO型端口組成的多端口控制器如圖3所示。
傳統(tǒng)衛(wèi)星數(shù)傳基帶模擬源儲(chǔ)存容量較小,在對(duì)衛(wèi)星數(shù)傳分系統(tǒng)進(jìn)行測(cè)試時(shí)數(shù)據(jù)碼型通常無法進(jìn)行完整的碼型遍歷測(cè)試。為解決其儲(chǔ)存容量較小的問題,提出了一種基于SATA3.0控制器的衛(wèi)星數(shù)傳基帶模擬源。SATA3.0控制器掛載SSD硬盤為衛(wèi)星數(shù)傳基帶模擬源提供大容量的數(shù)據(jù)存儲(chǔ)。實(shí)際儲(chǔ)存大小可根據(jù)需求選擇不同容量的SSD硬盤,單塊SSD硬盤無法滿足需求也可在FPGA上并行多路掛載擴(kuò)充容量。SATA3.0硬盤控制器設(shè)計(jì)框圖如圖4所示。
fifo_in_clk_x為先入先出型數(shù)據(jù)緩存器緩存寫入方向時(shí)鐘;fifo_in_wr_en_x為先入先出型數(shù)據(jù)緩存器緩存寫入方向數(shù)據(jù)寫使能信號(hào);fifo_in_data_x為先入先出型數(shù)據(jù)緩存器緩存寫入方向數(shù)據(jù)接口;fifo_out_clk_x為先入先出型數(shù)據(jù)緩存器緩存讀取方向時(shí)鐘;fifo_out_wr_en_x為先入先出型數(shù)據(jù)緩存器緩存讀取方向數(shù)據(jù)寫使能信號(hào);fifo_out_data_x為先入先出型數(shù)據(jù)緩存器緩存讀取方向數(shù)據(jù)接口;fifo_free_space_x為先入先出型數(shù)據(jù)緩存器剩余空間大小圖3 多端口控制器結(jié)構(gòu)框圖Fig.3 Structure diagram of the multi-port controller
start為開始;sector為扇區(qū);count為計(jì)數(shù);read為讀;write為寫;identify為識(shí)別;parameter為參數(shù);failed為失?。籺x_p/n、rx_p/n分別為對(duì)外輸出的物理管腳和差分管腳;tx為發(fā)送方向;rx為接收方向;p/n為差分管腳的正負(fù)極性圖4 SATA3.0功能框圖Fig.4 Structure diagram of SATA3.0
按照SATA3.0協(xié)議,整個(gè)控制器設(shè)計(jì)分為物理層、鏈路層、傳輸層、應(yīng)用層以及用戶自定義接口。每層之間數(shù)據(jù)交互采用標(biāo)準(zhǔn)的AXI-Stream接口進(jìn)行設(shè)計(jì),AXI-Stream接口基于數(shù)據(jù)流概念,包含數(shù)據(jù)交互握手信號(hào),可以保障數(shù)據(jù)傳輸?shù)目煽啃?,同時(shí)可以減少層次之間信號(hào)的耦合程度,確保每個(gè)層之間相互獨(dú)立,為后期開發(fā)調(diào)試減少干擾。
基于FPGA并行處理的特性,SATA3.0控制器實(shí)現(xiàn)了對(duì)數(shù)據(jù)的實(shí)時(shí)處理,節(jié)省了在數(shù)據(jù)處理期間緩存數(shù)據(jù)所占用的資源。整個(gè)控制器僅在數(shù)據(jù)的跨時(shí)鐘域處理與鏈路層接收數(shù)據(jù)處設(shè)計(jì)緩沖區(qū),使得整個(gè)控制器資源占用極低。在Xilinx公司 xc7k325t片上資源占用如表1所示。
表1 SATA3.0控制器資源使用Table 1 Resource use of SATA3.0 controller
2.3.1 物理層設(shè)計(jì)
物理層是整個(gè)協(xié)議的底層。主要實(shí)現(xiàn)以下功能:①SSD硬盤上電初始化;②硬盤狀態(tài)監(jiān)控;③高速收發(fā)器數(shù)據(jù)跨時(shí)鐘域處理。高速收發(fā)器知識(shí)產(chǎn)權(quán)(intellectual property,IP)核、鎖相環(huán)(channel phase-locked loop,CPLL)、混合模式時(shí)鐘管理器(mixed-mode clock manager,MMCM)等硬件資源在系統(tǒng)上電后需要進(jìn)行復(fù)位以保證其正常運(yùn)行,因此設(shè)計(jì)了一種硬件資源復(fù)位模塊保證相關(guān)硬件資源上電正常初始化。為防止由物理原因?qū)е挛锢礞溌烦霈F(xiàn)問題,同時(shí)提升整個(gè)控制器物理層鏈接的健壯性,采用邏輯清晰的狀態(tài)機(jī)設(shè)計(jì)了物理層的控制模塊,該模塊可對(duì)硬件資源初始化狀態(tài)以及工作狀態(tài)進(jìn)行監(jiān)控,在出現(xiàn)異常后由該模塊發(fā)出復(fù)位信號(hào)嘗試對(duì)硬件資源進(jìn)行重置,直到恢復(fù)正常鏈路通信。Xilinx高速收發(fā)器 IP核的數(shù)據(jù)位寬為16 bit,而整個(gè)控制器設(shè)計(jì)采用都是32 bit位寬,因此,在數(shù)據(jù)接收過程中需要存儲(chǔ)來自收發(fā)器的兩個(gè)完整的16 bit數(shù)據(jù),并從中檢測(cè)包含傳輸協(xié)議的字節(jié),使用傳輸協(xié)議信息選擇輸出數(shù)據(jù)完成數(shù)據(jù)的重新對(duì)齊。在控制器中對(duì)數(shù)據(jù)操作通常需要在同一時(shí)鐘域下,為了保證數(shù)據(jù)處理在同一時(shí)鐘域下,采用異步FIFO的方式對(duì)系統(tǒng)時(shí)鐘、SATA接收時(shí)鐘、SATA發(fā)送時(shí)鐘這3個(gè)時(shí)鐘域下的數(shù)據(jù)進(jìn)行跨時(shí)鐘域處理。
2.3.2 鏈路層設(shè)計(jì)
鏈路層與物理層和傳輸層接口采用AXI-Stream總線相連,在鏈路層中需要對(duì)數(shù)據(jù)進(jìn)行加解擾、CRC校驗(yàn)以及原語(yǔ)通信,整個(gè)鏈路層設(shè)計(jì)需要考慮到數(shù)據(jù)能夠可靠的由每個(gè)模塊處理并輸出,CRC校驗(yàn)?zāi)K與加擾解擾模塊數(shù)據(jù)輸入、輸出接口也采用AXI-Stream總線接口,輸入數(shù)據(jù)位寬為32 bit。FPGA具有數(shù)據(jù)并行處理的特性,在數(shù)據(jù)有效的情況下,一個(gè)時(shí)鐘周期即可完成一次輸入數(shù)據(jù)的CRC校驗(yàn)與加擾解擾,可實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的實(shí)時(shí)處理,無須在數(shù)據(jù)輸入時(shí)進(jìn)行數(shù)據(jù)緩沖,降低了對(duì)硬件資源的占用。原語(yǔ)通信可以保障控制器與設(shè)備之間進(jìn)行可靠的數(shù)據(jù)傳輸,在數(shù)據(jù)傳輸?shù)倪^程中通過原語(yǔ)指令相互發(fā)送控制器與設(shè)備各自狀態(tài),協(xié)商傳輸數(shù)據(jù)。但原語(yǔ)通信具有一定的延時(shí),因此,當(dāng)控制器無法正常接收數(shù)據(jù)時(shí),控制器鏈路層需要保證在控制器發(fā)出HOLD原語(yǔ)與設(shè)備接收到HOLD原語(yǔ)之間傳輸?shù)臄?shù)據(jù)不被丟失。因此在此處由一個(gè)FIFO對(duì)接收到的數(shù)據(jù)進(jìn)行緩存,且FIFO深度為兩次原語(yǔ)通信之間傳輸數(shù)據(jù)量的兩倍。模塊工作流程如圖5所示。
圖5 鏈路層工作流程圖Fig.5 Workflow diagram of the link layer
2.3.3 應(yīng)用層與自定義用戶接口設(shè)計(jì)
應(yīng)用層為SATA3.0協(xié)議中的頂層,通過高級(jí)附加技術(shù)(advanced technology attachment,ATA)指令協(xié)商與設(shè)備間數(shù)據(jù)傳輸?shù)姆绞健鬏敺绞椒譃閮煞N,一種為直接存儲(chǔ)器訪問(direct memory access,DMA)傳輸,適合大量數(shù)據(jù)傳輸;另一種為可編程輸入輸出(programmed input-output,PIO)傳輸,適合少量信息讀取,如識(shí)別硬盤信息。應(yīng)用層通過與傳輸層相連的參數(shù)接口發(fā)起與接收傳輸方式信息,數(shù)據(jù)由AXI-Stream總線進(jìn)行傳輸。應(yīng)用層另一端則是面向用戶的接口,為方便用戶控制,數(shù)據(jù)的輸入與輸出采用AXI-Stream總線,分別為寫數(shù)據(jù)通道AXIS_write、讀數(shù)據(jù)通道AXIS_read、讀硬盤信息通道AXIS_ident。提供寫數(shù)據(jù)、讀數(shù)據(jù)、硬盤識(shí)別3種控制方式分別對(duì)應(yīng)write、read、identify這3個(gè)控制信號(hào),寫數(shù)據(jù)與讀數(shù)據(jù)共用48 bit數(shù)據(jù)位寬的起始扇區(qū)值接口sector、16 bit位寬的操作扇區(qū)數(shù)接口count以及1 bit的傳輸失敗標(biāo)志位failed。應(yīng)用層自定義接口如圖6所示。應(yīng)用層start接口接收到用戶發(fā)起的控制請(qǐng)求后在狀態(tài)機(jī)中跳轉(zhuǎn)到相對(duì)應(yīng)的處理狀態(tài),與設(shè)備應(yīng)用層協(xié)商數(shù)據(jù)的傳輸方式,待數(shù)據(jù)傳輸完成,將從設(shè)備接收到的傳輸狀態(tài)信息返回到用戶接口,完成一次控制請(qǐng)求。
start為開始;sector為扇區(qū);count為計(jì)數(shù);read為讀;write為寫;identify為識(shí)別;parameter為參數(shù);failed為失敗;application level為應(yīng)用層;user-defined interface為用戶自定義接口圖6 用戶接口框圖Fig.6 Structure diagram of the user interface
目前,大多TLK2711接口衛(wèi)星模擬源均采用了TLK2711芯片來實(shí)現(xiàn)TLK2711接口,TLK2711芯片為并行數(shù)據(jù)輸入,輸出單路需要占用控制器19個(gè)IO管腳,而隨著有效載荷的不斷增加,所需TLK2711接口通道數(shù)也在不斷增加,主控制器IO資源無法滿足需求。為減少主控制器IO資源的使用,提出了使用Xilinx高速收發(fā)器來實(shí)現(xiàn)TLK2711接口,單通道TLK2711接口僅占用一對(duì)差分IO管腳。
TX Driver為發(fā)送驅(qū)動(dòng);TX Process為發(fā)送程序;TX Clock Dividers為發(fā)送時(shí)鐘分頻;TX Phase Interpolator為發(fā)送相位插值;TX Phase Interpolator Controller為發(fā)送相位插值控制器;TX Interface為發(fā)送接口;Loop Filter為環(huán)路濾波;Charge Pump為激勵(lì);Phase Frequency Detector為相位頻率檢測(cè)器;VCO為電壓控制振蕩器(voltage controlled oscillator);CLKIN為輸入時(shí)鐘;TX PCS為發(fā)送物理編碼子層(physical coding sublayer);TX PMA為發(fā)送物理媒介適配層(physical media attachment)圖7 高速收發(fā)器發(fā)送框圖Fig.7 Transmission diagram of the high-speed transceiver
TLK2711接口需支持接口線速率為1.6~2.5 Gbps在線調(diào)整,高速收發(fā)器IP核配置界面也提供了線速率1.6~2.5 Gbps可選,但對(duì)IP配置后只能使用設(shè)定的固定線速率,而需要更改接口線速率則需要更改IP配置界面相應(yīng)設(shè)置并對(duì)工程重新進(jìn)行編譯固化程序,在設(shè)備的使用過程則需要通過不斷地更新固件來實(shí)現(xiàn),給設(shè)備的使用帶來了極大的不便?,F(xiàn)提出一種對(duì)接口線速率在線配置的方法,在設(shè)備無須掉電更新固件的情況下對(duì)TLK2711接口線速率進(jìn)行調(diào)整。高速收發(fā)器數(shù)據(jù)發(fā)送框圖如圖7所示。高速收發(fā)器線速率由Clock Dividers、物理媒介適配層(physical media attachment,PMA)、物理編碼子層(physical coding sublayer,PCS)進(jìn)行配置。Clock Dividers按照線速率需求產(chǎn)生時(shí)鐘信號(hào);PCS根據(jù)輸入數(shù)據(jù)控制調(diào)整輸出數(shù)據(jù)時(shí)鐘相位;PMA對(duì)經(jīng)過PCS調(diào)整后的時(shí)鐘信號(hào)進(jìn)行分頻后驅(qū)動(dòng)串行數(shù)據(jù)輸出。在線調(diào)整線速率需要修改上述模塊寄存器的值,以輸出相對(duì)應(yīng)的時(shí)鐘信號(hào)驅(qū)動(dòng)串行數(shù)據(jù)輸出。
Xilinx官方高速收發(fā)器IP提供動(dòng)態(tài)配置接口(dynamic reconfiguration port,DRP)接口可選,該接口可對(duì)高速收發(fā)器內(nèi)部寄存器進(jìn)行動(dòng)態(tài)重配置,因此可以通過該接口對(duì)上述介紹模塊的寄存器進(jìn)行重配置,以實(shí)現(xiàn)線速率的調(diào)整。但用戶與模擬源設(shè)備交互采用以太網(wǎng)方式進(jìn)行通信,無法直接對(duì)DRP接口進(jìn)行控制。因此,依據(jù)DRP接口控制時(shí)序設(shè)計(jì)出了一種指令信息轉(zhuǎn)DRP接口配置模塊,由該模塊接收指令信息后完成對(duì)寄存器值的修改,實(shí)現(xiàn)TLK2711接口線速率1.6~2.5 Gbps在線調(diào)整。
為了對(duì)高速大容量TLK2711衛(wèi)星數(shù)傳基帶模擬源進(jìn)行測(cè)試,采用本實(shí)驗(yàn)室自研TLK2711采集設(shè)備,該設(shè)備可將數(shù)據(jù)傳輸至上位機(jī)。上位機(jī)處理器為I7-9800K,內(nèi)存為16 GB DDR4,操作系統(tǒng)采用Windows10 x64,內(nèi)置一塊PCIE3.0 光纖采集卡。測(cè)試框圖如圖8所示。TLK2711模擬源主要的性能指標(biāo)分別為:SATA3.0控制器傳輸速率,數(shù)據(jù)連續(xù)傳輸性能,TLK2711接口傳輸性能,數(shù)據(jù)傳輸誤碼率。對(duì)該系統(tǒng)的上述功能指標(biāo)分別進(jìn)行實(shí)驗(yàn)驗(yàn)證與分析。
圖8 速率測(cè)試連接框圖Fig.8 Structure diagram of the rate test connection
采用Samsung SSD 860 PRO、Netac SSD 256 G與tigo SSD S300等硬盤測(cè)試SATA3.0控制器性能。硬盤寫入速率測(cè)試情況如圖9所示,讀取測(cè)試情況如圖10所示,從測(cè)試情況可以看出,當(dāng)單次數(shù)據(jù)操作在512 kB以上時(shí),測(cè)試所用的三塊硬盤讀取速率均在520 MB/s以上,Samsung SSD 860 PRO的寫入速率在500 MB/s以上,另外兩塊固態(tài)硬盤速率約為425 MB/s。實(shí)際使用時(shí)單路TLK2711接口最大線速率為2.5 Gbps,單路SATA3.0控制器為兩路TLK2711接口提供數(shù)據(jù),所需最大帶寬為500 MB/s。因此,該控制器傳輸性能符合設(shè)計(jì)需求。在單次數(shù)據(jù)操作為32 MB時(shí),Samsung SSD 860 PRO的平均讀取速率高達(dá)540 MB/s,平均寫入速度高達(dá)510 MB/s。因此,選用Samsung SSD 860 PRO固態(tài)硬盤作為SSD源載體,配合大容量DDR緩沖區(qū),SSD源數(shù)據(jù)可以持續(xù)穩(wěn)定的由TLK2711接口輸出。數(shù)傳基帶模擬源采用8路SATA3.0控制器并行掛載,儲(chǔ)存總?cè)萘窟_(dá)16 TB,讀取總速率高達(dá)4.2 GB/s,寫入總速率高達(dá)4.0 GB/s。相比文獻(xiàn)[17]的方案,在存儲(chǔ)容量與傳輸性能上均有顯著提升。
圖9 SATA3.0控制器寫速率測(cè)試圖Fig.9 Test graph of SATA3.0 controller write rate
圖10 SATA3.0控制器讀速率測(cè)試圖Fig.10 Test graph of SATA3.0 controller read rate
數(shù)據(jù)連續(xù)輸出是基帶模擬源的一個(gè)基本要求。在數(shù)據(jù)連續(xù)性能測(cè)試中,由一路SATA3.0控制器為兩路輸出接口提供數(shù)據(jù),分別測(cè)試了兩者在數(shù)據(jù)傳輸過程中,添加不同容量的多端口控制器模塊時(shí)輸出接口數(shù)據(jù)連續(xù)輸出的性能。測(cè)試結(jié)果如圖11所示。多端口控制器容量小于64 KB時(shí),輸出接口最大傳輸速率低于238 MB/s,小于TLK2711接口最大速率,不符合需求。多端口控制器容量大于1 MB時(shí),TLK2711接口數(shù)據(jù)輸出性能可達(dá)270 MB/s,滿足使用需求。實(shí)驗(yàn)結(jié)果表明,多端口控制器容量大于96 KB時(shí),使用SATA3.0控制器與多端口控制器相結(jié)合可使TLK2711接口連續(xù)數(shù)據(jù)傳輸速率符合需求,同時(shí)降低了16路TLK2711接口數(shù)據(jù)緩沖對(duì)FPGA 片上隨機(jī)存儲(chǔ)內(nèi)存(random access memory,RAM)資源的占用。
圖11 數(shù)據(jù)連續(xù)性能測(cè)試圖Fig.11 Test graph of the continuous performance of data
誤碼率是整個(gè)系統(tǒng)傳輸可靠性的一個(gè)重要指標(biāo)。在誤碼率測(cè)試中,數(shù)據(jù)源模式配置為SSD源,SSD中的數(shù)據(jù)為預(yù)先寫入的數(shù)據(jù),TLK2711接口線速率設(shè)置為2 Gbps。測(cè)試時(shí)長(zhǎng)為24 h時(shí),不同長(zhǎng)度SMA連接線的誤碼率情況如表2所示。由測(cè)試情況可知,SMA線纜在8 m以下時(shí)傳輸無誤碼;SMA線纜在14 m時(shí)傳輸出現(xiàn)誤碼。而在實(shí)際使用過程中SMA線纜最長(zhǎng)只需4 m,符合設(shè)計(jì)要求。
表2 不同長(zhǎng)度SMA線纜誤碼率Table 2 Bit error rate for SMA cables of different lengths
TLK2711模擬源可以采用以下方法測(cè)試數(shù)據(jù)完整性:①可以發(fā)送內(nèi)部規(guī)律計(jì)數(shù)器由采集設(shè)備采集后在FPGA內(nèi)部進(jìn)行數(shù)據(jù)校驗(yàn),判斷數(shù)據(jù)是否連續(xù);②數(shù)據(jù)源生成數(shù)據(jù)時(shí)打上了特定的幀頭,上位機(jī)接收到數(shù)據(jù)之后可以通過對(duì)幀頭的解析進(jìn)行判斷數(shù)據(jù)傳輸是否準(zhǔn)確無誤,并可對(duì)數(shù)據(jù)區(qū)數(shù)據(jù)進(jìn)行校驗(yàn)測(cè)試誤碼率;③采用SSD緩存真實(shí)圖像數(shù)據(jù),上位機(jī)收到數(shù)據(jù)后進(jìn)行圖片顯示,可以直觀地查看圖像是否失真。結(jié)合以上3種方法對(duì)數(shù)據(jù)傳輸進(jìn)行校驗(yàn),確保其傳輸可靠無誤碼。該系統(tǒng)在連續(xù)測(cè)試24 h中數(shù)據(jù)完整且無誤碼,目前已應(yīng)用到多個(gè)型號(hào)數(shù)傳分系統(tǒng)測(cè)試中,如圖12所示,系統(tǒng)穩(wěn)定可靠,為數(shù)傳分系統(tǒng)的研制測(cè)試提供了保障。
圖12 模擬源工作實(shí)物圖Fig.12 Physical picture of the working generator
針對(duì)現(xiàn)在衛(wèi)星數(shù)傳基帶模擬源數(shù)據(jù)容量小、傳輸速率低的問題,提出了一種基于SATA3.0控制器與高速收發(fā)器的TLK2711接口衛(wèi)星數(shù)傳基帶模擬源。SATA3.0控制器資源占用低,實(shí)現(xiàn)了8路SSD并行掛載并支持更多擴(kuò)展,容量高達(dá)16 TB,并行速率高達(dá)33.75 Gbps。該系統(tǒng)基于SATA3.0硬盤控制器可以實(shí)現(xiàn)模擬源數(shù)據(jù)的大容量存儲(chǔ)以及數(shù)據(jù)快速加載,在模擬數(shù)據(jù)預(yù)先寫入的情況下可以做到設(shè)備開機(jī)即用,無須由上位機(jī)下載數(shù)據(jù)再進(jìn)行數(shù)據(jù)發(fā)送,在測(cè)試過程中可節(jié)省大量時(shí)間。高速收發(fā)器實(shí)現(xiàn)的TLK2711接口極大地降低了IO資源的占用,使得系統(tǒng)高度集成,同時(shí)基于高速收發(fā)器的重配置實(shí)現(xiàn)了TLK2711接口線速率1.6~2.5 Gbps調(diào)整,能更好地適配不同線速率的數(shù)傳分系統(tǒng)。目前該設(shè)備已應(yīng)用到多個(gè)型號(hào)數(shù)傳分系統(tǒng)測(cè)試中,系統(tǒng)穩(wěn)定可靠,為數(shù)傳分系統(tǒng)的研制測(cè)試提供了保障。