談?wù)撔l(wèi)星通信數(shù)據(jù)傳輸程序設(shè)計

時間:2022-06-19 11:03:00

導(dǎo)語:談?wù)撔l(wèi)星通信數(shù)據(jù)傳輸程序設(shè)計一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

談?wù)撔l(wèi)星通信數(shù)據(jù)傳輸程序設(shè)計

1概述

隨著衛(wèi)星通信的高速發(fā)展,星載數(shù)據(jù)的種類和數(shù)量不斷增加,這就對高速海量星載數(shù)據(jù)的傳輸、接收和處理技術(shù)提出了新的要求。衛(wèi)星下發(fā)大容量高速數(shù)據(jù)經(jīng)地面站解調(diào)后,經(jīng)由光纖以數(shù)字基帶信號的形式傳遞給本地接收端,地面應(yīng)用系統(tǒng)要采用高性能的接收處理設(shè)備,以達(dá)到對數(shù)據(jù)的實時接收、存儲和處理。PCIExpress總線作為第3代I/O總線以其明顯的優(yōu)勢,成為目前高速傳輸?shù)闹髁髌脚_。文獻(xiàn)[1]以XC5VFX130T芯片為硬件核心,分析PCIExpress協(xié)議原理和內(nèi)嵌硬核模塊的結(jié)構(gòu),實現(xiàn)了具有PCIExpress系統(tǒng)主機接口的單通道FC總線接口板卡。文獻(xiàn)[2]在XC5VLX30T器件中,設(shè)計實現(xiàn)PCIExpress總線接口,同時在接口內(nèi)部設(shè)計直接存儲器存儲(DirectMemoryAccess,DMA)控制器。本文基于Xilinx公司的Virtex-5現(xiàn)場可編程門陣列(FieldProgrammableGataArray,FPGA)設(shè)計高速數(shù)據(jù)傳輸系統(tǒng)。該系統(tǒng)采用PCIExpress高速串行總線和基于Aurora協(xié)議的光纖通信模塊,雙單工同時收發(fā)。其中發(fā)送端和接收端分別包括上位機、驅(qū)動和端點設(shè)備,本文著重介紹端點設(shè)備設(shè)計。

2高速數(shù)據(jù)傳輸系統(tǒng)的工作原理

Xilinx公司的Virtex-5芯片的PCIExpress端點模塊IP核,為用戶提供了2種類型的數(shù)據(jù)通信:程控輸入/輸出(ProgrammedInput/Output,PIO)方式和總線主控存儲器直接存儲(Bus-masteringDMA,BMD)方式[3]。PCIExpress設(shè)備與系統(tǒng)存儲器之間的數(shù)據(jù)通信可以用PIO方式,但一般采用效率較高的BMD方式。在BMD通信方式下,端點設(shè)備變成了一個總線主控設(shè)備,負(fù)責(zé)發(fā)起DMA讀寫操作。當(dāng)設(shè)備要獲取系統(tǒng)存儲器的內(nèi)容時,發(fā)起指向系統(tǒng)存儲器的存儲器讀操作;當(dāng)設(shè)備向系統(tǒng)存儲器傳送數(shù)據(jù)時,發(fā)起指向系統(tǒng)存儲器的存儲器寫操作[4-5]。DMA控制器代替CPU發(fā)起傳輸事務(wù),減輕了處理器的壓力,而且在數(shù)據(jù)傳送過程中允許其他處理行為發(fā)生。在降低CPU使用率的同時,帶來較高的吞吐率和性能?;谏鲜隼碚摰男l(wèi)星通信星地鏈路的組成結(jié)構(gòu)如圖1所示。該傳輸系統(tǒng)功能主要由PCIExpress通信模塊和光纖通信模塊來完成。PCIExpress通信模塊采用了總線主控DMA方式進(jìn)行數(shù)據(jù)的傳輸。端點設(shè)備中設(shè)計了DMA控制器,負(fù)責(zé)控制數(shù)據(jù)的發(fā)送(存儲器寫)和從系統(tǒng)內(nèi)存獲得數(shù)據(jù)(存儲器讀)。在開始DMA傳輸之前需要一些初始業(yè)務(wù)信息,這些信息包括DMA讀存儲器地址、寫存儲器地址和傳輸?shù)臄?shù)據(jù)大小等,由系統(tǒng)軟件產(chǎn)生的指向DMA控制/狀態(tài)寄存器的PIO方式的存儲器寫包為其傳送[6]。光纖通信模塊采用了Aurora協(xié)議,該協(xié)議是為專有上層協(xié)議提供透明接口的串行互連協(xié)議[7],它可用于高速線性通路之間的點到點串行數(shù)據(jù)傳輸,同時其可擴展的帶寬,為系統(tǒng)設(shè)計人員提供了所需的靈活性。Aurora鏈路層協(xié)議在物理層采用千兆位串行技術(shù),每條物理通道的傳輸比特率可從622Mb/s擴展到3.125Gb/s。對于發(fā)送方,PCIExpress通信模塊接收到數(shù)據(jù)后傳輸給以AuroraIPCore為核心的自定義的光纖通信模塊,該模塊通過RocketI/O端口發(fā)送給SFP光電轉(zhuǎn)換模塊,SFP模塊將電信號轉(zhuǎn)換為光信號發(fā)送到光纖信道上。對于接收方,數(shù)據(jù)的接收是一個逆過程。

