目前,FPGA用于图像采集传输处理的显示APP应用越来越多。 主要原因是图像处理领域的热和FPGA的强大并行处理能力。 本文以OV7725为例,较小地总结了相机使用的相关基础知识,为后续作铺垫。
XCLK:工作时钟输入,由主机生成,频率为24MHz;
HREF:行参考信号输出;
PCLK:像素时钟输出,由XCLK生成,用于控制器对图像数据进行采样(时钟速率5ns,比如PCL84MHZ,30fps);
VSYNC:场同步信号输出;
D[9:0]像素数据输出;
RSTB:复位输入,低电平有效;
PWDN:低功耗模式选择输入,正常工作需要下调;
SCL:SCCB管理接口时钟,最高频率400KHz;
SDA:SCCB接口串行数据总线;
plk引出了帧率的概念,单位是fps(framespersecond ),指每秒输出几张静止图像,帧率越高动态图像越平滑。 另外,SCCB总线非常接近IIC总线,主机的写入定时几乎一致,所以很多图像收集系统直接复用IIC控制器来配置图像传感器内部的寄存器。 这里给出大致的读写流程。 具体请参照参考文献2。 需要注意的是,SIO_C时钟信号在空闲状态下必须是笨蛋的指甲油。
写入:
读取操作(分为两部分) :
总之,SCCB和IIC的主要区别有以下两点。
IIC有重复启动的概念,读取操作先写设备地址,再写寄存器地址,然后重新开始,写设备地址,读取数据。 SCCB的读取操作中,最初写入寄存器地址后需要结束条件。
2 IIC主机向从机写入数据时,从机必须写入8bit的下一个时钟以降低总线响应主机。 IIC主机读取从属数据时,多字节连续读取除最后一个字节主语句外,在第9个时钟周期降低总线响应,单字节读取容易提升总线,在下一拍提供停止条件。 另一方面,SCCB的各phase 9位为don’tcarebit/nack,主写入从机第9位不感兴趣,读取从机数据不支持多字节操作,因此第9位的主机必须提升总线
其次,整体掌握输出图像数据和同步信号的关系。 照片是从《OV7725摄像头编程基本知识笔记》截取的,请参考文献3。
两个VSYNC高脉冲之间包含一帧图像数据,但只有HREF的愚蠢的指甲油期间的数据是有效的数据,每个HREF的愚蠢的指甲油区间对应一行图像数据。 通过这两个信号可以找到有效的图像数据。 OV7725相机支持多种图像输出格式。 这里介绍一般的RGB565格式。
图像数据在PCLK的下降沿输出,控制器在该上升沿进行采样。 如果选择此模式输入,则仅使用数据线的前8位。 可以看到,时序图显示了相邻的2字节数据内容,2字节表示1像素的点数据。 从上位开始,依次是R 5bit、G 6bit、B 5bit。 Ov7725图像传感器的像素数为30万,分辨率: 640*480,即每行有640个有效像素点,共有480行。 因此,各HREF高脉冲期间有640*2个PCLK周期,2个VSYNC高脉冲期间循环480次。
参考文献:
1 ov7725手册(可评论)文字百度文库https://wenku.Baidu.com/view/3e 5504004431 b 90 D6 c 85 c 764.html
2 OV7725学习的SCCB协议(一(- aslmer -博客公园3359 www.cn blogs.com/ASL mer/p/5965229.html
3 ov7725数码相机编程基本知识笔记本文字百度文库https://wenku.Baidu.com/view/D1 af 7a 731711 cc 7931 b 716 c6. html