摄像头采集图像经过处理后存储到内存,再从内存中读出发送到显示屏进行显示
本实验整体框架如上图所示:
使用CSI2RXIP和MIPI接口从OV9732摄像头读出图像数据。
由于显示屏显示480*800,但是CSI接收图像没有800行,于是确定在后续DSI使用过程
中,显示屏上半400行显示一幅图像,下半400行显示一幅图像。
在CSi接收模块中将原始图像1280*720截取484*402后输出到csi2dsi模块的外部用于处理,
输出的数据一帧多两行和一行多几个像素是为了后续图像处理需要横纵方向都要有冗余像
素。
pixel_4to1模块将像素流的从csi2dsi内部csi时钟转到block design中使用的FCLK_CLKo时钟,
同时将4个像素一拍的数据转成一个像素一拍输出,同时还可以通过配置参数对输出的图像
进行裁剪,例如上图中就是pixel_4to1输入的图像就是484*402通过参数设置就可以截取为4
80*400进行输出。
本次实验没对图像进行处理,通过raw8_to_gray24简单的将raw8填充到RGB888的三个
分量中,显示灰度图像,该模块输出的数据信号为32位,低24位为像素RGB,高8位填充0。
AXI_DMA_PX_WR是DMA控制模块,写一侧将32位图像数据(低24位有效,共占480*40
0*4字节)循环写入到一个DDR缓冲区中,读一侧则是将该缓冲区中的数据循环读出并输出。
显示屏一块480*800区域分成两块480*400的区域。通过DSITX模块将图像数据发送到显示屏,其中上半部分显示DDRO缓冲区的图像,下半部分DDR1缓冲区的图像。
本次实验中,模块连接的block design如上图所示:
Csi2dsi模块:
其中top_csi2dsi模块集成了前面几讲中讲述过的Csi摄像头控制模块和DSI显示屏控制模块,向外与摄像头的MIPI接口连接,与显示屏的MIPI接口连接,从MIPI接口接收摄像头数据 然后通过 csi_fifo_wr_en和csi_fifo_wr_data输出, 经过处理和缓存后,通过dsi0_fifo_wr_en和dsi0_fifo_wr_data读取图像数据然后通过Dsi输出到显示屏上半部分,通过dsi1_fifo_wr_en和dsi1_fifo_wr_data读取图像数据然后通过Dsi输出到显示屏下半部分。
CSI模块输出的RAW格式图像数据一拍是32位,带有4个8比特的像素,本次实验CSI模块
输出帧格式是484*402。