3高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計

根據(jù)實際實驗條件和應(yīng)用需求,本文設(shè)計的高速傳輸系統(tǒng)由2臺PC機模擬衛(wèi)星和地面站的數(shù)據(jù)傳輸。PCIExpress通信模塊,選擇為x8通道、工作頻率250MHz。光纖通信模塊工作頻率為125MHz,采用8位并行數(shù)據(jù)傳輸模式[3,7-8]。高速數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)如圖2所示。其中,數(shù)據(jù)存儲模塊選用了位寬為32bit的RAM。在光纖通信模塊中加入32bit/8bit模塊和8bit/32bit模塊,完成PCIExpress數(shù)據(jù)和光纖通信數(shù)據(jù)的傳輸轉(zhuǎn)換。圖2高速數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)模擬衛(wèi)星下發(fā)數(shù)據(jù)的應(yīng)用軟件在準(zhǔn)備好待發(fā)送的數(shù)據(jù)后,將文件長度信息及相關(guān)命令經(jīng)由驅(qū)動發(fā)送給端點設(shè)備,設(shè)備接到命令信息后啟動DMA控制器中的DMA讀操作。之后設(shè)備將從系統(tǒng)存儲器讀取的數(shù)據(jù)通過光纖通信模塊發(fā)送給地面站。設(shè)備每次讀取數(shù)據(jù)的間隔由光口傳輸速率決定,在不丟失數(shù)據(jù)的前提下,盡量提高信道的利用率。在模擬地面站接受數(shù)據(jù)的過程中,首先驅(qū)動將接收端系統(tǒng)存儲器的目的地址信息發(fā)給端點設(shè)備,設(shè)備的DMA控制器接收到光纖通信模塊的數(shù)據(jù)后啟動存儲器寫操作,將有效數(shù)據(jù)分批次加載進(jìn)指向系統(tǒng)存儲器的存儲器寫TLP包中,發(fā)送到目的地址。

3.1光纖通信模塊

