NI 985x cRIO CAN的同步



主要软件:
主要软件版本: 2.3
主要软件修正版本: N/A
次要软件: LabVIEW Modules>>LabVIEW FPGA Module
硬件:

问题: 不管什么时候只要你想要同步处理,例如一个DAQ的时间戳或者常用通信,对于NI 985x CAN模块时间戳,你需要考虑以下问题。

解答: 所有的C-系列模块都是使用的同一个cRIO 40MHz的时基。这就意味着在通信启动后,在时间戳之间没有漂移.
每个处理通常都会在初始化过程中开始生成时间戳,这个初始化过程是由 “Start” 或 “Auto Start” 函数完成的. 这是由你的FPGA程序代码来触发的,有时也不是如此。比如985x “Auto Start” 就不是由函数调用来启动通信的.
但是,取决于什么时候或者以怎样的顺序,不同的进程的时间戳可能有偏差。
因为在时间戳之间是没有漂移的,所以如果你知道偏差值,就能够比较时间信息.
“cRIO_SYNC_CAN 例程显示了如何计算NI 9853 C系列模块和第二个进程的偏差.
在这个例子中第二个进程是一个软件定时器. 它从LV的“Tick Count”函数中计数100ns的事件 .
985x 的时间戳也有100ns的精度,并且是在模块中产生的,不管何时在某个CAN的端口上收到帧.
这是从985x驱动中获取时间戳的唯一方式.
如果你在cRIO设备上运行该例程,你会发现在两个时间戳之间的差别通常在130到150次(100ns的倍数). 也就是说偏差量是13到15us(微妙).
这个偏差量算上了启动CAN节点和定时器进程的时间差,以及985x驱动需要从SJA CAN控制器到LV FPGA I/O节点去处理帧和帧时间戳的时间.
另外,也可能有软件定时器和从一个进程转到另一个进程中的的小故障. (局部变量)
但是最终不会影响到偏移量的大小,只要知道它的存在并且知道它是一个固定值就好.

相关链接:

附件:





报告日期: 09/28/2007
最近更新: 12/03/2007
文档编号: 4DRA7KJL