日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

組合GPS引擎和FPGA的IRIG-B編碼器實(shí)現(xiàn)

出處:楊真人 發(fā)布于:2011-08-25 19:41:19

0 引言

  FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。

  FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(xiàn)(Interconnect)三個(gè)部分。 現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門(mén)陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線(xiàn)互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及個(gè)模塊之間或模塊與I/O間的連接方式,并終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并終決定了FPGA所能實(shí)現(xiàn)的功能, FPGA允許無(wú)限次的編程。

   在此,組合GPS引擎和FPGA,得到B碼的編碼輸出,直接采用GPS引擎的100 pps信號(hào)觸發(fā)輸出B碼的每個(gè)碼元,利用從100 pps中恢復(fù)的1 pps信號(hào)提供B碼的時(shí)間參考點(diǎn)。DC編碼和AC數(shù)字調(diào)制均由純硬件邏輯通過(guò)查找表實(shí)現(xiàn),它能使每個(gè)碼元的上升沿都非常精準(zhǔn),都可以作為百分秒的時(shí)間參考點(diǎn)。而計(jì)時(shí)鏈的預(yù)進(jìn)位功能則保證了時(shí)間的,不僅可以滿(mǎn)足實(shí)時(shí)系統(tǒng)對(duì)時(shí)間同步,還可以實(shí)現(xiàn)多節(jié)點(diǎn)的數(shù)據(jù)采集嚴(yán)格同步,為分析和度量異步發(fā)生的事件提供有力的支持。

1  IRIG-B編碼格式

  IRIG標(biāo)準(zhǔn)規(guī)定的B格式碼如圖1所示,每秒鐘發(fā)1次,每次100個(gè)碼元,包含1個(gè)同步參考點(diǎn)(P,脈沖的上升沿)和10個(gè)索引標(biāo)記。碼元寬度為10 ms,用高電平寬度為8 ms的脈沖表示索引標(biāo)記,用寬度為5 ms的脈沖表示邏輯1,用寬度為2 ms的脈沖表示邏輯0。

    如圖1所示,交流碼的載波是1 kHz正弦信號(hào),幅度變化峰-峰值范圍為0.5~1 0 V。調(diào)制比為U1/U0=1/6~1/2,即邏輯1是5個(gè)幅度為U1的1 kHz正弦信號(hào)。邏輯0是2個(gè)幅度為己U1的1 kHz正弦信號(hào),索引標(biāo)記是8個(gè)幅度為U1的1 kHz正弦信號(hào),其他時(shí)間是幅度為U0的1 kHz正弦信號(hào)。

2  系統(tǒng)方案

2.1  系統(tǒng)原理框圖

    設(shè)計(jì)授時(shí)系統(tǒng)需要一個(gè)精準(zhǔn)時(shí)基。在此利用精密授時(shí)型GPS引擎M12T作為系統(tǒng)時(shí)基,利用AlteraFPGA檢測(cè)M12T輸出的百分秒(100 pps)同步信號(hào)和經(jīng)串口輸出的時(shí)間信號(hào),編碼后輸出到DC/AC接口模塊,再輸出到物理鏈路,系統(tǒng)結(jié)構(gòu)圖如圖2所示。

    上述系統(tǒng)首先實(shí)現(xiàn)了B碼直流編碼,而后在直流碼的基礎(chǔ)上實(shí)現(xiàn)交流調(diào)制,以得到交流碼,同時(shí)提供恢復(fù)每秒脈沖數(shù)輸出和隔離RS 232串行口輸出且符合Motorola格式的時(shí)間碼,以及數(shù)碼管的時(shí)間顯示。時(shí)間顯示部分用FPGA實(shí)現(xiàn)比較簡(jiǎn)單,下文不再詳述。

