新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的IRIG-B編碼器的設計

        基于FPGA的IRIG-B編碼器的設計

        作者: 時間:2012-08-27 來源:網絡 收藏

        2.2 GPS授時模塊M12T

        M12接收器是Motorola公司優秀ONCORE家族中的新成員,廣泛用于各類定位、導航、授時設備中,擁有全GPS行業內最快的初次定位時間和重捕獲衛星的時間。M12T是針對GPS授時推出的定時精度更高的增強型產品。M12T具有12個并行通道,可同時跟蹤12顆衛星,重捕獲時間小于1.0 s。當擁有當前天歷、位置、時間和星歷數據時,首次定位時間TTFF15 s。在位置保持狀態時,定時精度(1 pps或100 pps)小于12 ns。

        2.3 和DAC

        采用Altera CycloneⅡEPC2C5T144,該芯片有4 608個LE,26個M4K,兩個模擬鎖相環。DAC采用單通道、單電源、自帶基準的MAX5712。MAX5712是微型引腳,12 b解析度,片上精密輸出放大器提供滿擺幅輸出。MAX5712用兼容SPITM/QSPITM/MICROWIRETM和DSP標準接口的3線串行接口。所有輸入都兼容于CMOS邏輯,并經過施密特觸發器緩沖,允許直接接光電耦合器。MAX5712含有上電復位(POR)電路,確保上電時DAC處于零電壓輸出狀態。

        3 時鐘模塊實現

        3.1 基準時刻和索引脈沖的提取

        要保證B碼每個碼元的上升沿時刻準確,需要100 pps的精確時基和pps的參考點。一般的做法是用pps作為基準,每個碼元的起點由前兩個秒脈沖的間隔等分得到。這種方法使用上一時刻來預測下一秒,每秒脈沖有抖動時會導致最后一個碼元寬度不足或超過10 ms,這將無法利用B碼來實現時間同步和數據等間隔同步的采集。本文直接使用M12T產生的100 pps信號作為每個碼元的起始時刻,然后再從100 pps信號中恢復出1 pps。由于B碼參考標記Pr=1 pps的上升沿,所以這種方法既保證Pr的準確性,又保證各個碼元和索引標記時刻的準確性。在有等間隔同步數據采樣要求的場合,可使用每個B碼碼元的上升沿校準本地時基,確保采樣同步和時間同步。

        M12T輸出的100 pps信號(以下稱PPM12)如圖3所示,每個脈沖的上升沿時刻準確,周期10 ms,在pps的參考點,脈沖寬度為6~8 ms,其他時刻2~4 ms,脈沖寬度不是關注的重點。

        B碼的每個碼元恰好與上述100 pps信號對應。首先在中構建一個模100的碼元計數器MMH和一個高電平脈沖寬度檢測器,通過下面的方法和步驟可以恢復pps。

        (1)在PPM12信號的上升沿復位寬度檢測器,高電平計時,在下降沿停止并輸出Tb;

        (2)在PPM12下降沿檢查Tb,當6 msb8 ms時,令MMH=1,否則執行下面的操作:

        if MMH=99 then MMH=0

        else MMH=MMH+1

        (3)在PPM12信號的上升沿檢查MMH,如果MMH=0,則當前脈沖的上升沿是參考點Pr,觸發輸出8 ms高電平脈沖作為pps信號,重復步驟(1)~(3),在PPM12信號上升沿檢查MMH;如果MMH的個位為9或者MMH=0,則當前脈沖標記為索引脈沖,即輸出8 ms高電平。

        3.2 絕對時間獲取

        通過在FPGA上構建一個UART與M12T互連。為了簡化FPGA對M12T的配置和輸出時間的獲取,將UART分成兩部分設計,即發送模塊txmit和接收模塊rcvr。發送模塊用一個M4K設計一個512×8 FIFO,在系統復位后的若干個時鐘,利用一個狀態機將M12T的配置數據寫入FIFO;然后通過txmit模塊配置M12T,配置結束后,UART模塊將M12T的時間碼轉發到外部RS 232接口,同時可以轉發外部接口的配置數據到M12T。接收模塊采用寄存器模式,只接收M12T發來的絕對時間信息,這樣后面的編碼模塊可以直接使用這些時間信息。做法如下:設計一個接收計數器rx_count,每接收一個字節計數器自加,并根據rx_count決定是否保存時間碼。由于M12T每秒中發送一幀,故在檢測到pps時復位該計數器。



        關鍵詞: IRIG-B FPGA 編碼器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乌拉特后旗| 塔城市| 开封市| 鸡西市| 东辽县| 行唐县| 白山市| 彭州市| 印江| 图木舒克市| 德惠市| 千阳县| 霍林郭勒市| 怀集县| 禹州市| 黔江区| 宁强县| 河北区| 麻江县| 洪湖市| 西丰县| 岗巴县| 莱州市| 馆陶县| 遵义县| 呼玛县| 绵阳市| 固阳县| 金阳县| 涞源县| 商水县| 山丹县| 洞头县| 扶绥县| 桃园市| 长阳| 嘉兴市| 东海县| 大田县| 米易县| 天峨县|