999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于PCIe的無線電數(shù)據(jù)傳輸接口實現(xiàn)

2019-01-21 10:39:14常振杰
西安郵電大學學報 2018年6期
關鍵詞:信號信息

劉 鵬, 常振杰

(1. 陜西省無線電監(jiān)測站, 陜西 西安 710000;2. 國家無線電頻譜管理研究所有限公司 陜西省信息通信網絡及安全重點實驗室, 陜西 西安 710061)

無線電寬帶記錄儀是無線電監(jiān)測過程中的重要設備[1]。隨著無線電通信事業(yè)的高速發(fā)展,無線電設備的使用量越來越大,通信業(yè)務種類越來越多樣化,對寬帶記錄儀的性能要求也越來越高[2]。為了滿足無線電監(jiān)測的實時性和高速性,需要開發(fā)出具備大帶寬和高速率數(shù)據(jù)采集與傳輸功能的寬帶記錄儀。其中,數(shù)據(jù)傳輸模塊的高速性能至關重要。為滿足傳輸速率要求,可以采用快速外圍設備互連 (peripheral component interconnect express,PCIe)作為數(shù)字板卡與工控機之間的數(shù)據(jù)傳輸接口。

本文擬設計基于現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)的PCIe總線控制邏輯,并重點設計直接存儲器讀取 (derect memery access,DMA)模式下的寫控制邏輯。其中,F(xiàn)PGA采用賽靈思公司的Kintex-7系列xc7k325tffg900芯片,工控機端采用Windows 7, 64位操作系統(tǒng)。

1 原理概述及方案選擇

1.1 無線電寬帶記錄儀原理

無線電寬帶記錄儀的結構如圖1所示,其中包含射頻板、FPGA數(shù)字板卡、工控板、電源板以及顯示操作平臺等板塊。射頻板將接收到的射頻信號轉換成中頻信號之后傳輸給數(shù)字板,顯示操作平臺通過工控板向FPGA數(shù)字板卡發(fā)送相關指令,數(shù)字板卡針對相應指令將采集處理之后的數(shù)據(jù)經過PCIe高速總線發(fā)送至工控板進行存儲和回放。

圖1 寬帶記錄儀結構

1.2 數(shù)據(jù)傳輸總線方案選擇

寬帶記錄儀中,經數(shù)字板處理后的數(shù)據(jù)接口位寬為64比特,時鐘頻率為62.5 MHz,所以,要求所選用的數(shù)據(jù)傳輸總線帶寬至少要達到4 Gb/s。PCIe總線具有全新的點對點互聯(lián)架構,傳輸帶寬高且對外兼容性好。對單向通道而言,PCIe 1.0 ×1通道的峰值帶寬為2.5 Gb/s,數(shù)據(jù)傳輸過程中編碼方式為8/10(每傳輸10比特數(shù)據(jù),實際有效數(shù)據(jù)有8比特)[3]。由于編碼方式損耗,有效帶寬僅為2 Gb/s[4],考慮傳輸過程中的損耗,在此選用PCIe 1.0×8通道,其理論有效帶寬可達16 Gb/s[5],性能穩(wěn)定,完全滿足設計需求。

2 DMA模式控制邏輯設計與分析

DMA模式是在數(shù)據(jù)傳輸過程中,不需要處理器干預,主機內存與外設內存之間即可直接進行數(shù)據(jù)交換。每次DMA可以傳輸多包數(shù)據(jù),使得設備具有大的數(shù)據(jù)吞吐量,適用于大帶寬數(shù)據(jù)傳輸[6]。在數(shù)據(jù)傳輸過程中,需要對地址信息和傳輸數(shù)據(jù)包大小進行配置,只有配置信息與工控機端PCIe驅動部分匹配,才能對數(shù)據(jù)進行準確無誤的傳輸。

在數(shù)據(jù)傳輸過程中,需要根據(jù)PCIe驅動設置的信息控制每個傳輸包的數(shù)據(jù)大小、地址信息、組包信息等[7]。如果傳輸?shù)臄?shù)據(jù)包過大,會導致工控機死機,數(shù)據(jù)無法正常傳輸。傳輸過程中每傳輸一包數(shù)據(jù),需要根據(jù)基地址信息準確控制DMA寫偏移地址的遞增,如果偏移地址控制出錯,會導致工控機藍屏等問題。為了確保數(shù)據(jù)傳輸?shù)臏蚀_性,考慮對FPGA邏輯部分進行模塊化設計,以遵循PCIe協(xié)議控制各模塊之間的時序關系[8],避免出現(xiàn)數(shù)據(jù)包丟失等問題。