光纖通信模塊通過定制XilinxIP核來完成,由于實際需求,在光纖通信模塊中要加入數(shù)據(jù)位轉(zhuǎn)換模塊,用來進(jìn)行PCIExpress模塊和光纖模塊數(shù)據(jù)的轉(zhuǎn)換。定制的光纖通信IP核,選擇8bit/10bit編碼和CRC校驗,選用K28.1作為控制字串,當(dāng)傳送控制字串時,由RocketI/O模塊的控制字標(biāo)志輸入管腳TX_CHARISK指定該字為控制字串。8bit/10bit編碼可以避免數(shù)據(jù)流中出現(xiàn)連0、連1的情況,便于時鐘恢復(fù)。在發(fā)送端CRC校驗碼被插入到待發(fā)送的并行數(shù)據(jù)中,數(shù)據(jù)經(jīng)過8bit/10bit編碼后,被寫入發(fā)送端FIFO,經(jīng)過串行化輸出接口將并行數(shù)據(jù)轉(zhuǎn)換成串行差分?jǐn)?shù)據(jù)發(fā)送出去。接收端在收到的串行差分信號后,通過芯片內(nèi)部的鎖相環(huán)從中提取時鐘,再按此同步時鐘來采樣數(shù)據(jù),通過解串器將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),然后經(jīng)過8bit/10bit解碼,并將其寫入接收端彈性緩沖器,CRC校驗后并行輸出。

3.2PCIExpress通信模塊

3.2.1發(fā)送模塊

發(fā)送模塊流程如圖3所示。圖3發(fā)送模塊流程DMA控制器中的發(fā)送模塊主要完成3個功能:(1)在接收到指向DMA控制/狀態(tài)寄存器的存儲器讀包后,通過發(fā)送CPLD包將DMA控制/狀態(tài)寄存器中的信息發(fā)送給應(yīng)用軟件。在發(fā)送完一個CPLD包后進(jìn)入等待狀態(tài),當(dāng)確認(rèn)發(fā)送成功后返回當(dāng)前狀態(tài),繼續(xù)發(fā)送CPLD包。這樣保證了CPLD包的可靠傳輸。(2)衛(wèi)星下發(fā)數(shù)據(jù)時,DMA控制器收到DMA讀操作指示后,根據(jù)DMA控制/狀態(tài)寄存器中讀數(shù)據(jù)的大小,確定讀操作次數(shù)及每次讀取數(shù)據(jù)的大小。并按所確定的信息發(fā)送相應(yīng)地址的存儲器讀包。(3)模擬地面站接收到數(shù)據(jù)后主動發(fā)起DMA寫操作。讀取數(shù)據(jù)存儲模塊中的數(shù)據(jù),按存儲器寫包的格式(本設(shè)計中存儲器寫TLP包的有效數(shù)據(jù)載荷為32DW),將數(shù)據(jù)發(fā)送到指定系統(tǒng)存儲器單元。傳輸完畢后,DMA控制器產(chǎn)生寫完成中斷信號,驅(qū)動收到中斷后認(rèn)為一次DMA傳輸結(jié)束,通知應(yīng)用軟件從系統(tǒng)存儲器中讀取數(shù)據(jù)。數(shù)據(jù)提取完畢后,驅(qū)動產(chǎn)生中斷響應(yīng)信號給端點設(shè)備,表明可以開始下一個DMA傳輸。

3.2.2接收模塊

接收模塊主要接收和處理IP核交付的存儲器讀包、存儲器寫包、CPL包和CPLD包。接收模塊流程如圖4所示。圖4接收模塊流程接收模塊檢測到的指向DMA控制/狀態(tài)寄存器的存儲器寫包是攜帶有DMA控制器中控制/狀態(tài)寄存器所需信息的PIO方式的存儲器寫包。接收模塊負(fù)責(zé)將存儲器寫包攜帶的信息寫入相應(yīng)的控制/狀態(tài)寄存器中。在之后檢測到指向DMA控制/狀態(tài)寄存器的存儲器讀包后,解析存儲器讀包的信息,獲得要讀取的DMA控制/狀態(tài)寄存器的地址和內(nèi)容后傳輸給發(fā)送模塊,通知發(fā)送模塊將應(yīng)用軟件預(yù)讀取地址的數(shù)據(jù)以CPLD包的格式發(fā)送給應(yīng)用軟件。CPLD包是DMA傳輸中讀操作后所收到的相應(yīng)從系統(tǒng)存儲器讀取的數(shù)據(jù)。發(fā)送模塊啟動DMA讀操作后,系統(tǒng)存儲器的數(shù)據(jù)通過以CPLD包的格式發(fā)送給DMA控制器的接收模塊。接收模塊將有效數(shù)據(jù)傳輸給數(shù)據(jù)存儲單元。接收完一次DMA讀操作的數(shù)據(jù)后,設(shè)備產(chǎn)生中斷信號通知驅(qū)動程序接收完畢,同時驅(qū)動產(chǎn)生中斷應(yīng)答信號,等待下一次的DMA傳輸。

