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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • INT0中断_中断请求寄存器

    INT0中断_中断请求寄存器 当进程执行系统调用时,先调用系统调用库中定义某个函数,该函数通常被展开成前面提到的_syscallN的形式通过INT0x80来陷入核心,其参数也将被通过寄存器传往核心。 在这一部分,我们将介绍INT0x80的处理函数system_call。 思考一下就会发现,在调用前和调用后执行态完全不相同:前者是在用户栈上执行用户态程序,后者在核心栈上执行核心态代码。那么,为了保证在核心内部执行完系统调用…

    2025年11月5日
    3
  • npm和cnpm安装

    npm和cnpm安装npm和cnpm安装1.npm安装(1)去nodejs官网下载:http://nodejs.cn/download/(2)安装到目录C:\ProgramFiles\nodejs下(3)打开命令提示符窗口,window+R,输入cmd命令行输入npm-v如果报错,就打开控制面板-系统和安全-系统中打开高级系统配置,把nodejs的安装目录添加到环境变量中,例如我的就是C:\Prog…

    2022年10月15日
    2
  • django插件大全_裸缸用什么过滤器

    django插件大全_裸缸用什么过滤器前言如果需要满足前端各种筛选条件查询,我们使用drf自带的会比较麻烦,比如查询书名中包含“国”字,日期大于“2020-1-1”等等诸如此类的请求,Django-filter这个组件就是要解决这样的问

    2022年7月29日
    6
  • Centos7配置MySQL读写分离[通俗易懂]

    Centos7配置MySQL读写分离[通俗易懂]背景82和83两台Mysql已经实现了主从复制。即将使用mysql-proxy进行读写分离,配置192为proxy,写82读83。mysql-proxymysql-proxy是一个处于客户端和服务器之间的中间件,它可以检测,分析或改变它们的通信。简单说就是一个中间层代理,一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载…

    2022年5月30日
    51
  • 方差、协方差、标准差、均方差、均方根值、均方误差、均方根误差对比分析[通俗易懂]

    方差、协方差、标准差、均方差、均方根值、均方误差、均方根误差对比分析[通俗易懂]方差、协方差、标准差(标准偏差/均方差)、均方误差、均方根误差(标准误差)、均方根值本文由博主经过查阅网上资料整理总结后编写,如存在错误或不恰当之处请留言以便更正,内容仅供大家参考学习。 方差(Variance) 方差用于衡量随机变量或一组数据的离散程度,方差在在统计描述和概率分布中有不同的定义和计算公式。①概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏…

    2022年9月30日
    3
  • 什么是php递归函数及简单实例讲解

    什么是php递归函数及简单实例讲解

    2021年6月12日
    99

发表回复

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

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