摘要: 針對數(shù)字圖像處理與傳輸領(lǐng)域數(shù)據(jù)量大而傳統(tǒng)接口無法滿足其高速率傳輸要求的現(xiàn)狀,提出了一種基于LVDS和PCI接口的高速圖像傳輸系統(tǒng)的設(shè)計,對系統(tǒng)總體設(shè)計和各電路模塊進行了詳細介紹和分析,并對系統(tǒng)整體功能進行了測試。該系統(tǒng)以FPGA作為控制核心,采用乒乓操作實現(xiàn)數(shù)據(jù)的無縫緩沖,重點研究了LVDS接口和PCI總線技術(shù),保證圖像數(shù)據(jù)的高速、可靠傳輸。測試結(jié)果表明,該傳輸系統(tǒng)性能穩(wěn)定,能可靠地實現(xiàn)圖像數(shù)據(jù)傳輸,最大傳輸速率可達18 MB/s,具有一定的實用價值。
近年來,隨著電子信息、多媒體技術(shù)的快速發(fā)展,在圖像處理和視頻傳輸?shù)阮I(lǐng)域中傳輸?shù)臄?shù)據(jù)量越來越大,這對數(shù)據(jù)傳輸?shù)乃俣群唾|(zhì)量提出了很高的要求[1]。然而,一些傳統(tǒng)的點對點物理層接口由于在速度、可靠性、功耗、成本等方面的限制,已經(jīng)無法滿足高速數(shù)據(jù)傳輸?shù)膽?yīng)用要求,因此迫切需要一種速率快、可靠性高、功耗低的數(shù)據(jù)傳輸方式。低壓差分信號技術(shù)LVDS(Low Voltage Differential Signaling)使用極低的擺幅通過雙絞電纜傳輸數(shù)據(jù),是一種最高傳輸速率可達1.923 Gb/s的通用接口技術(shù),并且由于其低壓差分的傳輸方式,具有較強的抑制信號干擾能力,大大提高了數(shù)據(jù)傳輸?shù)木嚯x、速率和可靠性[2]。此外在計算機測量領(lǐng)域,PCI總線憑借其出色性能以及良好的兼容性,在工業(yè)控制、數(shù)據(jù)采集、信息通信、航空航天等領(lǐng)域得到廣泛的應(yīng)用[3],為圖像數(shù)據(jù)高速傳輸提供了有力的保障。
結(jié)合LVDS接口與PCI總線能夠滿足高速傳輸?shù)奶匦?,本文主要從系統(tǒng)總體設(shè)計、硬件設(shè)計和邏輯設(shè)計等方面介紹一種基于LVDS和PCI接口的高速圖像傳輸系統(tǒng)。
1 系統(tǒng)總體設(shè)計
本文設(shè)計的高速圖像傳輸系統(tǒng)主要實現(xiàn)對數(shù)字圖像信息的編碼、傳輸以及顯示功能,突出傳輸系統(tǒng)的高效與可靠。系統(tǒng)采用模塊化設(shè)計思路,各個模塊之間既相互獨立又相互配合,主要由電源轉(zhuǎn)換模塊、圖像編碼模塊、LVDS收發(fā)模塊、FPGA邏輯控制模塊和PCI接口等模塊組成。其中,圖像編碼模塊的功能由軟件完成,根據(jù)圖像格式進行相應(yīng)的二進制編碼; FPGA邏輯控制模塊實現(xiàn)系統(tǒng)對硬件高集成度的要求。系統(tǒng)總體框圖如圖1所示。
該系統(tǒng)的圖像信息輸入主要包括單幅圖片以及視頻流數(shù)據(jù),圖像編碼模塊首先根據(jù)內(nèi)部協(xié)議規(guī)范的幀格式對圖像信息進行二進制編碼,之后將數(shù)據(jù)幀依次發(fā)送到FPGA邏輯控制模塊中;FPGA邏輯控制模塊對兩片SRAM采用乒乓操作,將接收到的數(shù)據(jù)交替讀/寫進行緩沖,然后通過LVDS發(fā)送模塊發(fā)送出去;在接收端,LVDS接收模塊對接收的數(shù)據(jù)進行串/并轉(zhuǎn)換,F(xiàn)PGA邏輯控制模塊將數(shù)據(jù)寫入Flash存儲芯片進行備份,同時將數(shù)據(jù)通過PCI接口傳輸給上位機進行處理及顯示。在此過程中,系統(tǒng)指令的下發(fā)均由上位機完成。
2 硬件設(shè)計
2.1 LVDS收發(fā)單元
LVDS收發(fā)單元由LVDS發(fā)送模塊和LVDS接收模塊兩部分組成。設(shè)計選用美國德州儀器公司的10位總線型低壓差分信號串化器SN65LV1023A和解串器SN65LV1224A作為數(shù)字圖像數(shù)據(jù)高速傳輸?shù)腖VDS接口芯片,接口電路如圖2所示。
SN65LV1023/1224A芯片組采用主動工作模式,可輸入的頻率范圍為10~66 MHz,芯片最高傳輸速率可達792 Mb/s,具有初始化、同步、數(shù)據(jù)傳輸、休眠、高阻5種工作狀態(tài)[4]。該芯片組在正常工作之前必須經(jīng)過時鐘同步操作。當(dāng)系統(tǒng)上電后,芯片組首先將輸出管腳置為高阻態(tài)并啟動鎖相環(huán),再由串化器發(fā)送SYNC(“000000111111”)同步信息,若解串器LOCK管腳置“0”,則說明時鐘已同步,可以進行數(shù)據(jù)傳輸。
在數(shù)據(jù)傳輸過程中,串化器將接收到的10 bit電平數(shù)據(jù)進行并/串轉(zhuǎn)換,然后將內(nèi)嵌有時鐘信息的串行數(shù)據(jù)發(fā)送到差分端口經(jīng)由屏蔽雙絞線輸出;在接收端,解串器在REFCLK時鐘下將接收到的串行數(shù)進行串/并轉(zhuǎn)換并存入鎖存器中,根據(jù)重建的同步時鐘信號RCLK將10 bit并行數(shù)據(jù)輸出,從而完成整個傳輸過程。設(shè)計中采用內(nèi)嵌時鐘恢復(fù)技術(shù)進行數(shù)據(jù)處理,有效地解決了由于時鐘與數(shù)據(jù)同步不嚴(yán)格而引起的制約其性能的一系列問題。
由于高頻信號在PCB導(dǎo)線和電纜上的損耗會使邊沿變化速率降低,引入碼間串?dāng)_,但這會導(dǎo)致傳輸信號衰減。所以為了保證數(shù)據(jù)的傳輸質(zhì)量,設(shè)計中配合使用LVDS芯片和電纜延展器芯片。采用CLC001驅(qū)動器和CLC014均衡器實現(xiàn)高速傳輸?shù)男盘栒{(diào)理作用,降低了信號損耗,補償了信號衰減,從而保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。
2.2 PCI接口單元
本設(shè)計采用PCI接口單元實現(xiàn)底層電路與上位機之間的數(shù)據(jù)傳輸。上位機通過PCI接口單元實現(xiàn)指令下發(fā)和數(shù)據(jù)上傳,并完成數(shù)據(jù)處理和顯示功能。PCI(Peripheral Component Interconnect)總線規(guī)范是一種高性能32/64 bit地址數(shù)據(jù)復(fù)用的高速外圍設(shè)備接口標(biāo)準(zhǔn)[5]。該總線具有眾多優(yōu)點,當(dāng)采用33 MHz時鐘,32 bit數(shù)據(jù)總線最大傳輸速率可達132 MB/s,當(dāng)擴展到64 bit數(shù)據(jù)總線后,其數(shù)據(jù)吞吐量可達264 MB/s的峰值。
如果換用66 MHz時鐘,數(shù)據(jù)傳輸速率理論峰值高達528 MB/s[6]??紤]到PCI協(xié)議復(fù)雜性較高,如果直接使用FPGA對其進行設(shè)計難度較大,因此采用PLX公司的PCI總線通用接口芯片PCI9054作為PCI總線與本地總線的橋接芯片,其控制方便、成本低廉、通用性強。PCI接口電路如圖3所示。
PCI接口單元主要由PCI9054、HT93LC56和外部晶振組成。PCI9054芯片提供PCI、LOCAL和E2PROM 3個接口,分別實現(xiàn)與PCI總線、本地總線和配置芯片的物理連接。本設(shè)計采用32 bit數(shù)據(jù)寬度,數(shù)據(jù)與地址不復(fù)用,故配置PCI9054工作在C模式下。測試指令的下發(fā)采用直接從模式,應(yīng)用程序首先利用API將指令數(shù)據(jù)復(fù)制到主機內(nèi)核空間,然后CPU通過驅(qū)動程序獲得PCI總線的控制權(quán),實現(xiàn)對本地總線和配置寄存器的訪問;
而數(shù)據(jù)上傳過程由于數(shù)據(jù)量大、速率快,所以采用DMA方式,DMA方式無需CPU的參與即可實現(xiàn)本地總線與PCI總線的數(shù)據(jù)交換,能夠完成高速傳輸?shù)娜蝿?wù)。數(shù)據(jù)上傳操作同樣由應(yīng)用程序發(fā)起,首先申請用戶空間用于存儲上傳的數(shù)據(jù),并通過API將其地址映射到內(nèi)核空間地址,然后配置PCI內(nèi)部的DMA寄存器,啟動DMA傳輸。在DMA方式下,PCI9054作為PCI總線和本地總線的主控設(shè)備,將本地總線中的數(shù)據(jù)傳輸至內(nèi)核空間,此時應(yīng)用程序通過訪問用戶空間處理上傳的數(shù)據(jù)。指令下發(fā)和數(shù)據(jù)上傳過程分別如圖4、圖5所示。
3 系統(tǒng)邏輯設(shè)計
3.1 FPGA邏輯程序
設(shè)計中,F(xiàn)PGA采用Xilinx公司的SPARTAN系列芯片,該芯片具有很高的邏輯資源,易于配置。系統(tǒng)發(fā)送端的FPGA邏輯控制模塊主要完成高速數(shù)據(jù)的接收緩存以及LVDS接口的時序控制。為了提高傳輸速度,避免數(shù)據(jù)流不連續(xù),系統(tǒng)采用“乒乓操作”,交替對兩片SRAM進行讀/寫。當(dāng)FPGA接收到數(shù)據(jù)時,首先對SRAM 1進行寫操作,接著將下一幀圖像寫入SRAM 2;
同時對SRAM 1進行讀操作,并將讀出的數(shù)據(jù)轉(zhuǎn)發(fā)到LVDS發(fā)送模塊。系統(tǒng)在對一片SRAM進行寫操作的同時,可以對另一片SRAM進行讀操作,如此交替讀/寫有效地節(jié)省了等待時間,從而提高了數(shù)據(jù)的傳輸速度,實現(xiàn)數(shù)據(jù)的無縫緩沖與處理?!捌古也僮鳌笨刂茣r序流程如圖6所示。
3.2 固件配置
PCI9054內(nèi)部寄存器的初始化配置由Microchip公司的E2PROM HT93LC56完成,主要包括PCI和Local配置寄存器、DMA寄存器、Runtime寄存器等寄存器組[7]。本設(shè)計采用從方式和DMA兩種數(shù)據(jù)傳輸方式,配置LAS0BA(0)=1、LAS0RR(0)=0、LBRD0(1:0)=11,將地址空間0作為指令下發(fā)的本地空間并設(shè)置數(shù)據(jù)寬度為32 bit;對DMA寄存器的配置包括:DMAMODE0(1:0)=11表示數(shù)據(jù)寬度為32 bit,DMAMODE0(8:7)=00表示傳輸采用單周期方式等。這些配置信息均可借助PLX公司提供的PLXMon工具進行燒寫。
4 測試結(jié)果
為了驗證本系統(tǒng)圖像數(shù)據(jù)處理與高速傳輸?shù)目煽啃裕瑢ζ湔w進行了功能測試。圖像信息源采用大小為720×480的黑灰規(guī)律變化的圖像,將二進制數(shù)據(jù)還原成圖片之后通過肉眼觀察并進行軟件分析來判斷是否發(fā)生錯誤。
圖7是接收到的一幀數(shù)據(jù)還原出的圖像,圖像清晰明了,沒有明顯的異?,F(xiàn)象。圖8是測試系統(tǒng)功能時計算機記錄的一段數(shù)據(jù),虛框內(nèi)的“42 4D”為幀頭,“36 D2 0F 00”為一幀圖像的數(shù)據(jù)大小,“D0 02 00 00”和“E0 01 00 00”分別表示圖像的寬度與高度,隨后是圖像數(shù)據(jù)區(qū)域(“00”代表黑色,“C8”代表灰色)。經(jīng)過軟件對比分析,接收到的數(shù)據(jù)準(zhǔn)確無誤碼,所以該系統(tǒng)可以實現(xiàn)設(shè)計功能并具有較高的穩(wěn)定性。
本文充分利用了LVDS技術(shù)的傳輸特點與應(yīng)用優(yōu)勢,結(jié)合“乒乓”讀寫操作和PCI總線傳輸技術(shù)設(shè)計了一種基于LVDS和PCI接口的高速圖像傳輸系統(tǒng),并通過實驗驗證了該系統(tǒng)的可靠性和準(zhǔn)確性。該系統(tǒng)可以應(yīng)用到工業(yè)數(shù)據(jù)采集、測試等領(lǐng)域,具有較高的可靠性。
參考文獻
[1] 陳偉,宋燕星?;贚VDS技術(shù)的高速數(shù)圖像傳輸系統(tǒng)[J]。電子測量技術(shù),2008,31(11):172-174.
[2] 彭鄉(xiāng)琳.LVDS在長距離信號傳輸中的應(yīng)用[J]。兵工自動化,2006,25(7):60-61.
[3] 鄧鳳軍,張龍,王益忠?;赑CI總線的HDLC通信卡的設(shè)計與實現(xiàn)[J]。電子技術(shù)應(yīng)用,2012,38(8):30-36.
[4] Texas Instruments.SN65LV1023A/SN65LV1224A 10-MHz to 66-MHz,10:1 LVDS serializer/deserializer[Z].2003.
[5] 安冬冬,劉文怡,郅銀周?;赑CI9054從模式的數(shù)據(jù)采集卡設(shè)計與應(yīng)用[J]。計算機測量與控制,2010,18(10):2439-2440.
[6] 葉勇,沈三民,郭錚,等?;赑CI總線的高速串口通信卡的設(shè)計[J]。電視技術(shù),2013,37(3):82-85.
[7] PLX Technology.PCI 9054 data book version 2.1[Z].2000.
編輯:jq
-
芯片
+關(guān)注
關(guān)注
452文章
50206瀏覽量
420887 -
PCI
+關(guān)注
關(guān)注
4文章
662瀏覽量
130141 -
lvds接口
+關(guān)注
關(guān)注
1文章
120瀏覽量
17382
發(fā)布評論請先 登錄
相關(guān)推薦
評論