2.1 DMA模式控制邏輯設計

DMA模式控制邏輯包含6個模塊,各模塊之間的結構關系如圖2所示。

圖2 無線電數(shù)據(jù)傳輸技術結構

根據(jù)實際情況,由上位機向FPGA板卡發(fā)送的數(shù)據(jù)可能包括數(shù)據(jù)傳輸包長度信息和大小信息,或信號帶寬、頻率、通道選擇等信息[9]。Xilinx FPGA中的PCIe內核PCIE-CORE封裝了數(shù)據(jù)鏈路層和物理層的協(xié)議信息,并且預留了數(shù)據(jù)接口,在PCIE-CORE中對傳輸?shù)臄?shù)據(jù)進行串并轉換[10]。上位機通過PCIe串行接口將指令發(fā)送至PCIE-CORE進行串并轉換,數(shù)據(jù)接收模塊PCIE_RX對轉換后的指令數(shù)據(jù)進行解析并存儲在寄存器控制模塊REG中。在RW模塊中如果接收到DMA數(shù)據(jù)傳輸啟動指令,則向DMA控制模塊DMA_Crl發(fā)送DMA寫使能信號。隨后,DMA控制模塊DMA_Crl向數(shù)據(jù)發(fā)送模塊PCIE_TX發(fā)送DMA寫請求,如果PCIE_TX模塊準備就緒,則開始DMA模式下的數(shù)據(jù)傳輸[11]。

在數(shù)據(jù)傳輸過程中,每次DMA傳輸?shù)臄?shù)據(jù)包大小受工控機硬件系統(tǒng)的配置限制,因而不能連續(xù)不斷地向工控機傳輸數(shù)據(jù),對此采用中斷方式以避免因數(shù)據(jù)量過大而導致的死機問題。FPGA邏輯每完成一次DMA操作,發(fā)起一次中斷,待收到驅動的中斷反饋信號后繼續(xù)進行下一次傳輸。最后,工控機端通過PCIe驅動把接收到的數(shù)據(jù)存儲到固態(tài)硬盤中。實際傳輸過程中,每次中斷完成一次 DMA 傳輸,每次DMA傳輸10 240包數(shù)據(jù),每包數(shù)據(jù)包含16個數(shù)。

2.2 DMA模式控制邏輯模塊設計分析

2.2.1 數(shù)據(jù)接收模塊PCIE_RX設計

根據(jù)用戶的需要,用戶需要通過上位機對無線電信號記錄時長,傳輸啟動信號等信息進行設置,與此同時,PCIe驅動還要發(fā)送DMA傳輸?shù)呐渲眯畔ⅲ瑥亩WCPCIe硬件邏輯與驅動匹配。在數(shù)據(jù)傳輸?shù)倪^程中這些信息非常重要的,在此設計數(shù)據(jù)接收模塊對來自工控機端的配置信息進行接收和存儲。接收數(shù)據(jù)流程如圖3所示。為了與PCIe驅動程序配合,在進行數(shù)據(jù)傳輸之前,數(shù)據(jù)接收模塊PCIE_RX首先接收驅動發(fā)過來的復位信號對硬件進行復位,然后接收驅動反饋的基地址信息、傳輸包長度信息、傳輸包大小的設置信息等[12]。用戶根據(jù)需求在上位機端輸入所需要的無線電信號參數(shù)信息,包括信號帶寬、頻率、通道選擇信息等,當PCIE_RX模塊收到這些信息之后,接收DMA傳輸啟動命令,隨之進行數(shù)據(jù)傳輸。

圖3 接收數(shù)據(jù)流程

2.2.2 寄存器控制模塊REG設計

DMA模式下的數(shù)據(jù)傳輸過程中,工控機端通過PCIe驅動向FPGA板卡發(fā)送傳輸數(shù)據(jù)包的大小信息以及工控機端分配的地址信息。FPGA板卡端根據(jù)這些信息對數(shù)據(jù)包進行組包,并對數(shù)據(jù)寫入地址進行控制[13]。在此設計寄存器控制模塊用以存儲上述關鍵信息。數(shù)據(jù)類型如表1所示,其中BASE_ADDR表示驅動反饋的基地址信息,基地址分配由系統(tǒng)硬件決定,在RW模塊中把基地址信息儲存到偏移地址0x08中,再發(fā)送至DMA控制模塊用于控制DMA數(shù)據(jù)傳輸?shù)牡刂穂14]。

