我们常用的电脑摄像头接口是USB接口,常见的智能手机上的摄像头是MIPI接口,还有一部分摄像头(比如某些支持DVP接口的硬件)是DVP接口(DCMI接口和DVP接口几乎一模一样)。USB(Universal Serial Bus)的简称,MIPI(Mobile Industry Process or Interface)是移动行业处理器接口,DVP是数字视频端口(Digital Video Port)的简称,CSI是相机串行接口(CMOS Sensor Interface)的简称。
DVP总线PCLK极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下,PCB layout较容易画。MIPI总线速率LVDS接口耦合,走线必须差分等长,并且需要保护,故对PCB走线以及阻抗控制要求高一点。
DVP是并口,需要PCLK、VSYNC、HSYNC、D[0:7];MIPI是LVDS低差分串口,只需要CLKP/N、DATA/N(最大支持4-lane,一般2-lane可以搞定)。MIPI接口比DVP的接口信号线少,由于是低差分信号,产生的干扰小,抗干扰能力强。DVP接口在信号完整性方面受限制,速率也受限制。500W还可以勉强用DVP,800W及以上都采用MIPI接口。
采集图像的基本方法
- 单片机直接采集(不推荐,需要高速IO口)。
- 某些32位的ARM核,MIPS核,x86核直接带有camera接口,可以直接使用,如三星的ARM9,SC2440,STM32F4等。该采集方法参考具体芯片器件的数据手册。
- DMA方式:这种方法一般需要具有DMA功能的16位以上的高级单片机来实现,通过DMA方式,直接从总线或者IO口采集数据送入内存,内存中的数据可以存储,计算,保留或者供显示使用。
- 间接采集并显示:这种方法最容易实现,能够直接看到采集的图像内容,实现采集就显示的功能。这种方法具有高帧速,一般QVGA可保证在30帧左右的速度。实际上,这种间接的办法其实就是将CMOS输出的数据直接送到显示屏(如TFT显示器的内存中)进行显示的,数据并不经过MCU(所以对MCU而言是间接采集),也无法经过MCU,因此可以达到较高的帧率。