基于FPGA的IRIG-B(DC)碼產(chǎn)生電路設(shè)計(jì)
摘要:提出了一種IRIG-B(DC)碼產(chǎn)生電路的設(shè)計(jì)方法。采用Altera公司低功耗Cyclone FPGA系列中的EPlC6T144、8段數(shù)碼管、晶體振蕩器和MAX3232E等器件構(gòu)成硬件電路、使用VHDL語言設(shè)計(jì)IRIG-B直流時(shí)間碼的軟件。為了設(shè)置和觀察,使用8段數(shù)碼管、撥碼開關(guān)和按鍵來顯示、修改和設(shè)置天、時(shí)、分、秒等時(shí)間信息。仿真和試驗(yàn)結(jié)果表明,該設(shè)計(jì)可以產(chǎn)生標(biāo)準(zhǔn)的IRIG-B(DC)碼時(shí)間脈沖序列。
關(guān)鍵詞:IRIG-B(DC)碼;FPGA;VHDL
在測(cè)控系統(tǒng)中,時(shí)統(tǒng)信息不僅是各個(gè)分系統(tǒng)工作的基礎(chǔ)。也是有些分系統(tǒng)進(jìn)行測(cè)控時(shí)推算彈道和其他復(fù)雜運(yùn)算必不可少的信息,IRIG-B時(shí)間碼作為一種重要的時(shí)間同步傳輸?shù)姆绞?,成為時(shí)統(tǒng)設(shè)備首選的標(biāo)準(zhǔn)碼型。IRIG全稱Inter-Range Instrumentation Group(靶場(chǎng)間測(cè)量?jī)x器組)。IRIG串行時(shí)間碼,共有6種格式。即IRIG-A、B、D、E、G、H,IRIG-B(DC)碼又分為DC和AC碼,DC碼的接口通常采用TTL接口和RS422(V.11)接口。
1 IRIG-B(DC)碼介紹
IRIG-B(DC)碼的時(shí)幀速率為1幀/s;可傳遞100信息位,每個(gè)信息位寬度10 ms,稱為一個(gè)碼元,每10個(gè)碼元為l組。每幀有一個(gè)高電平寬度8 ms、低電平寬度2 ms的起始碼元PR和結(jié)束碼元P0,PR和P0之間有P1、P2、…,P9標(biāo)志碼元,標(biāo)志碼元之間包含秒、分、時(shí)、天和控制功能等信息,碼元高電平寬度5 ms代表二進(jìn)制的“l(fā)”,高電平寬度2 ms代表二進(jìn)制的“0”,IRIG-B(DC)碼的示意圖如圖l所示。
2 系統(tǒng)硬件電路設(shè)計(jì)
本設(shè)計(jì)的硬件電路如圖2所示,采用Altera低功耗、低成本Cyclone FPGA系列的EPlC6T144,總引腳數(shù)144.I/O引腳數(shù)98,有3種配置方式,分別為AS方式、PS方式和JTAG方式,本設(shè)計(jì)采用AS方式,當(dāng)使用AS方式時(shí),必須將FPGA EPlC6T144的MSEID和MSELl這2個(gè)引腳接到低電平,即為邏輯的00,AS方式還需與一片串行配置器件并用,本設(shè)計(jì)采用低成本的Ahera公司的EPCSlSl8,具體連接如圖2所示,采用這種方式上電后可直接通過下載電纜對(duì)FPGA進(jìn)行編程,使用靈活方便。在設(shè)計(jì)時(shí)注意引腳上的上拉電阻和下拉電阻必須連接上。
晶體振蕩器采用10 MHz晶振,將晶振的SCLK輸出引腳與EPlC6T144的CLK0輸入引腳連接,檢測(cè)晶振信號(hào)脈沖的上升沿并進(jìn)行計(jì)數(shù),以此計(jì)數(shù)作為時(shí)間基礎(chǔ)。
選擇EPlC6T144的37引腳作為異步串行輸出引腳,與MAX3232E的lO引腳(T2IN)連接,將從FPGA出來的TTL電平轉(zhuǎn)換為串行輸出電平從7引腳(T20UT)輸出,串行電平轉(zhuǎn)換器采用MAX3232E。選擇EPlC6T144的4l、42引腳作為2路IRIG-B碼信號(hào)輸出,因?yàn)镮RIG-B(DC)碼采用RS422電平輸出,而從EPIC6T144的4l、42引腳輸出脈沖是TTL電平,所以必須進(jìn)行電平轉(zhuǎn)換,本設(shè)計(jì)采用TI公司的AN26LS31CD差分驅(qū)動(dòng)器。采用8段數(shù)碼管作為時(shí)間顯示器件,顯示的信息有天、時(shí)、分和秒,共需9個(gè)器件,每個(gè)8段數(shù)碼管的0~9個(gè)數(shù)字顯示邏輯為:
3 系統(tǒng)軟件程序設(shè)計(jì)
使用VHDL硬件描述語言進(jìn)行編程,編譯環(huán)境采用Altera公司的QuartusII7.1。根據(jù)圖1所示B碼脈沖序列寬度圖譜,以秒的B碼串產(chǎn)生為例。說明VHDL編程設(shè)計(jì)過程,流程圖如圖3所示。分、時(shí)和天的軟件設(shè)計(jì)根據(jù)圖l所示的B碼示意圖,參考秒的設(shè)計(jì)流程來設(shè)計(jì),將100個(gè)碼元對(duì)應(yīng)的脈沖串按照?qǐng)Dl的脈沖寬度輸出,就形成整個(gè)一幀IRIG-B(DC)碼的脈沖串。
4 電路仿真
電路仿真脈沖輸出如圖4所示,圖中Bl_out和B2_out是IRIG-B(DC)碼的輸出脈沖,clk_lms是根據(jù)晶體振蕩器輸入脈沖而產(chǎn)生的模擬l ms信號(hào)脈沖,可以看出,當(dāng)連續(xù)8個(gè)elk_1ms的脈沖時(shí),Bl_out和B2_out保持高電平,即保持了8 ms的高電平,后面的脈沖都嚴(yán)格的遵守圖l所示的IRIG-B(DC)碼的規(guī)則。
5 結(jié)論
通過仿真和實(shí)際使用表明,該設(shè)計(jì)電路所產(chǎn)生的IRIG-B(DC)時(shí)間碼穩(wěn)定、連續(xù)、準(zhǔn)確,電路板功耗低、成本低,操作靈活簡(jiǎn)單,在測(cè)控領(lǐng)域有廣闊的應(yīng)用前景。