《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于CRC機制的信號回流檢測方法與誤碼分析
基于CRC機制的信號回流檢測方法與誤碼分析
來源:微型機與應(yīng)用2011年第21期
鄔春學,華 樂
(上海理工大學 光電信息與計算機工程學院,上海 200093)
摘要: 針對實驗過程中出現(xiàn)的CRC誤碼,主要利用信號回流檢測方法對原理圖進行分析和改進,增加了上拉電容以縮短回流路徑使其到地,減少了彼此間的干擾,從而解決CRC誤碼。實驗結(jié)果表明,在單板的寬廣處多放一些小電容到地,能給信號增加一個較好的回流路徑,對于穩(wěn)定電源去除噪聲十分有益。
Abstract:
Key words :

摘  要: 針對實驗過程中出現(xiàn)的CRC誤碼,主要利用信號回流檢測方法對原理圖進行分析和改進,增加了上拉電容以縮短回流路徑使其到地,減少了彼此間的干擾,從而解決CRC誤碼。實驗結(jié)果表明,在單板的寬廣處多放一些小電容到地,能給信號增加一個較好的回流路徑,對于穩(wěn)定電源去除噪聲十分有益。
關(guān)鍵詞: 計算機網(wǎng)絡(luò)通信;誤碼;CRC;信號回流

 在計算機網(wǎng)絡(luò)通信和系統(tǒng)工作過程中,由于信道上存在的各種復(fù)雜因素(如沖擊噪聲、脈沖噪聲、熱噪聲、串音和傳輸質(zhì)量等)的影響,信息在形成、存取、傳送過程中往往受到不同程度的干擾,嚴重時會造成誤碼,即接收端收到的信息與發(fā)送端發(fā)送的信息不一致,以致阻斷通信[1]。因此,應(yīng)該在接收端檢查所接收的數(shù)據(jù)是否正確??刹捎枚喾N檢測方法,其中,循環(huán)冗余校驗碼CRC(Cyclic Redundancy Check)是目前在計算機網(wǎng)絡(luò)通信及儀表數(shù)據(jù)通信等方面應(yīng)用最為廣泛的一種校驗編碼方法,是一種強有力的檢測手段。
 CRC是一種能力較強的檢錯、糾錯碼,并且實現(xiàn)編碼和檢碼的電路比較簡單,除了各種嵌入式儀表、變頻器等設(shè)備,還有一些數(shù)字型傳感器的輸出數(shù)據(jù)也提供CRC碼,如數(shù)字溫度傳感器DS18B20、集成溫濕度采集芯片SHT11等。此外,人們還將該技術(shù)用于計算機網(wǎng)絡(luò)通信和數(shù)據(jù)通信系統(tǒng)中,收到了令人滿意的效果[2]。
本文結(jié)合實例,從信號回流的角度分析和改進原理圖,從而解決了CRC誤碼。
1 CRC檢驗原理
 CRC是分組線性碼的分支,其主要應(yīng)用是二元碼組。CRC的基本思想是利用線性編碼理論,在發(fā)送端根據(jù)要傳送的k位二進制碼序列,以一定的規(guī)則產(chǎn)生一個校驗用的監(jiān)督碼(即CRC碼)r位,并附在信息后邊,構(gòu)成一個新的二進制碼序列數(shù)共(k+r)位,最后發(fā)送出去。在接收端,則根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進行檢驗,以確定傳送中是否出錯。若不正確,則說明數(shù)據(jù)信息在傳輸過程中有誤碼,通常通過發(fā)送端重傳來校正錯誤,直至傳送正確為止。
 任何一個由二進制位串組成的代碼可以和一個只含有0和1兩個系數(shù)的多項式建立一對一的關(guān)系。例如一個二進制代碼1011101,其對應(yīng)的多項式為x6+x4+x3 +x2+1。k為要發(fā)送的信息位位數(shù),可對應(yīng)一個(k-1)次多項式K(x),r位冗余位可對應(yīng)于一個(r-1)次多項式R(x),由k位信息位后面加上r位冗余位組成的n=k+r位碼字則對應(yīng)于一個(n-1)次多項式:T(x)=xr×K(x)+R(x)。
 在CRC校驗編碼時,由信息位產(chǎn)生冗余碼的編碼過程就是求余數(shù)R(x)的過程,CRC碼中通過找到一個特定的r次多項式G(x)(最高項xr的系數(shù)為1)來實現(xiàn),用G(x)去除xr×K(x),得到的余式就是R(x)。
