基于FPGA的固态体积式真三维显示系统视频驱动设计

时间:2022-10-11 03:07:29

基于FPGA的固态体积式真三维显示系统视频驱动设计

摘 要:固态体积式真三维显示系统的视频显示核心器件为数字微镜D4100投影系统,文章基于D4100的视频驱动特点及接口要求,以FPGA为核心设计了由DVI的数据接收处理至D4100投影显示系统,包括DVI视频解码、视频输出处理、时序控制以及LVDS发送模块,并实际设计电路板,与D4100联合调试,实现1024×768的图像投影显示。

关键词:固态真三维显示;FPGA;D4100视频驱动

中图分类号:TN141 文献标识码:B

引 言

与早期佩戴眼镜的三维显示系统相比,固态真三维显示系统是真正意义上在空间内显示一幅立体图像,具有无需佩戴眼镜、不会造成视觉疲劳以及多视角观看等优点。显示原理类似于面动成体,需要二十幅平面图像构成一幅立体图像,如需立体图像的刷新率达到50Hz,则每秒需要1,000幅平面图像的投影,要达到如此快的投影,就需要用到德州仪器独有的数字微镜高速投影系统。本文针对D4100投影系统的庞大的数据量传输以及图像的时序要求,基于FPGA的数据处理以及高速LVDS的信号传输,设计了D4100的视频驱动开发板。

1 系统硬件设计

针对1,024×768的DVI输入图像数据,设计解码、处理以及图像数据的发送模块,整个系统的硬件结构如图1所示。

1.1 DVI解码模块

视频驱动开发板的输入为DVI接口,图像分辨率为1,024×768。DVI接口基于TMDS电子协议作为基本电气连接。TMDS是一种微分信号机制,可以将像素数据编码,并通过串行连接传递。显卡产生的数字信号由发送器按照TMDS协议编码后通过TMDS通道发送给接收器,经过解码发送给数字显示设备。针对DVI接口传输的TMDS信号,需要由解码器解码成标准数字RGB信号,由FPGA接收与处理。选择ADI公司的AD9880作为解码芯片,它是一款单芯片集成式模拟接口和高清多媒体接口的接收机,支持TMDS转换为标准数字RGB信号。对于不用的应用场合,可以通过其提供的I2C接口对其进行配置。

1.2 视频信号处理模块

该模块需要158对引脚接收数字RGB信号和发送64对LVDS信号;需要内部开辟1,536Kbits的RAM缓存,选用Altera公司的cyclone III系列的EP3C80F780C6,其包含488个用户I/O,以及2,810Kbits的RAM容量,4个PLL,能够满足设计需要。

1.3 LVDS输出接口

D4100投影系统的数据输入接口为2个Samtec高速接插件QSE-060-01-F-D-A,其包含64对LVDS信号接口,2对差分输入时钟,2对差分输出时钟,28个单端信号接口,2个单端时钟输入接口,2个单端时钟输出接口以及3.3V和2.5V电源接口。视频驱动开发板的输出硬件接口选择为QTE-060-07-F-D-A高速接插件,与QSE为一对接插件。其中07表示接插之后两块PCB之间的距离为28mm,预留足够的空间放置元器件。

2 系统软件设计

2.1 数字RGB信号接收与缓存控制模块

D4100在投影显示中无法识别灰度等级,因此将图像的高低灰度等级数据分别传输给D4100显示,通过控制显示时间来显示灰度等级。图像数据由前端的AD9880解码芯片将TMDS信号解码为标准的数字RGB信号输入FPGA,通过信号接收和缓存控制模块将数据进行串并转换,将每个灰度等级的数据转换为384位宽的串行数据,根据灰度等级的不同分别缓存在不同FIFO中,如图2所示。

2.2 FIFO深度计算

对于分辨率为1,024×768的图像,每一个灰度等级对应的数据量为1024×768bits,存储在字节位宽为384的FIFO中,需要1,024×768/384的存储深度,即为2,048bytes。

2.3 FIFO数据读出控制模块

根据D4100的显示机制,该模块主要控制对FIFO的数据读取,将不同灰度等级的数据分别传输给后端的LVDS模块发送,并控制读取间隔时间使D4100正确地将不同灰度等级显示出来。部分源代码如下:

process(rdempty_low,rdwr_sw)

begin

if (rdwr_sw='0') then

if (rdempty_low='0') then

rd_low

else rd_low

end if;

else rd_low

end if;

end process;

process (rdempty_high,rdwr_sw,de)

begin

if (rdwr_sw='0') then

if (de'event and de='1') then

cnt1

end if;

else cnt1

end if;

if (cnt1>509) then

if(rdempty_high='0') then

rd_high

else rd_high

end if;

else rd_high

end if;

end process;

2.4 LVDS信号发送模块

该模块的主要作用是将由FIFO读出的数据通过并串转换以390Mbps发送给D4100显示,在配置LVDS_TX功能模块时,LVDS的通道数为64,串行化因子为6,即6个并行数据转换为1个串行数据,选用外部PLL。对于PLL的时钟输出配置如图3所示。

软件的功能框图如图4所示。

3 实验结果

实际设计并开发出一套视频驱动开发板,使用集成开发软件Quartus II中的信号采集工具软件SignalTap II对FPGA内部数据进行采集,对于1,024×768分辨率的图像,观察采集的数据,可以准确地将不同灰度等级的数据并串转换并分别存储在FIFO中,数据读出控制模块将不同灰度等级对应FIFO的数据读出,精确控制时间间隔,发送给LVDS进行发送。

视频驱动开发板与D4100联合调试,通过将显卡传输过来的DVI数据接收并处理传输给D4100投影系统,D4100准确地将数据显示出来,如图5所示。

4 结 论

针对1,024×768分辨率的图像,本文设计了D4100的视频驱动开发板的软硬件系统,以FPGA作为整个系统核心,可以提高系统灵活性,缩短开发周期。本设计为固态体积式真三维系统提供了一种高速投影方案并进行了验证,为以后固态体积式真三维系统的设计和开发提供了基础。

参考文献

[1] 全子一,门爱东,杨 波. 数字视频图像处理[M]. 北京:电子工业出版社,2005.

[2] 李 云,侯传教,冯永浩. VHDL电路设计实用教程[M]. 北京:机械工业出版社,2009.

[3] 张洪润,张亚凡. FPGA/CPLD应用设计200例[M]. 北京:北京航空航天大学出版社,2009.

[4] 顾升路,官向英,杨 超. Protel DXP 2004电路板设计实例与操作[M]. 北京:航空工业出版社,2011.

作者简介:鲁文武(1987-),男,安徽舒城人,合肥工业大学仪器科学与光电工程学院在读硕士研究生,研究方向为现代显示及成像技术,E-mail:。

上一篇:“云计算”环境下电子商务安全问题及对策研究 下一篇:浙江省高校面向普高学生开发 开设大学先修课程...