DVP协议

DVP协议Whatisadigitalvideoport?Camera的并口传输方式很多地方叫做dvp接口,但是并没有统一的标准。AsfarasIknow,thereisnoDVPspecbutthepinoutseemstobesomethingofadefactostandard,eventhoughpartmanufacturers…

大家好,又见面了,我是你们的朋友全栈君。

What is a digital video port?

Camera的并口传输方式很多地方叫做dvp接口,但是并没有统一的标准。

As far as I know, there is no DVP spec but the pinout seems to be something of a de facto standard, even though part manufacturers doesn’t always call it DVP.

结合《Advance Information AR0144AT Developer Guide1/4−Inch CMOS Digital Image Sensor》深入探究一下DVP的通信协议。

Protocol

The AR0144AT image data is read out in a progressive scan(逐行扫描).

Valid image data is surrounded by horizontal(水平的) and vertical(垂直的) blanking (see Figure 1). The amount of horizontal row time (in clocks) is programmable through R0x300C(1488).The amount of vertical frame time (in rows) isprogrammable through R0x300A(827). Line_Valid (LV) is HIGH during the shaded(阴影区域)region of Figure 1.

DVP协议

 

DVP的信号脚名称及作用:

PCLK:pixel clock ,像素时钟,每个时钟对应一个像素数据;

HSYNC:horizonal synchronization,行同步信号

VSYNC:vertical synchronization,帧同步信号;

DATA:像素数据,视频数据,具体位宽要看ISP是否支持;

XCLK:或者MCLK,ISP芯片输出给驱动sensor的时钟;

DVP的时序图FV为帧同步信号,LV为行同步信号(LV为高时,传输有效的像素数据)。

DVP协议

 

从ar0144的图像读出的空间插图中可以结合时序图分析:

  1. FV为高电平时为一帧数据的传输开始信号
  2. LV为高电平的为一行数据的传输开始信号(只传输有效数据)
  3. FV在低电平的时候传输vertical blanking
  4. LV在低电平的时候传输vertical blanking和horizontal blanking
  5. Blanking并不是像素数据,而是浪费的pclk,是一种时间上的概念,ISP或者BB也不会收到像素数据。

 

DVP协议

DVP协议

DVP协议

A为1280传输有效的行数据;

P1,P2是固定的6个clk的blank;

Q为horizontal blanking 1488-1280=208 pixel clock

V一帧低电平的时间:(827+5-800)*1488=47616 pixel clock

 

所以我们可以计算:

已知:PCLK = 74.25M sensor有效的像素是1280×800

计算一帧消耗的pixel clock?

一帧高电平的时间Vvalid:

(A+Q)*800-Q+P1+P2 = 1488*800-208+6+6 = 1190204 pixel clock

所以一帧的时间是Tf = V+Vvalid = 47616 + 1190204 = 1237820 pixel clock

 

那么每一帧的时间 = 1237820/74250000 = 0.01667s=16.67ms

帧率:1/16.67ms = 60fps

 

结合ar0144的图像读出的空间插图可以看出如果要改变帧率只需要调整blank的时间就可以了。

 

并口的传输速度(如果使用10bit的数据):74.25M*10bit = 742.5Mbps,转换成mipi对应每lane的传输的数据量:742.5/4=185.625M bps

那么对应的mipi clock为:185.625/2 = 92.8Mhz (除以二因为mipi的clock双边沿采样)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134555.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C# 多线程 Parallel.ForEach 和 ForEach 效率问题研究及理解

    C# 多线程 Parallel.ForEach 和 ForEach 效率问题研究及理解最近要做一个大数据dataTable循环操作,开始发现运用foreach,进行大数据循环,并做了一些逻辑处理。在循环中耗费的时间过长。后来换成使用Parallel.ForEach来进行循环。一开始认为, 数据比较大时,Parallel.ForEach肯定比 ForEach效率高,后来发现,其实并不是这样。我用了1000万次循环测试:{CSDN:CODE:2601125}

    2022年7月19日
    20
  • Xshell安装docker「建议收藏」

    Xshell安装docker「建议收藏」docker基本组成镜像(image):docker镜像好比一个模板,可以通过这个模板创建容器服务,例如:tomcat镜像===>run===>tomcat01容器(提供服务器)通过这个镜像可以创建多个容器(最终服务或项目在容器中运行)容器(container):docker利用容器技术,独立运行一个或一组应用,通过镜像来创建。启动、停止、删除基本命令目前就可以把这个容器理解为就是一个简易的linux系统仓库(repository):存放镜像的地方,类似maven中央仓库仓库

    2022年9月9日
    0
  • 小波变换分解与重构_小波变换和小波分解

    小波变换分解与重构_小波变换和小波分解转:天津大学小波分析宗婧1015202078原理可参考:https://wenku.baidu.com/view/73439a6d5901020207409cd5.html1、单层小波分解%1.单层小波分解%读入信号loadleleccum;s=leleccum(1:4000);%通过db4小波基进行离散小波变换[cA1,cD1]=dwt(s,’d…

    2022年10月21日
    0
  • pycharm断点调试教程_pycharm怎么debug

    pycharm断点调试教程_pycharm怎么debug前言如果你不会用IDE开发工具的debug,你在调试代码的时候可能会用print输出去调试,那样效率比较低。我们可以用Pycharm的debug来调试,当然如果你用的Jetbranis的其他产品,操作方法也是一样的。Pycharm的Debug(1)开启debug的方式:右键debug项目 工具栏的甲壳虫(2)常用按钮图解debugger栏:stepover(单步调试)程序代码越过子函数,但子函数会执行,且不进入。 stepinto(进入)在单步执行时,遇到子函数就进入.

    2022年8月26日
    6
  • AndEngine Text的使用心得

    AndEngine Text的使用心得

    2021年8月20日
    47
  • 敏捷开发: 超级易用水桶估计系统

    敏捷开发: 超级易用水桶估计系统

    2021年6月30日
    85

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号