TLP_Size表示每包數(shù)據(jù)的大小,其值由系統(tǒng)硬件決定,當前測試系統(tǒng)是Windows 7, 64位操作系統(tǒng),TLP_Size被限定在0xXXXX_0020,低13位是有效位,即128字節(jié),并存儲在偏移地址0x0C中。TLP_Count表示每次中斷傳輸?shù)臄?shù)據(jù)包數(shù),在驅動中設置為0xXXXX_2800,低16位是有效位,即10 240包數(shù)據(jù),并寫入偏移地址0x10中。TLP_Payload_Pattern表示在上位機設置的用戶所需要的無線電信號信息,包括信號帶寬,頻率,通道選擇信息等,并寫入偏移地址0x14中。DMA_Start表示DMA啟動信號,其值為0x0000_0001,其中最低位是有效位,并寫入偏移地址0x04中。啟動DMA操作后,F(xiàn)PGA板卡根據(jù)以上配置信息,向工控機傳輸相關數(shù)據(jù)。

表1 存儲數(shù)據(jù)類型

2.2.3 DMA控制模塊DMA_Crl設計

PCIe協(xié)議中每包數(shù)據(jù)的第一個數(shù)包含了數(shù)據(jù)讀寫類型信息,字段信息以及傳輸包長度信息,第二個數(shù)的高32位表示待傳輸?shù)臄?shù)據(jù)信息,低32位是地址信息。DMA數(shù)據(jù)傳輸控制模塊DMA_Crl完成DMA寫數(shù)據(jù)傳輸過程中數(shù)據(jù)包長度的控制和相應的DMA寫偏移地址的控制[13]。傳輸控制的狀態(tài)遷移過程如圖4所示,包含四個狀態(tài),分別是初始狀態(tài)IDLE,讀數(shù)據(jù)包長度狀態(tài)READ_Length,準備待發(fā)數(shù)據(jù)狀態(tài)Prepare_D_H以及發(fā)送DMA寫請求狀態(tài)SEND_WR_REQ。

圖4 DMA寫數(shù)據(jù)控制狀態(tài)遷移

在IDLE狀態(tài)中等待數(shù)據(jù)傳輸包請求信號,如果RW模塊中接收到了DMA_Start信號,發(fā)出數(shù)據(jù)傳輸包發(fā)送請求信號,狀態(tài)機跳轉到READ_Length狀態(tài)。在READ_Length狀態(tài)中,根據(jù)系統(tǒng)反饋的傳輸包可攜帶的最大數(shù)據(jù)長度信息,確定每包數(shù)據(jù)攜帶的數(shù)據(jù)長度。目前測試系統(tǒng)中每包數(shù)據(jù)可攜帶的最大數(shù)據(jù)長度為32 DW。在PCIe協(xié)議中數(shù)據(jù)長度以DW為單位計數(shù),每DW等于4 字節(jié)。

在Prepare_D_H狀態(tài)中對對每包數(shù)據(jù)的傳輸個數(shù)進行計數(shù),根據(jù)RW模塊中存儲的DASE_ADDR對傳輸數(shù)據(jù)對應的DMA寫偏移地址進行控制。傳輸過程中每傳輸1包數(shù)據(jù),在基地址基礎上增加一包數(shù)據(jù)對應的偏移地址大小。DMA寫偏移地址的增量等于實際傳輸?shù)?包的數(shù)據(jù)的大小。目前的測試系統(tǒng)中,偏移地址每次遞增0x80。

當每包數(shù)據(jù)都準備好后,狀態(tài)跳轉至SEND_WR_REQ狀態(tài)向PCIE_TX發(fā)送DMA寫請求信號,然后當收到PCIE_TX模塊發(fā)出的DMA寫請求反饋信號之后,將準備好的數(shù)據(jù)發(fā)送至PCIE_TX模塊進行傳輸。每發(fā)送完成一包數(shù)據(jù),則跳轉至IDLE狀態(tài)等待下一次發(fā)送請求。

2.2.4 數(shù)據(jù)發(fā)送模塊PCIE_TX設計

