本文重点介绍蜂鸟处理器和OV5640模块的结合方式、OV5640的窗口调节,以及图像的resize方法,试图以一种简单快速的方式得到令人满意的OV5640的输出图像,为进一步的图像处理做准备。
我们首先实现了摄像头采集模块和HDMI显示模块,随后将二者与蜂鸟结合,结合方式如下所示,虚线框中为我们添加的部分,同时对蜂鸟原来的外设进行裁剪,仅保留需要的部分。这里OV5640和HDMI模块成为蜂鸟的外设,可以由处理器控制启动,并进行少量配置。同时为了降低开发难度,二者的很多配置是固定的,通过verilog硬件模块初始化,不受处理器控制,这样的优点是初始化速度快、降低了软硬件开发难度;缺点是缺少配置灵活性,不能在运行时修改配置,但是在一个工程中摄像头的配置经常是固定的,因此缺点带来的损失并不大。
摄像头模块和HDMI模块的具体结构如下,OV5640的寄存器配置保存在查找表中,Reg Config模块上电后自动将寄存器配置通过I2C接口发送给摄像头;Frame Capture提供摄像头的时钟驱动,并接收其采集的RGB数据,写到FIFO中,FIFO实现两个不同时钟模块的数据通信;我们实现了通过AXI接口直接访问DDR的DMA模块,包括读写两个通道,摄像头采集的数据通过写通道写入DDR,而HDMI显示模块通过读通道将DDR的数据显示到屏幕上;LCD Driver根据显示分辨率生成HDMI或VGA时序驱动;HDMI Out模块为Digilent提供的IP,其输出引脚直接接到HDMI接口上