本發(fā)明屬于通信技術(shù)領(lǐng)域。
背景技術(shù):隨著當(dāng)今電子技術(shù)日新月異的發(fā)展,時間同步得到了越來越重要的應(yīng)用。IRIG-B碼作為一種串行時間碼,是一種重要的時間同步傳輸?shù)姆绞剑云鋵嶋H突出的優(yōu)越性能,成為時統(tǒng)設(shè)備首選的標準碼型,廣泛的應(yīng)用到電信、電力、軍事等重要行業(yè)或部門。對IRIG-B碼的編碼和譯碼一般有三種方式:基于FPGA的編碼譯碼、基于單片機的編碼譯碼以及專用的譯碼芯片。但是現(xiàn)有的IRIG-B碼的處理系統(tǒng)多是針對于IRIG-B碼(DC碼)的譯碼,需要外部的IRIG-B碼的信號源才能完成對譯碼系統(tǒng)的自檢,此種方式在設(shè)備研制過程中是十分不方便的。
技術(shù)實現(xiàn)要素:本發(fā)明為了解決現(xiàn)有的IRIG-B碼的處理系統(tǒng)需要外部的IRIG-B碼的信號源才能完成對譯碼系統(tǒng)的自檢,譯碼功能的準確性無法得到檢驗的問題,提出了基于FPGA的IRIG-B碼編碼譯碼系統(tǒng)及其編碼譯碼方法?;贔PGA的IRIG-B碼編碼譯碼系統(tǒng),它包括GPS/北斗雙系統(tǒng)模塊、FPGA、單片機、DAC芯片、比較器芯片、上位機和PCI轉(zhuǎn)接卡,F(xiàn)PGA內(nèi)嵌存儲控制模塊、AC碼編碼控制邏輯模塊、DC碼編碼控制邏輯模塊、DC譯碼控制邏輯模塊和AC碼譯碼控制邏輯模塊,所述GPS/北斗雙系統(tǒng)模塊用于輸出時間信息并同時發(fā)送給單片機和存儲控制模塊,存儲控制模塊用于將接收到的時間信息作為原始的時間源,還用于將該原始的時間源通過PCI轉(zhuǎn)接卡輸入到上位機,單片機用于將接收到的時間信息進行譯碼并輸出給DC碼編碼控制邏輯模塊和AC碼編碼控制邏輯模塊,DC碼編碼控制邏輯模塊用于將單片機發(fā)送來的時間信息進行DC碼的編碼,AC碼編碼控制邏輯模塊根據(jù)接收到的單片機發(fā)送來的時間信息進行AC碼的編碼,DAC芯片用于接收AC碼編碼控制邏輯模塊輸出的調(diào)制后的信息,并進行D/A轉(zhuǎn)換,比較器芯片用于采集輸入的AC碼的零點,AC碼譯碼控制邏輯模塊用于控制數(shù)據(jù)采集芯片采集AC碼的幅值,并將其轉(zhuǎn)換為DC碼,DC譯碼控制邏輯模塊用于對輸入DC碼譯碼,轉(zhuǎn)換為時間信息?;贔PGA的IRIG-B碼編碼譯碼系統(tǒng)的編碼譯碼的方法為:步驟一:GPS/北斗雙系統(tǒng)模塊每秒鐘產(chǎn)生一次時間信息和一個秒脈沖信號,步驟二:將步驟一所述的時間信息發(fā)送到單片機,單片機將接收到的時間信息進行譯碼,得到時間信息,步驟三:將步驟二所述時間信息同時輸入到AC碼編碼控制邏輯模塊和DC碼編碼控制邏輯模塊,同時執(zhí)行步驟四和步驟五,步驟四:DC碼編碼控制邏輯模塊對接收到的時間信息進行編碼,完成對DC碼的編碼,執(zhí)行步驟八,步驟五:AC碼編碼控制邏輯模塊根據(jù)接收到的DC碼對FPGA中產(chǎn)生的1KHz的正弦波進行幅度調(diào)制,完成對AC碼的編碼,步驟六:將調(diào)制后的信號輸入到DAC芯片,得到IRIG-B的AC碼的模擬量信息,步驟七:將步驟六得到的模擬量信息經(jīng)過比較器輸入到AC碼譯碼控制邏輯模塊,得到DC碼數(shù)字序列,并輸入到DC譯碼控制邏輯模塊,步驟八:DC譯碼控制邏輯模塊將接收到的DC碼數(shù)字序列進行譯碼,得到時間信息,根據(jù)IRIG-B碼的協(xié)議,P脈沖是一種位置標志位碼元,每兩個連續(xù)的“P”脈沖,之后表示一組新的時間信息的到來,判斷出每一個碼元所表達的具體含義,當(dāng)檢測到IRIG-B碼的兩個“P”脈沖之后,在下一個碼元開始的上升沿把譯出的信息賦值到相應(yīng)的表示時間信息的寄存器變量中,然后輸入到上位機,即完成對DC碼的譯碼和AC碼的譯碼。本發(fā)明通過系統(tǒng)的編碼功能實現(xiàn)對系統(tǒng)譯碼功能的檢驗,系統(tǒng)本身可以完成自檢功能。編碼的基準源來自于GPS/北斗雙系統(tǒng)模塊,把譯碼的結(jié)果和GPS/北斗雙系統(tǒng)模塊的時間信息通過CPCI總線上傳到上位機,即將自檢的結(jié)果與原始的時間源作比較可以很方便的檢驗系統(tǒng)的譯碼功能的準確性,實現(xiàn)了在沒有IRIG-B碼外部信號的情況下完成對譯碼功能的自檢。本發(fā)明的主要優(yōu)點是:1.FPGA配合外圍DAC芯片實現(xiàn)對IRIG-B碼的兩種形式AC碼及BC碼的編碼輸出;2.FPGA配合外圍比較器芯片實現(xiàn)對IRIG-B碼的兩種形式AC碼及BC碼的輸入譯碼;3.通過對譯碼和編碼功能的輸入輸出環(huán)回,實現(xiàn)系統(tǒng)的自檢,而不需要外部的IRIG-B碼的信號源。4.IRIG-B碼(AC碼及DC碼)編碼的時間基準來自系統(tǒng)上的GPS/北斗雙系統(tǒng)模塊,通過對譯碼結(jié)果和GPS/北斗雙系統(tǒng)模塊產(chǎn)生的時間進行比較可以更好的對系統(tǒng)的準確性進行驗證。5.本系統(tǒng)的編碼所用的時鐘與譯碼所用的時鐘不同,可以更好的模擬外部的IRIG-B碼的輸入。6.本方法設(shè)計的各部分功能模塊具有獨立性與通用性,可應(yīng)用于其它設(shè)計。附圖說明圖1為系統(tǒng)整體工作框圖;圖2為AC碼與DC碼的關(guān)系示意圖;圖3為AC碼編碼控制邏輯的狀態(tài)圖;圖4為DC碼譯碼控制邏輯狀態(tài)圖;圖5為DC碼譯碼結(jié)果輸出控制邏輯狀態(tài)圖;圖6為AC碼的輸入與過零比較的關(guān)系示意圖;圖7為過零比較器零點附近產(chǎn)生抖動問題示意圖;圖8為本發(fā)明的工作流程;圖9為具體實施方式五所述的編碼譯碼的方法的流程圖。具體實施方式具體實施方式一:參見圖1說明本實施方式,本實施方式所述的基于FPGA的IRIG-B碼編碼譯碼系統(tǒng),它包括GPS/北斗雙系統(tǒng)模塊1、FPGA2、單片機3、DAC芯片4、比較器芯片5、上位機6和PCI轉(zhuǎn)接卡7,F(xiàn)PGA2內(nèi)嵌存儲控制模塊2-1、AC碼編碼控制邏輯模塊2-2、DC碼編碼控制邏輯模塊2-3、DC譯碼控制邏輯模塊2-4和AC碼譯碼控制邏輯模塊2-5,所述GPS/北斗雙系統(tǒng)模塊1用于輸出時間信息并同時發(fā)送給單片機3和存儲控制模塊2-1,存儲控制模塊2-1用于將接收到的時間信息作為原始的時間源,還用于將該原始的時間源通過PCI轉(zhuǎn)接卡7輸入到上位機6,單片機3用于將接收到的時間信息進行譯碼并輸出給DC碼編碼控制邏輯模塊2-3和AC碼編碼控制邏輯模塊2-2,DC碼編碼控制邏輯模塊2-3用于將單片機3發(fā)送來的時間信息進行DC碼的編碼,AC碼編碼控制邏輯模塊2-2根據(jù)接收到的單片機3發(fā)送來的時間信息進行AC碼的編碼,DAC芯片4用于接收AC碼編碼控制邏輯模塊2-2輸出的調(diào)制后的信息,并進行D/A轉(zhuǎn)換,比較器芯片5用于采集輸入的AC碼的零點,AC碼譯碼控制邏輯模塊2-5用于控制數(shù)據(jù)采集芯片采集AC碼的幅值,并將其轉(zhuǎn)換為DC碼,DC譯碼控制邏輯模塊2-4用于對輸入DC碼譯碼,轉(zhuǎn)換為時間信息。本實施方式所述的FPGA2通過PCI轉(zhuǎn)接卡7與上位機6相連是指通過PCI轉(zhuǎn)接卡把模塊插到計算機的PCI插槽中;在上位機6中安裝模塊的驅(qū)動;在安裝GPS/北斗雙系統(tǒng)模塊1上安裝GPS/北斗雙系統(tǒng)模塊1的天線;本實施方式所述GPS/北斗雙系統(tǒng)模塊1、FPGA2、單片機3、DAC芯片4和比較器芯片5集成在板卡上。具體實施方式二:本實施方式是對具體實施方式一的進一步限定,所述DAC芯片4采用DAC7714實現(xiàn),所述DAC7714為12位的串行輸入的D/A轉(zhuǎn)換器。具體實施方式三:本實施方式是對具體實施方式一的進一步限定,所述比較器芯片5為過零比較器芯片。具體實施方式四:參見圖9說明本實施方式,具體實施方式一所述的基于FPGA的IRIG-B碼編碼譯碼系統(tǒng)的編碼譯碼的方法為:步驟一:GPS/北斗雙系統(tǒng)模塊1每秒鐘產(chǎn)生一次時間信息和一個秒脈沖信號,步驟二:將步驟一所述的時間信息發(fā)送到單片機3,單片機3將接收到的時間信息進行譯碼,得到時間信息,步驟三:將步驟二所述時間信息同時輸入到AC碼編碼控制邏輯模塊2-2和DC碼編碼控制邏輯模塊2-3,同時執(zhí)行步驟四和步驟五,步驟四:DC碼編碼控制邏輯模塊2-3對接收到的時間信息進行編碼,完成對DC碼的編碼,執(zhí)行步驟八,步驟五:AC碼編碼控制邏輯模塊2-2根據(jù)接收到的DC碼對FPGA中產(chǎn)生的1KHz的正弦波進行幅度調(diào)制,完成對AC碼的編碼,步驟六:將調(diào)制后的信號輸入到DAC芯片,得到IRIG-B的AC碼的模擬量信息,步驟七:將步驟六得到的模擬量信息經(jīng)過比較器輸入到AC碼譯碼控制邏輯模塊2-5,得到DC碼數(shù)字序列,并輸入到DC譯碼控制邏輯模塊2-4,步驟八:DC譯碼控制邏輯模塊2-4將接收到的DC碼數(shù)字序列進行譯碼,得到時間信息,根據(jù)IRIG-B碼的協(xié)議,P脈沖是一種位置標志位碼元,每兩個連續(xù)的“P”脈沖,之后表示一組新的時間信息的到來,判斷出每一個碼元所表達的具體含義,當(dāng)檢測到IRIG-B碼的兩個“P”脈沖之后,在下一個碼元開始的上升沿把譯出的信息賦值到相應(yīng)的表示時間信息的寄存器變量中,然后輸入到上位機,即完成對DC碼的譯碼和AC碼的譯碼。本實施方式中DC譯碼控制邏輯模塊2-4輸出的DC碼和GPS/北斗雙系統(tǒng)模塊的時間信息上傳到上位機,即將自檢的結(jié)果與原始的時間源作比較,從而實現(xiàn)對譯碼功能的自檢。本發(fā)明可以通過板卡上的測試孔用示波器觀察產(chǎn)生的DC碼和AC碼;通過在上位機中觀察AC碼譯碼產(chǎn)生的信息、DC碼譯碼產(chǎn)生的信息以及GPS/北斗雙系統(tǒng)模塊1產(chǎn)生的時間信息來實現(xiàn)系統(tǒng)的自檢,具體工作流程如圖8所示。本實施方式中的IRIG-B碼是時間系統(tǒng)中的一種常用串行傳輸方式,B碼分為直流(DC)碼和交流(AC)碼,直流碼為脈寬編碼方式;交流碼是以1KHz的正弦波載頻對直流碼進行幅度調(diào)制后形成的。一幀B碼共包含10組100位數(shù)據(jù),每組數(shù)據(jù)周期為100ms、包含10個碼元,每個碼元為10ms寬度,脈沖不同寬度表示不同編碼信息,GPS/北斗雙系統(tǒng)模塊1每秒鐘產(chǎn)生一次時間信息和一個秒脈沖信號,其中每個秒脈沖信號包含100個碼元,所述碼元分為三種,即P脈沖、數(shù)字“1”和數(shù)字“0”,所述P脈沖的高電平寬度為8ms,低電平寬度為2ms,所述數(shù)字“1”的高電平寬度為5ms,低電平寬度為5ms,所述數(shù)字“0”的高電平寬度為2ms,低電平寬度為8ms,P脈沖是一種位置標志位碼元,一幀B碼共包含10個P脈沖,把100位碼元分成10組。為了準確測出碼元所表示的信息,同時考慮到降低邏輯資源的占用,采用200us的時鐘檢測每一個碼元??紤]到外部信號可能有毛刺以及抖動的情況,當(dāng)檢測到碼元的高電平寬度低于400us時不做處理。為了提高對DC碼譯碼的準確性,進行了容錯處理。用周期為200us的時鐘檢測每一個碼元的高電平的時間長度T,根據(jù)不同T的值來判斷碼元所表示的信息。本實施方式所述的GPS/北斗雙系統(tǒng)模塊1每秒鐘產(chǎn)生一次時間信息和一個秒脈沖信號(1PPS),所述時間信息和秒脈沖信號是同時產(chǎn)生的,時間信息的數(shù)據(jù)格式為:“$GPRMC,123400.000,A,4002.2178,N,11618.1057,E,0.026,181.631,180411,,E,A*2C”對于GPS/北斗雙系統(tǒng)模塊1產(chǎn)生時間信息的數(shù)據(jù)的譯碼FPGA2和單片機3都可以完成,由單片機3來譯碼更加簡單。GPS/北斗雙系統(tǒng)模塊1產(chǎn)生時間信息的數(shù)據(jù)接口為UART串口,時間信息發(fā)送到單片機3。單片機3對時間信息進行譯碼后發(fā)送到FPGA2,F(xiàn)PGA2分別用不同的寄存器表示時間信息的不同部分,即DW_sec_ge[3:0]表示時間信息中秒的個位、DW_sec_shi[3:0]表示時間信息中秒的十位、DW_min_ge[3:0]表示時間信息中分的個位、DW_min_shi[3:0]表示時間信息中分的十位等等。例如:當(dāng)時間信息是2013年01月21日16時47分39秒時,秒的個位為9則DW_sec_ge[3:0]=1001、秒的十位為4則DW_sec_shi[3:0]=0100,依此類推DW_min_ge[3:0]=0111、DW_min_shi[3:0]=0001。在產(chǎn)生時間信息的下一個脈沖,表示時間信息的各個寄存器變量值賦給DC譯碼控制邏輯模塊2-4,DC譯碼控制邏輯模塊2-4也把相應(yīng)的時間信息存儲在寄存器變量中。由于IRIG-B碼在1秒時間內(nèi)有100個碼元,因此用18.432M時鐘對秒脈沖信號進行100分頻產(chǎn)生信號a_100pps_in,即100PPS信號。用100PPS信號來產(chǎn)生IRIG-B碼的碼元,在每一個100PPS信號的上升沿產(chǎn)生一個碼元,因此100個100PPS信號時間長度即1秒產(chǎn)生100個碼元。IRIG-B碼的起始信號與秒脈沖信號的上升沿同步,因此用上面方法在1S內(nèi)產(chǎn)生的誤差最大為1個18.432M時鐘信號的時鐘長度,即1/18432000秒約等于54ns。由于100PPS信號來源于秒脈沖信號的分頻,在每一個秒脈沖信號的上升沿開始100分頻,因此誤差不積累,即產(chǎn)生的IRIG-B碼的理論最大誤差只有54ns。對應(yīng)的每一個碼元,是時間信號還是P脈沖是有IRIG-B碼的協(xié)議規(guī)定的。例如秒的個位用第1、2、3、4碼元表示,時間為2013年01月21日16時47分37秒時,秒的個位為7,用二進制表示為0111,則第1、2、3、4碼元分別對應(yīng)著1110。DC譯碼控制邏輯模塊2-4對于每個碼元信息的產(chǎn)生是根據(jù)IRIG-B碼的協(xié)議和接收的時間信息來決定的。每一個碼元的時間長度是10ms,用18.432M的時鐘計數(shù),用寄存器tmp_P[31:0]表示計數(shù)的個數(shù),從0記到184319是10ms,然后從0開始計數(shù)。當(dāng)tmp_P<n時IRIG-B碼輸出為1,當(dāng)tmp_P>=n時IRIG-B碼輸出為0,當(dāng)碼元為P脈沖式時n=147455,即高電平時間長度為8ms。依此類推碼元為“1”時n=92159、推碼元為“0”時n=36863,其他情況n=36863。tmp_P在兩種情況復(fù)位歸零,一是tmp_P>=184319時,二是100pps的上升沿,這保證了tmp_P在碼元的上升沿開始計數(shù)。由于用18.432M時鐘計數(shù),同上面分析,每個碼元信息的理論最大誤差只有54ns,且誤差不累加。在GPS/北斗雙系統(tǒng)模塊1產(chǎn)生時間信息的下一個脈沖,表示時間信息的各個寄存器變量值賦給DC譯碼控制邏輯模塊2-4,DC譯碼控制邏輯模塊2-4在第99個碼元(共有100個碼元,從0開始,第99個碼元是最后一個碼元并且不表示時間信息)的上升沿把有時間信息決定的N值賦給各個碼元的tmp_P。因此產(chǎn)生的IRIG-B碼表示的時間信息與GPS/北斗雙系統(tǒng)模塊1產(chǎn)生時間信息之間差2秒。具體實施方式五:參見圖3說明本實施方式,本實施方式是對具體實施方式四的進一步限定,所述步驟五所述的AC碼編碼控制邏輯模塊2-2中DC碼對FPGA產(chǎn)生1KHz的正弦波進行幅度調(diào)制的具體方法為:AC碼編碼控制邏輯模塊的輸入為DC碼DC_IN,在DC_IN的上升沿,標志值DC_IN高電平的輸入,這時把ROM的地址ROM_ADD復(fù)位為0,控制FPGA2的ROM從地址0到地址ROM_ADD依次讀出Nx,讀出的Nx輸入到DACC7714的控制邏輯中,控制DAC芯片4輸出相應(yīng)的幅值,每讀一次Nx,ROM的地址ROM_ADD加1,然后延時20us,50次后ROM_ADD復(fù)位為0,輸出高幅值正弦波,在DC_IN的下降沿,標志值DC_IN低電平的輸入,把ROM的地址ROM_ADD復(fù)位為50,依次讀取Nx50次,然后ROM_ADD復(fù)位為50,輸出低幅值正弦波,將得到的正弦波進行查表,實現(xiàn)AC碼編碼。本實施方式中的IRIG-B碼的AC碼是用DC碼對1KHz的正弦波進行幅度調(diào)制而成的,因此在產(chǎn)生AC碼時,也是在DC碼的基礎(chǔ)上產(chǎn)生的。AC碼產(chǎn)生的是1KHz的正弦波,因此需要外圍DAC芯片在FPGA2的控制下產(chǎn)生。每一個碼元有10個周期的正弦波,每個正弦波的周期為1ms,正弦波的幅值由碼元所表示的信息決定。例如表示“P”脈沖的碼元高電平為8ms,低電平為2ms,則產(chǎn)生的正弦波為8個高幅值的正弦波,2個低幅值的正弦波。AC碼與DC碼的關(guān)系如圖2所示:AC碼的產(chǎn)生是基于FPGA2的查找表法實現(xiàn)的。AC碼的產(chǎn)生只需要兩種類型的正弦波:高幅值正弦波和低幅值正弦波,高幅值正弦波和低幅值正弦波的幅值比是由AC碼所要求的調(diào)制比決定的。產(chǎn)生AC碼所用的外圍芯片為DAC7714,此芯片為12位的串行輸入的DA轉(zhuǎn)換器,不同的輸入對應(yīng)著不同的輸出。輸入的數(shù)據(jù)與輸出的電壓的關(guān)系有如下公式(1)給出:各參數(shù)的含義:Vout:DAC的電壓輸出VREFL:負參考電壓VREFH:正參考電壓N:數(shù)字量輸入數(shù)字量輸入的范圍為0-4096,對應(yīng)的輸出為-10V~10V。根據(jù)采樣定理對1KHz的正弦波進行采樣,采樣頻率最少為5KHz。DAC7714完成一次輸出需要11us,輸出頻率能夠達到90KHz。根據(jù)DAC芯片的輸入輸出特性同時考慮到正弦波曲線的光滑性,把高幅值正弦波的一個周期內(nèi)的幅值按時間均勻分成50等份即采樣頻率為50KHz,根據(jù)得到的Voutx計算出相應(yīng)的Nx,計算過程有LabVIEW編寫的一個軟件自動完成。有LabVIEW根據(jù)計算公式(1)計算得到的50個12位的二進制數(shù)分別存儲到一個以HEX為后綴的文件中,對應(yīng)的地址分別為0-49,FPGA2內(nèi)的ROM從這個文件中讀取相應(yīng)的數(shù)據(jù)。同理由低幅值正弦波得到的50個數(shù)存儲到地址為50-99的空間中去。具體實施方式六:本實施方式是對具體實施方式四的進一步限定,所述步驟四所述的DC碼編碼控制邏輯模塊2-3產(chǎn)生DC碼數(shù)字序列的方法為::根據(jù)IRIG-B碼的協(xié)議和接收的時間信息,用18.432M時鐘對每一個秒脈沖信號進行100分頻,產(chǎn)生信號a_100pps_in,即100PPS信號,用100PPS信號來產(chǎn)生IRIG-B碼的碼元,在每一個100PPS信號的上升沿產(chǎn)生一個碼元,每一個碼元的時間長度是10ms,用18.432M的時鐘計數(shù),用寄存器tmp_P[31:0]表示計數(shù)的個數(shù),從0記到184319是10ms,然后從0開始計數(shù),當(dāng)tmp_P<n時IRIG-B碼輸出為1,當(dāng)tmp_P>=n時IRIG-B碼輸出為0,當(dāng)碼元為P脈沖式時n=147455,即高電平時間長度為8ms,碼元為“1”時n=92159,碼元為“0”時n=36863,其它情況n=36863,當(dāng)tmp_P>=184319或100pps的上升沿時,tmp_P復(fù)位歸零,DC碼編碼控制邏輯模塊2-3在第99個碼元的上升沿把有時間信息決定的N值賦給各個碼元的tmp_P。具體實施方式七:參見圖4和圖5說明本實施方式,本實施方式是對具體實施方式四的進一步限定,所述AC碼編碼控制邏輯模塊2-2包括如下工作狀態(tài):AC碼編碼控制邏輯模塊2-2處于空閑狀態(tài)時輸入DC碼,當(dāng)DC碼處于下降沿時,AC碼編碼控制邏輯模塊2-2由空閑狀態(tài)轉(zhuǎn)入低幅值正弦波輸出狀態(tài),當(dāng)DC碼處于上升沿時,AC碼編碼控制邏輯模塊2-2由空閑狀態(tài)轉(zhuǎn)入高幅值正弦波輸出狀態(tài),當(dāng)DC碼處于上升沿時,AC碼編碼控制邏輯模塊2-2由低幅值正弦波輸出狀態(tài)轉(zhuǎn)入高幅值正弦波輸出狀態(tài),當(dāng)DC碼處于下降沿時,AC碼編碼控制邏輯模塊2-2由高幅值正弦波輸出狀態(tài)轉(zhuǎn)入低幅值正弦波輸出狀態(tài)。具體實施方式八:參見圖6說明本實施方式,本實施方式是對具體實施方式四的進一步限定,所述AC碼譯碼控制邏輯模塊2-5的具體工作過程為:將AC碼編碼輸入經(jīng)過一個過零比較器,在過零比較輸出的上升沿之后延時250us正好檢測到AC碼輸入的峰值,這時控制ADC芯片采集AC碼的輸入,設(shè)AC碼高正弦波的最大峰值為X,低正弦波的最大峰值為Y,AD采集的值為Z,當(dāng)Y<Z<=X時輸出高電平,當(dāng)Z<=Y時輸出低電平。本實施方式中的AC碼譯碼控制邏輯模塊2-5檢測到高電平后開始計時,如果高電平的時間長度不夠20us,則重新開始計算高電平,這樣就可以很好的解決過零比較器在零點附近抖動的問題。過零比較器零點附近產(chǎn)生抖動問題示意圖如圖7所示。DC碼的輸出與AC碼的輸入相比正好延遲了250us即四分之一個周期,AC轉(zhuǎn)換為DC碼之后,輸入到DC譯碼控制邏輯模塊2-4就可以完成對AC碼模塊的譯碼。具體實施方式九:參見圖4和圖5說明本實施方式,本實施方式是對具體實施方式四的進一步限定,所述DC譯碼控制邏輯模塊2-4譯碼的具體工作狀態(tài)為:當(dāng)DC碼高電平輸入時,由空閑狀態(tài)轉(zhuǎn)入干擾判斷狀態(tài),在干擾判斷狀態(tài)時,對輸入的DC碼進行判斷,如果有毛刺以及抖動,則由干擾判斷狀態(tài)轉(zhuǎn)入空閑狀態(tài),如果沒有毛刺以及抖動,則由干擾判斷狀態(tài)轉(zhuǎn)入高電平計數(shù)狀態(tài),檢測到碼元寬度X大于6.2ms時,由高電平計數(shù)狀態(tài)轉(zhuǎn)入P脈沖處理狀態(tài),檢測到碼元寬度X大于3.8ms且小于6.2ms時,由高電平計數(shù)狀態(tài)轉(zhuǎn)入數(shù)字1處理狀態(tài),檢測到碼元寬度X大于1.4ms且小于3.8ms時,由高電平計數(shù)狀態(tài)轉(zhuǎn)入數(shù)字0處理狀態(tài);所述DC譯碼控制邏輯模塊2-4結(jié)果輸出的具體工作狀態(tài)為:當(dāng)檢測到兩個連續(xù)的“P”脈沖信號時,由空閑狀態(tài)轉(zhuǎn)入狀態(tài)標志狀態(tài),當(dāng)DC碼輸入上升沿時,由狀態(tài)標志狀態(tài)轉(zhuǎn)入數(shù)據(jù)輸出狀態(tài),數(shù)據(jù)輸出狀態(tài)轉(zhuǎn)入延時狀態(tài),接著由延時狀態(tài)轉(zhuǎn)回空閑狀態(tài)。本實施方式中譯出的時間與DC碼表示的時間之間差1s,這是不可避免的。本發(fā)明實現(xiàn)了IRIG-B碼的環(huán)回自檢,DC碼編碼的輸出信號在板卡的外面環(huán)回到DC碼譯碼的輸入信號,DC譯碼控制邏輯模塊2-4把DC碼的時間信息譯出后放到相應(yīng)的寄存器中,通過CPCI總線上傳到上位機中,用LabVIEW編寫的軟件顯示,GPS/北斗雙系統(tǒng)模塊1產(chǎn)生的時間信息一路發(fā)送的單片機3譯碼,另一路直接發(fā)送到FPGA2,F(xiàn)PGA2中的串行接收模塊把收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)存儲到FIFO中,根據(jù)FIFO收到的數(shù)據(jù)個數(shù),再把FIFO中的數(shù)據(jù)轉(zhuǎn)移到FPGA2中的RAM中去,這樣上位機就可以隨時讀取FPGA2中收到的GPS/北斗雙系統(tǒng)模塊1發(fā)來的時間信息,解決了能把FIFO讀空的問題。上位機讀取到GPS/北斗雙系統(tǒng)模塊1產(chǎn)生的原始信息后會對它進行譯碼,把時間信息譯出來,DC碼從原始信息經(jīng)歷編碼譯碼之后與原始信息相比延時了3秒,AC碼延時了3.25秒。在LabVIEW編寫的上位機軟件中可以很方便的觀察DC碼譯碼信息、AC碼譯碼信息和原始的時間信息。