• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2017-04-10 15:31:00趙珊珊
      電腦知識(shí)與技術(shù) 2017年4期

      趙珊珊

      摘要:PCI-Express是被應(yīng)用廣泛的串行總線(xiàn)和接口標(biāo)準(zhǔn),為所連接的設(shè)備分配獨(dú)享通道和帶寬,具有高寬帶和高速率的特點(diǎn)。本設(shè)計(jì)實(shí)現(xiàn)了PC與FPGA之間的高速通信,利用DMA控制數(shù)據(jù)傳輸,CPU僅在數(shù)據(jù)傳輸開(kāi)始和結(jié)束時(shí)做處理,在傳輸過(guò)程中CPU可以進(jìn)行其它工作,大大提高了CPU的利用率。通過(guò)板級(jí)測(cè)試表明,傳輸速率可達(dá)1.6GB/s。

      關(guān)鍵詞:PCI-Express 總線(xiàn);FPGA;DMA

      中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)04-0032-02

      衛(wèi)星、無(wú)人機(jī)等對(duì)通信數(shù)據(jù)率的要求越來(lái)越高,且數(shù)據(jù)鏈傳輸距離長(zhǎng)、信道環(huán)境復(fù)雜,因此極易受到干擾導(dǎo)致數(shù)據(jù)無(wú)法正常傳輸,或被截獲泄露機(jī)密信息。自適應(yīng)通信系統(tǒng)的通信體制、通信數(shù)據(jù)率、通信頻點(diǎn)不再是固定不變的,能最大程度的躲避干擾,降低通信誤碼率。

      傳統(tǒng)的通信系統(tǒng)中,信號(hào)數(shù)據(jù)的處理通常在系統(tǒng)中設(shè)置一塊數(shù)據(jù)處理板,用于完成頻譜感知、調(diào)制模式識(shí)別等工作,但是板卡的數(shù)據(jù)處理速度和能力都有限,可能會(huì)降低系統(tǒng)的準(zhǔn)確度和效率。PCIe在高速數(shù)據(jù)采集和傳輸系統(tǒng)中具有顯著的優(yōu)越性,本文設(shè)計(jì)實(shí)現(xiàn)基于PCIE總線(xiàn)的自適應(yīng)通信系統(tǒng)數(shù)據(jù)處理系統(tǒng),實(shí)現(xiàn)FPGA板卡與PC之間的通信,滿(mǎn)足高速實(shí)時(shí)采集、處理和傳輸數(shù)據(jù)的要求,自適應(yīng)系統(tǒng)調(diào)制模式識(shí)別正確率,頻譜感知響應(yīng)時(shí)間等指標(biāo)。

      1 PCIE總線(xiàn)簡(jiǎn)介

      相比于以前PCI總線(xiàn)使用的并行結(jié)構(gòu)(在同一條總線(xiàn)上的所有外部設(shè)備共享總線(xiàn)帶寬),PCIE總線(xiàn)使用了高速差分總線(xiàn)。與單端并行信號(hào)相比,高速差分信號(hào)可以使用更高的時(shí)鐘頻率,從而使用更少的信號(hào)線(xiàn),完成之前需要許多單端并行數(shù)據(jù)信號(hào)才能達(dá)到的總線(xiàn)帶寬。在今后的通信領(lǐng)域中,使用高速差分總線(xiàn)代替并行總線(xiàn)是必然的。

      PCIE使用高速差分總線(xiàn),并采用端到端的連接方式,所以在每一條PCIE鏈路中只能連接兩個(gè)設(shè)備。這使得PCIE與PCI的結(jié)構(gòu)有所不同:

      (1) PCIE采用的是串行數(shù)據(jù)數(shù)據(jù)包(TLP)的形式傳輸,在每層的數(shù)據(jù)及指令傳輸都以TLP數(shù)據(jù)包的形式,保障了數(shù)據(jù)傳輸?shù)耐暾院涂煽啃浴?/p>

      (2) PCIE在數(shù)據(jù)傳輸中,采用差分LVDS串行傳輸方式,一條PCIE通道由兩對(duì)LVDS差分信號(hào)線(xiàn)來(lái)實(shí)現(xiàn)發(fā)送和接收。

      (3) 采用了點(diǎn)對(duì)點(diǎn)串行連接,比起PCI總線(xiàn)的共享并行架構(gòu),能夠?yàn)橄到y(tǒng)內(nèi)的所有設(shè)備分配獨(dú)立的通道資源,充分保障設(shè)備的帶寬,提高數(shù)據(jù)的傳輸效率。

      (4) 一個(gè)PCIE物理的連接可按照實(shí)際需要配置單通道,幾通道或多通道(例如x1,x2,x4,x32)的鏈路模式,比PCI總線(xiàn)具有更好的靈活性。

      相比于PCI,PCI-Express具有更好的系統(tǒng)架構(gòu)及傳輸性能,所以PCIE取代PCI并行總線(xiàn)是大勢(shì)所趨。而DMA在PCIE總線(xiàn)的應(yīng)用更突顯了PCIE的高帶寬的優(yōu)勢(shì),在高速DMA控制器傳輸方式下,對(duì)CPU僅占用了少許的資源,就能完成數(shù)據(jù)的高速端對(duì)端傳輸,因此具有廣闊的應(yīng)用前景。本設(shè)計(jì)針對(duì)此情景,提出了DMA參與控制的PCIE高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)。

      2 基于FPGA IP 硬核的PCIE接口設(shè)計(jì)

      本系統(tǒng)設(shè)計(jì)采用是Xilinx公司Virtex-6系列的FPGA,板卡為ml605,芯片為xc6v1x240t,集成了Xilinx公司的PCIE官方IP硬核,該IP core遵循V2.0標(biāo)準(zhǔn)。PCIE接口采用模塊化設(shè)計(jì)方法,首先使用Core Generation生成PCIE的硬核部分,鏈路寬度支持x1,x2,x4,x8四種模式。生成核的過(guò)程中需要配置各種參數(shù),主要有:對(duì)應(yīng)的Xilinx的開(kāi)發(fā)板,TLP的大小,基址寄存器,設(shè)備ID,參考時(shí)鐘以及鏈路寬度等。本設(shè)計(jì)使用的PCIE IP core提供6個(gè)32bit基地址寄存器BAR0~BAR5,可以根據(jù)用戶(hù)設(shè)計(jì)需求進(jìn)行配置。本設(shè)計(jì)中使用BAR0作為IO基址空間,使用BAR1和BAR2分別作為32bit內(nèi)存操作基址空間。外部時(shí)鐘輸入頻率100MHz,經(jīng)過(guò)鎖相環(huán)倍頻125M后作為PCIE操作的全局時(shí)鐘。

      該硬核模塊完成了數(shù)據(jù)高速串行與并行的轉(zhuǎn)換,整個(gè)硬件架構(gòu)框圖如圖1所示,PC與FPGA之間通信通過(guò)PCIE通道,靠DMA來(lái)控制,通過(guò)PCIE傳輸數(shù)據(jù)時(shí),只需要占用很少CPU資源,CPU通過(guò)指令控制DMA,DMA自動(dòng)控制數(shù)據(jù)的上傳和下傳,效率高且占用資源少。HW Test和FIFO為兩種數(shù)據(jù)傳輸方式:HW Test(從FPGAPC)模式下從FPGA用戶(hù)激勵(lì)模塊產(chǎn)生數(shù)據(jù),再通過(guò)PCIE DMA上傳,然后PCIE DMA回環(huán)下傳,最后由FPGA激勵(lì)模塊接收數(shù)據(jù)并對(duì)比的功能;以及FIFO MODE(PCFPGA)下從PC產(chǎn)生數(shù)據(jù),經(jīng)過(guò)PCIE DMA下傳,存進(jìn)FPGA板上FIFO緩存中,數(shù)據(jù)再由PCIE DMA上傳,最后PC接收數(shù)據(jù)并對(duì)比的功能。

      此接口主要實(shí)現(xiàn)了解析IP核傳輸?shù)臄?shù)據(jù)包(TLP)信息并根據(jù)數(shù)據(jù)包的內(nèi)容完成對(duì)應(yīng)的讀寫(xiě)操作等功能。實(shí)際使用時(shí),用戶(hù)可以直接使用PCIE的外部接口進(jìn)行操作。

      3 DMA控制器的實(shí)現(xiàn)

      DMA(Direct Memory Access,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,它允許不同速度的硬件裝置來(lái)溝通,而不需要依賴(lài)于 CPU 的大量中斷負(fù)載。否則,CPU 需要從來(lái)源把每一片段的資料復(fù)制到暫存器,然后把它們?cè)俅螌?xiě)回到新的地方。在這個(gè)時(shí)間中,CPU 對(duì)于其他的工作來(lái)說(shuō)就無(wú)法使用。在PCIE IP core基礎(chǔ)上引入了控制器,數(shù)據(jù)的傳輸不再占用CPU的時(shí)間,提高了系統(tǒng)的運(yùn)行效率。本節(jié)主要介紹PCIE接口的DMA讀寫(xiě)操作核心設(shè)計(jì)。

      3.1 DMA的接口設(shè)計(jì)

      DMA控制器與PCIE IP core的接口設(shè)計(jì)主要分為DMA核心控制模塊(DMA MODE)以及寄存器模塊(register mode)和配置模塊(configure)以及中斷部分(interrupt)如圖2所示。

      3.2 DMA控制器

      在整個(gè)設(shè)計(jì)中,DMA控制狀態(tài)機(jī)是核心部分,主要包括TX Engine和RX Engine。TX Engine負(fù)責(zé)接收上位機(jī)存儲(chǔ)器讀寫(xiě)操作,單字發(fā)送及DMA發(fā)送。RX Engine主要負(fù)責(zé)存儲(chǔ)器讀寫(xiě)操作,單字接收及DMA接收。PCIE的DMA讀寫(xiě)操作實(shí)現(xiàn)的主要方法是正確填寫(xiě)數(shù)據(jù)包頭中的各個(gè)字段,并將數(shù)據(jù)按照64bit并行放在TLP包頭中。對(duì)面DMA寫(xiě),將數(shù)據(jù)傳輸給PCIE硬核,由硬核將數(shù)據(jù)發(fā)送到物理端口,最后傳輸?shù)絇C機(jī)的物理地址中;對(duì)面DMA讀,主機(jī)將數(shù)據(jù)包發(fā)送到硬核,最后RX Engine解包,然后將數(shù)據(jù)輸出。

      PCIE DMA控制模塊完成的主要功能:

      1) 接收PC下發(fā)的PIO讀寫(xiě)TLP請(qǐng)求,完成Bar空間寄存器的解碼與回傳工作。

      2) 根據(jù)Bar空間解碼,獲取存儲(chǔ)器寫(xiě)觸發(fā),完成產(chǎn)生存儲(chǔ)器寫(xiě)TLP以及通過(guò)PCIe發(fā)送請(qǐng)求的功能。

      3) 根據(jù)Bar空間解碼,獲取存儲(chǔ)器讀觸發(fā),完成產(chǎn)生存儲(chǔ)器讀TLP以及按序接收PC回復(fù)的完成報(bào)文數(shù)據(jù)的存儲(chǔ)功能。

      3.3 DMA上傳下傳工作時(shí)序

      DMA讀寫(xiě)流程如下:

      (1)DMA寫(xiě)操作(數(shù)據(jù)從板卡搬移到PC內(nèi)存)的控制流程如下:

      PC申請(qǐng)一段物理地址連續(xù)的內(nèi)存空間,并將其鎖住防止其他程序占用;

      PC配置DMA寫(xiě)寄存器,寫(xiě)入內(nèi)存空間起始地址、TLP的有效數(shù)據(jù)載荷數(shù)、TLP的個(gè)數(shù)等,然后啟動(dòng)DMA事務(wù);

      FPGA上的Tx_fifo數(shù)據(jù)達(dá)到一定規(guī)模后,DMA Engine主動(dòng)組織Memory Write TLP并通過(guò)PCIE核發(fā)至PC。DMA控制器會(huì)自動(dòng)填充TLP包逐一增加地址信息,直到達(dá)到驅(qū)動(dòng)程序設(shè)置的長(zhǎng)度,最后DMA向PC發(fā)送MSI寫(xiě)中斷;

      PC接收到中斷信號(hào)后,訪(fǎng)問(wèn)DMA的中斷狀態(tài)寄存器判斷中斷類(lèi)型,如果是DMA寫(xiě)中斷,則進(jìn)入中斷處理函數(shù)中。PC將這段物理地址的數(shù)據(jù)拷貝到用戶(hù)空間,做處理,然后回步驟,同時(shí)在PC機(jī)上調(diào)用識(shí)別函數(shù),識(shí)別算法完成后,將結(jié)果通過(guò)寫(xiě)寄存器的方式發(fā)送給下位機(jī)。

      (2)DMA讀操作(數(shù)據(jù)從PC內(nèi)存搬移到板卡)的控制流程與寫(xiě)操作類(lèi)似,不再贅述。

      4 系統(tǒng)測(cè)試與分析

      在完成代碼的編寫(xiě)及各個(gè)模塊設(shè)計(jì)之后,用modelsim對(duì)程序進(jìn)行仿真。使用Xilinx公司的ML605實(shí)驗(yàn)平臺(tái)設(shè)計(jì)完成,F(xiàn)PGA程序使用Verilog HDL語(yǔ)言編寫(xiě),編寫(xiě)環(huán)境是ISE(Integrated Software Environment)14.7,硬件測(cè)試時(shí)使用Chipscope抓取數(shù)據(jù),主要分析上傳到PC內(nèi)存的數(shù)據(jù)與FPGA段發(fā)送的數(shù)據(jù)是否一致以及DMA控制器產(chǎn)生的PCIE總線(xiàn)傳輸信號(hào)時(shí)序是否滿(mǎn)足要求。整個(gè)傳輸過(guò)程由上位機(jī)軟件控制,負(fù)責(zé)發(fā)起和結(jié)束控制,規(guī)定傳輸數(shù)據(jù)的內(nèi)容。

      本設(shè)計(jì)一次DMA讀寫(xiě)操作的包長(zhǎng)均為64字節(jié),基于PCIe接口的DMA傳輸實(shí)現(xiàn)了對(duì)數(shù)據(jù)的連續(xù)讀寫(xiě)操作,DMA方式工作正常。讀寫(xiě)過(guò)程中,上位機(jī)和下位機(jī)之間持續(xù)通信,連續(xù)讀或?qū)憯?shù)據(jù)根讀寫(xiě)的總數(shù)據(jù)量和總操作時(shí)間,計(jì)算出DMA讀寫(xiě) (下轉(zhuǎn)第36頁(yè))

      方式下的傳輸速率。經(jīng)測(cè)試,該P(yáng)CIe接口板DMA讀模式下,數(shù)據(jù)傳輸速率可達(dá)1647.2MB/s,DMA寫(xiě)模式下,數(shù)據(jù)傳輸速率可達(dá)1605.3MB/s,PCIe接口板具有明顯優(yōu)勢(shì)。測(cè)試上位機(jī)軟件如圖5所示。

      5 結(jié)論

      本文提供了一種基于PCIE IP 硬核的高速DMA數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì),使得傳輸數(shù)據(jù)速度大幅度提高,且占用的CPU資源少。經(jīng)過(guò)實(shí)際測(cè)試,本設(shè)計(jì)系統(tǒng)的數(shù)據(jù)傳輸速度在1.5GB/S左右,完全可以滿(mǎn)足工作需要。為高速數(shù)據(jù)采集存儲(chǔ)方面提供了一種通用的解決方案,具有很好的參考和應(yīng)用價(jià)值。

      參考文獻(xiàn):

      [1] 王齊.PCI Express 體系結(jié)構(gòu)導(dǎo)讀[M].北京:機(jī)械工業(yè)出版社,2010.

      [2] 雷雨,任國(guó)強(qiáng),孫健等.基于PCIE 的高速光纖圖像實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用.2013,39(10):136-142.

      [3] 魏蕓.基于FPGA的PCIe總線(xiàn)DMA平臺(tái)設(shè)計(jì)[D].武漢:武漢理工大學(xué),2013.

      彰化县| 莫力| 尉犁县| 兴安县| 胶州市| 南涧| 济阳县| 三穗县| 思茅市| 成安县| 南昌县| 阿尔山市| 仙居县| 镇平县| 莎车县| 漳州市| 武清区| 遵义市| 江都市| 通渭县| 德清县| 黔东| 教育| 罗田县| 南岸区| 临泉县| 洪泽县| 渭源县| 仁布县| 醴陵市| 津市市| 湖南省| 京山县| 武夷山市| 晋城| 富民县| 谷城县| 图们市| 新竹市| 资溪县| 宜兰县|