振南网站还在继续美化改进,暂时提供一个平台来发布振南的实验和相关资料!
http://www.znmcu.cn/znx_exps_all_ov7670_duiguan_detail.html
振南QQ:987582714 群:198521880
振南ZN-X开发板上OV7670摄像头模块+TFT液晶 实时图像流畅显示驱动原理与思想详解 在《振南znFAT》一书中,振南提到过一个实验:OV7670摄像头实时流畅地显示在TFT液晶上。很多人都来详细询问为什么图像显示得如何流畅,根本看不出任何卡顿的现象。有些人可能认为是我使用的CPU芯片性能很强。但是近期在我发布了基于ZN-X开发板51平台的OV7670摄像头+TFT液晶显示实验之后,人们发现它依然很流畅。这就让大家非常纳闷了:“仅凭51这么弱的CPU硬件性能,到底是如何实现如此流畅的显示效果的呢?” 振南要说:“振南ZN-X开发板中的OV7670摄像头实时显示的驱动原理与设计思想使它并不十分依赖于CPU性能,只要CPU不是太烂,都能够实现流畅的图像显示效果!” 振南形象地称这种驱动方式为:“数据对灌!” 1、传统的驱动方式 如下图: 对于摄像头显示在TFT上,人们的想法通常如上图所示。CPU读取摄像头的像素数据,先缓存在RAM中,然后再写入到TFT中。这样一来,图像显示的流畅度就对CPU有很强的依赖性了。CPU读取像素的速度、内部RAM读写速度、CPU主频、写像素的IO速度等等,这些都可能成为造成图像显示不够流畅,产生卡顿现象的瓶颈。 2、振南的“对灌”驱动方式 如下图: “对灌”的主要思想是总线!如上图,我们将摄像头的8位数据输出端口、TFT的8位数据端口(TFT有16位与8位两种接口方式,这里使用8位接口方式)、还有CPU芯片的8位IO端口,全部一一连接在一起。 主要工作过程是这样的:CPU首先对摄像头芯片进行一些必要的配置(通过SCCB总线),设计它的像素输出格式和速度(比如配置为RGB565数据,它与TFT的颜色格式相匹配)、一些同步信号的极性等等,然后等图像数据顺利写入到的自带的FIFO中后(CPU通过摄像头的场同步信号便可知道是否已有新的图像在FIFO中)。CPU操作RD-CLK信号让FIFO输出数据到8位总线上,然后再操作TFT-WR信号让位于8位总线上的数据直接写入到TFT液晶中。在此期间,CPU的IO端口一直保持高阻态,对不对总线产生影响(当然,在此过程中,CPU如果想读总线上的图像数据,也一样可以读到!这也造就了振南以后将要发布的数码相机、录像机等基于图像采集的高级实验,在CPU采集图像或视频存到SD卡的同时,TFT液晶还能保持流畅的显示)。 可以看到,在这种驱动方式下,摄像头数据是在CPU的读写信号的同步控制下被直接写入到TFT液晶中的,而不必进入CPU。所以,这就是振南所说的“摄像头流畅显示并不十分依赖于CPU性能”,当然如果控制读写信号的IO速度太慢的话,也会造成图像显示比较慢!! 以上就是“振南的摄像头TFT对灌思想”!!
|