傅 磊
(哈爾濱電機(jī)廠有限責(zé)任公司,哈爾濱 150036)
?
一種基于LABVIEW FPGA應(yīng)用的IRIG-B碼解碼方法
傅 磊
(哈爾濱電機(jī)廠有限責(zé)任公司,哈爾濱 150036)
針對當(dāng)前電力系統(tǒng)廣泛應(yīng)用的IRIG-B時間碼,在由衛(wèi)星同步時鐘設(shè)備和LABVIEW實(shí)時控制器構(gòu)成的測試平臺上,采用基于LABVIEW FPGA模塊的開發(fā)工具,給出了一種IRIG-B(DC)碼的軟件解碼方法。試驗(yàn)證明:該方法能夠正確接收IRIG-B(DC)碼脈沖并解析成準(zhǔn)確的時間,并為基于IRIG-B(DC)碼的電力系統(tǒng)的時間同步提供實(shí)施基礎(chǔ)。
時間同步;實(shí)時控制器;IRIG-B;解碼;衛(wèi)星同步時鐘
時鐘同步是保證電力系統(tǒng)正常運(yùn)行和故障診斷的關(guān)鍵技術(shù),對系統(tǒng)的故障定位和分析起著重要的作用,因此時鐘同步是十分必要的。國家電網(wǎng)公司在“關(guān)于加強(qiáng)電力二次系統(tǒng)時鐘管理的通知”中明確表示電力二次系統(tǒng)的對時方式原則上采用IRIG-B(DC)碼方式[1-4]。其優(yōu)勢在于:時間同步環(huán)節(jié)簡單,延遲時間短;精度高,小于1 μs;構(gòu)建容易,利用單片機(jī)、微處理器、FPGA、CPLD等均可實(shí)現(xiàn),并具有較高的時效性和準(zhǔn)確性,能夠滿足電力二次系統(tǒng)對時間精度的要求。因此,在當(dāng)前的電力二次系統(tǒng)中,IRIG-B(DC)碼成為一種流行的時間同步方式[5-7]。基于此,本文論述一種IRIG-B(DC)碼的解碼方法,根據(jù)IRIG-B碼的時間幀構(gòu)成格式特征,利用衛(wèi)星同步時鐘設(shè)備的IRIG-B TTL輸出接口,通過美國NI公司的CompactRIO實(shí)時控制器的FPGA模塊和數(shù)字輸入模塊NI9401,及FPGA編程實(shí)現(xiàn)了IRIG-B(DC)時間碼的解碼。
IRIG-B(DC)碼解碼測試系統(tǒng)如圖1所示。

