光电显示
不同厂家的图像传感器,驱动采集方式,不尽相同,无非是初始化接口是IIC还是SPI,视频接口是DVP还是LVDS还是MIPI,最后转成数字后都是逐行扫描的像素时序方式,以及色彩的还原方式等,因此,万变不离其宗!
这里依然选用个人设计的,4款成熟稳定的摄像头:OV7725、OV5640、MT9V034、AR0135。由于前面已经设计好了DDR3_Control_2Por模快,那么显示和存储都已经搞定,就差采集这一块了。基于OV7725的图像采集系统,在我的《FPGA设计技巧与案例开发详解》中已经无比极其详细的描述了,因此在这里主要阐述摄像头的驱动框架,以及不同摄像头的驱动差异等。这里还是以OV7725/OV5640为例,框图如下所示:
1)首先提供27MHz像素时钟后,采用i2c_timing_ctrl模块完成OV7725/OV5640的初始化,初始化参数从I2C_OV7725_RGB565_Config获取。
2)待Senor初始化完成后,COMS_Capture_RGB565负责OV7725/OV5640 RGB565视频数据的采集,并转换为RGB888输入给DDR3_Control_2Port模块(设计接口按照32bit,冗余8bit)。
3)lcd_driver根据640*480或1920*1080分辨率时序,从DDR3_Control_2Port中获取视频数据,实时显示与HDMI显示器或LVDS LCD。
万变不离其宗,但是略微有点差异的是,MT9V034/AR0135为16bit I2C初始化,并且视频格式为灰度(R=G=B=Y),因此视频采集模块也稍微有差异(CMOS_Capture_RAW_Gray)。此外MT9V034采用752*480 Crop到640*480的模式,而AR0135则直接捕获1280*720的图像,除此之外和OV5640/OV7725一样。相关的框图如下所示
由于多年的基础储备,这块整体数据流我真没仿真,有兴趣的朋友可以自己再折腾下,或者以HDMI/LCD显示的实际效果为准。
备注:如果显示介质是LVDS LCD,则OV5640/AR0135都需要Crop到1024*600分辨率,而OV7725/MT9V034则以ROI显示在LVDS LCD上。
全部0条评论
快来发表一下你的评论吧 !