編碼知識相關

2021-09-11 22:19:01 字數 3750 閱讀 8401

6-bit子塊的起始running disparity等於上乙個10-bit碼的結尾running disparity。而4-bit子塊的running disparity等於6-bit子塊結尾的running disparity。4-bit子塊結尾的running disparity等於10-bit碼的running disparity。

 滿足下列條件,子塊結尾的當前running disparity為正

 子塊中「1」比「0」多

 6-bit子塊為6』b000111

 4-bit子塊為4』b0011

 滿足下列條件,子塊結尾的當前running disparity為負

 子塊中「1」比「0」少

 6-bit子塊為6』b111000

 4-bit子塊為4』b1100

前六後四

64b/66b編碼

64b/66b編碼技術

64b/66b編碼技術是ieee 802.3工作組為10g乙太網提出的,目的是減少編碼開銷,降低硬體的複雜性,並作為8b/10b編碼的另一種選擇,以支援新的程式和資料。當前,64b/66b編碼主要應用於fiber channel 10gfc和16gfc、10g乙太網、100g乙太網、10g epon、infiniband、thunderbolt和xilinx的aurora協議。

64b/66b編碼將64bit資料或控制資訊編碼成66bit塊傳輸,66bit塊的前兩位表示同步頭,主要由於接收端的資料對齊和接收資料位流的同步。同步頭有「01」和「10」兩種,「01「表示後面的64bit都是資料,「10」表示後面的64bit是資料和控制資訊的混合,其中緊挨著同步頭的8b是型別域,後面的56bit是控制資訊或者資料或者兩者的混合。64b/66b編碼格式圖如下圖所示,其中d表示資料編碼,每個資料碼8bit;z表示控制碼,每個控制碼7bit;s表示包的開始,t表示包的結束。s只會出現在8位元組中的第0和第4位元組,t能夠出現在任意的位元組。除同步碼外,64bit的資料必須經過擾碼以後才能進行傳輸。64b/66b編碼所使用的 擾碼器為x58+x39+1. 乙個18 bytes的資料塊的傳輸過程如下圖所示:

擾碼傳輸技術

擾碼是一種將資料重新排列或者進行編碼以使其歲佳話的發布方法,主要作用是將數字通訊中的"0"和"1"分布隨機化,從而使位元資訊模式被隨機化,進一度減輕了抖動個碼間串擾,提高了通訊的可靠性。從本質上講,擾碼正式為了達到上述目的而在待傳輸資料進入通道傳輸之前,對其進行的位元層的隨機化處理過程,與擾碼過程相對應的解隨機化過程稱之為解擾。

擾碼的數學原理使用了多項式,多項式的選擇通常是基於擾碼的特性,包括生成資料的隨機度,以及打亂連0和連1的能力。乙個簡單的擾碼器包含一組排列好的觸發器,用於移位資料流。大部分的觸發器只需要簡單地輸出下乙個位元流即可,但是在繆謝複雜的擾碼電路中,觸發器需要與資料流中的歷史位元進行邏輯運算(與和或運算)。基本的擾碼電路如下所示:

64b/66b編碼過程如下圖所示:

prbs定義

二進位制序列指的是,a0, … , an-1的n bit的序列,其中 aj∈,j=0, 1, …, n-1。

乙個二進位制序列中,包含m=∑aj個1, 以及n-m個0。

如果乙個二進位制序列的自相關函式

只有兩個值

且那麼,將這個二進位制序列稱為偽隨機二進位制序列pseudo-random binary sequence (prbs)。c稱作prbs的占空比(duty cycle),這個和時序訊號裡的占空比的定義類似。

prbs被稱為「偽隨機」的,是因為實際上它是確定的。它看上去是隨機的原因是,aj的值和序列中其它碼值無關,和真實的隨機序列類似。

如果每n bit就重複一下的話,偽隨機碼prbs碼可以擴充套件到無窮位碼長。相對而言,大部分隨機碼流的碼長本質上是無窮長的(不重複),比如放射性訊號的衰減或者白雜訊。n 位最大碼長的偽隨機碼,一般都是由線性反饋移位暫存器產生的。偽隨機碼的占空比一般都是1/2,並且,乙個k位長度的暫存器,產生的偽隨機碼的碼長為n=2k-1。偽隨機碼被廣泛應用在無線/有線通訊,密碼學,**,光譜分析法等。