CRC校驗是把要傳送的信息位串加上校驗和構(gòu)成的循環(huán)冗余校驗碼發(fā)送到接收方,接收方在接收到循環(huán)冗余碼后,將其除以生成多項式G(x),若余數(shù)為0,則表示傳遞正確,否則就說明有錯[3]。
2 CRC誤碼
 在EGFC16調(diào)試過程中,單板的FE電口在SmartBits發(fā)送業(yè)務(wù)內(nèi)容為8-0-s、8-f-s,在這種長連0長連1業(yè)務(wù)的情況下,會出現(xiàn)CRC誤碼。單板在啟動后,如果接收的業(yè)務(wù)內(nèi)容為8-0-s、8-f-s或者其他業(yè)務(wù)時,不會出現(xiàn)CRC誤碼。在出現(xiàn)誤碼的情況下,將業(yè)務(wù)內(nèi)容改成不造成CRC誤碼的業(yè)務(wù)也無濟于事,CRC誤碼會一直存在,除非將單板重新冷復(fù)位。
 CRC誤碼在上述“8-0-s、8-f-s”業(yè)務(wù)的情況下并不是馬上出現(xiàn)CRC誤碼,而是需要經(jīng)過一定的時間。開始的時候出現(xiàn)的很少,只有一兩個,但是很快將會發(fā)生雪崩效應(yīng),出現(xiàn)大量的CRC誤碼,業(yè)務(wù)可能因此而中斷。
上述是對CRC誤碼現(xiàn)象的描述,經(jīng)過長期的分析定位,通過實驗得出的數(shù)據(jù)曲線,可以看出,這從一個側(cè)面證明CRC誤碼一方面與電源的穩(wěn)定性有關(guān)系,另一方面和信號回流也有關(guān)系,而且與信號回流的關(guān)系更大,反而電源的不穩(wěn)定性對其影響并不大。
 本文著重從信號回流的角度對CRC誤碼現(xiàn)象進行分析與解決。
3 信號回流的基礎(chǔ)知識
3.1 傳輸線

 傳輸線等效模型如圖1所示,點P是傳輸線上任意點,作為虛擬分界面將傳輸線分開,從右往左看過去,R1、L1、C1分別是線路的等效電阻、電感、電容。R2是漏電流存在的情況下所體現(xiàn)的電阻,其阻值接近無限大;而傳輸線靜態(tài)電阻R1很小,也可忽略不計。這種情況下,傳輸線特征阻抗可以簡化為:Z0=(L1/C1)1/2,這是無損情況下的特征阻抗公式。

 在P點,從A往B看,Z02相當于負載;從B往A看,Z01相當于信號源的內(nèi)阻。由于Z01=Z02,因此在P點沒有反射,也就是在同一根傳輸線上,只有特征阻抗沒有變化,那么就不會有反射。如果在PCB布板的過程中,傳輸線在某一處阻抗有變化,那么就會有反射的產(chǎn)生[4]。
3.2 信號反射
 由上可知,對于傳輸線來說,如果負載阻抗與信號源內(nèi)阻的阻抗相等,則在該點不會反射,即可認為線路是匹配的。因此,在傳輸線內(nèi)部是不會發(fā)生信號反射的,而在傳輸線的兩端就會發(fā)生。
在接收端,以TTL電路為例,接收端是晶體管的基極,而基極電流是極其微弱的,因此,傳輸線的末端等效為一個無窮大的電阻RL。也就是說,負載電阻與傳輸線特征阻抗不匹配,信號在這個點將會發(fā)生全反射,反射波一直傳回源端。這時,如果源端內(nèi)阻與傳輸線阻抗不匹配,在源端會發(fā)生二次反射,如此反復(fù)n次反射。如果這個n次反射信號疊加到原先的信號上,將導致信號劣化[5]。
3.3 信號回流
 任何一個信號最終都要形成一個閉環(huán)回路,如圖2所示。
對于一個交流信號來說,信號的回流總是選擇阻抗最小的回路作為回流,如果信號與回流信號所形成的面積越小,那么干擾和抗干擾能力就越好[6]。因為當回路面積越小,回路所能接收到的干擾就越少,同時向外輻射的就會越小。


4 CRC誤碼電路原理圖的分析與改進

 


4.1 改進前的原理圖

 改進前的信號圖流程徑電路圖如圖3所示。根據(jù)傳輸線的理論,任何高速信號都需要一個回流平面。信號從左端到右端,信號完全匹配無反射,信號必然需要有回流路徑,接收端作為高阻到地電容在皮法級別,只能給信號的沿部分高頻分量提供回流,而對于較低頻的信號則需要通過上拉到VTT的電阻來回流,在沒有加回流電容的情況下,所有的信號都集中到了LP2995上來回流,部分通過放置在LP2995旁邊的一兩個小電容回流,部分需要通過LP2995到2.5 V來回流,這樣主要的回流路徑將會非常長,而且形成了較大的回流環(huán)路,增加了彼此間的干擾。DDR有64根數(shù)據(jù)線和幾十根地址線,必然會造成較大的串擾,從而很容易導致CRC誤碼現(xiàn)象發(fā)生。

