欢迎光临散文网 会员登陆 & 注册

神电测控:LabVIEW FPGA番外篇:实验65-FPGA产生和解析IRIG-B串行时间码-回环实验

2021-07-11 23:57 作者:神电测控  | 我要投稿

        现在很多基于时间同步的授时系统(例如GPS)里面常常会涉及到串行时间码,例如IRIG-B协议,实际上就是将时间戳转换成一个单总线脉冲序列,通过一个数字脉冲序列来表征不同的时间信息。好处在于只需要一个DIO就可以实现时间信号的传递和同步了,一般会配合PPS秒脉冲信号一起使用,方便校准和同步。

        为了方便用户理解IRIG-B协议的本质,我们在一块FPGA开发板上(比如,黑金的Spartan6、ARTIX7、KINTEX7开发板均可)使用构建了一个IRIG-B串行时间码的回环实验,由于FPGA是真正意义上的并行器件,所以我们可以在FPGA里面利用LabVIEW编写两个独立的程序:一个负责模拟将时间信号(时间戳明文)按照IRIG-B协议转换为脉冲序列,通过一个FPGA DIO引脚发送出去;另外一个线程负责接收IRIG-B脉冲序列,然后将具体的时间信息解析出来。

        图1显示的是IRIG-B串行时间码的产生发送和接收回环项目浏览器截图。双击打开里面的FPGA主VI,可以看到前面板上有非常生动的IRIG-B传输演示过程,左边是将已知的时间信号转成IRIG-B脉冲序列发送出去,右边则是将接收到的脉冲序列按照IRIG-B协议解析出来,如图2所示。

图1:FPGA产生发送和接收IRIG-B串行时间码回环实验项目浏览器
图2:FPGA生成发送和接收IRIG-B串行时间码回环程序前面板

        切换到程序框图,可以看到后面板有两个完全并行独立的FPGA代码,上面的FPGA while循环负责将前面板上的时间戳信号转成IRIG-B脉冲序列发送出去,下面的while循环负责将接收回来的脉冲序列按照IRIG-B协议解析出正确的时间戳信息,如图3所示。

图3:FPGA生成发送和接收IRIG-B串行时间码回环程序框图

        对IRIG-B协议感兴趣的用户可以百度一下,然后对照着本节实验下位机FPGA主VI里面的两个状态机程序,就会一目了然。实际上,很多协议用LabVIEW状态机编写还是非常容易的,大家不用害怕,只要会一点LabVIEW,再复杂的FPGA程序都能用LabVIEW写出来!

        这个IRIG-B回环实验的价值在于:如果今后用户需要模拟IRIG-B硬件在环HIL半实物仿真,可以将这个FPGA里面的IRIG-B发送程序拷贝过去;如果用户想要解析市面上的时间同步授时系统或者GPS发出来的IRIG-B脉冲信号,可以将这个实验里面的IRIG-B接收解码程序拷贝到自己的FPGA里面。

        本节实验真正做到了LabVIEW FPGA代码即插即用,实际上,很多FPGA应用程序无需从底层写起,用户可以直接参考我们《LabVIEW FPGA开发宝典》里面提供的FPGA案例程序,成熟稳定可靠!

神电测控:LabVIEW FPGA番外篇:实验65-FPGA产生和解析IRIG-B串行时间码-回环实验的评论 (共 条)

分享到微博请遵守国家法律