2.2   GPS授時(shí)模塊M12T

  M12接收器是Motorola公司ONCORE家族中的新成員,廣泛用于各類(lèi)定位、導(dǎo)航、授時(shí)設(shè)備中,擁有全GPS行業(yè)內(nèi)快的初次定位時(shí)間和重捕獲衛(wèi)星的時(shí)間。M12T是針對(duì)GPS授時(shí)推出的定時(shí)更高的增強(qiáng)型產(chǎn)品。M12T具有12個(gè)并行通道,可同時(shí)跟蹤12顆衛(wèi)星,重捕獲時(shí)間小于1.O s。當(dāng)擁有當(dāng)前天歷、位置、時(shí)間和星歷數(shù)據(jù)時(shí)。

2.3   FPGA和DAC

  FPGA采用Altera CycloneⅡEPC2C5T144,該芯片有4 608個(gè)LE,26個(gè)M4K.兩個(gè)模擬鎖相環(huán)。DAC采用單通道、單電源、自帶基準(zhǔn)的MAX5712。MAX5712是微型引腳,12 b解析度,片上精密輸出放大器提供滿(mǎn)擺幅輸出。MAX5712用兼容SPITM/QSPITM/MICROWIRETM和DSt標(biāo)準(zhǔn)接口的3線(xiàn)串行接口。所有輸入都兼容于CMOS邏輯,并經(jīng)過(guò)施密特觸發(fā)器緩沖,允許直接接光電耦合器。MAX5712含有上電復(fù)位(POR)電路,確保上電時(shí)DAC處于零電壓輸出狀態(tài)。

3   時(shí)鐘模塊實(shí)現(xiàn)

3.1  基準(zhǔn)時(shí)刻和索引脈沖的提取

  要保證B碼每個(gè)碼元的上升沿時(shí)刻準(zhǔn)確,需要100 pps的時(shí)基和pps的參考點(diǎn)。一般的做法是用pps作為基準(zhǔn),每個(gè)碼元的起點(diǎn)由前兩個(gè)秒脈沖的間隔等分得到。這種方法使用上一時(shí)刻來(lái)預(yù)測(cè)下一秒,每秒脈沖有抖動(dòng)時(shí)會(huì)導(dǎo)致一個(gè)碼元寬度不足或超過(guò)10 ms,這將無(wú)法利用B碼來(lái)實(shí)現(xiàn)時(shí)間同步和數(shù)據(jù)等間隔同步的采集。本文直接使用M12T產(chǎn)生的100 pps信號(hào)作為每個(gè)碼元的起始時(shí)刻,然后再?gòu)?00 pps信號(hào)中恢復(fù)出1 pps。由于B碼參考標(biāo)記Pr=1 pps的上升沿,所以這種方法既保證Pr的準(zhǔn)確性,又保證各個(gè)碼元和索引標(biāo)記時(shí)刻的準(zhǔn)確性。

  M12T輸出的100 pps信號(hào)(以下稱(chēng)PPMl2)如圖3所示,每個(gè)脈沖的上升沿時(shí)刻準(zhǔn)確,周期10 ms,在pps的參考點(diǎn),脈沖寬度為6~8 ms,其他時(shí)刻2~4 ms,脈沖寬度不是關(guān)注的重點(diǎn)。


  B碼的每個(gè)碼元恰好與上述100 pps信號(hào)對(duì)應(yīng)。首先在FPGA中構(gòu)建一個(gè)模100的碼元計(jì)數(shù)器MMH和一個(gè)高電平脈沖寬度檢測(cè)器,通過(guò)下面的方法和步驟可以恢復(fù)pps。

  (1)在PPMl2信號(hào)的上升沿復(fù)位寬度檢測(cè)器,高電平計(jì)時(shí),在下降沿停止并輸出Tb;

  (2)在PPM12下降沿檢查T(mén)b,當(dāng)6 ms

  if MMH=99 then MMH=O

  else MMH=MMH+1

 ?。?)在PPMl2信號(hào)的上升沿檢查MMH,如果MMH=0,則當(dāng)前脈沖的上升沿是參考點(diǎn)Pr,觸發(fā)輸出8 ms高電平脈沖作為pps信號(hào),重復(fù)步驟(1)~(3),在PPM12信號(hào)上升沿檢查MMH;如果MMH的個(gè)位為9或者M(jìn)MH=0,則當(dāng)前脈沖標(biāo)記為索引脈沖,即輸出8 ms高電平。

