摘 "要: 為了研究滿足工業視頻顯示應用中需要的便攜式非標準時序DVI視頻信號。使用STM32生成需要顯示的DVI視頻數據,通過FSMC接口送入FPGA外掛的SDRAM中,FPGA內部視頻信號產生邏輯讀取SDRAM中的數據,按照DVI視頻的時序產生滿足要求的RGB并行視頻數,送入DVI視頻信號編碼芯片產生標準的TMDS串行DVI視頻流。完成了基于FPGA的非標準視頻信號發生器硬件電路設計,產生可以用作工業視頻信號源的DVI視頻信號。以較小的板卡體積和設備功耗,為便攜式非標準工業DVI視頻應用提供了一種新的解決方案。
關鍵詞: FPGA; DVI; 微控制器 視頻顯示
中圖分類號: TN919?34; TP23 " " " " " " " " " "文獻標識碼: A " " " " " " " " " " 文章編號: 1004?373X(2015)02?0069?04
Design of DVI video signal generator based on FPGA
DI Xing, ZHANG Jie
(Chinese Flight Test Establishment, Xi’an 710089, China)
Abstract:In order to research portable non?standard time?sequence DVI video signal applied to industrial video display, STM32 is used to generate DVI video data, (which will be sent to SDRAM plugged in FPGA through the FSMC interface, and then read by the logic generated by the internal video signal in FPGA), the parallel RGB video is generated according to the DVI video signal time?sequence, which will be sent to DVI video encoding chip to generate standard TMDS serial DVI video flow. The hardware circuit of non?standard video signal generator based on FPGA was designed. DVI video signal was generated which can be used as industrial video source. With a smaller board size and power consumption, a new solution was provided to meet the industrial application of portable non?standard DVI video.
Keywords: FPGA; DVI; micro controller; video display
隨著視頻傳輸技術的不斷發展,視頻格式已經從以前的復合模擬視頻發展到VGA視頻,再到當前應用比較廣泛的DVI數字視頻[1],DVI數字視頻以其高的圖像質量成為了當前視頻顯示技術的主流,在某些工業控制場合中,需要使用DVI接口顯示某些數據內容,但是所采用的時序標準不是主流的時序標準,例如刷新率不是常用的60 Hz,而是72 Hz或者其他數值,采用具有DVI接口的處理器就無法滿足顯示需求,本文使用FPGA(現場可編程門陣列)作為主控器件,實現非常用時序的DVI視頻信號的產生。
1 "總體設計
基于FPGA的DVI視頻信號發生器的工作模式類似于計算機顯卡的工作方式,處理器負責產生需要顯示的信息,并通過數據接收送入顯卡中(計算機采用PCI?E接口,本設計中采用8080接口),顯卡接收到數據后將顯示數據存儲于顯存中,由DVI信號編碼邏輯讀取顯存中的數據完成視頻信號的顯示刷新。
本設計使用FPGA產生DVI信號時序邏輯[2],產生標準的RGB并行數據和行場同步信號送入DVI編碼芯片,DVI編碼芯片將視頻信號編碼為TMDS視頻信號流, DVI視頻需要顯示的數據由CPU通過8080接口送入FPGA,FPGA將需要顯示的數據接收后放入顯存中,需要顯示時從顯存中讀出數據顯示,由FPGA內部邏輯完成顯示數據的產生和刷新工作。
2 "DVI視頻接口
數字視頻接口(DVI)是基于Silicon Image公司的專利技術,使用TMDS(Transition Minimized Differential Signaling)技術來傳輸數字信號,TMDS運用先進的編碼算法把8 b數據(R、G、B中的每路基色信號)通過最小轉換編碼為10 b數據(包含行場同步信息、時鐘信息、數據DE、糾錯等),經過DC平衡后,采用差分信號傳輸數據,它和LVDS、TTL相比有較好的電磁兼容性能,可以用低成本的專用電纜實現長距離、高質量的數字信號傳輸。
lt;E:\王芳\現代電子技術201502\Image\09t1.tifgt;
圖1 DVI視頻信號發生器系統框圖
TMDS通過異或及異或非等邏輯算法將原始信號數據轉換成10位,前8位數據由原始信號經運算后獲得,第9位指示運算的方式,第10位用來對應直流平衡(DC?balanced)即指在編碼過程中保證信道中直流偏移為零,電平轉化實現不同邏輯接口間的匹配,轉換后的數據以差分傳動方式傳送。這種算法使得被傳輸信號過渡過程的上沖和下沖減小,傳輸的數據趨于直流平衡,使信號對傳輸線的電磁干擾減少,提高信號傳輸的速度和可靠性。在DVI標準中對接口的無力方式、電氣指標、時鐘方式、編碼方式、傳輸方式、數據方式等進行了嚴格的定義和規范。在DVI標準中還增加了一個熱插拔探測信號,從而真正實現了即插即用。
3 "視頻信號發生器設計
基于FPGA的DVI視頻信號發生器采用ALTERA公司的FPGA芯片EP2C5T144C8N作為顯示邏輯產生的主要器件,顯存采用HYNIX公司的SDRAM芯片 HY57V641620,CPU采用意法半導體的STM32作為顯示內容發生單元,DVI編碼接口芯片采用Silicon Image公司的SiI9134芯片完成DVI信號的編碼。
3.1 "EP2C5T144C8N系列FPGA
EP2C5T144C8N屬于ALTERA公司的Cyclone Ⅱ系列FPGA,它具有4608個宏單元,119 808 b SRAM,內含2個PLL,核心電壓1.15~1.25 V,最高工作頻率可達320 MHz,輸入/輸出接口支持LVTTL, LVCMOS, SSTL?2, SSTL?18, HSTL?18, HSTL?15多種電平標準。
3.2 "SDRAM
在信息處理中,特別是在實時視頻圖像處理中,通常都要對實現視頻圖像進行處理,而這首先必須設計大容量的存儲器,同步動態隨機存儲器SDRAM以其價格低廉、容量大等優點,成為設計中最常用的顯存芯片。
同步動態隨機存儲器(Synchronous Dynamic Random Access Memory,SDRAM)同步是指 Memory工作需要同步時鐘,內部的命令的發送與數據的傳輸都以它為基準;動態是指存儲陣列需要不斷的刷新來保證數據不丟失;隨機是指數據不是線性依次存儲,而是自由指定地址進行數據讀寫。本設計中使用的SDRAM為HY57V641620HG,它采用67、108、864位CMOS工藝制造的SDRAM動態隨機存儲器,隨主存儲器同步輸入和輸出工作。容量由1M×16位的存儲器組成,具有16位數據總線,每個存儲體由16位、256個字符、4 096頁組成。采用3.3 V電源供電,所有引腳設計兼容LVTTL,所有輸入和輸出以時鐘為參考,內部數據功能在UDQM或LDQM里進行處理,內含4個地址解碼模塊,具有自動恢復和自身恢復功能,每64 ms可產生4 096個刷新周期,同時具有可編程控制功能。
3.3 "STM32F103VCT6系列ARM微控制器
STM32F103VCT6使用高性能的ARM Cortex?M3 32位的RISC內核,工作頻率為72 MHz,內置高速存儲器(高達256 KB的閃存和48 KB的SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和一個PWM定時器,還包含標準和先進的通信接口:多達2個I2C和SPI、3個USART、一個USB和一個CAN。供電電壓2.0 ~3.6 V,一系列的省電模式保證低功耗應用的要求。
3.4 "DVI編碼芯片SiI9134
SiI9134是Silicon Image公司的DVI接口芯片,它將標準的RGB并行數字信號在行場同步信號、像素時鐘信號和DE使能信號的配合下,編碼成符合DVI1.0標準的TMDS數字信號輸出,內核采用1.8 V供電,最高可支持36位顏色深度的1 080P@60 Hz視頻,內部集成了YUV轉RGB轉換器,可編程的數據使能(DE)生成器,可以滿足大多數的DVI視頻編碼需求。
4 "系統硬件設計
4.1 "電源部分硬件設計
整個電路系統需要的電源電壓有5 V,3.3 V,1.8 V,1.2 V規格的電壓,所以電路系統設計過程中采用AC?DC產生5 V電壓,再使用LDO將5 V電壓轉換成3.3 V、1.8 V、1.2 V需要的電壓。主電源使用金升陽LH05?13B05 AC?DC電源,它可將220 V交流電源直接轉換成直流5 V輸出,具有寬輸入電壓:85~305 VAC/120~430 VDC,軍工級低溫工作范圍:-40~70 ℃,轉換效率高達87%,滿足IEC60950、EN60950、UL60950安規認證標準,具有輸出短路、過壓、過流等保護功能。3.3 V的LDO芯片選用美國國家半導體公司的LM1085?3.3,將5 V電壓轉換成3.3 V它具有最大3 A的輸出電流,可以滿足本設計的要求。1.8 V和1.2 V的LDO芯片選用TI公司的TLV1117芯片,完成電壓轉換。電源電路設計見圖2。
lt;E:\王芳\現代電子技術201502\Image\09t2.tifgt;
圖2 視頻信號發生器電源電路
4.2 "DVI視頻接口部分硬件設計
由于SiI9134最大支持36位顏色深度,本設計使用的是24位顏色深度,所以在設計過程中將RGB三種顏色的低4位數據位接地,使用高8位數據位。SiI9134支持HDMI1.3標準,有音頻編碼功能,本設計中不涉及音頻部分,音頻信號管腳采用懸空處理,SiI9134功能可以通過芯片的I2C接口進行配置,在此采用STM32F103VCT6完成通過I2C接口對SiI9134的初始化,使其工作在DVI1.0模式下。SiI9134電路接口圖見圖3。
4.3 "SDRAM接口部分硬件設計[3?4]
由于動態存儲器存儲單元存在漏電現象,為了保持每個存儲單元數據的正確性,HY57V641620HG必須保證在64 ms內對所有的存儲單元刷新一遍。一個自動刷新周期只能刷新存儲單元的一個行,每次刷新操作后內部刷新地址計數器自動加“1”。只有在所有體都空閑(因為4個體的對應行同時刷新)并且未處于低功耗模式時才能啟動自動刷新操作,刷新操作執行期間只能輸入空操作,刷新操作執行完畢后所有體都進入空閑狀態。該器件可以每間隔7.8 μs 執行一次自動刷新命令,也可以在64 ms內的某個時間段對所有單元集中刷新一遍,本設計采用的就是SDRAM的自動刷新模式,下圖為HY57V641620HG與FPGA的接口電路設計圖見圖4。
4.4 "顯示數據產生電路設計
DVI接口需要顯示的數據由STM32F103VCT6產生后通過FSMC接口送進FPGA,可變靜態存儲控制器(Flexible Static Memory Controller,FSMC)是STM32系列中內部集成的高存儲密度微控制器特有的存儲控制機制。通過對特殊功能寄存器的設置,FSMC能夠根據不同的外部存儲器類型,發出相應的數據/地址/控制信號類型以匹配信號的速度,從而使得STM32系列微控制器不僅能夠應用各種不同類型、不同速度的外部靜態存儲器。在本設計中把FSMC接口配置成16位的8080接口模式與FPGA通信,實現數據交換,接口電路如圖5所示。
lt;E:\王芳\現代電子技術201502\Image\09t4.tifgt;
圖4 HY57V641620HG與FPGA接口電路
lt;E:\王芳\現代電子技術201502\Image\09t5.tifgt;
圖5 STM32數據顯示數據發生接口電路
5 "系統軟件設計
5.1 "FPGA邏輯軟件設計
顯示邏輯需要與STM32通信完成顯示數據的讀取,并將其送入SDRAM中緩存,完成緩存數據更新后,即可從SDRAM中讀取數據通過DVI視頻信號編碼邏輯生成需要的RGB并行數據信號,送入DVI編碼芯片,編碼為串行TMDS視頻數據。數據讀寫顯示邏輯的原理框如圖6所示。
5.2 "顯示數據發生軟件設計[5]
FPGA顯示邏輯類似于計算機顯卡的功能,本身不產生顯示內容,需要顯示的內容由CPU產生,本設計使用STM32來產生顯示數據, STM32上電完成內部硬件初始化后,STM32從存儲于自身FLASH的字庫中讀取需要顯示的字庫信息,通過FSMC接口送入顯存SDRAM中,完成一幀圖像的輸入后,由啟動FPGA顯示邏輯,完成DVI數據輸出的顯示刷新,顯示程序的流程圖如圖7所示。
lt;E:\王芳\現代電子技術201502\Image\09t6.tifgt;
圖6 數據讀寫顯示邏輯框圖
lt;E:\王芳\現代電子技術201502\Image\09t7.tifgt;
圖7 數據顯示程序流程圖
6 "實驗結果和結論
為了驗證DVI視頻信號發生器的實際效果,使用視頻信號采集器對信號發生器實際的輸出信號進行采集記錄,并使用IRIG?B碼為采集器授時,采集器完成圖像采集記錄并圖像疊加時間信息,測試視頻的截圖見圖8。
lt;E:\王芳\現代電子技術201502\Image\09t8.tifgt;
圖8 視頻信號采集器采集的圖像
7 "結 "語
基于FPGA的DVI視頻信號發生器,在設計過程中,創新性地使用STM32外部特有的FSMC接口,完成了處理器和FPGA的數據交換,以較低的功耗和較小的板卡體積實現了多種時序DVI視頻信號的產生,為便攜式工業DVI視頻應用提供了一種新的解決方案。
參考文獻
[1] "林國平.新型DVI數字視頻接口電路的研究[J].電子設計工程,2011,19(12):163?165.
[2] 李政江,陳文彬,何其銳.DVI接口應用系統的設計[J].國外電子元器件,2007(3):31?34.
[3] 劉云清,佟首峰,姜會林.利用FPGA實現SDRAM控制器的設計[J].長春理工大學學報,2005,28(4):47?50.
[4] 田豐,鄧建國,李巍,等.SDRAM控制器的設計與VHDL實現[J].電子技術應用,2005,31(2):74?77.
[5] STMicroelectronics. STM32 Reference manual (RM0008) [EB/OL]. [2012?11?21]. http:// www.download.csdn.net.
[6] 陳沛文.圖像DVI輸出的FPGA實現[J].現代電子技術,2005,28(10):63?65.