prbs的生成方法

prbs訊號是由prbs碼形發生器生成的。prbs發生器通常是由線性反饋移位暫存器(linear feedback shift registers,lfsr)和異或電路組成。如下圖1是prbs7的碼形發生器,其初始值是0000001,本原多項式是x6+x7+1。即將暫存器的第6位和第7位做異或運算後,輸入到暫存器的第1位,暫存器的第7位同時也是prbs7發生器的輸出。

在圖一中可以看到,prbs7最長是127bit(27-1), 理論上來說,7bit的2進製碼,一共會有27個不同組合,但是,如果碼流全部為『0』的時候,經過異或運算,輸入到暫存器第一位的值還是0, 這樣移位暫存器將會一直輸出為零,移位暫存器被死鎖。所以prbs碼流不能全部為零。另外,prbs7 碼流中最長的連續『1』個數為7個,最長的連續『0』個數為6個。127bit的連續碼流中,一共有64個『1』,63個『0』。

同理,prbsn的碼長為2n-1 bits,其中包括2n-1個『1』,2n-1-1個『0』。

一些常用的prbs碼的本原多項式如下:

prbs7 = x6+x7+1

prbs9 = x9+x5+1

prbs11 = x11+x9+1

prbs15 = x15+x14+1

prbs20 = x20+x3+1

prbs23 = x23+x18+1

prbs31 = x31+x28+1

prbs作用

序列匯流排的物理層測試通常分為發射機測試和接收機測試,又稱為tx測試和rx測試。發射機測試通常包括眼圖、抖動、訊號波形、幅度、上公升下降時間等測試專案,接收機測試通常包括誤位元速率、抖動容限、接收機靈敏度等測試專案。對於眼圖測試、誤位元速率和抖動容限測試,最常用的測試碼是prbs,主要有prbs7、prbs15、prbs23和prbs31。

prbs7是目前10gbps以下的序列匯流排中最常用的測試碼型,在itu-tv.29規範中規定。prbs7屬於短偽隨機碼型,與8b10b nrz編碼的資料流很相似,所以,在pcie、sata、xaui、1000base-lx、fc、sas等採用8b10b編碼的序列匯流排中,prbs7是最常用的測試碼型,支援這些匯流排的晶元通常都可以輸出prbs7測試碼型,用於眼圖、抖動或誤位元速率測量。

prbs7的碼流中最長的連1為7個,最長的連0為6個;而8b10b編碼中最長的連1為5,最長的連0也是5;因此,相比8b10b編碼,prbs7可以產生的較低頻率的碼型。使用prbs7作為驅動源,在同一通道(比如背板上20inch長走線)上傳輸到接收端後得到眼圖和抖動,都比8b10b編碼的作為驅動源時的結果稍差些。這樣,prbs7作為8b10b編碼的序列匯流排的測試碼型,留出了一定的設計餘量。

10gbase-kr標準裡特別標註了推薦的測試碼形為prbs11。

Camera知識相關

qxga 2048 x 1536 又稱300萬畫素 uxga 1600x 1200 又稱200萬畫素 sxga 1280 x1024 又稱130萬畫素 xga 1024 x768 又稱80萬畫素 svga 800 x600 又稱50萬畫素 vga 640x480 又稱30萬畫素 35萬是指648x4...

log4j知識相關(一)

一 例子 log4j.rootlogger debug,console log4j.addivity.console true 5p d t l m x n log1 log4j.logger.smartadapter debug,smartadapter log4j.addivity.smarta...

Python的基礎知識相關型別 續

1,運算子的優先順序 示例 1 3 3 2 4 2 1 3 9 4 2 1 27 2 30括號分組 子表示式 用 可以將表示式分組,內的表示式優先進行計算。2,變數 什麼是變數 變數是關聯乙個物件的符號 變數的命名方法 變數名必須為字母或者下劃線 開頭,後邊跟字母,數字,或者下劃線。並且不能使用我們...