• 
    

    
    

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

      ?

      基于USB3.0高速圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計

      2019-04-10 09:39:58王國忠儲成群任勇峰焦新泉
      儀表技術(shù)與傳感器 2019年3期
      關(guān)鍵詞:傳輸速度緩沖區(qū)線程

      王國忠,劉 磊,儲成群,任勇峰,焦新泉

      (中北大學(xué),電子測試技術(shù)國家重點實驗室,山西太原 030051)

      0 引言

      隨著大數(shù)據(jù)智能化時代的到來,以及工業(yè)4.0的提出,智能化系統(tǒng)對圖像分辨率的要求越來越高,即圖像采集系統(tǒng)需要傳輸?shù)臄?shù)據(jù)量越來越大。數(shù)據(jù)傳輸?shù)乃俣群途彌_區(qū)的大小是圖像采集系統(tǒng)中非常重要的一部分,如果緩沖的速度與傳輸?shù)乃俣炔黄ヅ涞脑挘蜁箶?shù)據(jù)丟失或者堵塞,因此需要對整個系統(tǒng)進行綜合設(shè)計。

      1 總體方案設(shè)計

      系統(tǒng)總體方案設(shè)計如圖1所示,由圖像采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)傳輸模塊3部分組成。圖像采集模塊采集模擬數(shù)據(jù),并轉(zhuǎn)化為數(shù)字圖像數(shù)據(jù)傳輸給數(shù)據(jù)處理模塊;數(shù)據(jù)處理模塊接收圖像數(shù)據(jù),經(jīng)處理后轉(zhuǎn)存到緩沖芯片DDR2 SDRAM中,同時接收上位機下發(fā)命令,把數(shù)據(jù)實時上傳;數(shù)據(jù)傳輸模塊把數(shù)據(jù)上傳到上位機軟件進行圖像顯示,并負責(zé)上位機與FPGA之間的通信。

      本系統(tǒng)采用MT9P031圖像傳感器作為本系統(tǒng)數(shù)據(jù)采集模塊,把高速圖像數(shù)據(jù)實時上傳給數(shù)據(jù)處理模塊[1]。數(shù)據(jù)處理模塊把數(shù)據(jù)重新編幀后轉(zhuǎn)存到DDR2 SDRAM中。數(shù)據(jù)傳輸模塊采用USB3.0傳輸,把圖像數(shù)據(jù)實時上傳到上位機軟件,在數(shù)據(jù)編碼方面,USB3.0采用了安全性更高的8b/10b編碼,使用這種編碼方式可以保持電路中的直流平衡,從而提高可靠性;在邏輯設(shè)計中,采用手動DMA模式,提高了傳輸速度,同時提高了數(shù)據(jù)傳輸?shù)恼_率以及可靠性[2]。

      2 系統(tǒng)硬件電路設(shè)計

      2.1 FPGA硬件設(shè)計

      FPGA作為整個系統(tǒng)的硬件控制核心,是整個系統(tǒng)數(shù)據(jù)傳輸?shù)闹修D(zhuǎn)站,其主要功能是實現(xiàn)各模塊之間的數(shù)據(jù)交換和接口時序等協(xié)調(diào)控制。同時FPGA既要實現(xiàn)與USB控制芯片CYUSB3014連接,也要與DDR2連接,因此本系統(tǒng)選擇I/O口豐富、內(nèi)部資源多、處理速度快的EP3C40F484C6N作為控制中心。該芯片內(nèi)部具有較多的RAM容量,利用IP核可以搭建邏輯控制模塊,如FIFO緩沖模塊,PLL鎖相環(huán)等。

      圖1 總體方案設(shè)計

      2.2 DDR2硬件電路設(shè)計

      圖2 DDR2與FPGA硬件連接圖

      本系統(tǒng)為了防止有效數(shù)據(jù)在FIFO中積累而丟失,設(shè)計了外置DDR2 SDRAM緩沖模塊,用來存儲海量的圖像數(shù)據(jù)。圖2為DDR2與FPGA的硬件連接圖。選用MT47H128M16RT-25EC作為DDR2 的芯片,其內(nèi)存為2 Gbit,數(shù)據(jù)位寬為16 bit,內(nèi)部有8個塊,能以內(nèi)部控制總線4倍的速度工作,還能以外部總線4倍的速度進行讀寫操作。CK和CKN為時鐘差分線,在他們的相交處均有數(shù)據(jù)傳輸,即在CLK的上升沿和下降沿均有數(shù)據(jù)傳輸。A[13:0]為列地址,BA[2:0]為塊地址,對DDR2進行數(shù)據(jù)讀寫時,首先發(fā)送要讀取或?qū)懭氲木唧w地址。D[15:0]為16位數(shù)據(jù)線。CKE,ODT,CS分別為DDR2的控制信號線,對DDR2進行讀寫操作時,首先要激活時鐘使能信號線(CKE)和片選信號線(CS),ODT為一種新技術(shù)叫片內(nèi)終結(jié)電阻,通過控制該信號,來實現(xiàn)對匹配電阻的值及其開關(guān)狀態(tài)進行控制,從而達到讀寫信號的完整性。RAS,WE,CAS為命令信號線,通過這3條命令FPGA控制DDR2的讀寫。采用UDQS和UDQSN、LDQS和LDQSN作為雙向差分信號線,寫數(shù)據(jù)時由FPGA發(fā)出,讀數(shù)據(jù)時由DDR2發(fā)出,可以減少信號間串?dāng)_的影響,同時減少信號輸出脈寬對工作電壓和溫度穩(wěn)定性的依賴。UDM,LDM在進行突發(fā)傳輸時,可屏蔽掉不存儲的數(shù)據(jù)[3]。

      2.3 USB3.0的硬件電路設(shè)計

      本系統(tǒng)采用CYUSB3014作為USB3.0的控制芯片,該芯片具有高度集成的靈活特性,具有一個可進行數(shù)據(jù)并行讀寫的通用可編程接口GPIFⅡ,其內(nèi)部同時集成了USB3.0和USB2.0物理層(PHY)以及32位ARM926EJ-S微處理器,具有強大的數(shù)據(jù)處理能力。GPIFⅡ接口可進行8位、16位、32位數(shù)據(jù)傳輸,可實現(xiàn)與FPGA之間無縫連接;GPIFⅡ為一種可編程狀態(tài)機,其接口即可作為主控制器也可作為從器件,并行和串行接口均可通過該接口實現(xiàn)。本系統(tǒng)將CYUSB3014配置為32位并行的SLAVE FIFO模式,實現(xiàn)與FPGA之間的高速圖像數(shù)據(jù)傳輸,F(xiàn)PGA通過GPIFⅡ接口可訪問其內(nèi)部32個緩沖區(qū)[4]。

      圖3為USB3.0周圍的硬件電路。如圖3所示,GPIFⅡ的32位數(shù)據(jù)總線直接與FPGA的I/0口相連,而在CYUSB3014內(nèi)部GPIFⅡ直接連接到了DMA通道上。SLCS為片選信號,系統(tǒng)開始工作時被激活。PKTEND為短包數(shù)據(jù)發(fā)送結(jié)束信號,當(dāng)一包數(shù)據(jù)結(jié)束時該信號有效。FLAGA和FLAGB為DMA通道對應(yīng)的緩沖區(qū)空滿狀態(tài)的標(biāo)志信號,由CYUSB3014芯片發(fā)出,F(xiàn)PGA接收。SLWR為寫使能信號,當(dāng)通過USB3.0讀取數(shù)據(jù)時,該信號使能有效,GPIFⅡ隨之將數(shù)據(jù)通過DMA通道存入到對應(yīng)的緩沖區(qū)中。SLOE為讀使能信號,即FPGA發(fā)出讀請求時,該信號使能有效同時驅(qū)動數(shù)據(jù)總線DQT翻轉(zhuǎn)。A(1∶0)為線程選擇信號,通過改變它的數(shù)值,對GPIFⅡ內(nèi)部的4個獨立進程進行選擇,從而實現(xiàn)選用那個DMA通道進行數(shù)據(jù)傳輸。

      圖3 USB3.0硬件電路圖

      SLRD為讀請求信號,當(dāng)該信號有效時,F(xiàn)PGA讀取GPIFⅡ接口的數(shù)據(jù)。PCLK與FPGA的CLK相連,提供最高可達100 MHz的接口頻率。

      圖3中的24FC1025T-I/SN是容量為1 024KB的EEPROM,用于存儲USB3.0的固件程序,通過I2C總線與CYUSB3014相連。而I2C總線是由一條數(shù)據(jù)線和一條時鐘線構(gòu)成,根據(jù)I2C總線規(guī)范,總線空閑時必須為高電平,所以本設(shè)計通過2.21 kΩ電阻連接至3.3 V電源上拉。NCP361SN1G為過壓保護芯片,CYUSB3014的VBUS引腳的最大輸入電壓為6 V,而在USB接口上VBUS的供電電壓最大可達9 V,因此為了保護CYUSB3014的VBUS免受損壞,本設(shè)計增加了過壓保護芯片。同時為了使輸入電壓穩(wěn)定,在VBUS串聯(lián)一個2.2 μH的電感。使用2.2 μH的電感與105電容并聯(lián),同時將USB插座上的“屏蔽”引腳接地,實現(xiàn)隔離屏蔽的作用。本系統(tǒng)選用四通道的SP3010-04UTG作為SSRX+、SSRX-、SSTX+、SSTX-的外部ESD器件,它具有高性能、低電容的特性,其保護電平為±8 kV接觸放電和±15kV氣隙放電[5]。

      3 邏輯設(shè)計

      3.1 DDR2讀寫邏輯設(shè)計

      DDR2 SDRAM的讀寫控制是整個系統(tǒng)的關(guān)鍵。在系統(tǒng)上電后,DDR2 SDRAM內(nèi)部需要進行一系列復(fù)雜的初始化操作,才能開始正常工作。具體操作為:預(yù)充電→空命令→配置外部寄存器→空命令→配置內(nèi)部寄存器→預(yù)充電→空命令→自動刷新→空命令→開始接收命令。在正常開始工作,每次讀寫切換和行、塊地址變化時,必須通過預(yù)充電來關(guān)閉當(dāng)前讀寫的存儲單元,同時在進行新的操作時,需要先激活要讀寫的存儲單元所在的地址[6]。

      圖4 DDR2邏輯設(shè)計圖

      由于DDR2 SDRAM只有一套數(shù)據(jù)、地址和控制總線,在某一時刻只能讀或者寫,因此本文采用輸入FIFO和輸出FIFO對DDR2 SDRAM進行分時復(fù)用讀寫控制[7]。DDR2 SDRAM的讀寫邏輯控制如圖4所示,通過判斷DDR2 SDRAM內(nèi)部的控制信號,來控制FIFO的讀寫。當(dāng)上位機發(fā)出采集命令時,圖像采集前端配置完寄存器之后開始采集圖像數(shù)據(jù),DDR2 SDRAM控制器通過監(jiān)測場同步信號的到來,把圖像數(shù)據(jù)不斷存入輸入FIFO中,當(dāng)FIFO中達到一次突發(fā)傳輸數(shù)據(jù)量2 KB時,DDR2 SDRAM控制器發(fā)出寫命令,并一次性讀完輸入FIFO中的所有數(shù)據(jù),DDR2 SDRAM控制器不斷監(jiān)測輸入FIFO的數(shù)據(jù)量并發(fā)出寫命令。因為圖像數(shù)據(jù)有場消隱和行消隱的時間,在此期間對DDR2 SDRAM進行寫操作,且寫的速率比較快,因此在一定系統(tǒng)時鐘條件下,圖像采集前端不會出現(xiàn)數(shù)據(jù)堵塞。

      當(dāng)上位機發(fā)出讀取數(shù)據(jù)的命令時,DDR2 SDRAM控制器首先檢測輸入FIFO的狀態(tài),在空信號有效時DDR2 SDRAM一次性向輸出FIFO寫入2 KB數(shù)據(jù),此時用戶通過輸出FIFO進行數(shù)據(jù)讀取。當(dāng)FIFO中的數(shù)據(jù)即將讀完時,DDR2 SDRAM一次性向輸出FIFO寫入2 KB數(shù)據(jù),然后通過USB3.0把圖像數(shù)據(jù)不斷上傳到上位機,其實際傳輸速度達390 MB/s,因此不會出現(xiàn)丟數(shù)的情況。

      3.2 USB3.0數(shù)據(jù)傳輸?shù)倪壿嬙O(shè)計

      本系統(tǒng)采取手動DMA傳輸模式,用來將GPIFⅡ接口連接至內(nèi)部緩沖器和USB3.0數(shù)據(jù)傳輸接口,通過手動DMA模式可以控制圖像數(shù)據(jù)的傳輸速度,從而保證了數(shù)據(jù)的可靠傳輸。該模式可以把其中2個線程中共32個緩沖器分別分配到輸入和輸出DMA通道上,緩沖器的容量通過USB3.0的傳輸速度來設(shè)置。圖5為DMA通道的設(shè)計圖[8]。

      如圖5所示,設(shè)計中只用了GPIFⅡ 4個線程中的2個,線程0和線程1,并且采用了默認的對應(yīng)關(guān)系,套接字0與線程0相對應(yīng);套接字1與線程1相對應(yīng)[9]。線程的切換是FPGA通過控制USB_A0和USB_A1信號來實現(xiàn),當(dāng)為00時,選擇線程0;當(dāng)為01時,選擇線程1。套接字是外部硬件與內(nèi)部緩沖區(qū)之間的橋梁,即套接字可以看作是外設(shè)的接口,每個硬件模塊有其固定的套接字。其中每個描述符存有緩沖區(qū)的地址和緩沖區(qū)的容量,以及指向下一個描述符的指針。

      圖5 DMA通道的設(shè)計圖

      在邏輯設(shè)計中,將USB_FLGA和USB_FLGB均設(shè)置為低電平有效,故當(dāng)其為低電平時,它們指示緩沖區(qū)進入滿狀態(tài)[10]。本設(shè)計FPGA通過從設(shè)備FIFO控制USB3.0進行突發(fā)傳輸,圖6為32位數(shù)據(jù)總線突發(fā)傳輸?shù)倪壿嫹治鰞x截圖,在突發(fā)傳輸過程中,為了保證數(shù)據(jù)連續(xù)輸出,USB_RD和USB_OE始終保持有效,只要一行圖像數(shù)據(jù)寫入完成,就對DDR2 SDRAM進行讀操作。這樣一來DMA緩沖區(qū)就不會出現(xiàn)滿狀態(tài),即整個過程USB_FLGA和USB_FLGB一直為高電平,為了避免DMA通道的失鎖以及對上次數(shù)據(jù)的清空處理,本設(shè)計采用了每次重新寫入數(shù)據(jù)時,再次激活GPIFⅡ接口的思想,即USB_CS信號在USB_WR從低電平變?yōu)楦唠娖綍r,重新被激活。

      圖6 突發(fā)傳輸?shù)倪壿媹D

      4 結(jié)果分析及驗證

      本系統(tǒng)圖像采集模塊采集到的圖像分辨率為2 048×1 536,幀頻為21 fps,且顯示為256級8位灰度圖像,因此每秒采集的數(shù)據(jù)量為63 MB(2 048×1 536×21B)。DDR2工作在125 MHz時鐘下,其傳輸速度峰值高達500 MB/s(125 MHz×2B×2),通過邏輯分析儀發(fā)現(xiàn)突發(fā)傳輸1行圖像數(shù)據(jù)需要512個系統(tǒng)時鐘,而DDR2自動刷新、預(yù)充電、狀態(tài)信息等消耗50個系統(tǒng)時鐘,因此DDR2實際平均數(shù)據(jù)吞吐量為500 MB/s×512/(512+50)≈456 MB/s。USB3.0數(shù)據(jù)傳輸速度為390 MB/s,通過理論分析,本系統(tǒng)可以正常工作。而且經(jīng)過長時間重復(fù)測試,在沒有上位機引起其他開銷的情況下,采集的圖像如圖7所示。其畫面清晰、流暢,且實時性較好,證明了本系統(tǒng)能夠?qū)崟r進行圖像數(shù)據(jù)上傳,且穩(wěn)定可靠。

      5 結(jié)束語

      本設(shè)計中,采用了占用資源少、支持熱插拔、可連接多個設(shè)備的USB3.0數(shù)據(jù)總線和緩沖速度快的DDR2緩沖器,設(shè)計了高速圖像傳輸系統(tǒng),大幅提高了圖像數(shù)據(jù)的傳輸速度和存儲空間,在邏輯設(shè)計中采用了手動DMA模式,實現(xiàn)了海量圖像數(shù)據(jù)的傳輸,確保了高清圖像的實時顯示。

      圖7 圖像截圖

      猜你喜歡
      傳輸速度緩沖區(qū)線程
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
      SSD移動硬盤大降價,可以考慮了
      電腦報(2019年11期)2019-09-10 07:22:44
      淺談linux多線程協(xié)作
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      電網(wǎng)中無線通信技術(shù)的應(yīng)用探析
      淺談提升互聯(lián)網(wǎng)信息傳輸速度技術(shù)分析
      Linux線程實現(xiàn)技術(shù)研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計與實現(xiàn)
      電視技術(shù)(2012年1期)2012-06-06 08:13:58
      么移動中間件線程池并發(fā)機制優(yōu)化改進
      江川县| 辽中县| 马鞍山市| 襄垣县| 安化县| 福建省| 蛟河市| 五华县| 扶风县| 白山市| 临沭县| 汉川市| 济源市| 壤塘县| 垣曲县| 大化| 诸暨市| 靖江市| 苏州市| 公主岭市| 鸡东县| 镇沅| 鲁甸县| 噶尔县| 和硕县| 封开县| 金山区| 岳普湖县| 饶平县| 灌南县| 祁连县| 金乡县| 汉沽区| 浦北县| 将乐县| 彭阳县| 绥滨县| 东至县| 晴隆县| 鹤壁市| 杂多县|