中心議題:
- 信號(hào)在傳輸過(guò)程中的衰減
- 通信線路中的信號(hào)反射
- 分布電容對(duì)RS-485總線傳輸性能的影響
解決方案:
- 制定簡(jiǎn)單可靠的RS-485通訊協(xié)議
眾所周知,數(shù)據(jù)傳輸是工業(yè)控制領(lǐng)域一個(gè)非常重要的環(huán)節(jié),數(shù)據(jù)傳輸?shù)姆€(wěn)定程度直接影響到產(chǎn)品的可靠性。因此如何提高數(shù)據(jù)傳輸?shù)目煽啃院头€(wěn)定性便成為工程師不得不面對(duì)的課題。下面以led生產(chǎn)看板顯示屏項(xiàng)目實(shí)施過(guò)程中出現(xiàn)的問(wèn)題為例,闡述一下在使用RS-485作為遠(yuǎn)距離數(shù)據(jù)通訊手段時(shí)要注意的事項(xiàng)。
本項(xiàng)目中的LED看板顯示屏是安裝在生產(chǎn)車(chē)間用來(lái)顯示實(shí)際產(chǎn)量和目標(biāo)產(chǎn)量的看板,6塊規(guī)格相同的顯示屏分布在6個(gè)車(chē)間。相鄰車(chē)間之間電纜線長(zhǎng)度大概在150~200 m之間。距離之長(zhǎng)加上車(chē)間里運(yùn)行的電機(jī)的干擾,使得LED看板顯示屏通訊不正常,從而頻繁出現(xiàn)亂碼的現(xiàn)象。
經(jīng)過(guò)仔細(xì)的分析,多次的試驗(yàn),先后從多方面著手:硬件電路的改進(jìn)、上位機(jī)和下位機(jī)通訊協(xié)議的改進(jìn),最終順利地解決了這個(gè)問(wèn)題。下面將最終解決問(wèn)題的關(guān)鍵點(diǎn)進(jìn)行詳細(xì)的分析和說(shuō)明。
1、信號(hào)在傳輸過(guò)程中的衰減
不難理解,信號(hào)無(wú)論借助何種介質(zhì)傳輸,都會(huì)在傳輸過(guò)程中產(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ù)見(jiàn)表1。
因此,在傳輸數(shù)據(jù)量不是很大,傳輸速率要求不是很高的情況下,通常我們采用9 600 bps的波特率。
[page]
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)雜亂無(wú)章,一旦此類反射信號(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)在傳輸線末端突然遇到電纜阻抗很小甚至沒(méi)有,信號(hào)在這個(gè)地方就會(huì)引起反射。消除這種反射最常用的方法,是在電纜的末端跨接一個(gè)與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續(xù)。由于信號(hào)在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端同樣要跨接一個(gè)相同大小的終端電阻,如圖2所示。
通過(guò)這種方法可以一定程度減弱信號(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)是由無(wú)數(shù)的“1”和“0”位所組成的,所以當(dāng)遇到0x01等特殊字節(jié)時(shí),電平“0”使得分布電容得到充足的時(shí)間充電,而當(dāng)電平“1”突然來(lái)到時(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)力線要保持一定的距離)、通訊距離的不可決定性、通訊線路周?chē)蓴_程度、通訊線是否采用雙絞屏蔽線等等,這些因素都給系統(tǒng)的正常通訊帶來(lái)極大的影響。于是,制定一套完善的通訊協(xié)議就顯得尤為重要了。
具體方法是將數(shù)據(jù)分包傳輸,通過(guò)將每包數(shù)據(jù)加上幀頭和幀尾的方式將數(shù)據(jù)打包,其中幀尾留一個(gè)字節(jié)作為校驗(yàn)字節(jié)。下位機(jī)通過(guò)將自己計(jì)算的校驗(yàn)字節(jié)與上位機(jī)傳輸過(guò)來(lái)的校驗(yàn)字節(jié)作比較,從而給上位機(jī)發(fā)出指令,到底是重新發(fā)送剛剛那包數(shù)據(jù)還是接著下發(fā)下一包數(shù)據(jù),就這樣一包發(fā)完再發(fā)下一包,直至發(fā)完為止。通過(guò)這樣一種校驗(yàn)重發(fā)機(jī)制,我們就可以擯棄掉出錯(cuò)的概率,使得通訊系統(tǒng)正常運(yùn)行。
5、結(jié)語(yǔ)
在整個(gè)項(xiàng)目整改過(guò)程中,先后采用了以下手段:由于通訊線和動(dòng)力電源線之間距離很近,且通訊線無(wú)屏蔽層,所以我們對(duì)所有通訊線纜進(jìn)行更換;上位機(jī)和下位機(jī)均將通訊波特率設(shè)成可調(diào),這樣可以根據(jù)調(diào)試過(guò)程中具體情況選擇合適的值;將通訊協(xié)議作了一些優(yōu)化;通訊線纜的兩端加上120 Ω的終端電阻。