尹旭東
(合肥工業(yè)大學電子科學與應用物理學院 合肥 230009)
USB3.0的最大傳輸帶寬是5Gbps,如果進行一位的串行擾碼與解擾碼,就要求電路的工作頻率能夠達到5GHZ,這對硬件的速度來說是個很大的挑戰(zhàn),明顯不符合實際應用。當系統(tǒng)對數據的擾碼與解擾碼是按照一個字節(jié)8bits進行并行處理,由5Gbps/8bits=625MB/s可得電路的工作頻率要達到625MHz,這個速度對于硬件也具有較高要求,使開發(fā)設計成本增高。所以對并行處理的數據位寬做進一步擴展,一次處理2個字節(jié)也就是16bits,這時的硬件速度要求是625MHz/2=312.5MHz,一般的FPGA開發(fā)板就能滿足要求,降低了開發(fā)的難度和成本[6]。因此,我們應該對USB3.0中的擾碼-解擾碼器進行多數位的并行處理。
如今的FPGA開發(fā)板含有并行flash結構,隨著技術的進步,flash的容量不斷擴大,使得留給用戶使用的空間越來越多。本文擬基于FPGA開發(fā)板中的并行flash實現USB3.0中的擾碼-解擾碼器的并行設計,雖然需要占用一定的存儲資源,但其應用了擾碼-解擾碼器具有周期性的原理,將每個擾碼狀態(tài)的末位存儲在flash中,再直接與待擾或者待解擾數據異或即可實現擾碼或解擾碼功能[4]。它不需要按照擾碼的特征多項式進行不斷的遞推,不需要占用過多的硬件資源,只需要占用很小部分的并行flash存儲空間。因而,該方法能快速、高效、簡單可靠地設計出USB3.0中的擾碼-解擾碼器。
在通信系統(tǒng)數據的傳輸過程中,數據信息序列中往往不可避免地會出現較長的連續(xù)“0”或者“1”序列,它將會影響接收端定時信號的恢復,致使接收端可能接收信息發(fā)生錯誤。
在實際應用中,常使用擾碼器攪亂數據,它改變了數字信號的統(tǒng)計特性,使之變成近似于白噪聲的數據序列。擾碼后的數據序列中幾乎不再有較長的連續(xù)“0”或者“1”,并且輸出序列中“0”和“1”比較均衡。擾碼與解擾碼在通信系統(tǒng)中是成對出現的,解擾碼器的作用是還原數據信息。
普遍的擾碼方法是在輸入數據序列上加一個最長線性反饋移位寄存器序列,數據序列按位依次與線性反饋移位寄存器的輸出異或,相應地在接收端擾碼后的數據序列按位依次與同樣的線性反饋移位寄存器的輸出異或進行解擾碼,可還原出原數據序列[1]。
如圖1所示是一個典型的n級線性反饋移位寄存器。它之所以能夠完成擾碼與解擾碼的功能是與其幾個重要性質密切相關的。1)它能夠產生周期為2n-1的最長線性反饋移位寄存器序列。2)最長線性反饋移位寄存器序列具有均衡性,在其一個周期中,“1”的個數比“0”的個數多一個。3)最長線性反饋移位寄存器序列的游程分布具有規(guī)律性,游程數共有2n-1個,長度為k的游程數目占總數的2-k,而且在長度為k的游程中連“1”的游程和“0”的游程各占一半。4)在一定條件下最長線性反饋移位寄存器序列的功率譜密度近似于白噪聲的功率譜。
圖1 線性反饋移位寄存器
反饋移位寄存器n階特征多項式為
其中z無實際意義,只起到表征作用。Ci(i=1,2,3…n)是線性反饋移位寄存器的反饋系數,當Ci取值為1時代表某一級D觸發(fā)器輸出參加反饋網絡的異或運算,否則表示不參與運算,一般情況下C0和Cn總是為1。加擾和解擾均采用變形的m序列發(fā)生器,即根據應用的場合,Ci取值為1或者0[8]。
如圖2所示,加擾器與解擾器應用于USB3.0通信系統(tǒng)的物理層的數據發(fā)送與接收流程中。
圖2 數據發(fā)送/接收流程
在數據發(fā)送過程中,從鏈路層接收數據進行擾碼、8b/10b編碼、并串轉換后經差分傳輸驅動端送到物理線路上。在數據接收過程中,數據經差分傳輸驅動接收后進行數據與時鐘恢復,然后串并轉換,經過彈性緩沖器進行時鐘匹配,再進行8b/10b解碼,最后解擾碼后將數據送到系統(tǒng)其他部分。由此可見,擾碼與解擾碼在USB3.0通信系統(tǒng)中起到重要作用[7]。
USB3.0通信協議對加擾和解擾做了具體的要求,加解擾都是以雙字的形式進行處理,產生m序列的線性反饋移位寄存器要求采用生成多項式:G(X ) =X16+X5+X4+X3+1。擾碼的其他的規(guī)則如下:1)除了SKP,其他數值在線性反饋移位寄存器中要串行步進8個移位;2)除了在訓練序列集中的數據碼不需要進行擾碼處理,其他的8b/10b數據碼要被擾碼;3)K(控制)字符不進行擾碼處理;4)線性反饋移位寄存器的初始值是FFFFh,在COM字符離開發(fā)送端的線性反饋移位寄存器后,發(fā)送端的線性反饋移位寄存器要進行初始化;每當COM字符進入接收端的線性反饋移位寄存器,接收端的線性反饋移位寄存器要進行初始化[5]。數據加擾器和解擾器的結構分別如圖3和圖4所示。
圖3 數據加擾器結構
圖4 數據解擾器結構
圖3中的數據每經過一次移位,在時間上就會延遲一個碼元時間,時間延遲用運算符號D表示,設X和Y分別表示待擾序列輸入和擾碼序列輸出,由圖3可得
用 D3⊕D4⊕D5⊕D16對式(1)兩邊同時進行異或運算:
由于序列自身異或等于0,可得:
根據圖4的數據解擾過程,很明顯可以看出:
式(4)與式(3)是相同的,這也表明解擾器能成功恢復出原待擾序列。如果直接用上述方法進行加擾與解擾,明顯效率很低,所以需要對其改進。
本設計采用EP4CE15F17C8N型號FPGA開發(fā)板,開發(fā)板中嵌入了一個32M的并行FLASH,其名為Am29LV320D,它可以同時進行8位或者16位數據的并行處理,并且具有安全可靠,高性能,低功耗的特點[9]。16位的移位寄存器共有216=65536個狀態(tài),我們將每個狀態(tài)的最后一位取出存儲在FLASH中,所需要的存儲空間為65536/1024=64kbit。如圖5所示,64kbit的數據固定存儲到Am29LV320DFLASH中,將待擾的數據進行串并轉換成16位并行數據,按照時鐘的節(jié)拍,兩者進行異或,即可完成16位的并行加擾。從之前所述可知,數據流進入線性反饋移位寄存器中進行加擾和解擾的算法相同,因此把加擾后的數據經過同樣的電路就可以解擾出原始的輸入數據。
圖5 16位并行擾碼結構示意圖
基于以上所述,本設計采用Verilog硬件編程語言編寫測試文件,并結合Modelsim工具對電路進行功能仿真。電路仿真結果如圖6所示,其中,clk5表示時鐘信號,rst5表示復位信號。USB3.0協議中,規(guī)定線性反饋移位寄存器的初始值為OxFFFF。圖6的仿真實驗波形顯示,電路的信源輸入為Date_in5,經過兩個時鐘的緩沖后進行擾碼,raoma_out為擾碼后的輸出,jieraoma_out為解擾碼后的輸出。觀察仿真波形圖可以看出,數據經過擾碼后再通過解擾碼又恢復成了原來的信源數據,而且數據擾碼器的采用減少了信道中可能出現的連續(xù)“0”或連續(xù)“1”和短周期序列,這樣就使數據頻譜中有更多幅度較大的離散線譜,有利于串行通信中數據接收過程的數據定時恢復。
圖6 擾碼與解擾碼電路仿真結果
本文介紹了USB3.0中擾碼器與解擾碼器的技術,著重介紹了如何用一種更高效的方法去設計與實現,本文所闡述的基于并行flash的方法經驗證是能夠成功做到快速、高效、可靠、低功耗地實現USB3.0中的擾碼與解擾碼。擾碼技術在現實應用中廣泛而重要,并行處理是必要的手段,將來的并行處理一定會更快,這樣也才能滿足大數據時代的需求。
[1]沈泊,溫濤,孫承綬.M序列偽隨機碼發(fā)生器的低功耗實現[J].微電子學,1999,29(1):2-3.
SHEN Po,WEN Tao,SUN Chengshou.The low power con?sumption of M sequence pseudo random code generator[J].Journal of Microelectronics,1999,29(1):2-3.
[2]李永忠.現代通信原理與技術[M].北京:國防工業(yè)出版社,2010:273-279.
LI Yongzhong.Modern Communication Principle and Technology[M].Beijing:National Defence Industry Press,2010:273-279.
[3]趙光.USB3.0物理層發(fā)送端的研究與設計[D].成都:電子科技大學,2009.
ZHAO Guang.The Research and Design of The Sending on The USB3.0 Physical Layer[D].Chengdu:University of Electronic Science and Technology,2009.
[4]LEE S H,LEE P J.高速傳輸系統(tǒng)集成并行擾碼器設計[C]//電氣工程師學會,1988:361-364.
LEE S H,LEE P J.Integrated parallel scrambler design for high-speed transmission systems[C]//IEE,1988:361-364.
[5]USB3.0規(guī)范[S].英特爾公司,2008:60-61.Universal Serial Bus3.0 Specification[S].Intel Corpora?tion,2008:60-61.
[6]張羿猛,黃芝平,畢占坤,等.并行幀同步擾碼器的擴充比特設計法[J].光子學報,2006,35(7):1048-1051.
ZHANG Yimeng,HUANG Zhiping,BI Zhankun,et al.The Method of Bit Expansion Design on Parallel Frame Synchronization Scrambler[J].Journal of Photons,2006,35(7):1048-1051.
[7]段俊紅,韓冰,王松,等.USB3.0數據傳輸協議分析及實現[J].信息安全與保密,2013,12(3):124-126.
DUAN Junhong,HAN Bing,WANG Song,et al.The Data Transmission Protocol Analysis and Realization of USB3.0[J].Information Security and Secrecy,2013,12(3):124-126.
[8]陳順林,楊萬全,董慶蓉.M序列在移動通信擾碼中的應用及仿真[J].現代電子技術,2002(3):27-28.
CHEN Shunlin,YANG Wanquan,DONG Qingrong.The Applicationg and Simulation of M Sequence in The Mobile Communication Scrambler[J].The Modern Electronic Technology,2002(3):27-28.
[9]付少忠,楊家韋.并行擾碼和解擾的實現[J].無線電工程,2004,34(2):61-63.
FU Shaozhong,YANG Jiawei.The Implementation of Par?allel Scrambler and Descrambler[J].The Radio Engineer?ing,2004,34(2):61-63.
[10]易茂祥,章浩,郭紅衛(wèi),等.m-序列擾碼技術及其在SATA中的應用[J].微電子學,2012,42(4):502-505.
YI Maoxiang,ZHANG Hao,GUO Hongwei,et al.M-se?quence Scrambler Technology and Its Application in SA?TA[J].Journal of Microelectronics,2012,42(4):502-505.
[11]林滸,張榮茂.FPGA的設計與開發(fā)[J].小型微型計算機系統(tǒng),1992,13(12):10-15.
LIN Hu,ZHANG Rongmao.The Design and Develop?ment of FPGA[J].The Small Microcomputer System,1992,13(12):10-15.