信號在傳輸的過程中,往往不是標準的矩形波信號,尤其在高速信號中,保證信號的完整性是十分重要的,影響信號完整性最主要的因素之一,就是阻抗不匹配,通常表現在傳輸線上,而阻抗不匹配直接導致信號的反射,反射信號與原始信號疊加,就會產生過沖、回溝、臺階等信號完整性問題。本文將主要對因傳輸線阻抗不匹配導致信號產生過沖(上沖overshoot、下沖undershoot)進行深度分析,并提出部分可行的解決方案。
一、過沖的定義
過沖是振鈴的一部分,信號電平發生跳變后,第一個峰值電壓或谷值電壓超過設定的標準電壓,主要表現為一個尖端脈沖。
一般描述過沖的影響,主要考慮:過沖的最大幅值、過沖的持續時間、過沖的發生頻率這三個要素。
二、過沖和振鈴的危害
1、當過沖幅值較大或持續時間較長時,可能回導致電路元器件的失效;
2、振鈴產生的電壓波動,可能回多次跨越邏輯電平的電壓閾值,造成接收端的誤判
三、過沖產生原因
本質原因是:傳輸線阻抗不匹配造成信號的反射,多個反射信號和原信號疊加導致過沖和振鈴。
1、反射及反射系數
如下圖所示,設區域1阻抗為Z1,區域2阻抗為Z2,信號經過兩個阻抗不同的區域,在交界處A處,電壓和電流不能產生突變(若電壓不連續,將產生無窮大的電場;若電流不連續,將產生無窮大的磁場)。
若Z1≠ Z2,則關系式 V1=I1×Z1;V2=I2×Z2 無法同時滿足電壓和電流連續的條件V1= V2,I1= I2,故只能從電磁波反射的角度進行分析,如下所示。
信號由區域1往區域2傳輸的過程中,入射(incident)信號、反射信號(reflect)、傳輸信號(transfer)分別如下圖表示:
? ? ? ?
分界面兩側的電壓相等,有 Vinc+ Vref= Vtra ;
分界面兩側的電流相等,有Iinc- Iref= Itra ;
再有 Iinc× Z1= Vinc ;
Iref×Z1=Vref ;
Itra×Z1=Vtra ;
由以上5個等式可以推導得出:
? ? ? ??
2、建立傳輸模型
一般理想情況下,末端接收端的輸入阻抗無窮大,源端輸出端的輸出阻抗趨近于0。設源端串接的匹配電阻阻抗為Rs,傳輸線(即PCB走線)阻抗為Rz。
信號在線上由A往B傳送時,在B點信號的反射系數為1,即全反射;
由B往A傳送時,在A點信號的反射系數為 (Rs-Rz)/(Rs+Rz)。
3、展開時間軸,計算實時反射波形
下面舉個栗子
設傳輸線阻抗Rz=30Ω,源端串接的匹配電阻Rs=10Ω,則傳輸線左端A點反射系數為 (10 - 30)/(10 + 30) = -0.5,右端B點反射系數為 (+∞ - 30)/(+∞ + 30) = 1。
設初始狀態都為低電平0.0V,T0時刻源端跳變為3.3V,發送邏輯高電平信號,末端B點的電壓變化如下。
T1時刻,由于電阻分壓,傳輸線左端A點電壓為3.3*30/(10+40)=2.475V,抽象理解為T1時刻有一個+2.475V的信號在傳輸線上向B點傳播;
T2時刻,該信號在B點產生全反射(反射系數為1),T2時刻B點電壓為原始信號、入射信號、反射信號的疊加,即0+2.475+2.475 = 4.95V;
T3時刻,末端的一次反射信號到達A點,由于阻抗不匹配,反射電壓為2.475 * (-0.5)=-1.2375V,此時A點電壓也為原始信號、入射信號、反射信號的疊加;
T4時刻,源端的一次反射信號到達B點,同理計算末端B點電壓為4.95-1.2375-1.2375 = 2.475V;
T5時刻,末端的二次反射信號到達A點........
T6時刻,源端的二次反射信號達到B點,如上圖所示計算B點電壓為 3.7125V
.......................................................................
在理想情況(無損傳輸)下,信號會在傳輸線A、B兩端無休止的反射振蕩,反射電壓的幅值越來越趨近于0,在實際中信號在傳輸過程中有衰減,最終趨于穩態。
下面我計算了約50多個數據,反應末端B點的電壓變化,如下圖所示:(左圖為理論數據計算作圖,右圖為示波器測得實際波形)
由以上理論推導和數據可知,當源端信號發生跳變后,由于阻抗不匹配,末端會產生多個超過或低于期望電平的脈沖,這就是振鈴現象,第一個脈沖就是過沖。
在下寫了一小段C語言代碼用于生成數據,copy到excel繪制散點圖,代碼如下:
int main()
{
//系統初始條件,參數可改
float SourceRes=10.0;//源端電阻
float LineRes=30.0;//傳輸線電阻
float StartVoltage=0.0;//初始電平
float TailVoltage=3.3;//跳變后電平
float ReflectTail = 1.0;//末端反射系數, 假設接收端輸入阻抗無窮大,為全反射
float ReflectSource;//源端反射系數
float StartTransferVoltage;
float VoltageReflectSource;
float OutputData[DataNum]={0};
int i,j;
ReflectSource = (SourceRes-LineRes)/(SourceRes+LineRes);//計算源端反射系數
VoltageReflectSource = (TailVoltage-StartVoltage)*LineRes/(SourceRes+LineRes);//計算傳輸線起始端電壓
for(i=0;i
//添加初始數據 OutputData[i]=StartVoltage;
for(;i
//開始計算保存數據 {
OutputData[i] = OutputData[i-1] + (VoltageReflectSource + VoltageReflectSource*ReflectTail);
VoltageReflectSource *= (ReflectSource*ReflectTail);
}
for(j=0;j
//輸出數據用于Excel繪圖 printf("%f ",OutputData[j]);
system("pause");
return 0;
}
4、改變阻抗匹配條件對比分析波形
通過改變源端匹配電阻 Rs 的阻值,得到如下一部分模擬數據
??
??
可以發現,當源端電阻小于傳輸線電阻時,信號變化比較快(上升時間較短),但是會伴隨著過沖的產生,影響信號的完整性;
當源端電阻大于傳輸線電阻時,信號上升相對比較平緩,能有效解決過沖問題,但是增大了上升時間,限制了信號的傳輸速度;
只有當源端電阻和傳輸線電阻相等時(即阻抗匹配狀態),信號質量最接近理想狀態。
注:當源端電平發生由1到0的負跳變時,分析方法同上,這里不再重復闡述,用于生成模擬數據的代碼仍然可用
四、解決方案
1、減小驅動端的輸出電流
2、端接電阻進行阻抗匹配,本質上是消除信號路徑端點的阻抗突變
大多數情況下在源端串聯一個匹配電阻,使傳輸線阻抗與源端阻抗匹配,在PCB走線時,該電阻盡可能靠近源端器件的輸出管腳;
也有部分情況在末端并聯一個匹配電阻到電源或地,以消除信號在末端的一次反射,但這種方式增大了電路的功耗,一般不建議采用;
-
信號完整性
+關注
關注
68文章
1417瀏覽量
95633 -
振鈴
+關注
關注
0文章
27瀏覽量
17838 -
過沖
+關注
關注
0文章
8瀏覽量
7948
原文標題:深度分析信號完整性“振鈴”
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論