圖1 IRIG-B(DC)碼解碼測試系統(tǒng)
Fig.1 IRIG-B (DC) code decoding test system
采用某廠商生產(chǎn)的衛(wèi)星同步時鐘設(shè)備K805,該設(shè)備提供NTP/SNTP信號、脈沖信號、IRIG-B信號或RS232、RS485時間報文等時間信息信號輸出,可滿足不同設(shè)備的時間同步接口要求。在本測試系統(tǒng)中利用其中的IRIG-B TTL信號。時間信號采集系統(tǒng)使用美國NI公司基于工業(yè)以太網(wǎng)的CompactRIO工業(yè)控制器搭配數(shù)字輸入輸出模塊NI9401,該控制器包含了嵌入式處理、可熱插拔的工業(yè)I/O模塊和可重配置現(xiàn)場可編程門陣列(FPGA),面向工業(yè)過程實(shí)時控制,采用開放式、模塊化結(jié)構(gòu)設(shè)計(jì),維護(hù)簡單,升級方便。采用嵌入式操作系統(tǒng),實(shí)時性強(qiáng),該控制器的LabVIEW FPGA模塊可以利用一個高度集成的開發(fā)環(huán)境,使開發(fā)人員能夠更有效地設(shè)計(jì)復(fù)雜系統(tǒng),而不需要學(xué)習(xí)開發(fā)傳統(tǒng)的基于FPGA的系統(tǒng)所需要使用的底層軟件工具和硬件描述語言(HDL)。通過基于LABVIEW語言的圖形化編程方法即可實(shí)現(xiàn)FPGA模塊的編程。而且CompactRIO的實(shí)時控制器與FPGA相結(jié)合,在實(shí)時控制器上可以實(shí)現(xiàn)毫秒級的程序循環(huán)周期,在FPGA上也可實(shí)現(xiàn)納秒級的程序循環(huán)周期,因此能夠根據(jù)不同的應(yīng)用滿足硬實(shí)時與軟實(shí)時的需求[8-9]。由于IRIG-B(DC)的脈沖信號為毫秒級, CompactRIO的實(shí)時控制器最小實(shí)時周期為1 μs,在脈寬計(jì)數(shù)上會不準(zhǔn)確。CompactRIO的FPGA背板上能實(shí)現(xiàn)最小25 ns的循環(huán)周期,因此在本測試系統(tǒng)中采用LABVIEW FPGA編程的方式實(shí)現(xiàn)IRIG-B(DC)解碼。數(shù)字輸入模塊NI9401接收IRIG-B(DC)的TTL時間脈沖信號,在CompactRIO的FPGA模塊中通過編程解碼成正確的時間,獲得的時間信息可以同步實(shí)時控制器的時鐘,同時可以通過網(wǎng)絡(luò)時間同步方式對上位監(jiān)控計(jì)算機(jī)網(wǎng)進(jìn)行網(wǎng)絡(luò)時間同步。在實(shí)際的電氣二次系統(tǒng)應(yīng)用中,這樣一個解碼和時間同步過程,實(shí)際上完成了現(xiàn)場電氣二次系統(tǒng)的時間同步過程。
IRIG-B(DC)碼是一種串行時間碼,一個時幀包括100個碼元,周期為1 s。每個碼元周期為10 ms,采用不同寬度的脈沖,以二進(jìn)制形式表示不同的時間,脈沖寬度為2 ms表示0,5 ms表示1,8 ms表示P,P為位置識別標(biāo)志。每幀數(shù)據(jù)起始首先是幀參考點(diǎn)PR,之后每10個碼元有1個位置識別標(biāo)志,分別為P1,P2,…,P9,P0。根據(jù)IRIG-B(DC)碼的特點(diǎn),本文采用如下方式進(jìn)行解碼:由于PR和P0為相鄰的2個連續(xù)的8 ms脈沖,因此可以作為獲取時間幀的起始點(diǎn),此外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個脈沖就能提取到全部時間信息。所以在設(shè)計(jì)本程序時,采集NI9401模塊的DI輸入數(shù)據(jù),確認(rèn)能夠收到時間脈沖串之后,再檢測到2個連續(xù)的8 ms脈沖,則開始連續(xù)收取時間脈沖信息,對于每幀時間脈沖碼從起始點(diǎn)開始至少收取并存儲41個脈沖,同時,根據(jù)IRIG-B(DC)碼含有時間信息的碼元按照解碼規(guī)則進(jìn)行解碼。解碼計(jì)數(shù)及數(shù)據(jù)存儲程序循環(huán)執(zhí)行,程序循環(huán)周期為10 μs,采用定時計(jì)數(shù)的方法確定脈沖寬度,例如,如果一個脈沖計(jì)數(shù)為200,則說明脈沖寬度為2 ms。
為了提高接收脈沖的準(zhǔn)確性,本程序設(shè)計(jì)在脈沖寬度檢測過程中引入容錯機(jī)制,用以防止尖峰脈沖的干擾,提高系統(tǒng)的可靠性。如果脈沖寬度計(jì)數(shù)值為10~300之間時認(rèn)為是數(shù)據(jù)0,在400~600之間時認(rèn)為是數(shù)據(jù)1,在700~900時認(rèn)為是幀參考點(diǎn)或位置標(biāo)志,在程序中為區(qū)別時間信息和位置標(biāo)志,將其置為2,這樣就消除了碼元在傳輸或采集過程中出現(xiàn)的非標(biāo)準(zhǔn)化因素。IRIG-B(DC)碼解碼軟件實(shí)現(xiàn)流程圖如圖2所示。

圖2 IRIG-B碼解碼流程圖
除上述處理方法以外,需要說明的一點(diǎn)是,在將通過計(jì)數(shù)獲得的碼元輸出之前,通過二進(jìn)制十進(jìn)制轉(zhuǎn)換分別解碼出d、h、min、s信息,為了使輸出的時間信息與 IRIG-B(DC)的幀參考標(biāo)志對齊,將當(dāng)前時間幀解碼出的時間信息在下一個幀參考標(biāo)志前輸出,在當(dāng)前幀時間信息的基礎(chǔ)之上加1 s,因?yàn)楫?dāng)前解碼后的時間已經(jīng)不是IRIG-B(DC)的實(shí)時時間,所以不能立刻輸出,只有經(jīng)過這樣的處理,才能實(shí)現(xiàn)解碼時間信息與當(dāng)前實(shí)際時間信息一致。
基于FPGA實(shí)現(xiàn)的IRIG-B(DC)碼解碼后,時間可以直接傳送到CompactRIO實(shí)時控制器,從而對實(shí)時控制器進(jìn)行時鐘同步,同時也可以利用實(shí)時控制器通過以太網(wǎng)通信或串口通信的方式對相連的上位監(jiān)控計(jì)算機(jī)進(jìn)行時間同步,以及對在基于本控制器所開發(fā)的系統(tǒng)內(nèi)所有能夠通過網(wǎng)絡(luò)或串口通信的設(shè)備進(jìn)行時間同步。即使不使用LABVIEW實(shí)時控制器,只要控制器的處理周期能夠滿足時間脈沖寬度計(jì)數(shù)的要求,則本文所論述的方法仍然能夠?qū)崿F(xiàn)IRIG-B(DC)的解碼,在實(shí)現(xiàn)解碼所在控制器的時間同步的同時,通過控制器的串口或網(wǎng)絡(luò)通信,仍然能夠?qū)崿F(xiàn)系統(tǒng)內(nèi)的所有時鐘設(shè)備的時間同步。
基于LABVIEW實(shí)時控制器FPGA編程實(shí)現(xiàn)的IRIG-B(DC)解碼測試結(jié)果如圖3所示,其中波形顯示部分為所采集的時間脈沖波形,此外也顯示了每一幀時間數(shù)據(jù)的前50個碼元的數(shù)據(jù)。

