CoaXPress 时间戳 Time Stamping
背景
在CXP2.0之前,CXP没有定义Time Stamping时间戳的概念,但是用户对Time Stamping是有实际需求的,比如我们要对比多台设备拍摄同一个物体不同角度的照片,或者记录触发完成的时刻,如果相机没有时间戳,那么采集卡厂商就必须提供另外的方式实现该功能。
通常来说,HOST设备厂商自己也会提供一套时间戳的定义方法,这个时间戳通常从GPS秒脉冲获得参考,用于触发时刻的标记或者照片拍摄时刻的标记。在展开描述之前,笔者说明一下,虽然CXP2.0定义了time stamp,但是目前支持2.0的相机和设备厂商多数没有引进该功能,因此没有实际的应用场景作为参考,大家可以把这部分先做一个简单了解即可。
CXP Time Stamping简介
CXP2.0定义了一个统一时间戳,这个时间戳给来自HOST,DEVICE和软件关联的事件提供了统一的时间参考,可以用于记录准确的触发时刻,用来评估触发是否有被忽略或者延迟。
精度
CoaXPress 给time-stamping 提供10ns的精度(在100Mhz时钟基准下),通常对于area-scan类型的相机,10us的精度是最低要求,对于line-scan类型的相机,10ns是最低要求。
原理
Device和HOST都各自维护一个自己的本地时钟。两个时钟都是独立且运行的,相位、频偏,以及温漂都不相同。Device使用其本地时钟为内部事件添加时间戳,设备的时间戳全称为 “in the time of the Device”,也缩写为“t-dev”。类似地,HOST主机使用其本地时钟为任内部事件添加时间戳,全称“in the time of the Host” ,缩写 “t-Host”。
Device周期性的向HOST发送Heart Beat消息,该消息中就包含了 “t-dev”信息,HOST利用收到的 “t-dev”信息来建立HOST与DEVICE之间的时间关系,可以用一个简单的一阶线性方程表示他们的时间关系:
TimeT-HOST = (TimeT-DEV * CSF) + COF
1: TimeT-HOST 是t-host 时间参考;
2: TimeT-DEV是DEVICE时间参考;
3: CSF指Clock Scaling Factor;
4: COF 指 the Clock Offset;
通过这个公式,HOST可以将任意一个DEVICE发送的EVENT事件对应的时间戳转换为本地时间戳,这样HOST和DEVICE的时间戳就有了确定的关系,有同学会问:频率和相位不会漂吗?当然会,所以对精度要求高的应用可以取多次的均值计算或者最小二乘法做回归。
如果多台设备间还要做同步,那么根据同步的精度等级可以选用fIEEE 1588 (PTP) 同步方案或者秒脉冲同步、相同参考时钟和触发信号同步的方案,比如PXIe接口的HOST就可以利用PXIe_CLK100和PXIe_SYNC100实现ps级别的同步,具体的同步方法感兴趣的朋友可以留言,我们可以在后续博客中解释
CoaXPress 时间戳 Time Stamping的更多相关文章
- C# DateTime与时间戳转换
C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...
- nodejs中获取时间戳、时间差
Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳 ...
- EF里Guid类型数据的自增长、时间戳和复杂类型的用法
通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...
- fmt标签把时间戳格式化日期
jsp页面标签格式化日期 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> ...
- MySQL对时间戳的转换处理
开发中很多时候在数据库里都会存储Long类型的时间戳,而时间戳做比对会相对麻烦 我的绝决方案: SELECT FROM_UNIXTIME(LEFT(create_time,10), '%Y-%m-%d ...
- Kafka消息时间戳(kafka message timestamp)
最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下. Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 L ...
- Python时间戳和日期的相互转换
Python时间戳和日期的相互转换 (2014-03-17 11:24:35) 转载▼ 分类: Python 当前时间戳:time.time() 当前日期:time.ctime() 1.Pytho ...
- 时间戳TimeStamp处理
我获得这个时间戳是得想除以1000再处理的,看看你们的需要先除多少再处理 //时间戳处理 NSInteger time = timeStamp / 1000; NSNumber *timer = [ ...
- C#中DateTime.Ticks属性及Unix时间戳转换
1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...
随机推荐
- 小程序刷新webview小结
场景 在小程序其它页面做了操作,数据发生改变,回到webview页面时需要更新webview里面的数据.由于小程序没有提供与webview的实时通信能力,因此刷新页面是个可考虑的做法. 方法一 最常见 ...
- IDEA安装配置Scala环境
这里有详细步骤:windows上 IntelliJ IDEA安装scala环境 详细 初学
- PAT A1001 A+B Format
Calculate a+b and output the sum in standard format -- that is, the digits must be separated into gr ...
- 每日学习+AS小相册+导入图片标红的原因
学习内容: 1.TextView(怎么设置文本). Button(怎么设置按钮事件). ImageView(怎么设置图片) 2.LinearLayout的基本使用 今日成果:做了一个小相册 遇到的问题 ...
- react在移动端的自适应布局
react+flexible适配布局 (1)npm i lib-flexible --save (2)npm i postcss-px2rem --save (3)在 node_modules/rea ...
- TINY语言采用递归下降分析法编写语法分析程序
目录 自顶向下分析方法 TINY文法 消左提左.构造first follow 基本思想 python构造源码 运行结果 参考来源:聊聊编译原理(二) - 语法分析 自顶向下分析方法 自顶向下分析方法: ...
- FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言
之前FastAPI(七十)实战开发<在线课程学习系统>接口开发--留言功能开发分享了留言开发,这次我们分享查看留言 梳理这里的逻辑,这个接口要依赖登录. 1.判断用户是否登录 2.判断对应 ...
- Ubuntu安装开发者平台Backstage
Ubuntu安装开发者平台Backstage 什么是Backstage? Backstage是一个构建开发者门户的开源平台.通过支持一个集中的软件分类,Backstage可以保存并发布你的微服务和基础 ...
- Java类型转换详解
Java类型转换详解 最近有同学问:自动类型转换老是记不住,到底是大转小,还是小转大 其实这个不用死记硬背,很好理解,我们拿 int 和 short 来举例: int 是 4 字节,也就是 32 bi ...
- c++对c的拓展_内联函数
目的:保持处理宏的高效及安全性 解决的问题:1.c中预处理宏有些难以发现的问题 2.c++ 中预处理不能访问类成员,不能作用类的成员函数 作用:无函数调用时开销,又可像普通函数般进行参数.返回值类型安 ...