賈磊,崔永俊*,楊兵,王晉偉
(1.中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原030051;2.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原030051)
基于FPGA的IRIG-B(AC)時(shí)間碼解碼器的設(shè)計(jì)*
賈磊1,2,崔永俊1,2*,楊兵1,2,王晉偉1,2
(1.中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原030051;2.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原030051)
為了解決IRIG-B(AC)碼解碼精度低的問題,提高解調(diào)系統(tǒng)的穩(wěn)定性,提出了一種利用高性能FPGA實(shí)現(xiàn)解調(diào)IRIG-B(AC)碼的解碼器。通過調(diào)用FPGA的IP核生成乘法器與FIR低通濾波器,將B(AC)碼中的交流分量濾除掉,然后根據(jù)其幅值進(jìn)行解調(diào)。該解碼器能夠快速準(zhǔn)確地解調(diào)出IRIG-B(AC)碼的時(shí)間信息,并輸出與此時(shí)間信息對(duì)應(yīng)的秒脈沖,通過輸出端口將解調(diào)出的時(shí)間信息傳輸?shù)缴衔粰C(jī)顯示。通過大量試驗(yàn)證明該解碼器準(zhǔn)確度高、穩(wěn)定性強(qiáng),能夠滿足各種應(yīng)用場(chǎng)所對(duì)IRIG-B(AC)碼授時(shí)的要求。
IRIG-B碼;解碼;濾波;A/D轉(zhuǎn)換;秒脈沖
IRIG時(shí)間編碼序列,是由美國(guó)靶場(chǎng)間儀器組IRIG (Inter Range Instrumentation Group)提出來的,被廣泛應(yīng)用于時(shí)間信息傳輸系統(tǒng)中[1-2]。常規(guī)的IRIG-B碼解碼設(shè)備采用自動(dòng)控制增益電路、比較器以及過零檢測(cè)電路實(shí)現(xiàn)解調(diào),由于信號(hào)經(jīng)過比較器和過零檢測(cè)電路時(shí)易受干擾影響產(chǎn)生抖動(dòng)和零點(diǎn)漂移,從而造成輸出的時(shí)間信息出現(xiàn)抖動(dòng),降低了傳統(tǒng)解碼設(shè)備的精度。
針對(duì)以上問題,設(shè)計(jì)了一種基于FPGA的IRIG-B (AC)碼解碼器,該設(shè)計(jì)以FPGA為控制核心,通過LTC1068-200濾波芯片和ADS8365模數(shù)轉(zhuǎn)換芯片對(duì)交流碼進(jìn)行采集,并將其轉(zhuǎn)換為數(shù)字量,供FPGA內(nèi)部解碼模塊分析與解調(diào),通過程序的輸出模塊將解調(diào)出IRIG-B碼的時(shí)間信息與秒脈沖輸出。該解碼器體具有體積小、精度高、兼容性強(qiáng)等特點(diǎn),能夠滿足多種場(chǎng)合對(duì)IRIG-B(AC)碼授時(shí)的要求。
IRIG-B碼通常采用串行時(shí)間碼格式,時(shí)幀速率為1幀/s,每一幀由100個(gè)碼元組成,每個(gè)碼元的周期為10 ms[3];IRIG-B碼分直流、交流兩種,未經(jīng)幅度調(diào)制的為IRIG-B(DC)碼(直流),經(jīng)過幅度調(diào)制的為IRIG-B (AC)碼(交流)[4]。IRIG-B碼中每一個(gè)脈沖信號(hào)代表一個(gè)碼元,時(shí)間信息用碼元使用二進(jìn)制來表示,占空比為1∶4的碼元表示‘0',占空比為4∶1的碼元表示‘1',占空比為1∶1的碼元表示位置標(biāo)識(shí)位‘P'[5]。
IRIG-B(AC)碼標(biāo)準(zhǔn)載波(通常為1 kHz的正弦波)幅度調(diào)制而成,標(biāo)準(zhǔn)的調(diào)制比為3∶1,且使其過零點(diǎn)與碼元的上升沿對(duì)齊[6]。B(AC)碼的高幅值對(duì)應(yīng)B(DC)碼的高電平,B(AC)碼的低幅值對(duì)應(yīng)B (DC)碼的低電平,如圖1所示。
圖1 IRIG-B(AC)碼格式
本解碼器采用FPGA作為控制核心實(shí)現(xiàn)IRIG-B (AC)碼的解調(diào)。硬件電路主要包括:接收電路、濾波電路、模數(shù)轉(zhuǎn)換電路、FPGA控制電路以及輸出電路。
本解碼器在解調(diào)IRIG-B(AC)碼時(shí),首先通過接收電路接收B(AC)碼信號(hào),此信號(hào)通過濾波電路將噪聲濾除掉,模數(shù)轉(zhuǎn)換電路將噪聲去除后的信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),F(xiàn)PGA接收到數(shù)字信號(hào)之后首先對(duì)其進(jìn)行數(shù)字解調(diào),F(xiàn)PGA內(nèi)部對(duì)其處理時(shí)相乘與其載波同頻同相的波形,之后再濾波得到IRIG-B (DC)碼,然后根據(jù)直流碼碼元的占空比對(duì)碼元進(jìn)行賦值,根據(jù)碼元的位置與賦值解調(diào)出其包涵的時(shí)間信息和秒脈沖,通過輸出電路送入上位機(jī)。系統(tǒng)的整體設(shè)計(jì)框架如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
系統(tǒng)硬件以FPGA為核心,采用模塊設(shè)計(jì)的思路,結(jié)構(gòu)明確,功能強(qiáng)大,主要包含濾波模塊和AD轉(zhuǎn)換模塊等。FPGA采用XILINX公司的XC3S400,利用LTC1068芯片及外圍電路構(gòu)成低通濾波器,通過ADS8365芯片對(duì)采集的交流信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換,解碼后的時(shí)間信息通過MAX232D芯片上傳到上位機(jī)。
3.1濾波模塊
為了確保IRIG-B(AC)碼的解碼精度,本設(shè)計(jì)在模數(shù)轉(zhuǎn)換模塊之前添加濾波電路,根據(jù)輸入信號(hào)的特征,采用的濾波芯片是LTC1068,利用FliterCAD軟件生成濾波芯片的外圍電路,電路連接圖如圖3所示。
圖3 濾波器外圍電路圖
本設(shè)計(jì)中輸入的交流信號(hào)頻率為1 kHz,IRIG-B (AC)碼用于遠(yuǎn)距離傳輸,在傳輸過程中易受其它信號(hào)的干擾引入噪聲,為此,設(shè)定低通濾波電路的截止頻率為1.5 kHz,阻帶衰減為40 dB,有效的去除了噪聲。通過使用高精度濾波電路,減小了溫漂,提高了信噪比,保證了交流采集電路的精度和可靠性。
3.2AD轉(zhuǎn)換模塊
本設(shè)計(jì)中的模數(shù)轉(zhuǎn)換模塊采用美國(guó)德州儀器的低功耗、高性能ADS8365模數(shù)轉(zhuǎn)換芯片,具有6個(gè)獨(dú)立的16 bit并行接口通道,本設(shè)計(jì)采用直接地址模式,通過控制地址信號(hào)端選擇采樣通道。
在本設(shè)計(jì)中,IRIG-B(AC)碼的電壓范圍是±10 V,ADS8365芯片的模擬輸入電壓范圍是0~5 V(以2.5 V為基準(zhǔn)),為了使輸入信號(hào)與ADS8365的輸入電壓相匹配,在ADS8365前添加閉環(huán)調(diào)理電路,如圖4所示,兩片OPA227UA組成差分輸出電路,將單端輸入信號(hào)的電壓降低至0~5 V范圍內(nèi),滿足ADS8365對(duì)輸入信號(hào)電壓的要求。
圖4 雙極性輸入電壓轉(zhuǎn)換電路
交流B碼經(jīng)過硬件電路處理后傳輸給FPGA,F(xiàn)PGA程序采用模塊化設(shè)計(jì)思路。調(diào)用FPGA內(nèi)部乘法器和IP內(nèi)核生成濾波器,濾波器對(duì)交流B碼進(jìn)行解調(diào),得到模糊直流B碼,通過門限檢測(cè)模塊后使其變清晰,再按直流B碼對(duì)其處理。脈寬檢測(cè)模塊通過對(duì)脈沖寬度的判斷完成碼元的賦值,幀頭檢測(cè)模塊完成對(duì)B碼中秒脈沖的提取,時(shí)間序列提取模塊通過碼元距離幀頭的位置按二進(jìn)制將碼元的賦值轉(zhuǎn)換為8421BCD格式的時(shí)間信息,通過輸出模塊傳遞到上位機(jī)。
4.1IRIG-B(AC)碼解調(diào)
IRIG-B(AC)碼是由B(直流)碼以1 kHz的正弦波為載波調(diào)制成的,對(duì)交流碼的解調(diào)關(guān)鍵是獲得其過零點(diǎn)和幅度信息。數(shù)學(xué)推導(dǎo)過程如下:
式(1)表示IRIG-B(AC)碼,式(2)表示AC碼與其載波相乘,通過式(2)可以得出,經(jīng)過乘法器相乘之后,數(shù)字信號(hào)變?yōu)橐粋€(gè)由直流分量和交流分量相耦合的信號(hào),再經(jīng)過數(shù)字濾波器濾除掉交流分量,信號(hào)就由交流(AC)B碼變?yōu)橹绷鳎―C)B碼。
使用SIMULINK軟件進(jìn)行仿真,數(shù)字解調(diào)的過程如圖5所示。
圖5 交流B碼轉(zhuǎn)換為直流B碼的仿真示意圖
經(jīng)過低通濾波器得到直流分量,但是低通濾波器不可能完全將信號(hào)中的交流分量去除,因此,需要添加閾值檢測(cè)模塊,將模糊的直流B碼還原為精確的直流B碼。為了提高檢測(cè)精度,閾值需要設(shè)置為一個(gè)動(dòng)態(tài)值,判斷每一個(gè)碼元寬度的閾值需要根據(jù)上一個(gè)碼元的最大值確定,因此將閾值設(shè)為上一個(gè)碼元的2/3,當(dāng)檢測(cè)到數(shù)字信號(hào)大于閾值時(shí),輸出為1,反之為0。脈寬檢測(cè)模塊根據(jù)閾值檢測(cè)模塊的輸出值確定脈沖寬度,根據(jù)脈沖寬度判斷碼元的賦值。
嚴(yán)格來說,從閾值檢測(cè)模塊輸出的直流B碼不是標(biāo)準(zhǔn)的直流B碼,因此對(duì)脈沖寬度的判斷采用近似比較。設(shè)計(jì)中采用的晶振為40 MHz,當(dāng)脈寬計(jì)數(shù)模塊檢測(cè)到信號(hào)上升沿時(shí),計(jì)數(shù)器開始工作,下降沿時(shí)停止工作。計(jì)數(shù)結(jié)果cnt送入寄存器中進(jìn)行順序比較,如果cnt大于7 500且小于85 000,該碼元為0;如果cnt的值大于195 000且小于205 000,該碼元為1;如果cnt的值大于315 000且小于325 000,;該碼元為P碼。
4.2IRIG-B(DC)碼解調(diào)
FPGA解調(diào)B碼主要是提取B碼中包含的時(shí)間信息和秒脈沖。要提取B碼的秒脈沖信號(hào),首先要判斷B碼的幀頭[7],通過幀頭的判斷確定其它碼元的位置[8]。當(dāng)檢測(cè)到兩個(gè)標(biāo)志位相連接后開始計(jì)數(shù),當(dāng)計(jì)數(shù)到99時(shí),產(chǎn)生一個(gè)持續(xù)的高電平,將此高電平和下一個(gè)碼元相與,得到秒脈沖信號(hào)。不同幀位碼元的賦值表示某刻時(shí)間的具體信息,時(shí)間信息解調(diào)模塊按照B碼協(xié)議將其轉(zhuǎn)換為8421BCD格式,并通過MAX490芯片轉(zhuǎn)換為差分形式輸出。
在一秒的中間時(shí)刻,時(shí)間信息解調(diào)完成,在下一秒的秒脈沖上升沿出現(xiàn)時(shí)輸出,因此需要對(duì)時(shí)間信息進(jìn)行加一處理。其解調(diào)過程如圖6所示。
圖6 IRIG-B(DC)碼解調(diào)流程圖
為了驗(yàn)證IRIG-B(AC)解碼器的可靠性與可行性,進(jìn)行了大量的B碼解調(diào)試驗(yàn)。使用某型號(hào)的B碼產(chǎn)生器作為B碼源,該產(chǎn)生器自帶20 m外置天線可以接收GPS與北斗信號(hào),并以此為基準(zhǔn)產(chǎn)生IRIGB(AC)碼。采用C語言編寫的上位機(jī)軟件,通過RS232串口將時(shí)間信息送到上位機(jī),不但可以顯示該時(shí)刻的時(shí)間也可以將信息保存并打印。當(dāng)前時(shí)間是2015年3月6日下午2點(diǎn)16分25秒,對(duì)應(yīng)的顯示控件上顯示的時(shí)間總共是65 d 14 h 16 min 25 s,如圖7右側(cè)所示。
檢驗(yàn)授時(shí)精度的主要標(biāo)準(zhǔn)是檢驗(yàn)授時(shí)儀器產(chǎn)生的秒脈沖的上升沿與基準(zhǔn)脈沖上升沿的間隔,間隔越小精度越高。解碼器通過BNC端口輸出秒脈沖,基準(zhǔn)脈沖則取自于衛(wèi)星同步時(shí)鐘,將兩個(gè)脈沖同時(shí)接入安捷倫的53132A通用計(jì)數(shù)器的兩個(gè)輸入端測(cè)量上升沿的時(shí)間間隔,53132A通用計(jì)數(shù)器的精度可以達(dá)到100 ps,完全滿足試驗(yàn)要求。檢測(cè)脈沖的時(shí)間間隔如圖8所示。
圖7 解調(diào)時(shí)間顯示
圖8 脈沖的時(shí)間間隔測(cè)量結(jié)果
由圖8可見兩個(gè)秒脈沖的間距為45.432 62 μs,測(cè)量結(jié)果時(shí)取前50個(gè)計(jì)數(shù)結(jié)果的值求平均值得出。解碼脈沖與基準(zhǔn)脈沖相比延遲45.4 μs,控制在50 μs內(nèi),滿足設(shè)計(jì)要求。解碼的秒脈沖延時(shí)是固定的,在FPGA內(nèi)部程序添加計(jì)數(shù)模塊,使得秒脈沖和下一秒的基準(zhǔn)脈沖對(duì)齊,可以進(jìn)一步提高授時(shí)精度。
本文介紹了采用FPGA芯片實(shí)現(xiàn)的IRIG-B (AC)碼解碼器的設(shè)計(jì),通過調(diào)用FPGA內(nèi)部的IP核以及采用模塊化設(shè)計(jì)實(shí)現(xiàn)對(duì)交流B碼的解調(diào)功能,可以精確地提取時(shí)間信息和秒脈沖信號(hào)。解碼器結(jié)構(gòu)簡(jiǎn)單、成本低、功耗小、解碼精度高,可以與多種授時(shí)儀器協(xié)同工作。滿足國(guó)軍標(biāo)GJB3947A要求,具有廣闊的應(yīng)用前景。
[1]王智平,佟剛,曹永剛,等.FPGA在IRIG-B碼源設(shè)計(jì)中的應(yīng)用[J].微計(jì)算機(jī)信息,2009,12(2):167-168.
[2]唐博,李錦明,李士照,等.基于FPGA的高階FIR濾波器強(qiáng)抗干擾數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2009,12(2):89-92.
[3]雒俊鵬.基于FPGA的IRIG-B(DC)碼產(chǎn)生電路設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,38(9):146-148.
[4]吳衛(wèi),陳建軍,宋虎,等.基于FPGA的IRIG-B碼解碼器的實(shí)現(xiàn)[J].雷達(dá)與對(duì)抗,2009(3):37-40.
[5]熊立智,唐普英.基于FPGA的IRIG-B解碼電路設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2010,43(8):231-232.
[6]張斌,張東來,王超.基于FPGA的IRIG-B(DC)碼同步解碼設(shè)計(jì)[J].測(cè)控技術(shù),2008,27(2):45-47.
[7]吳煒,周燁,黃子強(qiáng).FPGA實(shí)現(xiàn)IRIG-B(DC)碼編碼和解碼的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2010,18-12:162-164.
[8]李萬山,鄭海昕.用GPS校時(shí)的IRIG-B(DC)時(shí)間碼產(chǎn)生器設(shè)計(jì)[J].裝備指揮技術(shù)學(xué)院學(xué)報(bào),1999,10(1):93-96.
賈磊(1989-),男,山西呂梁人,碩士研究生,專業(yè):儀器儀表工程,研究方向?yàn)殡娐放c系統(tǒng);
崔永?。?973-),山西忻州人,博士生,副教授,主要研究方向?yàn)榧{米測(cè)試技術(shù)與儀器,704815175@qq.com。
Design of FPGA-Based IR IG-B(AC)Time Code Decoder*
JIA Lei1,2,CUI Yongjun1,2*,YANG Bing1,2,WANG Jinwei1,2
(1.Ministerial Key Laboratory for Instrument Science and Dynamic Test North University of China,Taiyuan 030051,China;2.National Key Laboratory for Electoenic Measurement Technology,North University of China,Taiyuan 030051,China)
In order to solve the IRIG-B(AC)decoding low accuracy problems and improve the stability of the demod?ulation system,a high-performance decoder is presented useing FPGA implementation demodulation IRIG-B(AC)codes.By calling the FPGA IP core generation multipliers and FIR low-pass filter,the AC components in the B(AC)code are filtered,then demodulated according to their amplitude.The decoder can demodulate time information of IRIG-B(AC)code accurately,transmit it quickly,and outputs the second pulse which is corresponding with time in?formation,through the output port to the demodulated PC display.Through extensive testing the decoder shows its accuracy,stability,and meets the requirements of various applications for IRIG-B(AC)code of timing.
IRIG-B code;decoding;filtering;A/D conversion;the second pulse
TN787
A
1005-9490(2016)02-0370-04
EEACC:6120D10.3969/j.issn.1005-9490.2016.02.025
項(xiàng)目來源:國(guó)家自然科學(xué)基金項(xiàng)目(61335008)
2015-05-26修改日期:2015-07-03