3.2   時(shí)間獲取

  通過(guò)在FPGA上構(gòu)建一個(gè)UART與M12T互連。為了簡(jiǎn)化FPGA對(duì)M12T的配置和輸出時(shí)間的獲取,將UART分成兩部分設(shè)計(jì),即發(fā)送模塊txmit和接收模塊rcvr。發(fā)送模塊用一個(gè)M4K設(shè)計(jì)一個(gè)512×8 FIFO,在系統(tǒng)復(fù)位后的若干個(gè)時(shí)鐘,利用一個(gè)狀態(tài)機(jī)將M12T的配置數(shù)據(jù)寫(xiě)入FIFO;然后通過(guò)txmit模塊配置M12T,配置結(jié)束后,UART模塊將M12T的時(shí)間碼轉(zhuǎn)發(fā)到外部RS 232接口,同時(shí)可以轉(zhuǎn)發(fā)外部接口的配置數(shù)據(jù)到M12T。接收模塊采用寄存器模式,只接收M12T發(fā)來(lái)的時(shí)間信息,這樣后面的編碼模塊可以直接使用這些時(shí)間信息。做法如下:設(shè)計(jì)一個(gè)接收計(jì)數(shù)器rx_ count,每接收一個(gè)字節(jié)計(jì)數(shù)器自加,并根據(jù)rx_count決定是否保存時(shí)間碼。由于M12T每秒中發(fā)送一幀,故在檢測(cè)到pps時(shí)復(fù)位該計(jì)數(shù)器。

  M12T在每個(gè)1 pps的上升沿過(guò)后送出當(dāng)前時(shí)間,而FPGA通過(guò)UART接收到時(shí)間時(shí),B碼當(dāng)前幀已經(jīng)啟動(dòng),據(jù)此形成的B碼要等下一個(gè)pps參考點(diǎn)之后才可以發(fā)送,所以對(duì)接收的時(shí)間要進(jìn)行預(yù)進(jìn)位處理。

4  IRIG-B編碼模塊實(shí)現(xiàn)

4.1  IRIG-B DC編碼模塊

  分析B碼可以發(fā)現(xiàn),秒的位出現(xiàn)在MMH=1處,分的位出現(xiàn)在MMH=10處,小時(shí)的位出現(xiàn)在MMH=20處,依次類(lèi)推。按照?qǐng)D1,容易得出時(shí)間寄存器輸出時(shí)刻和碼元計(jì)數(shù)器MMH之間的關(guān)系。由于碼元周期固定為10 ms,可以這樣實(shí)現(xiàn)編碼,定義一個(gè)模10的計(jì)數(shù)器MML和邏輯向量CMP(9 down to0)來(lái)表征一個(gè)碼元在10 ms的狀態(tài)。MML每ms加1,同時(shí)根據(jù)MML的值,選擇CMP的一位更新輸出狀態(tài),步驟如下:

 ?。?)構(gòu)建模10計(jì)數(shù)器MML,以及一個(gè)1 ms定時(shí)器;

 ?。?)在PPM12信號(hào)的上升沿復(fù)位MML和1 ms定時(shí)器;

  (3)1 ms定時(shí)器溢出時(shí),MML加1;

 ?。?)根據(jù)MML和CMP輸出編碼信號(hào)IRIG_B_OUT,即IRIG_B_OUT=CMP(MML);

 ?。?)在PPM12的上升沿根據(jù)第3.1節(jié)所得碼元計(jì)數(shù)器MMH重新加載CMP

  算法VHDL描述如下:

  在上述VHDL編碼的實(shí)現(xiàn)中,MSCLK為1 ms計(jì)數(shù)脈沖。同步于PPM12信號(hào)的上升沿。CMP的輸出值由函數(shù)IRIG_B根據(jù)輸入?yún)?shù)決定,若為0,則輸出“0000000011”,對(duì)應(yīng)2 ms;若為1則輸出“0000011111”,對(duì)應(yīng)5ms。在索引脈沖和參考點(diǎn)Pr處,CMP取值“0011111111”,對(duì)應(yīng)8 ms。而終的編碼輸出IRIG_B_0UT在每個(gè)1 ms脈沖的上升沿,根據(jù)CMP(MML)的值決定為高或?yàn)榈汀?/P>

