一種載波通信SOC信道交織/解交織器設計

電力線載波通信(PLC)是一種以現有低壓電力網絡作為通信媒介的有線通信方式。如果和加密技術相結合可以更好的保證信息的高效傳輸。現有電力線網絡產品,無論是寬帶電力線通信產品還是窄帶電力線通信產品,隨時都可以在智能控制、家庭物聯網或者是遠程抄表等生活的各個方面找到實際應用案例。通信信道特性一直是制約通信系統可靠性的主要因素。電力線載波通信非理想信道特性加上外部噪聲干擾的影響,使得數字信號碼元數據在傳輸的過程中質量變壞為了在信噪比已知的情況下,盡可能降低通信的誤碼率我們采取了相應的基帶處理技術。對于疊加在信號的各種加性干擾噪聲常采用差錯控制編碼技術來處理。
前向糾錯編碼技術(FEC)被廣泛的研究,一般的前向糾錯技術包括交織和編碼以及解交織和譯碼技術等。本文是在參考了國際插座聯盟協議以后,針對項目需要而設計的一種寬帶載波通信SOC信道交織/解交織器。

圖1 載波通信SOC整體架構框圖
載波通信SOC架構
上圖1為載波通信SOC數據流處理架構圖,信道交織/解交織分屬發送和接收端的兩個鏈路,在發送端信道交織器將Turbo編碼器編碼后的數據進行不同模式下的處理,以使不同類型的原有排序被不同程度的隨機化打散,由信道到數據如果被連續的突發差錯干擾,則原始順序的數據只受到隨機差錯的干擾。在接收端,將被信道交織器打亂的原始數據進行解交織處理,恢復原有排序,再結合Turbo譯碼器進行隨進差錯的糾錯,大大提高了通信的抗干擾能力,降低誤碼率,提高通信質量和效率。
信道交織/解交織算法
信道交織和解交織是一個互逆的過程,以下以信道交織為例說明交織器的設計原理:
Turbo編碼產生的數據信息位、校驗位與編碼前的順序相同,并且信息位在前,校驗位在后(Turbo編碼產生的兩個校驗位是p在前,q在后)。該數據要先進行信道交織,然后作星座點映射。
下面定義K為信息比特的數目,N-K則表示校驗比特的數數目,可將K個信息比特分成4個子塊,每個子塊的大小為K/4比特,將N-K個校驗比特同樣分成4個子塊,每個子塊的大小為(N-K)/4比特,信道交織過程的的實現分為以下4個步驟:
(a)信息位的交織:將Turbo編碼輸出的信息碼數據寫入矩陣存儲空間中,編碼器順序輸出信息數據的第一塊K/4比特到第一個子塊Bank1中,第二塊K/4比特到第二個子塊Bank2中,依次類推,可以看作把信息比特存入一個K/4行4列的矩陣,第1列代表Bank1子塊,第2列代表Bank2子塊,依次類推。進行交織時每行的4個比特是同時讀出的。從存儲矩陣讀取數據時,從第0行開始讀取,從第二次開始每次讀取數據的時候行地址均加上一個偏置參數StepSize,這樣第一輪讀的行地址順序為(0,StepSize,2*StepSize,…[K/4]-StepSize),當讀了[K/4]/StepSize行之后,就讀到了矩陣存儲器的尾部,然后讀下一輪的行地址初始化為1,之后每次讀的時候行地址加上參數StepSize,當讀了[K/4]/StepSize行之后又到了行尾,這樣第二輪讀的行地址順序為(1, 1+StepSize,1+2*StepSize,…[K/4]-StepSize+1),然后以后讀取每輪結束,都對初始地址累計加1,依次類推,經過StepSize輪之后全部行的數據都被讀出;
(b)校驗碼交織:從Turbo編碼輸出校驗bits的第一塊(N-K)/4bits到Bank1中,第二塊(N-K)/4bits到Bank2中,第三塊(N-K)/4bits到Bank3中,第四塊(N-K)/4bits到Bank4中,可以看作把校驗bit存入一個(N-K)/4行4列的矩陣,第1列代表Bank1,第2列代表Bank2,類似信息位的設定。對于1/2碼率,校驗bits的讀法與信息bits的讀法類似,不同的地方在于校驗bits第一次讀從偏移參數offset定義的行開始,步長參數還是StepSize ,可定義T=(N-K)/4,第一輪讀出的行的順序為(offset, (offset+StepSize)mod T,(offset+2*StepSize) mod T, …(TStepSize+offset) mod T),然后第二輪行初始值加1,再重復讀取StepSize-1輪,經過共StepSize輪,每輪讀出了T/StepSize行數據,一共讀出T行數據。對于16/18碼率,與1/2碼率不同之處在于,每輪讀完不用初始化行初始值為上一次初始化值加1,而是從開始就持續的讀(offset, (offset+StepSize) mod T, (offset+2*StepSize)mod T,…),一直到T行讀完。信道交織用到的參數如表1定義;

圖2 信道交織/解交織設計框圖

表1 信道交織參數
(c)信息碼和校驗碼之間的交織: 對于1/2碼率,輸出的前4比特為信息碼,接著4比特為校驗碼,以此類推。對于16/18碼率,首先是3個4bits的信息bits,然后是4bits校驗bits,最后是5個4bits信息bits,重復這一模式;
(d)半字節移位:半字節移位以4比特為單位進行移位,不論信息比特還是校驗比特,每2個半字節調整一次順序,規則如表2所示。

表2 半字節移位
上圖中b0表示bit來自信息或者校驗bits的Bank1,b1表示bit來自信息或者校驗bits的Bank2,b2表示bit來自信息或者校驗bits的Bank3,b3表示bit來自信息或者校驗bits的Bank4。比特串行輸出時,4bits中最左邊的bit先輸出,從左向右。當輸出半字節序號為9時,重新從1開始繼續循環進行半字節比特移位,直至完成所有輸出碼。
設計采用兩塊3bit位寬,深度為4160的RAM分別進行發送/接收數據信息位/校驗位的暫時存儲。當工作在發射機狀態時,本設計作為信道交織器工作,當工作在接收機狀態時,本設計作為解交織器工作。圖2為設計框圖。
然后利用ModelSim仿真軟件進行DC綜合前的RTL仿真,進行DC綜合然后利用DC綜合生成的netlist網表進行仿真,驗證仿真結果與Matlab建模處理的結果。可以得出網表仿真結果與RTL前仿結果功能一致。說明信道交織/解交織器RTL設計功能驗證通過。
本文在參考了電力線載波通信協議HomePlug AV 1.0的基礎上,針對課題項目需要設計的一種應用于載波通信SOC的信道交織/解交織器,經過RTL設計與ModelSim仿真,初步驗證功能和時序的正確性,通過采用SMIC 55nm工藝和Synopsys綜合工具DC綜合后的網表仿真,進一步驗證了設計的正確性。設計過程中,采用RAM和其他相關電路資源共享的形式設計信道交織器和信道解交織器,在符合項目中信道交織/解交織模塊在不同工作狀態下的功能和速度要求的同時減小了資源消耗。為進一步的研究設計工作奠定了基礎。
10.3969/j.issn.1001- 8972.2016.18.014