談論衛星通信數據傳輸程序設計

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

導語:談論衛星通信數據傳輸程序設計一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

談論衛星通信數據傳輸程序設計

1概述

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

2高速數據傳輸系統的工作原理

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

3高速數據傳輸系統設計

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

3.1光纖通信模塊

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

3.2PCIExpress通信模塊

3.2.1發送模塊

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

3.2.2接收模塊

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

4系統調試結果

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

5結束語

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