基于USB2.0的视频图像处理芯片实现方案
步骤主要分为以下三步:
图4 Bayer 模块TestBench 模型示意图。
(1)由MATLAB 从10 张有共同坏点位置的不同JPEG 图像中读取8bit 无符号RGB 数据,然后由相应的RGB 数据生成对应的Bayer 数据,并以10个。txt 文本文件来保留这10 张图像的Bayer 数据,这十张文本文件同坏点位置信息一起作为测试输入激励。
(2)把测试输入激励,分别输入Bayer 模块和MATLAB 模拟Bayer 模块功能的程序中,可以分别得到大量的信息,这些信息都是由。txt 文本文件来保存,其中MATLAB 模拟程序完成的功能与Bayer 模块完成的功能相同,只是两者运行的平台不同。
(3)比较由MATLAB 模拟程序与Bayer 模块所生成的大量。txt 文本文件,由于模拟程序和硬件模块具体实现的机制不同(模拟程序采用了矩阵运算,而硬件模块采用2 条线的行缓冲+六级流水线的方式实现),如果它们产生的数据一致,则可以很好的说明硬件模块完成了预期的功能, 然后再运用MATLAB 显示函数,把原始图像数据与修正后的数据以图像的形式显示出来,这样能以更加直观的形式来观察对应的图像效果。
图5 所示的三张图片是仿真验证的过程中所涉及到图片,从图中可以看到Bayer 模块的设计达到了预期的目的。
图5(a) 用于生成Bayer 数据的原始图像。
图5(b) 由Bayer 数据未作坏点修正直接复原出的图像。
图5(c) 由做了坏点修正的Bayer 数据复原出的图像。
5.2 FPGA 上的验证
5.2.1 FPGA 上验证平台的搭建
图6 所示为本设计的FPGA 验证平台示意图。
图6 FPGA 验证平台示意图。
PC 与一块USB2.0 PHY板通过USB2.0 总线连接,USB2.0 PHY 板与FPGA 开发板由标准UTMI 接口连接。Sensor 板主要是采用美光的MT9V112 sensor 板,I2C 接口主要是用于MCU 对Sensor 的控制,Data 总线包括数据总线和数据控制总线。而硬件MCU 模块、MCU Bus Interface 模块、USB2.0 SIE 模块、DMA 模块、PPU 模块和PU 模块均已综合生成FPGA 下载程序下载到FPGA 中。
5.2.2 验证过程及结果
首先在PC 端需要安装几个工具软件,用于观察USB设备描述符信息的USBViewer,用于捕捉USB 枚举信息的工具软件BusHund.按图6 所示连接所有硬件,然后,将USB2.0 PHY 板的USB 接口插入到PC的USB 插口,并打开USB 视频管理工具软件,能够看到流畅的视频图像。专用测试工具软件可以测试图像帧速率。在验证的过程中,可以看到本方案所设计的芯片支持的最大分辨率为 640×480(VGA),最大分辨率时的帧速率约为15~20fps,基本达到了设计要求。
图7 所示为PC 机上安装的USB 数据捕捉软件工具捕捉的视频图像数据,经分析这些数据证明图像数据正常传送至PC 用户。
图7 BusHound 捕捉的图像数据。
图8 是通过本系统在PC 机上使用USB 视频工具软件Cyberlink YouCam 捕捉到的图像。
图8 在本系统基础上捕捉到的图像。
由上图可以看出本设计能够稳定地输出图像,能够稳定地实现设计要求。并且经过反复的测试和评估,表明本设计达到了设计要求。表1 为经测试能够实现的主要技术指标。
表1 实现的主要技术指标
6 结束语
本文设计了一种基于USB2.0 的视频图像处理芯片,通过功能仿真和FPGA 验证,表明达到了设计要求,完成了设计任务。随着FPGA 技术不断发展,使用FPGA 处理图像信息已成为图像处理领域中的一个发展趋势,特别是在对图像处理速度有较高要求的实时图像处理系统中,FPGA 将更能体现其在速度与灵活性方面的优势。
参考文献:
[1].ROM datasheethttp://www.dzsc.com/datasheet/ROM+_1188413.html.
[2].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.
[3].VGAdatasheethttp://www.dzsc.com/datasheet/VGA_2568786.html.
- 利用FPGA实现外设通信接口之: 典型实例-USB 2.0接口的设计与实现(06-05)
- 利用FPGA实现外设通信接口之:利用FPGA实现USB 2.0通信接口(06-05)
- 基于总线的嵌入式高速图像通信系统设计(12-21)
- 基于USB 2.0数据采集系统的程序设计(12-21)
- USB2.0接口全接触(12-14)
- 如何轻松地将USB 2.0变为USB Type-C(12-13)