《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于FPGA的北斗導航電文譯碼器的研究與設計
基于FPGA的北斗導航電文譯碼器的研究與設計
2016年微型機與應用第1期
楊堅,郭里婷,陳偉強
(福州大學 物理與信息工程學院,福建 福州 350002)
摘要: 通過對北斗導航電文BCH糾錯編譯碼方式的深入理解和研究,提出了一種基于并行數據處理的BCH譯碼器的設計方案。該方案利用FPGA對BCH電文進行并行處理,在一個時鐘周期內實現電文譯碼,提高了BCH解碼模塊的譯碼效率;同時給出了系統各個模塊的Modelsim仿真結果與分析,驗證了設計的可行性。本設計對提高接收機的基帶數據處理性能有一定的參考和指導意義。
Abstract:
Key words :

  摘要:通過對北斗導航電文BCH糾錯編譯碼方式的深入理解和研究,提出了一種基于并行數據處理的BCH譯碼器的設計方案。該方案利用FPGA對BCH電文進行并行處理,在一個時鐘周期內實現電文譯碼,提高了BCH解碼模塊的譯碼效率;同時給出了系統各個模塊的Modelsim仿真結果與分析,驗證了設計的可行性。本設計對提高接收機的基帶數據處理性能有一定的參考和指導意義。

  關鍵詞:北斗導航電文;BCH譯碼;并行處理;譯碼效率

0引言

  北斗衛星導航系統是中國正在實施的自主發展、獨立運行的全球衛星導航系統,是繼美國的全球定位系統(GPS)、俄羅斯的格洛納斯衛星導航系統(GLONASS)之后第三個成熟的衛星導航系統[1]。2013年12月,《北斗系統公開服務性能規范(10版)》和《北斗系統空間信號接口控制文件(20版)》正式發布,意味著北斗衛星導航系統對區域提供的服務正式進入規范標準階段。其中空間信號接口控制文件對北斗衛星導航系統的目標和B1I、B2I信號結構進行了詳細定義[2]。

  隨著北斗系統的不斷完善以及應用的深入,用戶對北斗接收機的性能要求越來越高。為了提高接收機性能,設計方案必須考慮處理器的資源、速度以及存儲空間等參數。如果接收機的大部分基帶信號能夠通過FPGA并行處理,那么對提高接收機的性能就具有非常大的意義。本文根據北斗導航電文BCH譯碼原理,提出了一種基于并行數據處理的快速BCH譯碼方式,并在FPGA系統上實現,提高了譯碼器效率。通過Modelsim對系統模塊的功能仿真驗證了設計的可行性,該設計方案具有一定的工程應用參考價值。

1導航電文糾錯編碼數據格式

  導航電文采取BCH(15,11,1)碼加交織方式進行糾錯[3]。BCH碼位長為15 bit,信息位11 bit,糾錯能力1 bit,其生成多項式為g(X)=X4+X+1。一組22 bit的導航電文數據碼(表1所示),進入糾錯編碼系統后,按照每11 bit順序分成兩組后進行BCH(15,11,1)編碼、交織操作,輸出30 bit的交織編碼。

001.jpg

  每兩組 BCH(15,11,1)碼按比特交錯方式組成30 bit碼長的交織碼,30 bit碼長的交織碼編碼結構如表2所示。

  表1和表2中:Xji為信息位,i表示第i組 BCH碼,j表示第i組 BCH 碼中的第j個信息位;Pmi為校驗位,i表示第i組BCH 碼;m 表示第i組BCH 碼中的第m個校驗位。

002.jpg

2導航電文糾錯譯碼原理

  接收機接收到數據碼信息后按每1 bit順序進行串/并變換,然后進行 BCH(15,11,1)糾錯譯碼,再對交織部分按每11 bit順序進行并/串變換,組成22 bit信息碼,其譯碼流程如圖1所示。

003.jpg

  BCH(15,11,1)譯碼框圖如圖2所示,其中,初始時移位寄存器清零,BCH 碼組逐位輸入到除法電路和15級糾錯緩存器中,當BCH 碼的15位全部輸入后,糾錯信號ROM表利用除法電路的4級移位寄存器的狀態D3、D2、D1、D0 查表,得到15位糾錯信號與15級糾錯緩存器里的值模二加,最后輸出糾錯后的信息碼組[2,4]。糾錯信號的ROM表詳見參考文獻[2]。

004.jpg

