一种基于LABVIEW FPGA应用的IRIG-B码解码方法

2016-12-01 07:02
黑龙江电力 2016年1期
关键词:码元解码时钟

傅 磊

(哈尔滨电机厂有限责任公司,哈尔滨 150036)



一种基于LABVIEW FPGA应用的IRIG-B码解码方法

傅 磊

(哈尔滨电机厂有限责任公司,哈尔滨 150036)

针对当前电力系统广泛应用的IRIG-B时间码,在由卫星同步时钟设备和LABVIEW实时控制器构成的测试平台上,采用基于LABVIEW FPGA模块的开发工具,给出了一种IRIG-B(DC)码的软件解码方法。试验证明:该方法能够正确接收IRIG-B(DC)码脉冲并解析成准确的时间,并为基于IRIG-B(DC)码的电力系统的时间同步提供实施基础。

时间同步;实时控制器;IRIG-B;解码;卫星同步时钟

时钟同步是保证电力系统正常运行和故障诊断的关键技术,对系统的故障定位和分析起着重要的作用,因此时钟同步是十分必要的。国家电网公司在“关于加强电力二次系统时钟管理的通知”中明确表示电力二次系统的对时方式原则上采用IRIG-B(DC)码方式[1-4]。其优势在于:时间同步环节简单,延迟时间短;精度高,小于1 μs;构建容易,利用单片机、微处理器、FPGA、CPLD等均可实现,并具有较高的时效性和准确性,能够满足电力二次系统对时间精度的要求。因此,在当前的电力二次系统中,IRIG-B(DC)码成为一种流行的时间同步方式[5-7]。基于此,本文论述一种IRIG-B(DC)码的解码方法,根据IRIG-B码的时间帧构成格式特征,利用卫星同步时钟设备的IRIG-B TTL输出接口,通过美国NI公司的CompactRIO实时控制器的FPGA模块和数字输入模块NI9401,及FPGA编程实现了IRIG-B(DC)时间码的解码。

1 IRIG-B(DC)解码测试平台

IRIG-B(DC)码解码测试系统如图1所示。

图1 IRIG-B(DC)码解码测试系统

Fig.1 IRIG-B (DC) code decoding test system

采用某厂商生产的卫星同步时钟设备K805,该设备提供NTP/SNTP信号、脉冲信号、IRIG-B信号或RS232、RS485时间报文等时间信息信号输出,可满足不同设备的时间同步接口要求。在本测试系统中利用其中的IRIG-B TTL信号。时间信号采集系统使用美国NI公司基于工业以太网的CompactRIO工业控制器搭配数字输入输出模块NI9401,该控制器包含了嵌入式处理、可热插拔的工业I/O模块和可重配置现场可编程门阵列(FPGA),面向工业过程实时控制,采用开放式、模块化结构设计,维护简单,升级方便。采用嵌入式操作系统,实时性强,该控制器的LabVIEW FPGA模块可以利用一个高度集成的开发环境,使开发人员能够更有效地设计复杂系统,而不需要学习开发传统的基于FPGA的系统所需要使用的底层软件工具和硬件描述语言(HDL)。通过基于LABVIEW语言的图形化编程方法即可实现FPGA模块的编程。而且CompactRIO的实时控制器与FPGA相结合,在实时控制器上可以实现毫秒级的程序循环周期,在FPGA上也可实现纳秒级的程序循环周期,因此能够根据不同的应用满足硬实时与软实时的需求[8-9]。由于IRIG-B(DC)的脉冲信号为毫秒级, CompactRIO的实时控制器最小实时周期为1 μs,在脉宽计数上会不准确。CompactRIO的FPGA背板上能实现最小25 ns的循环周期,因此在本测试系统中采用LABVIEW FPGA编程的方式实现IRIG-B(DC)解码。数字输入模块NI9401接收IRIG-B(DC)的TTL时间脉冲信号,在CompactRIO的FPGA模块中通过编程解码成正确的时间,获得的时间信息可以同步实时控制器的时钟,同时可以通过网络时间同步方式对上位监控计算机网进行网络时间同步。在实际的电气二次系统应用中,这样一个解码和时间同步过程,实际上完成了现场电气二次系统的时间同步过程。

2 IRIG-B(DC)解码实现