數(shù)據(jù)發(fā)送模塊首先根據(jù)DMA_Crl模塊發(fā)送的包頭信息和地址信息對每包數(shù)據(jù)進行組包,然后將組好的數(shù)據(jù)包發(fā)送至PCIe核,經過PCIe核傳輸至工控機進行存儲。為了避免數(shù)據(jù)傳輸過程中出現(xiàn)的丟包現(xiàn)象,在此采用狀態(tài)機的方式根據(jù)PCIe協(xié)議的數(shù)據(jù)包格式將數(shù)據(jù)分狀態(tài)發(fā)出。此外,為了解決因傳輸數(shù)的據(jù)量過大而出現(xiàn)的工控機死機問題,在此采用消息信號中斷(message signaled interrupt,MSI)的方式進行處理。MSI中斷機制是PCIe協(xié)議規(guī)范中的內部中斷機制,當數(shù)據(jù)發(fā)送模塊PCIE_TX發(fā)起MSI中斷時,停止數(shù)據(jù)傳輸,等待來自工控機端的中斷反饋信號[15]。如果數(shù)據(jù)發(fā)送模塊收到了中斷反饋信號,繼續(xù)進行數(shù)據(jù)傳輸。這樣就可以保證在工控機正常工作的情況下數(shù)據(jù)可以持續(xù)高速傳輸。數(shù)據(jù)發(fā)送模塊狀態(tài)遷移如圖5所示。狀態(tài)機包含6個狀態(tài):初始 IDLE 狀態(tài),傳輸?shù)谝粋€數(shù)據(jù)狀態(tài) TX_H,傳輸?shù)诙€數(shù)據(jù)狀態(tài)TX_D_H,傳輸數(shù)據(jù)狀態(tài)TX_D,中斷狀態(tài)MSI_trig以及傳輸結束狀態(tài)TXDONE。

在數(shù)據(jù)傳輸?shù)倪^程中,需要對數(shù)據(jù)流量進行實時控制,主機系統(tǒng)會實時向FPGA反饋當前剩余的內存容量,只有內存充足時才能進行高速傳輸。在IDLE狀態(tài)如果檢測到當前的內存充足,并且接收到了DMA寫請求信號,進入TX_H狀態(tài)將組好的第一個數(shù)據(jù)包頭信息發(fā)送出去,下一周期跳轉至TX_D_H狀態(tài)傳輸?shù)诙€數(shù)據(jù),包含數(shù)據(jù)和地址信息,第三周期跳轉至TX_D傳輸數(shù)據(jù)狀態(tài)。

TX_D狀態(tài)傳輸包數(shù)據(jù)的大小由TLP_Size決定。TLP_Size在存儲器控制模塊REG中存儲。目前測試系統(tǒng)中TLP_Size為0x0000_0020,即128字節(jié),而各數(shù)據(jù)大小是8字節(jié),所以,每包數(shù)據(jù)攜帶16個數(shù)據(jù)。完成16個數(shù)據(jù)的傳輸,需要16時鐘周期,第16個數(shù)據(jù)傳輸完成時一包數(shù)據(jù)傳輸結束。在存儲器控制模塊REG中存儲了驅動設置的每次中斷傳輸?shù)臄?shù)據(jù)包數(shù)TLP_Count,目前測試系統(tǒng)中TLP_Count為0x0000_2800,即10240包數(shù)據(jù),一次中斷傳輸?shù)陌鼣?shù)未達到TLP_Count時狀態(tài)機跳轉至IDLE狀態(tài),繼續(xù)傳輸數(shù)據(jù)包,當傳輸包數(shù)達到TLP_Count時,標志一次DMA傳輸完成,狀態(tài)機跳轉至中斷響應狀態(tài)MSI_trig。在MSI_trig狀態(tài)中FPGA向工控機端發(fā)送中斷信號,等待系統(tǒng)的響應。如果收到了工控機端的中斷相應信號,狀態(tài)機跳轉至傳輸TXDONE狀態(tài),隨后狀態(tài)機跳轉至IDLE狀態(tài)繼續(xù)傳輸數(shù)據(jù)。

圖5 數(shù)據(jù)發(fā)送模塊狀態(tài)遷移

3 測試結果和分析

根據(jù)以上設計分析,在Xilinx官方開發(fā)工具Vivado 2017.2上實現(xiàn)了各邏輯模塊的編寫。FPGA數(shù)字測試板卡采用Xilinx KC705開發(fā)板與主機進行聯(lián)調測試,主機系統(tǒng)是Windows 7, 64位,固態(tài)硬盤容量128 GB。PCIe總線采用PCIe 1.0版本,數(shù)據(jù)鏈路8倍通道,理論傳輸速率16 Gb/s[16]。測試過程中采用Vivado開發(fā)軟件提供的Debug IP核對各模塊的主要信號波形進行捕捉。圖6是DMA數(shù)據(jù)傳輸控制模塊DMA_Crl中的信號波形,圖7是數(shù)據(jù)傳輸模塊PCIE_TX中的信號波形。

圖6 DMA_Crl模塊波形

圖7 PCIE_TX模塊波形

