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

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

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

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

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


4 CRC誤碼電路原理圖的分析與改進(jìn)

 


4.1 改進(jìn)前的原理圖

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

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

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

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

 可以看到,信號(hào)可以通過(guò)電阻直接經(jīng)過(guò)小電容從地回流,主要的回流路徑很短,不會(huì)形成大的回流環(huán)路,也就減小了彼此間的干擾,減少了DDR數(shù)據(jù)線和地址線間的串?dāng)_,從而解決了CRC的誤碼問(wèn)題。
 針對(duì)EGFC16實(shí)踐調(diào)試過(guò)程中出現(xiàn)的CRC誤碼現(xiàn)象,本文先對(duì)CRC誤碼現(xiàn)象進(jìn)行了全面的描述,由于實(shí)驗(yàn)證實(shí)了這種CRC誤碼現(xiàn)象在很大程度上是由信號(hào)回流引起的,因此本文主要從信號(hào)回流的角度分析和改進(jìn)電路,以解決CRC誤碼??偨Y(jié)發(fā)現(xiàn),現(xiàn)實(shí)生活中大多數(shù)電路問(wèn)題都與信號(hào)回流有關(guān)系,所以在單板的寬廣處多放一些0.1 μF的電容到地,對(duì)于穩(wěn)定電源、去除噪聲以及給信號(hào)增加了一個(gè)較好的回流路徑是十分有益的。
參考文獻(xiàn)
[1] 瞿中告,袁威,徐問(wèn)之.CRC算法在計(jì)算機(jī)網(wǎng)絡(luò)通信中的應(yīng)用[J].微機(jī)發(fā)展,2002(2):12-14.
[2] 瞿中告,徐問(wèn)之.單片機(jī)通信中的CRC算法[J].微機(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的信號(hào)完整性分析及應(yīng)用[J].桂林工學(xué)院學(xué)報(bào),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.

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