IRIG-B(DC)码是一种串行时间码,一个时帧包括100个码元,周期为1 s。每个码元周期为10 ms,采用不同宽度的脉冲,以二进制形式表示不同的时间,脉冲宽度为2 ms表示0,5 ms表示1,8 ms表示P,P为位置识别标志。每帧数据起始首先是帧参考点PR,之后每10个码元有1个位置识别标志,分别为P1,P2,…,P9,P0。根据IRIG-B(DC)码的特点,本文采用如下方式进行解码:由于PR和P0为相邻的2个连续的8 ms脉冲,因此可以作为获取时间帧的起始点,此外IRIG-B(DC)码的时间码所处的位置为第1、2、3、4个脉冲表示s,第6、7、8个脉冲表示10 s,第10、11、12、13个脉冲表示min,第15、16、17个脉冲表示10 min,第20、21、22、23个脉冲表示h,第25,26个脉冲表示10 h,第30、31、32、33个脉冲表示d,第35、36、37、38个脉冲表示10 d,第40、41个脉冲表示100 d[10]。因此只要将IRIG-B(DC)码解码到第41个脉冲就能提取到全部时间信息。所以在设计本程序时,采集NI9401模块的DI输入数据,确认能够收到时间脉冲串之后,再检测到2个连续的8 ms脉冲,则开始连续收取时间脉冲信息,对于每帧时间脉冲码从起始点开始至少收取并存储41个脉冲,同时,根据IRIG-B(DC)码含有时间信息的码元按照解码规则进行解码。解码计数及数据存储程序循环执行,程序循环周期为10 μs,采用定时计数的方法确定脉冲宽度,例如,如果一个脉冲计数为200,则说明脉冲宽度为2 ms。

为了提高接收脉冲的准确性,本程序设计在脉冲宽度检测过程中引入容错机制,用以防止尖峰脉冲的干扰,提高系统的可靠性。如果脉冲宽度计数值为10~300之间时认为是数据0,在400~600之间时认为是数据1,在700~900时认为是帧参考点或位置标志,在程序中为区别时间信息和位置标志,将其置为2,这样就消除了码元在传输或采集过程中出现的非标准化因素。IRIG-B(DC)码解码软件实现流程图如图2所示。

图2 IRIG-B码解码流程图

除上述处理方法以外,需要说明的一点是,在将通过计数获得的码元输出之前,通过二进制十进制转换分别解码出d、h、min、s信息,为了使输出的时间信息与 IRIG-B(DC)的帧参考标志对齐,将当前时间帧解码出的时间信息在下一个帧参考标志前输出,在当前帧时间信息的基础之上加1 s,因为当前解码后的时间已经不是IRIG-B(DC)的实时时间,所以不能立刻输出,只有经过这样的处理,才能实现解码时间信息与当前实际时间信息一致。

基于FPGA实现的IRIG-B(DC)码解码后,时间可以直接传送到CompactRIO实时控制器,从而对实时控制器进行时钟同步,同时也可以利用实时控制器通过以太网通信或串口通信的方式对相连的上位监控计算机进行时间同步,以及对在基于本控制器所开发的系统内所有能够通过网络或串口通信的设备进行时间同步。即使不使用LABVIEW实时控制器,只要控制器的处理周期能够满足时间脉冲宽度计数的要求,则本文所论述的方法仍然能够实现IRIG-B(DC)的解码,在实现解码所在控制器的时间同步的同时,通过控制器的串口或网络通信,仍然能够实现系统内的所有时钟设备的时间同步。

3 测试结果

基于LABVIEW实时控制器FPGA编程实现的IRIG-B(DC)解码测试结果如图3所示,其中波形显示部分为所采集的时间脉冲波形,此外也显示了每一帧时间数据的前50个码元的数据。

图3 IRIG-B码解码测试结果

根据包含时间信息的码元可以得到当前的时间信息,根据IRIG-B(DC)码的构成特征,可以得到其时间码元解码计算过程为:

第1、2、3、4个脉冲表示s,为0100,转换为十进制为4。第6、7、8个脉冲表示10 s,为100,转换为十进制为4。本程序中解码时间为500 ms,所以编程中将时间信息加1 s后再延迟500 ms输出,这样就能够使时间与IRIG-B的时间码起始帧对齐,则秒信息为45 s。

第10、11、12、13个脉冲表示min,为0001,转换为十进制为1。第15、16、17个脉冲表示10 min,为101,转换为十进制为5。则分信息为51 min。

第20、21、22、23个脉冲表示h,为0111,转换为十进制为7。第25,26个脉冲表示10 h,为00,转换为十进制为0。则小时信息为7 h。

第30、31、32、33个脉冲表示d,为0101,转换为十进制为5。第35、36、37、38个脉冲表示10 d,为0011,转换为十进制为3。第40、41个脉冲表示100 d,为10,转换为十进制为2。则天信息为235 d。

最终得到当前解码时间为235 d 7 h 51 min 45 s,实际时间为8月23日7时51 min 45 s,测试结果与当前时间一致,表明所实现的解码过程是正确的。

4 结 语

