摘 要: 針對實驗過程中出現(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相當(dāng)于負載;從B往A看,,Z01相當(dāng)于信號源的內(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次反射信號疊加到原先的信號上,將導(dǎo)致信號劣化[5],。
3.3 信號回流
任何一個信號最終都要形成一個閉環(huán)回路,,如圖2所示。
對于一個交流信號來說,,信號的回流總是選擇阻抗最小的回路作為回流,,如果信號與回流信號所形成的面積越小,那么干擾和抗干擾能力就越好[6],。因為當(dāng)回路面積越小,,回路所能接收到的干擾就越少,同時向外輻射的就會越小,。
4 CRC誤碼電路原理圖的分析與改進
4.1 改進前的原理圖
改進前的信號圖流程徑電路圖如圖3所示,。根據(jù)傳輸線的理論,任何高速信號都需要一個回流平面,。信號從左端到右端,,信號完全匹配無反射,信號必然需要有回流路徑,,接收端作為高阻到地電容在皮法級別,,只能給信號的沿部分高頻分量提供回流,而對于較低頻的信號則需要通過上拉到VTT的電阻來回流,,在沒有加回流電容的情況下,,所有的信號都集中到了LP2995上來回流,部分通過放置在LP2995旁邊的一兩個小電容回流,,部分需要通過LP2995到2.5 V來回流,,這樣主要的回流路徑將會非常長,而且形成了較大的回流環(huán)路,,增加了彼此間的干擾,。DDR有64根數(shù)據(jù)線和幾十根地址線,必然會造成較大的串?dāng)_,,從而很容易導(dǎo)致CRC誤碼現(xiàn)象發(fā)生,。
4.1.1 33 Ω及50 Ω電阻的作用
若負載電阻與傳輸線特征阻抗不匹配,信號在這個點將會發(fā)生全反射,,反射波一直傳回源端,。這時,如果源端內(nèi)阻與傳輸線阻抗不匹配,,在源端會發(fā)生二次反射,,如此反復(fù)n次反射。如果這個n次反射信號疊加到原先的信號上,,將導(dǎo)致信號劣化,。
因而信號兩端都加了33 Ω的串阻以減小二次反射,。吸收的原則就是讓源端的串阻加上源端內(nèi)阻(一般情況下,源端內(nèi)阻按照20 Ω左右來考慮,,當(dāng)然不同的芯片的管腳內(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輸出電流,;而當(dāng)輸出為0時,,就是sink output,此時,,需要LP2995的VTT提供電流,。
4.1.3 VTT的作用
SSTL比一般的TTL電平的信號傳輸速率要高得多,如果一個信號要高速傳輸,,電壓幅度是不能太大的,否則上升沿就限制了它的速率,。SSTL剛好采用末端匹配吸收全部信號,,從而導(dǎo)致信號擺幅減掉了一半,這樣就減小了信號的擺幅,,提高了傳輸速率,。
圖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)電阻)正好就相當(dāng)于一個串聯(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ù)線和地址線間的串?dāng)_,,從而解決了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].桂林工學(xué)院學(xué)報,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].聲學(xué)與電子工程,,2004,73:13-639.
[8] JOHNSON H,, GRAHAM M. High-speed digital design[M].Prentice Hall,, 2007.