3并行數據處理的糾錯譯碼系統設計

  3.1系統總體方案

  從傳統的北斗導航電文BCH(15,11,1)譯碼原理(圖2所示)可知,BCH譯碼器每一個時鐘周期只處理一位碼字,需采用頻繁的循環移位實現譯碼,如果碼組多了,將占用大量CPU資源并影響接收機對信號實時處理的要求[5]。鑒于傳統譯碼方式的缺點,將圖2所示原理框圖進行改進,提出并行處理的一種運算方法。改進的糾錯譯碼系統總體框圖如圖3所示。

005.jpg

  考慮到數據是以數據流的格式輸入到糾錯譯碼系統中,所以直接將數據流給并行數據處理的譯碼單元并不現實。因此在單元前級加一級30 bit的串/并轉換模塊,將串行數據流轉換成并行數據;為保證輸出同樣是數據流格式,譯碼單元后級再加一級22 bit的并/串轉換模塊。在實際應用過程中,為使信號保持同步狀態,需要加入幀同步模塊。并行處理的BCH譯碼系統,先將輸入的30 bit的交織碼數據流進行30 bit的串/并轉換,輸出30位并行的數據后輸入BCH譯碼單元進行并行譯碼,在一個時鐘周期輸出22 bit的導航電文信息碼進行后面的導航解算。

  3.2BCH并行譯碼單元設計

  假設BCH譯碼模塊(如圖2所示)輸入的15比特碼為:{X1、X2、X3、X4…X13、X14、X15},那么根據圖2的數據流動形式,BCH碼與糾錯信號標識{D3、D2、D1、D0}之間的關系可以表示為:

 BR7$[~@$U[V(C[P``LT@@SP.png

  從最高位X1~X15順序移位,最終得到BCH碼對應的糾錯標識信號{D3D2D1D0},上式中從i=1開始迭代運算,最后當i=15時,可以分別得到D3、D2、D1、D0的表達式[2,6]:

  JFSJOJO61CQD])R9M5UGFK3.png

  其中X1 X2…X14 X15表示15 bit的BCH碼組。⊕代表模2加運算。

006.jpg

  圖4并行結構譯碼根據式(6)~(9),將圖2的譯碼框圖結構等效為圖4所示并行數據處理的譯碼結構框圖[7]。模塊輸入端數據采用15位的并行數據輸入,在15位的數據輸入之后,經過15通道的開關門組對輸入的數據{X1、X2、X3…X14、X15}進行選擇后進行模2運算得到相應的D3、D2、D1、D0值;其次根據糾錯標識信號D3D2D1D0查找糾錯標識信號對應的ROM表,得到15位的糾錯信號;最后將所得15位糾錯信號與輸入的15位數據碼進行模2運算后輸出糾錯譯碼。在FPGA系統中,該譯碼單元可以在一個周期內算出D3 D2 D1 D0,大大提高了運算速度。圖5是并行譯碼單元的電路RTL視圖。

007.jpg

4設計結果與仿真

  本設計采用Verilog語言[8],在Quartus II 110開發軟件平臺下完成,仿真軟件為Quartus II 110自帶的Modelsim 66d版本。

  4.130 bit串/并轉換器仿真

  本設計30 bit串/并轉換器目的在于將輸入的一字數據流形式的30 bit交織編碼轉換成30 bit的并行數據輸出。模塊的Modelsim仿真圖如圖6所示。

008.jpg

  在系統時鐘上升沿時將實際記錄的衛星電文以數據流的形式從data_in輸入,在完成30 bit的導航電文字段接收后,由data_out并行輸出30 bit數據,同時在輸出數據使能dout_en產生脈沖。

  4.2并行數據譯碼單元仿真

  并行數據譯碼單元根據圖4原理設計。實際設計中將兩路的并行譯碼單元結構進行優化和合并,設計出支持30 bit的輸入的并行譯碼單元,能夠實現將30 bit并行輸入的數據碼進行22 bit BCH譯碼輸出。其中30 bit交織碼的解交織過程在模塊內部實現。模塊的Modelsim仿真圖如圖7所示。

  

009.jpg

  將實際測試得到的一個完整無誤碼的30 bit北斗導航電文字段作為仿真測試數據源并行輸入。如圖7所示,在一個時鐘周期內,譯碼單元將并行30 bit數據解交織為or_data1和or_data2的兩路15 bit數據,并根據本文設計的并行譯碼器分別計算出兩路信號的糾錯標識信號a、b。由于輸入數據不存在誤碼,糾錯標識信號和糾錯信號re_data1、re_data2均為0,直接由兩路數據中的11 bit信息位拼接得到22 bit數據輸出data_out。

  將輸入信號的X61位信息取反得到具有1 bit誤碼的導航電文字段。根據表1、表2可知,誤碼出現在第一組BCH碼的第6個信息位。由圖8仿真結果可以看出,其中第一組信號糾錯標識變成1010,通過查找ROM表發現第一組BCH的第六位數據存在錯誤,進行糾錯得到的BCH譯碼結果為:data_out=1010110111101001010000,與圖7譯碼結果一樣,證明實現糾錯功能。

  

010.jpg

  4.322 bit并/串轉換器仿真

  將譯碼單元的輸出22 bit數據進行并/串轉換為數據流輸出到后級進行電文解算。若后級的處理器支持并行數據的輸入,則并/串轉換模塊可以省去。模塊的Modelsim仿真結果如圖9所示。

  

011.jpg

  北斗GEO衛星信號每比特電文長2 ms,一個導航字持續60 ms,非GEO衛星信號每比特電文長20 ms,一個導航字持續600 ms。傳統譯碼器需要時刻記錄導航電文比特流,通過復雜的移位實現譯碼,因此一臺12路跟蹤通道的接收機需要12路獨立譯碼器。而本文設計的并行譯碼器譯碼周期短,只需在各通道增加串并轉換模塊和狀態選擇機制即可實現譯碼器的分時復用,提高了譯碼器使用效率。傳統接收機和并行譯碼接收機的性能對比如表3所示。

012.jpg

5結論

  經過仿真測試,驗證了本文提出的基于FPGA的北斗導航電文譯碼器設計方案的可行性。該方案采用并行處理方式,在保證譯碼準確率的前提下有效提高了譯碼器的工作效率。此外,該譯碼器采用模塊化設計,易于集成至接收機中,對北斗接收機譯碼模塊設計有一定的參考意義。

參考文獻

  [1] 邢金清,陳泓吉.北斗衛星導航系統現狀及發展意義[J].黑龍江科技信息,2015(13):97.

  [2] 中國衛星導航系統管理辦公室.北斗衛星導航系統空間信號接口控制文件公開服務信號(2.0版)[Z].2013.

  [3] 寧楠,鮑慧,宋文妙,等.一種基于FPGA的糾錯編譯碼器的設計與實現[J].通信技術,2008,41(8):95-97,100.

  [4] 王迪,郝士琦,朱斌,等.“北斗”2代B1I信號導航電文分析[J].航天電子對抗,2013,29(6):30-32.

  [5] 連帥,閆利軍,孫科,等.北斗2代衛星導航電文糾錯校驗設計與仿真[J].計算機測量與控制,2010,18(10):2344-2347.

  [6] 藺曉龍,何文濤,徐建華,等.多模 GNSS接收機中BCH(15,11,1)并行解碼算法[J].微電子學與計算機,2014(2):50-53.

  [7] 金婕,于敦山.高速并行BCH譯碼器的VLSI設計[J].北京大學學報(自然科學版),2009,45(2):233-237.

  [8] 夏宇聞. Verilog數字系統設計教程[M].北京:北京航空航天大學出版社, 2008.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲无限看 | 最近2019好看中文字幕 | 中国videoses12一6| 亚洲综合男人的天堂色婷婷 | 成人网免费观看 | 午夜福利毛片 | 日日碰日日摸日日澡视频播放 | 国产精品久久毛片蜜月 | 狠狠狠色 | 成人精品一区二区www | 国产97色在线 | 日韩 | 亚洲免费高清视频 | 亚洲视频二 | 在线成人a毛片免费播放 | 免费特黄级夫费生活片 | 色综合色狠狠天天久久婷婷基地 | 一级生活录像 | sea8国产精品视频 | 免费看又黄又爽又猛的视频软件- | 国产v综合v亚洲欧美大另类 | 日本片免费观看一区二区 | 国产精品久久久久久久久久直 | 夜夜操夜夜骑 | 日本一区二区免费看 | 欧美日韩国产在线观看 | 在线看欧美成人中文字幕视频 | 天堂资源站 | 亚洲综合第一欧美日韩中文 | 有码视频在线观看 | 另类免费视频 | 国产成人精品福利站 | 放一个特别黄的录像 | 五月天婷婷在线观看高清 | 国产亚洲精品日韩已满十八 | 狠狠色噜噜狠狠狠合久 | 怡红院五月天 | 怡红院视频网 | 在线观看国产麻豆 | 欧美日韩成人在线视频 | 国产免费a视频 | 深夜国产福利 |