寬帶載波電力線通信協(xié)議中信道交織的FPGA實現(xiàn)
張利平1,魏巍1,2
(1.西安郵電大學 計算機學院,陜西 西安710061;2.西安郵電大學 物聯(lián)網(wǎng)與兩化融合研究院,陜西 西安710061)
摘要介紹了寬帶載波電力線通信協(xié)議中用到的信道交織。在此協(xié)議的基礎上,提出了基于FPGA信道交織模塊的設計方案。文中對信道交織的物理層實現(xiàn)方法進行了介紹,該方法是通過ROM讀操作和RAM的讀寫操作來實現(xiàn)信道交織過程,較好地滿足了資源和時延的雙重要求。
關鍵詞信道交織;FPGA;寬帶載波電力線通信
收稿日期:2015-03-10
基金項目:陜西省教育廳科學研究基金資助項目(12JK0541)
作者簡介:張利平(1988—),男,碩士研究生。研究方向:LED數(shù)字圖像處理。E-mail:464124896@qq.com
doi:10.16180/j.cnki.issn1007-7820.2015.09.020
中圖分類號TN911.22
Implementation of Channel Interleaving of Broadband CarrierPower Line Communications Protocol Based on FPGA
ZHANG Liping1,WEI Wei1,2
(1.School of Computer Science,Xi’an University of Posts and Telecommunications,Xi’an 710061,China;
2.Institute of Internet of Things and Informatization,Xi’an University of Posts and Telecommunications,Xi’an 710061,China)
AbstractThis paper introduces channel interleaving of broadband carrier power line communications protocol.On the basis of this protocol,the schemes of designing FPGA-based channel interleaving are presented.The channel interleaving physical layer implementation methods are described in detail and the main idea of the method is to control read operations for the ROM and control read and write operations for the RAM to achieve channel interleaving process,well meeting the dual requirements of resources and delay.
Keywordschannel interleaving;broadband carrier power line communications;FPGA
隨著通信技術的不斷發(fā)展,出現(xiàn)了各種各樣的通信,一般有線通信和無線通信之分,有線通信一般是通過光纜電纜進行的通信,而無線則是通過電磁波進行空中信息傳遞的通信。雖然無線通信省缺了有形的傳輸媒介,通過空中接口進行通信,但無線通信在傳輸容量和傳輸質(zhì)量都不如有限通信。電力線網(wǎng)絡覆蓋范圍廣,是其他網(wǎng)絡無法比擬的,而且是有限通信,通過電力線進行通信則成為研究重點,但電力線的初衷只是用來進行電力傳輸,還沒有考慮到用電力線進行信息的傳遞,所以原有電力線的鋪設導致電力線信道特性較差、干擾大、時變性差,不僅存在多徑時延問題,且存在頻率選擇性衰落的現(xiàn)象。隨著信號處理技術和信道調(diào)制技術的不斷發(fā)展,現(xiàn)在已經(jīng)能克服這種電力線信道差的問題。其中的關鍵技術就是正交頻分復用(Orthogonal Frequency Division Multiplexing,OFDM),這是一種復用技術,同時是一種用多個相互正交的子載波來傳送信息的一種多載波調(diào)制技術。該技術可以解決電力線通信信道差的問題,大幅提高了平鋪利用率,并可實現(xiàn)電力線的有效通信[1]。
圖1是基于FFT的OFDM實現(xiàn)框圖。發(fā)送端:從數(shù)據(jù)鏈路層接收數(shù)據(jù),經(jīng)過一系列的信號處理和變換,以OFDM調(diào)制方式通過將信號發(fā)送到電力線。接收端:從電力線檢測到信號后,做相應的反向處理,最終將電力線上的載波信號還原為數(shù)據(jù),送到數(shù)據(jù)鏈路層。在電力線通信系統(tǒng)中采取信道交織技術,在時間的維度上離散信道的突發(fā)差錯,從而使得有記憶信道可近似轉(zhuǎn)變?yōu)闊o記憶信道,使得設計的糾隨機差錯的糾錯碼同樣適用于多徑衰落信道。
圖1 基于FFT的OFDM實現(xiàn)框圖
1信道交織的基本理論
信道交織的理論建立在香儂理論的基礎上。Claude.E.Shannon提出:對于任意給定的有噪聲信道至少存在一種復雜的編碼方法,可使信道的傳輸速率無限逼近信道容量而同時保證傳輸差錯率達到任意小[2]。而信道交織就是逼近這一相同理論的一種較好的實現(xiàn)方式。
信道交織的實質(zhì)是一種置亂器,僅通過改變信息的結(jié)構(gòu)來提高數(shù)據(jù)傳輸?shù)目煽啃浴P诺澜豢検峭ㄟ^把連續(xù)的比特信息分散開以避免突發(fā)差錯事件[3]。這樣就能把錯誤的范圍盡量控制在糾錯電路的能力范圍之內(nèi)。在接收端經(jīng)過糾錯譯碼電路后,將這種置亂順序信息還原就能最大限度的的正確譯碼出發(fā)送的信息[4]。
按照信道交織技術對于數(shù)據(jù)次序的改變規(guī)律,信道交織碼可分為周期交織和偽隨機交織兩類。周期交織又分為分組交織和卷積交織,周期交織指交織規(guī)律有明確的周期性,序列內(nèi)數(shù)據(jù)之間的交織間隔恒定。所謂偽隨機交織,指交織不采用唯一的單個交織深度值而采用有變化的交織深度值,但變化仍有一定的規(guī)律。
2電力線通信協(xié)議的信道交織實現(xiàn)
寬帶載波電力線通信協(xié)議中的信道交織過程包括信息位的交織、校驗碼交織、信息碼和校驗碼之間的交織,半字節(jié)移位4個步驟。具體的信道交織的過程如下:首先設定K代表信息bit的數(shù)量,N-K代表校驗bit的數(shù)量,K個信息bit會分成4個子塊,每個子塊的大小為K/4 bit,N-K個校驗bit會分成4個子塊,每個子塊的大小為(N-K)/4 bit,然后就是按步驟依次操作。
(1)信息位的交織。將信息bit存入一個K/4行4列的矩陣,依次把每列存滿。進行交織時每行的4個bit是同時讀出的。從這個矩陣讀出數(shù)據(jù)時,從第0行開始,從第二次開始每次讀時行地址加上參數(shù)StepSize,這樣第一輪讀的行地址順序為(0,StepSize,2×StepSize,…[K/4]-StepSize),當讀了[K/4]/StepSize行之后,就讀到了矩陣的尾部,然后讀下一輪的行地址初始化為1,之后每次讀取時行地址加上參數(shù)StepSize,當讀了[K/4]/StepSize行之后又到了行尾,這樣第二輪讀的行地址順序為(1,1+StepSize,1+2×StepSize,…[K/4]-StepSize+1),然后第三輪的行地址加1為2,依次類推,經(jīng)StepSize輪后全部行均已讀出。
(2)校驗碼交織。校驗碼的交織與信息位的交織類似,只是每次讀行地址時均加一個偏移量。因此,校驗bit第一次讀從參數(shù)offset定義的行開始,步長參數(shù)還是StepSize,文中定義T=(N-K)/4,第一輪讀出的行的順序為(offset,(offset+StepSize)modT,(offset+2×StepSize)modT,…(T-StepSize+offset)modT),然后第二輪第一行的指針加1,再重復作StepSize-1輪,最后經(jīng)過StepSize輪,每輪讀出了T/StepSize行數(shù)據(jù),一共讀出T行數(shù)據(jù)。表1列舉了信道交織中3種傳輸塊用到的參數(shù)。
表1 信道交織參數(shù)
(3)信息碼和校驗碼之間的交織。輸出的前4 bit為信息碼,接著4 bit為校驗碼,以此類推。
(4)半字節(jié)移位。半字節(jié)移位以4 bit為單位進行移位,無論信息bit還是校驗bit,每2個半Byte調(diào)整一次順序,表2列舉了具體移位模式。并且整體以32 bit為一個循環(huán)進行半字節(jié)移位操作。
表2 半字節(jié)移位
3電力線通信協(xié)議中信道交織設計
在寬帶載波電力線通信協(xié)議中信道交織處理的數(shù)據(jù)單元塊有3種:PB16,PB136和PB520。FPGA[5]中信道交織主要有兩種實現(xiàn)方式:一是通過計數(shù)器和邏輯控制單元來實現(xiàn);另一種是通過存儲在ROM中的信道交織表來實現(xiàn)。通過計數(shù)器和邏輯控制單元來實現(xiàn),其中會涉及到大量的除法和取模運行,時間延遲大且不易控制。但采用存儲在ROM中的信道交織表來實現(xiàn)的話,只需通過Matlab計算出信道交織表的映射關系,然后將Matlab中的數(shù)據(jù)導出生成HEX文件作為ROM的初始值。最后按ROM中存儲的地址寫到RAM即可實現(xiàn)信道交織。其中ROM和RAM直接調(diào)用Altera的IP核??紤]到后者只用通過ROM讀和RAM讀寫就實現(xiàn)了信道交織,且邏輯簡單、時延小,所以本設計方案采用后者。且每種數(shù)據(jù)單元塊對應一張信息交織表,因此只需信道交織表就能滿足系統(tǒng)的要求。寬帶載波電力線通信協(xié)議中信道交織的FPGA實現(xiàn)就是采用存儲在ROM中的信道交織表來實現(xiàn)的方式。
為了對數(shù)據(jù)進行連續(xù)處理,設計采用兩個RAM同時工作的方式,實現(xiàn)框圖如圖2所示。具體做法就是通過對兩個RAM的乒乓操作來實現(xiàn)數(shù)據(jù)的緩存和發(fā)送[6]。在第1個傳輸周期,在輸入端通過選擇器1將數(shù)據(jù)寫入RAM1。在第2個傳輸周期,在輸入端切換選擇器1將數(shù)據(jù)寫入RAM2,在輸出端同時將RAM1中的數(shù)據(jù)通過選擇器2讀出。在第3個傳輸周期,在輸入端切換選擇器1將數(shù)據(jù)寫入RAM1,在輸出端同時將RAM2中的數(shù)據(jù)通過選擇器2讀出。如此循環(huán)便可實現(xiàn)對數(shù)據(jù)的連續(xù)緩存和讀出。
圖2 對數(shù)據(jù)連續(xù)處理的信道交織框圖
對其中一片RAM實現(xiàn)信道交織具體的實現(xiàn)過程就是通過控制ROM的讀出和控制RAM的讀寫來實現(xiàn):在ROM中存放交織地址表,將RAM作為存放數(shù)據(jù)的緩存器,先將計數(shù)器的輸出送至ROM地址總線,選擇器再選擇從ROM讀出的交織地址送至RAM的地址線完成交織;然后按計數(shù)器的順序地址將RAM中的數(shù)據(jù)讀出,即為交織后的輸出結(jié)果。詳細的信道交織流程如圖3所示。
圖3 其中一片RAM實現(xiàn)信道交織程序的設計流程
4仿真結(jié)果分析
本文用Verilog HDL語言編程實現(xiàn)信道交織,并通過QuartusⅡ和Modelsim軟件進行仿真驗證。圖4為截取的一段仿真波形,波形顯示的是先按信道交織表的地址將輸入數(shù)據(jù)寫入RAM,輸入數(shù)據(jù)是連續(xù)的256個0,1比特流,最后按計數(shù)器的順序地址讀出交織后的數(shù)據(jù),交織后的結(jié)果是前64個數(shù)據(jù)均為0,接著64個數(shù)據(jù)均為1,然后接著64個數(shù)據(jù)均為0,最后64個數(shù)據(jù)為1,與Matlab中的仿真結(jié)果一致,證明了該實現(xiàn)方案的正確性。
圖4 交織時序仿真圖
5結(jié)束語
本文在寬帶載波電力線通信協(xié)議的基礎上,給出了基于FPGA的信道交織模塊的物理層實現(xiàn)方法。該方法從實際出發(fā),權衡資源和時延的要求,實用性較強。其中,采用雙RAM可實現(xiàn)流水線操作,解決了單RAM等待的時延的問題;采用信道交織表的方式,相比單純采用邏輯控制的方式,可操作性和可移植性強。該方案已成功應用于某寬帶載波電力線通信模塊中,證明該方案切實可行。
參考文獻
[1]孫春光.基于OFDM的電力線通信系統(tǒng)研究與實現(xiàn)[D].天津:天津大學,2006.
[2]Shannon C E.The mathematical theory of communication[M].Illinois:University of Illinois Press,1949.
[3]覃永新,陳文輝,蔡啟仲.前向糾錯技術中卷積交織器的FPGA實現(xiàn)[J].通信技術,2009(3):76-78.
[4]畢成余,趙力.交織在信道編碼中的應用[J].信息處理與模式識別,2005(2):70-72.
[5]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2003.
[6]王鋼,高宏亮.基于FPGA交織編碼的設計與應用[J].哈爾濱理工大學學報,2009(1):63-66.