郗海燕,王 娟
(中國(guó)電子科技集團(tuán)公司第39研究所 陜西 西安 710065)
基于FPGA的IRIG-B(DC)時(shí)碼解碼設(shè)計(jì)
郗海燕,王 娟
(中國(guó)電子科技集團(tuán)公司第39研究所 陜西 西安 710065)
IRIG-B(DC)碼為普遍應(yīng)用于航天測(cè)控領(lǐng)域的一種標(biāo)準(zhǔn)時(shí)間碼,測(cè)控系統(tǒng)內(nèi)的設(shè)備單元需要從IRIG-B(DC)碼中解調(diào)出時(shí)間信息,傳統(tǒng)的IRIG-B(DC)解碼單元大多采用單片機(jī)來(lái)實(shí)現(xiàn),結(jié)構(gòu)復(fù)雜,易受干擾,文中提出了一種基于FPGA技術(shù)的IRIG-B(DC)解碼設(shè)計(jì)方案及詳細(xì)的設(shè)計(jì)方法,用MAX+plus II仿真軟件對(duì)該解碼設(shè)計(jì)進(jìn)行仿真,并應(yīng)用工程實(shí)例驗(yàn)證該設(shè)計(jì)的正確性。仿真及工程應(yīng)用結(jié)果表明該設(shè)計(jì)能準(zhǔn)確地從IRIG-B(DC)碼中提取時(shí)間信息,該設(shè)計(jì)具有器件少、結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)靈活、解碼精度高、可靠性高等特點(diǎn)。
IRIG-B 碼;串行碼;FPGA;解碼;VHDL
航天測(cè)控系統(tǒng)在對(duì)航天器進(jìn)行測(cè)量及控制時(shí),時(shí)統(tǒng)設(shè)備使航天測(cè)控系統(tǒng)在統(tǒng)一的時(shí)間尺度下工作。時(shí)統(tǒng)設(shè)備的功能就是使本地時(shí)間與標(biāo)準(zhǔn)時(shí)間在一定同步精度范圍內(nèi)保持一致并按工程任務(wù)要求的標(biāo)準(zhǔn)碼制對(duì)時(shí)間信息進(jìn)行編碼??v觀我國(guó)及國(guó)外的時(shí)間碼應(yīng)用情況,IRIG-B格式時(shí)間碼(簡(jiǎn)稱(chēng)B碼)是目前應(yīng)用最為普遍和廣泛的一種標(biāo)準(zhǔn)時(shí)間碼[1]。IRIG-B格式時(shí)間碼分IRIG-B(DC)和 IRIG-B(AC),文中詳細(xì)地介紹 IRIG-B(DC)碼的時(shí)間信息基于FPGA的一種解調(diào)方法。
圖 1 IRIG-B(DC)碼波形圖Fig.1 Waveform of IRIG-B(DC)
IRIG-B(DC)碼為一串行碼,每秒一幀,每幀包括100個(gè)碼元,每個(gè)碼元的寬度為10ms。碼元中包含秒、分、時(shí)、天及控制功能等信息。IRIG-B(DC)碼的示意圖如圖1所示[2]。
IRIG-B(DC)碼時(shí)間信息解碼單元的主要功能是從IRIG-B(DC)碼源中提取出積日、時(shí)、分、秒、豪秒等時(shí)間信息,并形成1 Hz、20 Hz、40 Hz等各種同步脈沖信號(hào),根據(jù)需要顯示并送至需要時(shí)間信息的各設(shè)備單元。傳統(tǒng)的IRIG-B(DC)解碼器大多采用單片機(jī)來(lái)實(shí)現(xiàn),器件較多,結(jié)構(gòu)復(fù)雜,在受到外界干擾的情況下還可能出現(xiàn)死機(jī)等故障。而基于FPGA技術(shù)的IRIG-B(DC)碼時(shí)間信息解碼方案具有硬件設(shè)計(jì)簡(jiǎn)潔、調(diào)試靈活方便、運(yùn)行穩(wěn)定可靠及解碼精度高等特點(diǎn),同時(shí),為了充分利用芯片資源,節(jié)省硬件設(shè)計(jì),時(shí)碼解碼功能通常與其他功能集成設(shè)計(jì)在同一FPGA芯片上。
IRIG-B(DC)碼時(shí)間信息解碼方案示意圖如圖2所示。
圖2 IRIG-B(DC)碼時(shí)間信息解碼方案示意圖Fig.2 Schematic diagram of IRIG-B(DC)decoder
IRIG-B(DC)碼時(shí)間信息解碼的重點(diǎn)和難點(diǎn)是如何在IRIG-B(DC)串行碼中準(zhǔn)確提取秒同步信號(hào) (即跳秒的時(shí)刻),以保證時(shí)間信息的精確度及準(zhǔn)確度。該IRIG-B(DC)碼解碼機(jī)理是根據(jù)IRIG-B(DC)碼串行碼的格式和原理使用狀態(tài)機(jī)和計(jì)數(shù)器來(lái)實(shí)現(xiàn)完成的,其中會(huì)涉及到多個(gè)時(shí)鐘信號(hào),這些時(shí)鐘信號(hào)都是由FPGA外部的20 MHz晶體形成的。其軟件設(shè)計(jì)模塊的基本框圖如圖3所示。
圖3 IRIG-B(DC)碼時(shí)間信息解碼單元軟件設(shè)計(jì)框圖Fig.3 IRIG-B(DC)decoder software block diagram
時(shí)間信息的解碼及提取具體方法是將一20 MHz的標(biāo)準(zhǔn)頻率信號(hào)作為時(shí)鐘信號(hào)接入FPGA,標(biāo)準(zhǔn)頻率信號(hào)的選擇是依據(jù)不同的測(cè)控體制及測(cè)控精度對(duì)時(shí)間同步精度的要求來(lái)確定的。依據(jù)IRIG-B(DC)碼的特征,在輸入時(shí)鐘信號(hào)的每個(gè)上升沿判斷IRIG-B(DC)碼碼元高電平持續(xù)的時(shí)間。當(dāng)出現(xiàn)連續(xù)兩個(gè)8 ms寬高電平的碼元(P0和PR)時(shí)開(kāi)始提取秒信息,在秒信息碼元中,碼元高電平寬度為5 ms時(shí)代表二進(jìn)制‘1’,2 ms時(shí)代表二進(jìn)制‘0’和索引標(biāo)志,秒值就每個(gè)碼元代表的二進(jìn)制值與其權(quán)值乘積之和。圖1中每個(gè)碼元上方的數(shù)字就是此碼元的權(quán)值。在碼元P1出現(xiàn)后,開(kāi)始提取分信息。時(shí)和天信息的提取方法依此類(lèi)推。FPGA在P5出現(xiàn)后將其解出的天、時(shí)、分、秒等時(shí)間信息輸出,存儲(chǔ)到數(shù)據(jù)緩沖器以便讀取。
豪秒信息的產(chǎn)生根據(jù)數(shù)據(jù)信息中對(duì)豪秒數(shù)據(jù)的需求有兩種產(chǎn)生方法,一種方法是設(shè)計(jì)一脈沖計(jì)數(shù)器,根據(jù)記錄的脈沖數(shù)量,形成豪秒數(shù)。另一種較為精確的毫秒產(chǎn)生的方法是利用 的時(shí)鐘信號(hào)設(shè)計(jì)一與秒同步信號(hào)同步的時(shí)間計(jì)數(shù)器,該方法形成的毫秒計(jì)數(shù)器精度高、抗干擾能力強(qiáng)。
為提高設(shè)備的可靠性,增強(qiáng)系統(tǒng)的抗干擾能力,考慮到B碼源及20 MHz時(shí)鐘源的準(zhǔn)確度,在測(cè)量碼元高電平寬度的程序設(shè)計(jì)中必須加入容錯(cuò)設(shè)計(jì)及輸入信號(hào)的數(shù)字濾波設(shè)計(jì),容錯(cuò)范圍控制在±5%,同時(shí)判斷正常脈沖信號(hào)的時(shí),舍棄雜波信號(hào)及干擾的尖峰脈沖。
本設(shè)計(jì)采用了VHDL語(yǔ)言,運(yùn)用自頂向下的設(shè)計(jì)方法,實(shí)現(xiàn)了工程的層次化管理[3]。為了使得設(shè)計(jì)穩(wěn)定、可靠,采用全同步設(shè)計(jì)方法,使整個(gè)工程都在一個(gè)時(shí)鐘上升沿時(shí)刻改變狀態(tài),這樣可以避免冒險(xiǎn)和其他不定態(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時(shí)鐘源分頻出的10 MHz為解碼程序的敏感量。
各變量具體解釋如下:
根據(jù)上述設(shè)計(jì),運(yùn)用MAX+plus II仿真軟件對(duì)IRIG-B(DC)碼解碼進(jìn)行仿真,設(shè)計(jì)輸入分別為正常的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)碼中提取時(shí)間信息。
由于IRIG-B(DC)碼時(shí)間解碼程序設(shè)計(jì)中包含有容錯(cuò)設(shè)計(jì)及軟件濾波器設(shè)計(jì),可防止由于碼元中混有雜波而引起的誤解碼。圖5是碼元中混有雜波時(shí)的解碼仿真圖。從圖5的仿真結(jié)果中可以看出,在30 ms和40 ms之間出現(xiàn)的雜波信號(hào)并沒(méi)有引起FPGA內(nèi)部狀態(tài)機(jī)的切換。
依據(jù)仿真效果,可以得出該設(shè)計(jì)完全能準(zhǔn)確地從IRIGB(DC)碼中提取時(shí)間信息。
上述詳細(xì)介紹了一種基于FPGA的IRIG-B(DC)碼解調(diào)方案及設(shè)計(jì)實(shí)現(xiàn)方法。文中介紹的實(shí)現(xiàn)方法已經(jīng)得到成功應(yīng)用,并應(yīng)用于多種測(cè)量站的實(shí)時(shí)控制設(shè)備中。工程應(yīng)用結(jié)果表明該實(shí)現(xiàn)方法具有簡(jiǎn)單實(shí)用、精度高、抗干擾性強(qiáng)及可靠性高等特點(diǎn)。
[1]陳芳允.衛(wèi)星測(cè)控手冊(cè)[M].北京:科學(xué)出版社,1996.
[2]童寶潤(rùn).時(shí)間統(tǒng)一系統(tǒng)[M].北京:北京國(guó)防工業(yè)出版社,2007.
[3]徐志軍,徐光輝.CPLD/FPGA的開(kāi)發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.
[4]王彥.基于FPGA的工程設(shè)計(jì)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2007.
[5]姜雪松 劉東升.硬件描述語(yǔ)言VHDL教程[M].西安:西安交通大學(xué)出版社,2004.
[6]王輝.MAX+plus和QuartusⅡ應(yīng)用與開(kāi)發(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 稿件編號(hào):201309122
郗海燕(1968—),女,陜西藍(lán)田人,高級(jí)工程師。研究方向:伺服系統(tǒng)控制與微電子技術(shù)應(yīng)用。