使用OVM6946和OV426设计内窥镜吧!
决战1mm,OVM6946内窥FPGA方案开源
这篇来写硬件分析,这篇文章是个大的杂合体,如果有什么不对的地方请指教。
主要是我没有大哥FPGA的功力,我只能用现成的转换方案了。
但是所有的方案都是流式处理,对于图像处理来说,永远都是等着前一级的处理完才能干活。
所以都是:桥接处理器(同步输出),数字信号将被图像信号处理器(ISP)处理,最后输出图像数据。
其中中低端的内窥镜用图像传感器,主要是以OV的为主:
有OV6946+OV426、OV6948+OV426、OV9734、OH02A1S(带近红外增强)、OH0TA10+普通ADC(这颗料据说是业界最小,400×400相素,封装尺寸只有550μm*550μm)、DH01A10。
来自ZYNQ的一张图,这里就看DVP和SCCB的接口
接口是4个,ADC+SPI是相机侧的,IIC+DVP并口是输出侧的
稳妥
另外OV其实也是给了一系列的现成的解决方案:
五款
这个是处理完又是DVP输出去了,命令可以使用串口来控制
这个一看就很重型,直接USB输出
这个是追求实时性,没有过多的缓存
这个是注重外设控制
有时候是好几个摄像头仪器拍摄,各个系统之间进行同步曝光:
以上系统延迟范围为100ms到160ms,我不知道真的假的。
说回OV426,DVP是需要很多的引脚,DVP接口使用的是LVDS(Low Voltage Differential Signaling)电气接口标准,通常需要使用更多的电源和地线来支持高速数据传输。这使得dvp接口的设计更为复杂,并且需要更多的空间来布线。
DVP接口一个PCLK周期可以传输1byte数据,1byte各位并行输出,一行Pixel输出完后,Sensor输出一个HSYNC行同步信号,一帧所有行输出完成后,输出一个VSYNC帧同步型号。
PCLK、D0、D1都是高频信号线(低位变化更加频繁),Layout时注意屏蔽干扰、不可与其它高频线并排或重叠走线,最好用GND线或者低频线(如D7、D6)隔开。
这图最经典了
VSYNC:vertical synchronization,帧同步信号, 一帧一个信号,频率为几十Hz
HSYNC:horizonal synchronization,行同步信号,一般为几十KHz
PCLK:pixel clock ,像素时钟,每个时钟对应一个像素数据
DATA: 像素数据,视频数据,常见的有8位和10位
XCLK:也叫 MCLK,ISP芯片输出给驱动 sensor 的时钟,可由 ISP 主控或晶振提供,
一般是24MHz/27MHz
SCL: IIC 时钟引脚,用来读写sensor的寄存器
SDA:IIC 数据引脚,用来读写 sensor 的寄存器
这里引脚放一部分
信号线虽然是说没有mipi那么严格
但是也是要保证等长,看电源
电源推荐ADP123,狠狠的加电容
模拟的比数字的电容更多
layout
这个是内部的工作
输出图像时,一帧帧地输出,在帧内的数据一般从左到右,从上到下, 一个像素一个像素地输出。
数据线会在1个像素同步时钟PCLK的驱动下发送1字节的数据信号,所以2个PCLK时钟可发送1个RGB565格式(我没有找到具体是什么)的像素数据。像素数据依次传输,每传输完一行数据时,行同步信号HREF会输出一个电平跳变信号,每传输完一帧图像时,VSYNC会输出一个电平跳变信号。
可以看这个
OV426的ISP很弱,所以需要外部ISP来补齐。
AEC 功能通过自动调整图像传感器的曝光时间来控制进入传感器的光量,确保图像既不过曝也不欠曝。
AGC 功能通过调整图像传感器的增益来控制图像的亮度。增益可以被视为图像信号的放大系数。
这个是一个有趣的寄存器,颜色
这个也是,可以输出拜耳图像,直接就不处理了
DVP的协议吧,一般都认为是和VGA的协议差不多:只是VSYNC信号高低电平相反了。DVP协议的HREF信号是在HERF为高电平是直接输出像素数据,而VGA接口的HSYNC信号在HSYNC为高时先后输出显示后沿、有效图像数据、显示前沿。
这里给出一个时序图分析
这个是OV7670的
数字的区域是时间,t=1/8Mhz
至于这个并口输出,这个好像是最形象的一个
抓取的实测的 DVP 波形,黄色是输入时钟 ,蓝色是帧同步信号 ,红色是 PCLK(像素时钟)
另外,我找到了一个芯片,这个可以直接当成USB输出,可以探索一下
一个拓扑图
也可以远程传输
在一篇论文里面也找到了这个,还是逃不了的论文
https://www.mdpi.com/2075-4418/13/8/1445
https://xilinx.eetrend.com/content/2021/100113500.html