摘 要: 在L波段數字航空通信系統(L?DACS1)中,不同類型的數據采用不同速率傳輸,為了降低信道的噪聲和畸變與多普勒頻移的影響,采用具有良好差錯控制能力的多速率卷積編碼進行信道糾錯。通過利用Verilog HDL硬件描述語言完成其FPGA實現與驗證,測試結果表明多速率卷積編碼器可以實時地調整碼率,高效穩定地進行差錯控制,滿足L?DACS1高速傳輸仍保持穩定的要求,并且用于實際項目中。
關鍵詞: L?DACS1; 多速率卷積編碼; FPGA; Verilog HDL
中圖分類號: TN925?34 文獻標識碼: A 文章編號: 1004?373X(2013)07?0008?03
0 引 言
為了解決地?空的數據傳輸業務增長而帶來的高通信速度要求和高寬帶要求問題,國際民航組織(ICAO)要求民航通信從航空電報專用網絡向新一代航空電網過渡。因此歐洲EUROCONTROL提出了未來航空通信系統(FAC),即L波段數字航空通信系統類型1和2(L?DACS1和L?DACS2),利用L波段(960~1 164 MHz)構建新的地?空無線數據鏈路,提高數據傳輸速度,替代之前的窄帶通信系統[1]。
在L?DACS1中,由于信道的噪聲和畸變與多普勒頻移的影響[2],會對傳輸的信息引起失真和信號判決錯誤,而且不同類型的數據需要采用不同的速率傳輸,因此需要使用多速率的信道編碼來降低誤碼率[3]。卷積編碼是廣泛使用的信道編碼技術,具有一定克服突發錯誤的能力,可以降低信道的誤碼率,帶來很高的編碼增益[4?5]。因而多速率的卷積編碼是目前L?DACS1中重要的組成部分[1]。
1 多速率卷積譯碼器原理
卷積碼通常用(n,k,N)表示[6]。其中k表示輸入編碼器的數據位數;n表示編碼器輸出的數據位數;N為編碼約束長度,[R=kn]是卷積碼的碼率。L?DACS1協議中采用(2,1,7)結構的主題:卷積編碼,其生成多項式為[177,133],使用三種碼率分別是R=1/2,2/3,3/4。L?DACS1中使用的碼率R=1/2的卷積編碼器結構如圖1所示[7]。圖1中,D1D2D3D4D5D6 表示編碼器的狀態索引;U表示輸入數據比特;X(1)X(2) 表示輸出數據比特。
L?DACS1基帶信號處理中,為了實現更高的速率和多種不同的傳輸速率,需要在1/2碼率卷積編碼的基礎上采用刪余操作,來實現多碼率的卷積編碼功能。3/4碼率的刪余過程如圖2所示,2/3碼率刪余過程如圖3所示[8]。
3/4碼率的刪余過程是每輸入3 b數據,編碼為6 b的數據,刪除固定位置的2 b,最終產生碼率為3/4的卷積碼[8]。
1/2碼率卷積編碼器結構(171,133,7)
3/4碼率的刪余過程
,2/3碼率的刪余過程是每輸入2 b數據,編碼為4 b的數據,刪除固定位置的1 b,最終產生碼率為2/3的卷積碼。
2 多速率卷積編碼器的設計與實現
多速率卷積編碼模塊,根據主控單元輸出的模式信號(MODE)來控制數據的傳輸碼率,決定數據是否要進入刪余處理以及進入哪個刪余處理單元。
為多碼率卷積碼在L?DACS1中硬件實為多速率卷積編碼器模塊端口說明[8]。
多碼率卷積編碼器總模塊端口
[端口名稱\位寬\方向\描述\DIN\1\Input\輸入數據\EN\1\Input\輸入有效,與輸入數據同步拉高\RST_n\1\Input\復位信號,低電平有效\CLK\1\Input\時鐘輸入信號75M\CLK_34\1\Input\時鐘輸出信號100M\CLK_23\1\Input\ 時鐘輸出信號112.5M\MODE\4\Input\模式信號控制碼率0001(1/2)、
0011(2/3)、1111(3/4)\RDY\1\Output\輸出有效,與輸出數據同步拉高\DOUT\1\Output\輸出數據\]
顯示給出的多速率卷積編碼器工作流程如下:數據在CLK時鐘的驅動下以串行比特流的形式輸入1/2碼率的卷積碼模塊中進行編碼處理,該卷積編碼模塊以同步的方式工作,每輸入1 b將會并行輸出2位編碼數據,根據MODE控制信號,判斷1/2碼率卷積后數據進行何種刪余操作,以實現3/4或2/3的碼率。
若采用1/2碼率編碼,由于后續模塊的實現算法是需要數據串行輸入,因此需要進行并/串轉換,同時將時鐘提高至2×CLK_。為此需要增加一個2位的并入串出型緩存單元即刪余緩存單元。若采用2/3和3/4碼率編碼,經過1/2碼率的卷積編碼模塊處理后,根據MODE信號把數據放入相應的刪余緩存進行刪余操作,以達到所需的碼率。輸出時鐘CLK_23,CLK_34分別為1.33×CLK和1.5×CLK。
3 多速率卷積編碼器仿真
利用Verilog HDL硬件描述語言對多速率卷積編碼器進行仿真[9],對工程文件進行綜合、布線和仿真,以3/4碼率卷積編碼為例進行分析,其后仿真結果如圖5所示。
圖5中,MODE是模式控制信號,可根據該信號來選擇不同的刪余方式。con_in為模塊的輸入數據,每次連續輸入144 b數據,先進行1/2 碼率的卷積編碼,數據變為288 b,由于模式信號MODE為1111,所以進行3/4碼率的刪余操作,得到192 b的串行數據,使用CLK_34時鐘將3/4碼率的卷積編碼數據從data_out_34端口輸出。
中, con_en表示輸入使能信號,con_in表示編碼之前的數據,data_out表示3/4碼率編碼之后的數據,rdy_34表示輸出數據有效的信號,輸入時鐘頻率為75 MHz,采樣時鐘頻率為150 MHz。 通過對比圖5的仿真結果和圖6的在線測試結果,可以驗證在高速的時鐘下設計的正確性。 4 結 語 本文主要闡述了L?DACS1中多速率卷積編碼器的工作原理,利用FPGA設計實現了可以在高速多碼率條件下正常工作的多速率卷積編碼器。同時用Verilog HDL硬件描述語言對此設計進行了仿真驗證,最后使用75 MHz的主時鐘頻率,在Xilinx公司的Virtex?5系列的XC5VLX110?F1153型號的芯片下完成了硬件的調試、仿真及在線測試,結果表明達到了預期的設計要求,并用于實際項目中[10]。 參考文獻 [1] SAJATOVIC M. L?DACS1 system definition proposal: deliverable D2 [R]. Brussels: EUROCONTROL, 2009. [2] 李冬冬.LTE中卷積碼的譯碼器設計與FPGA實現[J].現代電子技術,2011,34(13):46?49. [3] 王新梅,肖國鎮.糾錯碼原理與方法[M].西安:西安電子科技大學出版社,2001. [4] 肖娟,劉倩,徐震.基于FPGA的移動通信中卷積碼編碼器設計[J].現代電子技術,2012,35(5):65?67. [5] 傅民倉,馮立杰,李文波.基于FPGA的高速Viterbi譯碼器優化設計和實現[J].現代電子技術,2006,29(7):52?54. [6] 元鋒剛,許海濤.802.11b中卷積碼和Viterbi譯碼的FPGA設計實現[J].無線電工程,2012,42(1):51?53. [7] PROAKIS John G. Digital communications [M].5th ed.北京:電子工業出版社,2011. [8] 史治國,洪少華,陳抗生.基于Xilinx FPGA的OFDM通信系統基帶設計[M].杭州:浙江大學出版社,2009. [9] 夏宇聞.Verilog數字系統設計教程[M].2版.北京:北京航空航天大學出版社,2008. [10] 肖金球,劉傳洋,仲嘉霖.基于FPGA的高速實時數據采集系統[J].電路與系統學報,2005,10(6):128?131.