4.2  IRIG-B AC編碼模塊

4.2.1  數(shù)字調(diào)制原理

  按照奈奎斯特抽樣定理,只要抽樣頻率高于2倍信號(hào)的頻率,則整個(gè)連續(xù)信號(hào)就能完全用它的抽樣值來(lái)代表。

  若對(duì)頻率為f的正弦波抽樣N次(N>2f),并在T=1/f內(nèi)通過(guò)DAC等間隔輸出N次抽樣值,則低通濾波后可恢復(fù)原始正弦信號(hào)。各個(gè)采樣點(diǎn)值為:

4.2.2  正弦查找表

    這里給出利用查找表實(shí)現(xiàn)交流數(shù)字調(diào)制的方法。在獲得IRIG-B的直流編碼后,將該信號(hào)導(dǎo)入到數(shù)字調(diào)制模塊,即可獲得交流編碼。對(duì)正弦信號(hào)進(jìn)行100次等間隔抽樣,對(duì)式(2)使用實(shí)際的增益和直流偏移,可得式(3)。據(jù)此獲得查找表。

  式中:N=100為采樣率;k=O,1,2,…,N-1;Ck對(duì)應(yīng)第k次抽樣獲得的值;A0為保證輸出信號(hào)為單極性而設(shè)置的初始直流偏移;Ac為考慮調(diào)制比和DAC滿(mǎn)幅度碼值的系數(shù)。

  由于交流信號(hào)頻率為1 kHz,周期為T(mén)=1 ms,若在1 ms內(nèi)將上述抽樣值等間隔輸出到DAC,即可獲得1 kHz的調(diào)制信號(hào)。

  本文使用MAX5712和單電源rail-rail運(yùn)放AD8601構(gòu)成濾波器。在MAX5712滿(mǎn)幅輸出時(shí),C=4 095(12 bit DAC),選擇調(diào)制比為1∶5。綜合考慮,在輸出時(shí),不能使DAC輸出到達(dá)運(yùn)放的上軌,輸出時(shí),DAC輸出應(yīng)高于運(yùn)放的下軌,所以選取A0=C/2+200=2 248。對(duì)應(yīng)邏輯0,Ac=461;對(duì)應(yīng)邏輯1,Ac=1 844。根據(jù)上述原則計(jì)算出的正弦查找表如表1所示。

  實(shí)際使用時(shí),應(yīng)根據(jù)使用DAC的解析度、運(yùn)放的動(dòng)態(tài)范圍以及采樣率及調(diào)制比確定上式中的參數(shù)。

4.2.3  DAC接口

  實(shí)際使用時(shí)應(yīng)根據(jù)DAC的不同,在FPGA中構(gòu)建不同的數(shù)字接口。MAX5712需要在FPGA實(shí)現(xiàn)一個(gè)SPI接口,結(jié)構(gòu)如圖4所示。接口控制部分提供一個(gè)16 b寫(xiě)端口,可以接收數(shù)據(jù)。在寫(xiě)使能wren為高時(shí),接口上的數(shù)據(jù)寫(xiě)入內(nèi)部并行保持寄存器。在LDAC脈沖的上升沿,并行寄存器THR的內(nèi)容寫(xiě)入移位寄存器,同時(shí)啟動(dòng)時(shí)鐘邏輯。

