郗海燕,王 娟
(中國電子科技集團(tuán)公司第39研究所 陜西 西安 710065)
基于FPGA的IRIG-B(DC)時碼解碼設(shè)計
郗海燕,王 娟
(中國電子科技集團(tuán)公司第39研究所 陜西 西安 710065)
IRIG-B(DC)碼為普遍應(yīng)用于航天測控領(lǐng)域的一種標(biāo)準(zhǔn)時間碼,測控系統(tǒng)內(nèi)的設(shè)備單元需要從IRIG-B(DC)碼中解調(diào)出時間信息,傳統(tǒng)的IRIG-B(DC)解碼單元大多采用單片機(jī)來實現(xiàn),結(jié)構(gòu)復(fù)雜,易受干擾,文中提出了一種基于FPGA技術(shù)的IRIG-B(DC)解碼設(shè)計方案及詳細(xì)的設(shè)計方法,用MAX+plus II仿真軟件對該解碼設(shè)計進(jìn)行仿真,并應(yīng)用工程實例驗證該設(shè)計的正確性。仿真及工程應(yīng)用結(jié)果表明該設(shè)計能準(zhǔn)確地從IRIG-B(DC)碼中提取時間信息,該設(shè)計具有器件少、結(jié)構(gòu)簡單、設(shè)計靈活、解碼精度高、可靠性高等特點。
IRIG-B 碼;串行碼;FPGA;解碼;VHDL
航天測控系統(tǒng)在對航天器進(jìn)行測量及控制時,時統(tǒng)設(shè)備使航天測控系統(tǒng)在統(tǒng)一的時間尺度下工作。時統(tǒng)設(shè)備的功能就是使本地時間與標(biāo)準(zhǔn)時間在一定同步精度范圍內(nèi)保持一致并按工程任務(wù)要求的標(biāo)準(zhǔn)碼制對時間信息進(jìn)行編碼??v觀我國及國外的時間碼應(yīng)用情況,IRIG-B格式時間碼(簡稱B碼)是目前應(yīng)用最為普遍和廣泛的一種標(biāo)準(zhǔn)時間碼[1]。IRIG-B格式時間碼分IRIG-B(DC)和 IRIG-B(AC),文中詳細(xì)地介紹 IRIG-B(DC)碼的時間信息基于FPGA的一種解調(diào)方法。
圖 1 IRIG-B(DC)碼波形圖Fig.1 Waveform of IRIG-B(DC)
IRIG-B(DC)碼為一串行碼,每秒一幀,每幀包括100個碼元,每個碼元的寬度為10ms。碼元中包含秒、分、時、天及控制功能等信息。IRIG-B(DC)碼的示意圖如圖1所示[2]。
IRIG-B(DC)碼時間信息解碼單元的主要功能是從IRIG-B(DC)碼源中提取出積日、時、分、秒、豪秒等時間信息,并形成1 Hz、20 Hz、40 Hz等各種同步脈沖信號,根據(jù)需要顯示并送至需要時間信息的各設(shè)備單元。傳統(tǒng)的IRIG-B(DC)解碼器大多采用單片機(jī)來實現(xiàn),器件較多,結(jié)構(gòu)復(fù)雜,在受到外界干擾的情況下還可能出現(xiàn)死機(jī)等故障。而基于FPGA技術(shù)的IRIG-B(DC)碼時間信息解碼方案具有硬件設(shè)計簡潔、調(diào)試靈活方便、運(yùn)行穩(wěn)定可靠及解碼精度高等特點,同時,為了充分利用芯片資源,節(jié)省硬件設(shè)計,時碼解碼功能通常與其他功能集成設(shè)計在同一FPGA芯片上。
IRIG-B(DC)碼時間信息解碼方案示意圖如圖2所示。
圖2 IRIG-B(DC)碼時間信息解碼方案示意圖Fig.2 Schematic diagram of IRIG-B(DC)decoder
IRIG-B(DC)碼時間信息解碼的重點和難點是如何在IRIG-B(DC)串行碼中準(zhǔn)確提取秒同步信號 (即跳秒的時刻),以保證時間信息的精確度及準(zhǔn)確度。該IRIG-B(DC)碼解碼機(jī)理是根據(jù)IRIG-B(DC)碼串行碼的格式和原理使用狀態(tài)機(jī)和計數(shù)器來實現(xiàn)完成的,其中會涉及到多個時鐘信號,這些時鐘信號都是由FPGA外部的20 MHz晶體形成的。其軟件設(shè)計模塊的基本框圖如圖3所示。
圖3 IRIG-B(DC)碼時間信息解碼單元軟件設(shè)計框圖Fig.3 IRIG-B(DC)decoder software block diagram
時間信息的解碼及提取具體方法是將一20 MHz的標(biāo)準(zhǔn)頻率信號作為時鐘信號接入FPGA,標(biāo)準(zhǔn)頻率信號的選擇是依據(jù)不同的測控體制及測控精度對時間同步精度的要求來確定的。依據(jù)IRIG-B(DC)碼的特征,在輸入時鐘信號的每個上升沿判斷IRIG-B(DC)碼碼元高電平持續(xù)的時間。當(dāng)出現(xiàn)連續(xù)兩個8 ms寬高電平的碼元(P0和PR)時開始提取秒信息,在秒信息碼元中,碼元高電平寬度為5 ms時代表二進(jìn)制‘1’,2 ms時代表二進(jìn)制‘0’和索引標(biāo)志,秒值就每個碼元代表的二進(jìn)制值與其權(quán)值乘積之和。圖1中每個碼元上方的數(shù)字就是此碼元的權(quán)值。在碼元P1出現(xiàn)后,開始提取分信息。時和天信息的提取方法依此類推。FPGA在P5出現(xiàn)后將其解出的天、時、分、秒等時間信息輸出,存儲到數(shù)據(jù)緩沖器以便讀取。
豪秒信息的產(chǎn)生根據(jù)數(shù)據(jù)信息中對豪秒數(shù)據(jù)的需求有兩種產(chǎn)生方法,一種方法是設(shè)計一脈沖計數(shù)器,根據(jù)記錄的脈沖數(shù)量,形成豪秒數(shù)。另一種較為精確的毫秒產(chǎn)生的方法是利用 的時鐘信號設(shè)計一與秒同步信號同步的時間計數(shù)器,該方法形成的毫秒計數(shù)器精度高、抗干擾能力強(qiáng)。
為提高設(shè)備的可靠性,增強(qiáng)系統(tǒng)的抗干擾能力,考慮到B碼源及20 MHz時鐘源的準(zhǔn)確度,在測量碼元高電平寬度的程序設(shè)計中必須加入容錯設(shè)計及輸入信號的數(shù)字濾波設(shè)計,容錯范圍控制在±5%,同時判斷正常脈沖信號的時,舍棄雜波信號及干擾的尖峰脈沖。
本設(shè)計采用了VHDL語言,運(yùn)用自頂向下的設(shè)計方法,實現(xiàn)了工程的層次化管理[3]。為了使得設(shè)計穩(wěn)定、可靠,采用全同步設(shè)計方法,使整個工程都在一個時鐘上升沿時刻改變狀態(tài),這樣可以避免冒險和其他不定態(tài)的出現(xiàn)。
程 序 中 涉 及 的 變 量 有 :current_level,prior_level,cnt,sub_cnt,count,prior_pulse_width,second_buf,minute_buf,hour_buf,date_buf等,由FPGA外部20 MHz時鐘源分頻出的10 MHz為解碼程序的敏感量。
各變量具體解釋如下:
根據(jù)上述設(shè)計,運(yùn)用MAX+plus II仿真軟件對IRIG-B(DC)碼解碼進(jìn)行仿真,設(shè)計輸入分別為正常的IRIG-B(DC)碼及混有雜波的IRIG-B(DC)碼。其仿真結(jié)果如圖4、5所示。
圖4 IRIG-R(DC)解碼仿真波形Fig.4 Simulation waveform of IRIG-B(DC)decoder
圖5 混有雜波的IRIG-B(DC)解碼仿真波形Fig.5 Simulation waveform of IRIG-B(DC)with noise wave decoder
圖4是正常IRIG-B(DC)碼得解碼仿真圖,從圖4的仿真結(jié)果可以看出,該程序可以準(zhǔn)確地從IRIG-B(DC)碼中提取時間信息。
由于IRIG-B(DC)碼時間解碼程序設(shè)計中包含有容錯設(shè)計及軟件濾波器設(shè)計,可防止由于碼元中混有雜波而引起的誤解碼。圖5是碼元中混有雜波時的解碼仿真圖。從圖5的仿真結(jié)果中可以看出,在30 ms和40 ms之間出現(xiàn)的雜波信號并沒有引起FPGA內(nèi)部狀態(tài)機(jī)的切換。
依據(jù)仿真效果,可以得出該設(shè)計完全能準(zhǔn)確地從IRIGB(DC)碼中提取時間信息。
上述詳細(xì)介紹了一種基于FPGA的IRIG-B(DC)碼解調(diào)方案及設(shè)計實現(xiàn)方法。文中介紹的實現(xiàn)方法已經(jīng)得到成功應(yīng)用,并應(yīng)用于多種測量站的實時控制設(shè)備中。工程應(yīng)用結(jié)果表明該實現(xiàn)方法具有簡單實用、精度高、抗干擾性強(qiáng)及可靠性高等特點。
[1]陳芳允.衛(wèi)星測控手冊[M].北京:科學(xué)出版社,1996.
[2]童寶潤.時間統(tǒng)一系統(tǒng)[M].北京:北京國防工業(yè)出版社,2007.
[3]徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.
[4]王彥.基于FPGA的工程設(shè)計與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2007.
[5]姜雪松 劉東升.硬件描述語言VHDL教程[M].西安:西安交通大學(xué)出版社,2004.
[6]王輝.MAX+plus和QuartusⅡ應(yīng)用與開發(fā)技巧[M].北京:機(jī)械工業(yè)出版社.2007.
Design of decoding IRIG-B(DC)based on FPGA
XI Hai-yan,WANG Juan
(The 39th Institute,Electronic Science and Technology Group Corporation of China,Xi′an 710065,China)
IRIG-B(DC)code is a standard time code,which is widely used in the aerospace measurement and control area.The equipment unit in the control system need to demodulate time information from IRIG-B(DC).The normal IRIG-B(DC)decoder is mostly designed based on microcontroller system,its configuration is complex and easy to be interferred.A new design of decoding IRIG-B(DC)by programming on FPGA is presented in this paper.The simulation of the decoder design using MAX+plus II simulation software is alao given.The design is proved to be corrent and effective in many applications.The results have demonstrated that the design can precisely demodulate time information from IRIG-B(DC),and the design is simple,flexible,highly reliable and highly precisie.
IRIG-B timing-code;seral code;FPGA;decode;VHDL
TN92
A
1674-6236(2014)13-0182-02
2013-09-16 稿件編號:201309122
郗海燕(1968—),女,陜西藍(lán)田人,高級工程師。研究方向:伺服系統(tǒng)控制與微電子技術(shù)應(yīng)用。