尹旭東
(合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院 合肥 230009)
USB3.0的最大傳輸帶寬是5Gbps,如果進(jìn)行一位的串行擾碼與解擾碼,就要求電路的工作頻率能夠達(dá)到5GHZ,這對硬件的速度來說是個很大的挑戰(zhàn),明顯不符合實際應(yīng)用。當(dāng)系統(tǒng)對數(shù)據(jù)的擾碼與解擾碼是按照一個字節(jié)8bits進(jìn)行并行處理,由5Gbps/8bits=625MB/s可得電路的工作頻率要達(dá)到625MHz,這個速度對于硬件也具有較高要求,使開發(fā)設(shè)計成本增高。所以對并行處理的數(shù)據(jù)位寬做進(jìn)一步擴(kuò)展,一次處理2個字節(jié)也就是16bits,這時的硬件速度要求是625MHz/2=312.5MHz,一般的FPGA開發(fā)板就能滿足要求,降低了開發(fā)的難度和成本[6]。因此,我們應(yīng)該對USB3.0中的擾碼-解擾碼器進(jìn)行多數(shù)位的并行處理。
如今的FPGA開發(fā)板含有并行flash結(jié)構(gòu),隨著技術(shù)的進(jìn)步,flash的容量不斷擴(kuò)大,使得留給用戶使用的空間越來越多。本文擬基于FPGA開發(fā)板中的并行flash實現(xiàn)USB3.0中的擾碼-解擾碼器的并行設(shè)計,雖然需要占用一定的存儲資源,但其應(yīng)用了擾碼-解擾碼器具有周期性的原理,將每個擾碼狀態(tài)的末位存儲在flash中,再直接與待擾或者待解擾數(shù)據(jù)異或即可實現(xiàn)擾碼或解擾碼功能[4]。它不需要按照擾碼的特征多項式進(jìn)行不斷的遞推,不需要占用過多的硬件資源,只需要占用很小部分的并行flash存儲空間。因而,該方法能快速、高效、簡單可靠地設(shè)計出USB3.0中的擾碼-解擾碼器。
在通信系統(tǒng)數(shù)據(jù)的傳輸過程中,數(shù)據(jù)信息序列中往往不可避免地會出現(xiàn)較長的連續(xù)“0”或者“1”序列,它將會影響接收端定時信號的恢復(fù),致使接收端可能接收信息發(fā)生錯誤。
在實際應(yīng)用中,常使用擾碼器攪亂數(shù)據(jù),它改變了數(shù)字信號的統(tǒng)計特性,使之變成近似于白噪聲的數(shù)據(jù)序列。擾碼后的數(shù)據(jù)序列中幾乎不再有較長的連續(xù)“0”或者“1”,并且輸出序列中“0”和“1”比較均衡。擾碼與解擾碼在通信系統(tǒng)中是成對出現(xiàn)的,解擾碼器的作用是還原數(shù)據(jù)信息。
普遍的擾碼方法是在輸入數(shù)據(jù)序列上加一個最長線性反饋移位寄存器序列,數(shù)據(jù)序列按位依次與線性反饋移位寄存器的輸出異或,相應(yīng)地在接收端擾碼后的數(shù)據(jù)序列按位依次與同樣的線性反饋移位寄存器的輸出異或進(jìn)行解擾碼,可還原出原數(shù)據(jù)序列[1]。
如圖1所示是一個典型的n級線性反饋移位寄存器。它之所以能夠完成擾碼與解擾碼的功能是與其幾個重要性質(zhì)密切相關(guān)的。1)它能夠產(chǎn)生周期為2n-1的最長線性反饋移位寄存器序列。2)最長線性反饋移位寄存器序列具有均衡性,在其一個周期中,“1”的個數(shù)比“0”的個數(shù)多一個。3)最長線性反饋移位寄存器序列的游程分布具有規(guī)律性,游程數(shù)共有2n-1個,長度為k的游程數(shù)目占總數(shù)的2-k,而且在長度為k的游程中連“1”的游程和“0”的游程各占一半。4)在一定條件下最長線性反饋移位寄存器序列的功率譜密度近似于白噪聲的功率譜。
圖1 線性反饋移位寄存器
反饋移位寄存器n階特征多項式為
其中z無實際意義,只起到表征作用。Ci(i=1,2,3…n)是線性反饋移位寄存器的反饋系數(shù),當(dāng)Ci取值為1時代表某一級D觸發(fā)器輸出參加反饋網(wǎng)絡(luò)的異或運(yùn)算,否則表示不參與運(yùn)算,一般情況下C0和Cn總是為1。加擾和解擾均采用變形的m序列發(fā)生器,即根據(jù)應(yīng)用的場合,Ci取值為1或者0[8]。
如圖2所示,加擾器與解擾器應(yīng)用于USB3.0通信系統(tǒng)的物理層的數(shù)據(jù)發(fā)送與接收流程中。
圖2 數(shù)據(jù)發(fā)送/接收流程
在數(shù)據(jù)發(fā)送過程中,從鏈路層接收數(shù)據(jù)進(jìn)行擾碼、8b/10b編碼、并串轉(zhuǎn)換后經(jīng)差分傳輸驅(qū)動端送到物理線路上。在數(shù)據(jù)接收過程中,數(shù)據(jù)經(jīng)差分傳輸驅(qū)動接收后進(jìn)行數(shù)據(jù)與時鐘恢復(fù),然后串并轉(zhuǎn)換,經(jīng)過彈性緩沖器進(jìn)行時鐘匹配,再進(jìn)行8b/10b解碼,最后解擾碼后將數(shù)據(jù)送到系統(tǒng)其他部分。由此可見,擾碼與解擾碼在USB3.0通信系統(tǒng)中起到重要作用[7]。
USB3.0通信協(xié)議對加擾和解擾做了具體的要求,加解擾都是以雙字的形式進(jìn)行處理,產(chǎn)生m序列的線性反饋移位寄存器要求采用生成多項式:G(X ) =X16+X5+X4+X3+1。擾碼的其他的規(guī)則如下:1)除了SKP,其他數(shù)值在線性反饋移位寄存器中要串行步進(jìn)8個移位;2)除了在訓(xùn)練序列集中的數(shù)據(jù)碼不需要進(jìn)行擾碼處理,其他的8b/10b數(shù)據(jù)碼要被擾碼;3)K(控制)字符不進(jìn)行擾碼處理;4)線性反饋移位寄存器的初始值是FFFFh,在COM字符離開發(fā)送端的線性反饋移位寄存器后,發(fā)送端的線性反饋移位寄存器要進(jìn)行初始化;每當(dāng)COM字符進(jìn)入接收端的線性反饋移位寄存器,接收端的線性反饋移位寄存器要進(jìn)行初始化[5]。數(shù)據(jù)加擾器和解擾器的結(jié)構(gòu)分別如圖3和圖4所示。
圖3 數(shù)據(jù)加擾器結(jié)構(gòu)
圖4 數(shù)據(jù)解擾器結(jié)構(gòu)
圖3中的數(shù)據(jù)每經(jīng)過一次移位,在時間上就會延遲一個碼元時間,時間延遲用運(yùn)算符號D表示,設(shè)X和Y分別表示待擾序列輸入和擾碼序列輸出,由圖3可得
用 D3⊕D4⊕D5⊕D16對式(1)兩邊同時進(jìn)行異或運(yùn)算:
由于序列自身異或等于0,可得:
根據(jù)圖4的數(shù)據(jù)解擾過程,很明顯可以看出:
式(4)與式(3)是相同的,這也表明解擾器能成功恢復(fù)出原待擾序列。如果直接用上述方法進(jìn)行加擾與解擾,明顯效率很低,所以需要對其改進(jìn)。
本設(shè)計采用EP4CE15F17C8N型號FPGA開發(fā)板,開發(fā)板中嵌入了一個32M的并行FLASH,其名為Am29LV320D,它可以同時進(jìn)行8位或者16位數(shù)據(jù)的并行處理,并且具有安全可靠,高性能,低功耗的特點[9]。16位的移位寄存器共有216=65536個狀態(tài),我們將每個狀態(tài)的最后一位取出存儲在FLASH中,所需要的存儲空間為65536/1024=64kbit。如圖5所示,64kbit的數(shù)據(jù)固定存儲到Am29LV320DFLASH中,將待擾的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換成16位并行數(shù)據(jù),按照時鐘的節(jié)拍,兩者進(jìn)行異或,即可完成16位的并行加擾。從之前所述可知,數(shù)據(jù)流進(jìn)入線性反饋移位寄存器中進(jìn)行加擾和解擾的算法相同,因此把加擾后的數(shù)據(jù)經(jīng)過同樣的電路就可以解擾出原始的輸入數(shù)據(jù)。
圖5 16位并行擾碼結(jié)構(gòu)示意圖
基于以上所述,本設(shè)計采用Verilog硬件編程語言編寫測試文件,并結(jié)合Modelsim工具對電路進(jìn)行功能仿真。電路仿真結(jié)果如圖6所示,其中,clk5表示時鐘信號,rst5表示復(fù)位信號。USB3.0協(xié)議中,規(guī)定線性反饋移位寄存器的初始值為OxFFFF。圖6的仿真實驗波形顯示,電路的信源輸入為Date_in5,經(jīng)過兩個時鐘的緩沖后進(jìn)行擾碼,raoma_out為擾碼后的輸出,jieraoma_out為解擾碼后的輸出。觀察仿真波形圖可以看出,數(shù)據(jù)經(jīng)過擾碼后再通過解擾碼又恢復(fù)成了原來的信源數(shù)據(jù),而且數(shù)據(jù)擾碼器的采用減少了信道中可能出現(xiàn)的連續(xù)“0”或連續(xù)“1”和短周期序列,這樣就使數(shù)據(jù)頻譜中有更多幅度較大的離散線譜,有利于串行通信中數(shù)據(jù)接收過程的數(shù)據(jù)定時恢復(fù)。
圖6 擾碼與解擾碼電路仿真結(jié)果
本文介紹了USB3.0中擾碼器與解擾碼器的技術(shù),著重介紹了如何用一種更高效的方法去設(shè)計與實現(xiàn),本文所闡述的基于并行flash的方法經(jīng)驗證是能夠成功做到快速、高效、可靠、低功耗地實現(xiàn)USB3.0中的擾碼與解擾碼。擾碼技術(shù)在現(xiàn)實應(yīng)用中廣泛而重要,并行處理是必要的手段,將來的并行處理一定會更快,這樣也才能滿足大數(shù)據(jù)時代的需求。
[1]沈泊,溫濤,孫承綬.M序列偽隨機(jī)碼發(fā)生器的低功耗實現(xiàn)[J].微電子學(xué),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]李永忠.現(xiàn)代通信原理與技術(shù)[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ā)送端的研究與設(shè)計[D].成都:電子科技大學(xué),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)集成并行擾碼器設(shè)計[C]//電氣工程師學(xué)會,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]張羿猛,黃芝平,畢占坤,等.并行幀同步擾碼器的擴(kuò)充比特設(shè)計法[J].光子學(xué)報,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數(shù)據(jù)傳輸協(xié)議分析及實現(xiàn)[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序列在移動通信擾碼中的應(yīng)用及仿真[J].現(xiàn)代電子技術(shù),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]付少忠,楊家韋.并行擾碼和解擾的實現(xiàn)[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-序列擾碼技術(shù)及其在SATA中的應(yīng)用[J].微電子學(xué),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的設(shè)計與開發(fā)[J].小型微型計算機(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.