4系統(tǒng)調(diào)試結(jié)果

在Xilinx公司提供的Virtex-5DMA測試底層驅(qū)動基礎(chǔ)之上,添加了本傳輸系統(tǒng)所需的功能,作為所設(shè)計高速傳輸系統(tǒng)所使用的驅(qū)動程序。應(yīng)用程序在VS2005環(huán)境下開發(fā),實現(xiàn)對FPGA的初始化復(fù)位、配置寄存器信息、大容量數(shù)據(jù)的發(fā)送/接收控制等。本文選用ISEChipscope12.2工具對所設(shè)計系統(tǒng)進(jìn)行調(diào)試。圖5為發(fā)送方Chipscope局部放大圖??梢钥闯?,當(dāng)發(fā)送方啟動DMA讀操作后,DMA控制器先發(fā)送存儲器讀包到trn_td_c接口上,之后trn_rd_c接收到帶數(shù)據(jù)的完成包,如圖所示接收的第一個32bit數(shù)據(jù)的16進(jìn)制表示為30784142。當(dāng)接收完畢后表明DMA讀操作完畢,發(fā)送中斷信號。數(shù)據(jù)存儲模塊將接收到的數(shù)據(jù)發(fā)送給光纖通信模塊,經(jīng)過32bit轉(zhuǎn)8bit模塊后,最終tile0_txdata0_i上的數(shù)據(jù)經(jīng)過SFP轉(zhuǎn)換模塊發(fā)送到光纖信道上。該過程模擬了衛(wèi)星發(fā)送大容量的高速數(shù)據(jù)。圖5發(fā)送方Chipscope局部放大圖圖6為接收方Chipscope局部放大圖。可以看出,光纖接收的數(shù)據(jù)tile0_rxdata1_i經(jīng)由8bit/32bit轉(zhuǎn)換后給DMA控制器,此時DMA控制器啟動DMA寫操作后,將接收到的數(shù)據(jù)打包成存儲器寫包trn_td_c給PCIExpressIP核,如圖所示向PC機發(fā)送的第1個32bit數(shù)據(jù)的16進(jìn)制表示為30784142。當(dāng)發(fā)送完畢后產(chǎn)生中斷信號,表明DMA寫操作完畢。仿真結(jié)果表明,接收方可以實時有效地將光纖數(shù)據(jù)傳輸給系統(tǒng)存儲器。實現(xiàn)對數(shù)據(jù)的接收和存儲。

5結(jié)束語

本文介紹基于XilinxVirtex-5FPGA設(shè)計的高速傳輸系統(tǒng)中PCIExpress通信模塊和光纖通信模塊的基本工作原理,設(shè)計一種可用于系統(tǒng)存儲器與PCIExpress端點設(shè)備間傳輸數(shù)據(jù)的DMA控制器以及光纖通信模塊,實現(xiàn)了2個設(shè)備間大容量數(shù)據(jù)的高速傳輸,傳輸速率可達(dá)到1.25Gb/s。系統(tǒng)調(diào)試結(jié)果表明,該傳輸系統(tǒng)滿足衛(wèi)星通信中大容量高速數(shù)據(jù)的傳輸要求,有效地模擬了衛(wèi)星與地面站間數(shù)據(jù)的交互,可作為高速通信的信源和信宿,為后續(xù)衛(wèi)星通信系統(tǒng)性能的研究奠定了基礎(chǔ)。