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