4.2.4  交流調(diào)制方法

     把按照第4.2.1節(jié)方法生成的正弦查找表生成Altera mif文件,再例化一個(gè)M4K ROM,使用上述文件作為ROM的初始化文件。建立一個(gè)周期為10μs的定時(shí)器和一個(gè)地址計(jì)數(shù)器。地址計(jì)數(shù)器和定時(shí)器在B碼直流信號(hào)的變化沿復(fù)位,定時(shí)器溢出后啟動(dòng)地址計(jì)數(shù)器。或者把邏輯0對(duì)應(yīng)的查找表放在ROM的上半部,如果把邏輯1對(duì)應(yīng)的查找表放在ROM的下半部,且輸入的直流B碼信號(hào)作為地址的高位,則此時(shí)刻對(duì)應(yīng)的ROM輸出即為DAC的調(diào)制輸出,ROM查找表VHDL的代碼實(shí)現(xiàn)如下:

  其中:B為來(lái)自編碼器中IRIG-B的直流編碼;AQC為地址計(jì)數(shù)器;ddata為輸出到DAC的數(shù)字調(diào)制輸出。由于查找表是按照對(duì)正弦信號(hào)做100次等間隔采樣形成的,交流載波為1 kHz。所以AQC每隔10μs自加1,順序輸出100個(gè)編碼值,在B碼的每個(gè)變化邊沿復(fù)位。

  按上述方法設(shè)計(jì)的數(shù)字調(diào)制模塊,用示波器測(cè)得輸出波形如圖5所示。

   圖5中,通道1(從上至下個(gè)信號(hào))為M12T輸出的100pps信號(hào)PPM12;通道2(從上至下第三個(gè)信號(hào))為IRIG-B的直流編碼輸出信號(hào);通道3(從上至下第二個(gè)脈沖)為從PPM12信號(hào)中恢復(fù)的每秒脈沖數(shù)信號(hào);通道4(下面的波形)為IRIG-B編碼的交流輸出波形。圖5中示波器的觸發(fā)點(diǎn)即為B碼參考點(diǎn)Pr。

4.3  IRIG-B編碼輸出

4.3.1  直流碼輸出

  為了保證輸出信號(hào)的邊沿和抗干擾,將第4.1節(jié)得到的TTL電平B碼信號(hào)和秒脈沖經(jīng)高速光耦隔離,輸出電路如圖6所示。

 


 

    圖6中,輸入信號(hào)IRIG-B為第4.1節(jié)所述FPGA編碼模塊輸出的直流編碼信號(hào);pps為FPGA從M12T的100 pps信號(hào)中恢復(fù)的秒脈沖信號(hào);D350和D351實(shí)現(xiàn)了TTL/RS485的電平轉(zhuǎn)換。

4.3.2  模擬調(diào)制電壓輸出

    IRIG-B編碼的交流碼輸出電路如圖6所示。將第4.2.3節(jié)所述數(shù)字調(diào)制信號(hào)通過(guò)DAC接口輸出到MAX5712上進(jìn)行D/A轉(zhuǎn)換,經(jīng)過(guò)AD8601濾除高次諧波后,再用電容耦合到由晶體管Q301構(gòu)成的電壓放大器中,然后經(jīng)600∶600的隔離變壓器輸出。

5  結(jié) 語(yǔ)

  利用FPGA和M12T授時(shí)型GPS內(nèi)核構(gòu)成的IRIG-B編碼模塊采用M12T的100 pps信號(hào)觸發(fā)IRIG-B編碼器,使得編碼輸出的每個(gè)碼元上升沿均與GPS模塊嚴(yán)格一致,每個(gè)碼元間隔嚴(yán)格相等,而且每個(gè)碼元的上升沿均可作為同步參考點(diǎn)。利用FPGA的并發(fā)處理能力,使得系統(tǒng)實(shí)時(shí)性好。本文介紹的基于查找表的B碼編碼方法和通過(guò)查找表的數(shù)字調(diào)制方法具有占用資源小,設(shè)計(jì)簡(jiǎn)單,調(diào)制輸出高次諧波小,信號(hào)邊沿穩(wěn)定等特點(diǎn)。


  
關(guān)鍵詞:FPGA編碼器

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線(xiàn)人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線(xiàn)時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!