中心議題:
- 影響信號(hào)傳輸?shù)囊蛩兀盒盘?hào)衰減和信號(hào)反射
- 分布電容對(duì)RS-485總線傳輸性能的影響
解決方案:
- 制定簡(jiǎn)單可靠的RS-485通訊協(xié)議
正在使用中的LED顯示屏突然間因信號(hào)問題出現(xiàn)亂碼,如果是在某次重大開幕式上,那損失是無法彌補(bǔ)的。因此如何提高信號(hào)傳輸?shù)目煽啃院头€(wěn)定性便成為工程師不得不面對(duì)的課題。
信號(hào)在傳輸過程中,隨著距離的增大而減弱。所以,傳輸介質(zhì)的選擇則顯得尤為重要。下面以RS-485作為遠(yuǎn)距離數(shù)據(jù)傳輸線時(shí)要注意的事項(xiàng)。
1、信號(hào)的衰減
不難理解,信號(hào)無論借助何種介質(zhì)傳輸,都會(huì)在傳輸過程中產(chǎn)生衰減。我們可以把RS-485傳輸電纜看成是由若干個(gè)電阻、電感和電容聯(lián)合組成的等效電路,如圖1所示。
導(dǎo)線的電阻對(duì)信號(hào)的影響很小,可以忽略不計(jì)。電纜的分布電容C主要是由雙絞線的兩條平行導(dǎo)線產(chǎn)生。信號(hào)的損失主要是由于電纜的分布電容和分布電感組成的LC低通濾波器。通訊波特率越高,信號(hào)衰減也會(huì)越大。常規(guī)電纜的衰減系數(shù)見表1.
因此,在傳輸數(shù)據(jù)量不是很大,傳輸速率要求不是很高的情況下,通常我們采用9 600 bps的波特率。
2、通信線路中的信號(hào)反射
除了信號(hào)衰減之外,影響信號(hào)傳輸?shù)牧硪粋€(gè)因素是信號(hào)反射。阻抗不匹配和阻抗不連續(xù)是導(dǎo)致RS-485總線形成信號(hào)反射的兩個(gè)主要原因。
①阻抗不匹配,阻抗不匹配主要是485芯片與通訊線路之間的阻抗不匹配。之所以引起反射是因?yàn)樵谕ㄓ嵕€路空閑時(shí),整個(gè)通訊線路信號(hào)雜亂無章,一旦此類反射信號(hào)觸發(fā)了485芯片輸入端的比較器,就會(huì)產(chǎn)生錯(cuò)誤的信號(hào)。我們通常的解決方法是將RS-485總線的A、B線加上一定阻值的偏置電阻,分別拉高和拉低,這樣就不會(huì)出現(xiàn)不可預(yù)知的雜亂信號(hào)了。
②阻抗不連續(xù),顧名思義,與光從一種媒質(zhì)進(jìn)入另一種媒質(zhì)時(shí)所引起的反射是相似的。信號(hào)在傳輸線末端突然遇到電纜阻抗很小甚至沒有,信號(hào)在這個(gè)地方就會(huì)引起反射。消除這種反射最常用的方法,是在電纜的末端跨接一個(gè)與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續(xù)。由于信號(hào)在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端同樣要跨接一個(gè)相同大小的終端電阻,如圖2所示。
通過這種方法可以一定程度減弱信號(hào)反射的影響。但是,在實(shí)際應(yīng)用中,由于傳輸電纜的特性阻抗與通訊波特率等應(yīng)用環(huán)境有關(guān),特性阻抗不可能與終端電阻完全相等,因此我們不能完全避免信號(hào)反射的發(fā)生。
3、分布電容對(duì)RS-485總線傳輸性能的影響
RS-485傳輸電纜通常多為雙絞線,雙絞線的兩條平行導(dǎo)線之間即會(huì)產(chǎn)生電容。同時(shí),電纜和大地之間也同樣存在類似很小的電容。由于RS-485總線上傳輸?shù)男盘?hào)是由無數(shù)的“1”和“0”位所組成的,所以當(dāng)遇到0x01等特殊字節(jié)時(shí),電平“0”使得分布電容得到充足的時(shí)間充電,而當(dāng)電平“1”突然來到時(shí),電容集聚的電荷不能在短時(shí)間之內(nèi)放掉,因此導(dǎo)致信號(hào)位的變形,從而影響了整個(gè)數(shù)據(jù)傳輸?shù)馁|(zhì)量。
所以,一方面我們要盡量選用分布電容較小即質(zhì)量較好的線纜作為通信線,另一方面盡量降低通訊的波特率,給電容充足的時(shí)間去放電。
4、制定簡(jiǎn)單可靠的RS-485通訊協(xié)議
當(dāng)通訊距離較短,應(yīng)用環(huán)境干擾小的情況下,我們有時(shí)只需要簡(jiǎn)單的單向通訊就能實(shí)現(xiàn)項(xiàng)目的所有功能,但是大部分應(yīng)用環(huán)境并非如此理想。項(xiàng)目前期綜合布線的是否專業(yè)(比如信號(hào)線與動(dòng)力線要保持一定的距離)、通訊距離的不可決定性、通訊線路周圍干擾程度、通訊線是否采用雙絞屏蔽線等等,這些因素都給系統(tǒng)的正常通訊帶來極大的影響。于是,制定一套完善的通訊協(xié)議就顯得尤為重要了。
具體方法是將數(shù)據(jù)分包傳輸,通過將每包數(shù)據(jù)加上幀頭和幀尾的方式將數(shù)據(jù)打包,其中幀尾留一個(gè)字節(jié)作為校驗(yàn)字節(jié)。下位機(jī)通過將自己計(jì)算的校驗(yàn)字節(jié)與上位機(jī)傳輸過來的校驗(yàn)字節(jié)作比較,從而給上位機(jī)發(fā)出指令,到底是重新發(fā)送剛剛那包數(shù)據(jù)還是接著下發(fā)下一包數(shù)據(jù),就這樣一包發(fā)完再發(fā)下一包,直至發(fā)完為止。通過這樣一種校驗(yàn)重發(fā)機(jī)制,我們就可以擯棄掉出錯(cuò)的概率,使得通訊系統(tǒng)正常運(yùn)行。
5、結(jié)語
在整個(gè)項(xiàng)目整改過程中,我們先后采用了以下手段:由于通訊線和動(dòng)力電源線之間距離很近,且通訊線無屏蔽層,所以我們對(duì)所有通訊線纜進(jìn)行更換;上位機(jī)和下位機(jī)均將通訊波特率設(shè)成可調(diào),這樣可以根據(jù)調(diào)試過程中具體情況選擇合適的值;將通訊協(xié)議作了一些優(yōu)化;通訊線纜的兩端加上120 Ω的終端電阻。