圖3 IRIG-B碼解碼測試結(jié)果
根據(jù)包含時間信息的碼元可以得到當(dāng)前的時間信息,根據(jù)IRIG-B(DC)碼的構(gòu)成特征,可以得到其時間碼元解碼計(jì)算過程為:
第1、2、3、4個脈沖表示s,為0100,轉(zhuǎn)換為十進(jìn)制為4。第6、7、8個脈沖表示10 s,為100,轉(zhuǎn)換為十進(jìn)制為4。本程序中解碼時間為500 ms,所以編程中將時間信息加1 s后再延遲500 ms輸出,這樣就能夠使時間與IRIG-B的時間碼起始幀對齊,則秒信息為45 s。
第10、11、12、13個脈沖表示min,為0001,轉(zhuǎn)換為十進(jìn)制為1。第15、16、17個脈沖表示10 min,為101,轉(zhuǎn)換為十進(jìn)制為5。則分信息為51 min。
第20、21、22、23個脈沖表示h,為0111,轉(zhuǎn)換為十進(jìn)制為7。第25,26個脈沖表示10 h,為00,轉(zhuǎn)換為十進(jìn)制為0。則小時信息為7 h。
第30、31、32、33個脈沖表示d,為0101,轉(zhuǎn)換為十進(jìn)制為5。第35、36、37、38個脈沖表示10 d,為0011,轉(zhuǎn)換為十進(jìn)制為3。第40、41個脈沖表示100 d,為10,轉(zhuǎn)換為十進(jìn)制為2。則天信息為235 d。
最終得到當(dāng)前解碼時間為235 d 7 h 51 min 45 s,實(shí)際時間為8月23日7時51 min 45 s,測試結(jié)果與當(dāng)前時間一致,表明所實(shí)現(xiàn)的解碼過程是正確的。
借助LABVIEW實(shí)時控制器CompactRIO,本文給出了一種IRIG-B(DC)碼的解碼方法。實(shí)際測試表明,該解碼方法能夠正確地解析出準(zhǔn)確的時間。同時,所給的方法即使脫離本文所依靠的軟硬件平臺,只要控制器的處理周期能夠滿足時間脈沖寬度計(jì)數(shù)的要求,根據(jù)其基本解碼思想仍然能夠用于其他時間同步軟硬件平臺的解碼程序設(shè)計(jì)。
[1] 張輝.新一代的IRIG-B碼時統(tǒng)終端的設(shè)計(jì)[D].長春:吉林大學(xué),2005.
ZHANG Hui. Design of new generation of IRIG-B code time system client [D]. Changchun: Jilin University, 2005.
[2] 郝帥,洪海麗,任宇飛.基于FPGA的 IRIG-B(DC)碼編碼與解碼器設(shè)計(jì)[J]. 國外電子測量技術(shù),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] 吳旻,劉進(jìn)進(jìn),王紅光.高精度IRIG-B碼對時解碼模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(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的數(shù)字方法實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2007.
LI Junhua. The digital design approach of high accuracy IRIG-B[D]. Beijing: Beijing University of Posts and Telecommunications, 2007.
[5] 謝仁祥.IRIG-B碼解碼及網(wǎng)絡(luò)校時的實(shí)現(xiàn)[D].成都:四川大學(xué),2006.XIE Renxiang. The decode of IRIG-B and the realization of net time service [D]. Chengdu: Sichuan University, 2006.
[6] 劉浩,蘇理,丁敏.IRIG-B碼對時在保護(hù)測控裝置中的實(shí)現(xiàn)[J]. 江蘇電機(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)碼對時在勵磁系統(tǒng)中的實(shí)現(xiàn)[J].水電站機(jī)電技術(shù),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的遠(yuǎn)程雷達(dá)伺服控制系統(tǒng)的研究[D].大連:大連理工大學(xué),2013.LI Shiyu. Research of remote radar servo control system based on CompactRIO [D]. Dalian: Dalian University of Technology, 2013.
[9] 王曉亮,謝朝輝,楊紅官.基于LABVEW和FPGA的存儲器測試系統(tǒng)設(shè)計(jì)[J].計(jì)算機(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] 何小慶,楊訓(xùn),徐皇清.數(shù)字化變電站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.
(責(zé)任編輯 郭金光)
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—),男,工程師,主要從事同步發(fā)電機(jī)勵磁控制系統(tǒng)研究。
TP273;TP311.53
A
2095-6843(2016)01-0050-03