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毫秒). ...
随机推荐
- HTML5 localStorage使用方法及注意点
html5新增了在客户端存储数据的新方法:1.localStorage - 没有时间限制的数据存储:2.sessionStorage - 针对一个session的数据存储,当用户关闭浏览器窗口后,数据 ...
- Day10 - JS 实现 Checkbox 中按住 Shift 的多选功能
Day10 - JS 实现 Checkbox 中按住 Shift 的多选功能 作者:liyuechun 简介:JavaScript30 是 Wes Bos 推出的一个 30 天挑战.项目免费提供了 3 ...
- Python窗口学习之搜索框美化
初学tkinter,感觉这个插件虽然是做界面的,但是没有html,也没有android那么人性化 既没有画圆角长方形的办法也没有添加透明按钮的办法(可能是我没找到) 所以自己用canvas画了两个扇形 ...
- JavaScript实现按钮改变网页背景色
运行效果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...
- CSS简单样式练习(六)
运行效果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...
- vue上拉加载下拉加载
npm i vue-scroller <scroller :on-refresh="refresh" :on-infinite="infinite" :n ...
- NodeJs学习日报day9——操作数据库
const mysql = require('mysql') const db = mysql.createPool({ // 数据库的ip地址 host: 'localhost', user: 'r ...
- python 包之 redis 数据库操作教程
一.安装 redis 是一个 Key-Value 数据库 Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型 pip inst ...
- B3log开源博客compose搭建
B3log开源博客搭建 docker 安装 yum install docker-ce-17.12.1.ce docker-compose 安装 curl -L https://github.com/ ...
- 记一次jenkins发送邮件报错 一直报错 Could not send email as a part of the post-build publishers问题
写在前面 虽然Jenkins是开源.免费的,好处很多,但有些功能上的使用,我个人还是很不喜欢,感觉用起来特别麻烦.繁琐. 为什么? 就拿这个邮件配置来说吧,因重装系统,电脑需要配置很多东西,结果今天就 ...