借助LABVIEW实时控制器CompactRIO,本文给出了一种IRIG-B(DC)码的解码方法。实际测试表明,该解码方法能够正确地解析出准确的时间。同时,所给的方法即使脱离本文所依靠的软硬件平台,只要控制器的处理周期能够满足时间脉冲宽度计数的要求,根据其基本解码思想仍然能够用于其他时间同步软硬件平台的解码程序设计。

[1] 张辉.新一代的IRIG-B码时统终端的设计[D].长春:吉林大学,2005.

ZHANG Hui. Design of new generation of IRIG-B code time system client [D]. Changchun: Jilin University, 2005.

[2] 郝帅,洪海丽,任宇飞.基于FPGA的 IRIG-B(DC)码编码与解码器设计[J]. 国外电子测量技术,2012,31(8):64-67.

HAO Shuai, HONG Haili, REN Yufei. Design of IRIC-B (DC) code encoder and decoder based on FPGA [J]. Foreign Electronic Measurement Technology, 2012,31(8):64-67.

[3] 吴旻,刘进进,王红光.高精度IRIG-B码对时解码模块的设计与实现[J].工业控制计算机,2012, 25(1):88-89.WU Min, LIU Jinjin, WANG Hongguang. Design and realization of high-accuracy IRIG-B code time setting decoding module [J]. Industrial Personal Computer, 2012, 25(1):88-89.

[4] 李军华.高精度IRIG-B的数字方法实现[D].北京:北京邮电大学,2007.

LI Junhua. The digital design approach of high accuracy IRIG-B[D]. Beijing: Beijing University of Posts and Telecommunications, 2007.

[5] 谢仁祥.IRIG-B码解码及网络校时的实现[D].成都:四川大学,2006.XIE Renxiang. The decode of IRIG-B and the realization of net time service [D]. Chengdu: Sichuan University, 2006.

[6] 刘浩,苏理,丁敏.IRIG-B码对时在保护测控装置中的实现[J]. 江苏电机工程,2007,26(1):48-50.

LIU Hao, SU Li, DINGMin. The realization of time synchronization with IRIG-B in digital protection and monitor devices [J]. Jiangsu Electrical Engineering, 2007,26(1):48-50.

[7] 秦茂,解建伟,曹成军,等.IRIG-B(DC)码对时在励磁系统中的实现[J].水电站机电技术,2013,36(5):28-29.

QIN Mao, XIE Jianwei, CAO Chengjun, et al. Realization of IRIG-B (DC) code time setting in excitation system [J]. Mechanical & Electrical Technique of Hydropower Station, 2013,36(5):28-29.

[8] 李诗雨.基于CompactRIO的远程雷达伺服控制系统的研究[D].大连:大连理工大学,2013.LI Shiyu. Research of remote radar servo control system based on CompactRIO [D]. Dalian: Dalian University of Technology, 2013.

[9] 王晓亮,谢朝辉,杨红官.基于LABVEW和FPGA的存储器测试系统设计[J].计算机测量与控制,2012,20(7):1763-1765.WANG Xiaoliang, XIE Zhaohui, YANG Hongguan. A new memory testing system based on LABVIEW [J]. Computer Measurement & Control, 2012,20(7):1763-1765.

[10] 何小庆,杨训,徐皇清.数字化变电站IRIG-B码对时解码方案研究[J].陕西电力,2013(6):39-42.HE Xiaoqing, YANG Xun, XU Huangqing. Analysis on clock synchronization of IRIG-B decoder scheme in digital substation [J]. Shanxi Electric Power, 2013(6):39-42.

(责任编辑 郭金光)

Research on IRIG-B decoding based on LABVIEW FPGA

FU Lei

(Harbin Electric Machinery Company Limited, Harbin 150036, China)

Aiming at IRIG-B time code widely used in power system, a kind of software decoding method of IRIG-B (DC) based on LABVIEW FPGA developing tool was proposed on the measurement platform based on satellite synchronization clock equipment and LABVIEW real time controller. The experiment verifies that the presented method can receive IRIG-B (DC) code pulse correctly and form the correct time, and supply the implement condition for time synchronization of power system based on IRIG-B (DC).

time synchronization; real time controller; IRIG-B; decoding; satellite synchronization clock

2015-08-15。

傅 磊(1978—),男,工程师,主要从事同步发电机励磁控制系统研究。

TP273;TP311.53

A

2095-6843(2016)01-0050-03

猜你喜欢
码元解码时钟
《解码万吨站》
别样的“时钟”
基于ZYNQ的IRIG-B(DC)码设计与实现
基于朴素贝叶斯的无线局域网络入侵防御技术研究
LFM-BPSK复合调制参数快速估计及码元恢复
古代的时钟
解码eUCP2.0
基于差分时延差编码的水声发射系统研制
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机