4.1.1 33 Ω及50 Ω電阻的作用
 若負載電阻與傳輸線特征阻抗不匹配,信號在這個點將會發(fā)生全反射,反射波一直傳回源端。這時,如果源端內(nèi)阻與傳輸線阻抗不匹配,在源端會發(fā)生二次反射,如此反復(fù)n次反射。如果這個n次反射信號疊加到原先的信號上,將導致信號劣化。
 因而信號兩端都加了33 Ω的串阻以減小二次反射。吸收的原則就是讓源端的串阻加上源端內(nèi)阻(一般情況下,源端內(nèi)阻按照20 Ω左右來考慮,當然不同的芯片的管腳內(nèi)阻是不同的)的阻值正好和傳輸線特征阻抗相等。末端加50 Ω上拉電阻,起到電壓偏置和信號匹配的作用[7]。
4.1.2 LP2995的作用
 LP2995主要作用是提供一個sink current和source current[8]。sink是指接收負載的電流,source是指要給負載提供電流。這正好是SSTL的VTT的供應(yīng)特性之一,而LP2995就是專門能夠提供這種sink和source功能的器件。LP2995的內(nèi)部結(jié)構(gòu)圖如圖4所示。

 信號再輸出為1時,就是source output,向LP2995輸出電流;而當輸出為0時,就是sink output,此時,需要LP2995的VTT提供電流。
4.1.3 VTT的作用
 SSTL比一般的TTL電平的信號傳輸速率要高得多,如果一個信號要高速傳輸,電壓幅度是不能太大的,否則上升沿就限制了它的速率。SSTL剛好采用末端匹配吸收全部信號,從而導致信號擺幅減掉了一半,這樣就減小了信號的擺幅,提高了傳輸速率。
 圖5是DDR數(shù)據(jù)線的信號波形,信號的擺幅顯然正好降低到了1.25 V左右,中間有一個1.25 V的直流偏置,是由VTT來提供的。

4.2 改進的原理圖
 由于LP2995作為一個LDO本身無法提供能量也無法蓄積能量,是不可能提供平穩(wěn)電壓的,它的主要作用只是提供一個sink current和source current。要想提供穩(wěn)定的電壓必須依賴于電容的蓄電能力。
 電容在消除濾波的時候是有電流流過的,而ESR(等效串聯(lián)電阻)正好就相當于一個串聯(lián)在電容里面的電阻,必然會造成壓降,從而帶來濾波的效果降低,濾波特性變差。一般的大容量電容的ESR會比小容量的陶瓷電容大得多,這說明大的電容效果不是很好,而越小的電容越是能夠更快速地提供這種電流,因為ESR比較小。但是大電容有著更強的蓄積電源的能力。
 因此,均勻地放置一些各式電容顯然效果會更好一些,所以可以在整個plane層放置10 μF、0.1 μF、0.01 μF和470 μF的電容,這樣無論是高頻的波動還是低頻的擾動都可以濾掉,而且這種并聯(lián)的方式本身就減小了ESR,更有利于信號的濾波。
 根據(jù)上面的思想,為了解決CRC誤碼問題,本文在原來的原理圖中加上了回流電容到地。改進后的電路圖如圖6所示。

 可以看到,信號可以通過電阻直接經(jīng)過小電容從地回流,主要的回流路徑很短,不會形成大的回流環(huán)路,也就減小了彼此間的干擾,減少了DDR數(shù)據(jù)線和地址線間的串擾,從而解決了CRC的誤碼問題。
 針對EGFC16實踐調(diào)試過程中出現(xiàn)的CRC誤碼現(xiàn)象,本文先對CRC誤碼現(xiàn)象進行了全面的描述,由于實驗證實了這種CRC誤碼現(xiàn)象在很大程度上是由信號回流引起的,因此本文主要從信號回流的角度分析和改進電路,以解決CRC誤碼??偨Y(jié)發(fā)現(xiàn),現(xiàn)實生活中大多數(shù)電路問題都與信號回流有關(guān)系,所以在單板的寬廣處多放一些0.1 μF的電容到地,對于穩(wěn)定電源、去除噪聲以及給信號增加了一個較好的回流路徑是十分有益的。
參考文獻
[1] 瞿中告,袁威,徐問之.CRC算法在計算機網(wǎng)絡(luò)通信中的應(yīng)用[J].微機發(fā)展,2002(2):12-14.
[2] 瞿中告,徐問之.單片機通信中的CRC算法[J].微機發(fā)展,2001(4):74-76.
[3] WILLIAMS R. A painless guide to CRC error detection Algorithms[DB/OL]. [2008-10], http://www.repairfaq.org/filipg/.
[4] 冼志妙,朱雪花,襲著科.高速PCB的信號完整性分析及應(yīng)用[J].桂林工學院學報,2006(2):286-290.
[5] HALL S H, HALL G W, MCCALL J A. High-speed digital system design[M]. Wiley IEEE Press,2000.
[6] BROOKS D. Signal integrity issues and printed circuit board design[M]. Prentice Hall PTR, 2003.
[7] 康壯.高速數(shù)字電路中的終端匹配技術(shù)[J].聲學與電子工程,2004,73:13-639.
[8] JOHNSON H, GRAHAM M. High-speed digital design[M].Prentice Hall, 2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。