經多次調試,測試波形時序與PCIe協(xié)議一致。PCIE_TX模塊波形中trn_td信號為發(fā)送數(shù)據(jù)信號,由波形圖可見,發(fā)送一包有效數(shù)據(jù)所占用的時間為30時鐘周期,各時鐘周期4 ns,每包數(shù)據(jù)大小為128字節(jié),由此可以估算出傳輸帶寬為8.5 Gb/s。測試過程中使用的上位機界面如圖8所示。

圖8 上位機界面

由于系統(tǒng)硬件配置限制,目前所使用的固態(tài)硬盤在當前使用的系統(tǒng)中能達到的最大寫入速率為180 MB/s,所以,8.5 Gb/s的傳輸帶寬已經完全滿足需求,從上位機界面可以看到數(shù)據(jù)寫入固態(tài)硬盤的速率為170 MB/s,已達到最佳效果。

4 結語

采用Xilinx FPGA實現(xiàn)了PCIe高速總線上的數(shù)據(jù)傳輸,完成了DMA模式下的控制邏輯。實際測試結果表明,在Windows 7, 64位操作系統(tǒng)、128 GB固態(tài)硬盤、PCIe 1.0版本、數(shù)據(jù)鏈路8倍通道條件下,采用DMA模式進行數(shù)據(jù)傳輸,傳輸帶寬可達8.5 GB/s,數(shù)據(jù)寫入硬盤的速率可達170 MB/s,滿足寬帶記錄儀的性能要求。如果采用更高配置的操作系統(tǒng)、性能更好的固態(tài)硬盤以及更高的PCIe協(xié)議版本,數(shù)據(jù)的傳輸存儲速率會更進一步提高。PCIe總線技術在未來的無線電監(jiān)測領域中將會有更加廣泛的應用。

猜你喜歡
信號信息
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
孩子停止長個的信號
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
高處信號強
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 在线国产毛片| 在线看国产精品| 91精品免费高清在线| 夜色爽爽影院18禁妓女影院| 啊嗯不日本网站| 欧美日韩一区二区三区四区在线观看| 欧美日韩中文字幕在线| 成人精品免费视频| 伊人久久精品无码麻豆精品 | 欧美精品一区在线看| 日韩毛片免费视频| 99re精彩视频| 午夜毛片免费观看视频 | 成人毛片免费观看| 亚洲欧美综合另类图片小说区| 免费一级毛片| 欧美中文字幕在线二区| 在线观看免费国产| 亚洲色图欧美激情| 精品少妇人妻av无码久久| 日本人妻丰满熟妇区| 天天躁夜夜躁狠狠躁图片| 国产精品太粉嫩高中在线观看 | 狠狠色综合久久狠狠色综合| 无码高清专区| 99精品影院| 国产日韩精品欧美一区灰| 国产精品福利在线观看无码卡| 无码精品国产VA在线观看DVD| 日本亚洲欧美在线| 国产精品一区在线观看你懂的| 欧美在线视频不卡第一页| 在线观看精品自拍视频| 国产成人精品男人的天堂| 深夜福利视频一区二区| 国产精品永久免费嫩草研究院| 精品免费在线视频| 一级毛片不卡片免费观看| 午夜精品久久久久久久2023| 亚洲精品免费网站| 日韩在线成年视频人网站观看| 国产成人精品一区二区不卡| 日韩成人高清无码| 色哟哟国产精品| 国产丝袜第一页| 热久久这里是精品6免费观看| 国产不卡国语在线| 色天天综合久久久久综合片| 日本在线国产| 黄色免费在线网址| 久久国产拍爱| 成人av专区精品无码国产| 四虎国产在线观看| 午夜不卡视频| 思思热精品在线8| 亚洲日韩精品综合在线一区二区| 久综合日韩| www.av男人.com| 亚洲欧美一级一级a| 久视频免费精品6| 亚洲日本在线免费观看| 国产拍揄自揄精品视频网站| 亚洲av无码专区久久蜜芽| 精品视频免费在线| 欧美区在线播放| 亚洲天堂久久| 亚洲IV视频免费在线光看| 一级高清毛片免费a级高清毛片| 亚洲高清免费在线观看| 国产极品美女在线| 亚洲欧洲日产国码无码av喷潮| 天天综合天天综合| 色综合久久88| 久久精品电影| 熟女视频91| 中文字幕欧美日韩| 国产精品熟女亚洲AV麻豆| 无码'专区第一页| 国产精品不卡片视频免费观看| 日韩在线网址| 色综合天天娱乐综合网| 亚洲天堂网视频|