485通訊注意事項(xiàng)
文章出處:http://www.fang1.net 作者:興邦開發(fā)部 人氣: 發(fā)表時間:2016年06月28日
為了讓主機(jī)可以比較"從容"地切換到接收狀態(tài),從機(jī)接收到報(bào)文后不應(yīng)該馬上回答,而要至少等待雙方約定的一個時間(比如20ms),這其實(shí)也應(yīng)當(dāng)是RS-485通信的一個參數(shù)。
使用全雙工RS-422就沒有這個問題。有一些RS232到RS485的接口轉(zhuǎn)換器需要用RTS信號來控制發(fā)送和接收狀態(tài)切換,由于PC機(jī)很難像單片機(jī)那樣精確地判斷最后一位從移位寄存器發(fā)出去了(單片機(jī)對有的UART可以用中斷,或者笨笨地定時+查詢標(biāo)志等方法),所以經(jīng)常發(fā)生下位機(jī)收不好最后一個字節(jié)或者上位機(jī)收不好第一各字節(jié)的情況。有人采取上位機(jī)正常報(bào)文后面加無用字符(比如0xFF)的辦法來湊合。
雖然現(xiàn)在有RS232到RS485的收發(fā)自動切換的轉(zhuǎn)接器,但它內(nèi)部其實(shí)是用單穩(wěn)態(tài)觸發(fā)器來實(shí)現(xiàn)的,為了適應(yīng)不同波特率,切換仍然有一個延遲,波特率較高的時候下位機(jī)回答太快仍然有可能第一個字節(jié)出錯。 所說的20ms只是一個舉例,根據(jù)波特率等情況當(dāng)然可以適當(dāng)改變。但是,正規(guī)的RS485規(guī)約應(yīng)該要規(guī)定這個幀間空閑間隔的(比如IEC870-5規(guī)定是33bit)。 實(shí)際通信的實(shí)時性主要由輪詢的間隔以及超時的處理來決定,附加幾毫秒的延時并不很重要。實(shí)際使用RS485通信最常遇到倒就是收發(fā)切換的問題,要想解決好,一是上位機(jī)從發(fā)到收的切換要盡量快(盡可能使用UART硬件自動控制RTS、發(fā)送完成中斷或者精確定時),二是下位機(jī)要略位"寬容"一點(diǎn)。
一、如何布線
走線走得好,可以很大程度減少干擾的影響,提高通訊的可靠性,但我們在實(shí)踐中往往對此認(rèn)識不 足。如為了走線方便,把網(wǎng)線放在電源線的線槽里,或在天花板走線時經(jīng)過日光燈等干擾源,這樣走線是不對的。實(shí)際上干擾源對相鄰網(wǎng)線的干擾,主要是通過磁場 和電場的作用,按照電磁理論,干擾源對網(wǎng)線的感應(yīng)與距離的平方成反比,因此,網(wǎng)線離干擾源那怕遠(yuǎn)離10厘米,網(wǎng)線受到的干擾都會明顯減弱。
綜上所述,走線應(yīng)遵循兩個原則:
①遠(yuǎn)離電源線,日光燈等干擾源;
②當(dāng)網(wǎng)線不能與電源線等干擾源避開時網(wǎng)線應(yīng)與電源線垂直,不能平行,并采用質(zhì)量高的雙絞線走線。
二、PC 機(jī)與多臺收款機(jī)聯(lián)接方式
485卡和ECR都有兩個485接口。多機(jī)聯(lián)網(wǎng)應(yīng)遵循原則,即從PC的485卡的其中一個485接口連到第一臺ECR的其中一個485接口,然后從第一 臺ECR的另一個485接口連到第二臺ECR的其中一個485接口,然后再從第二臺ECR的另一個485接口連到第三臺ECR,如此類推。最后在PC的 485卡和最后一臺ECR的另一個485接口接上 120Ω 匹配電阻(此匹配電阻在485卡內(nèi)配有兩個)。
三、聯(lián)機(jī)的數(shù)量
由于卡上,下拉電阻出于抗干擾的考慮,減少了電阻阻抗,使75176的負(fù)載增加,導(dǎo)致聯(lián)機(jī)臺數(shù)減少,因此建議超過10臺以上收款機(jī)時,應(yīng)該考慮使用兩個網(wǎng)卡,兩個串口,聯(lián)成兩個網(wǎng)絡(luò),減輕網(wǎng)卡的負(fù)載。
四、通訊速率
通訊速率快慢在我們通訊系統(tǒng)中是以波特率的高低來衡量。龍飛收款機(jī)的通訊波特率可以在9600、19200和38400之間選擇,我們選擇的原則是:距 離短可以選擇較高的波特率,距離長則選擇較低的波特率。當(dāng)我們選擇較低的波特率時,如果發(fā)現(xiàn)比正常速度(同樣波特率相比較)慢得多,很可能線路已受到干 擾,數(shù)據(jù)校驗(yàn)經(jīng)常出錯,不斷重傳,造成通訊速度孌慢,此時應(yīng)檢查網(wǎng)絡(luò)是否采取本文所提到的抗干擾措施,同時還可以采取提高通訊波特率的方法,以快速通過線 路的方式,減少干擾的影響。
五、線型的選擇
RS485是采用平衡式(差分式)線路,對同時出現(xiàn)在兩條信號線DATA+和 DATA-的干擾有較強(qiáng)的抑制能力,當(dāng)兩條線絞在一起時,對通訊各種分布參數(shù)耦合過來的干擾信號則可平均地分配到這兩條線上,因此對RS485的平衡式線 路而言,用雙絞線可獲得抗干擾能力。因此,建議采用無屏蔽的雙絞線,如果有條件可采用屏蔽雙絞線,但屏蔽線兩端要接好地,才有屏蔽效果。如果距離較短,可 采用一般的電話線。如果線中有多股雙絞線,應(yīng)采用其中一對雙絞線;如果距離較長時,網(wǎng)線的電阻不容忽視,網(wǎng)線存在的電阻會使信號衰減,降低網(wǎng)絡(luò)通訊的可靠 性。因此距離較長,應(yīng)選用銅芯較粗的絞線,理論上講一根線兩端電阻不應(yīng)超過80Ω。
六、注意接地
目前,有相當(dāng)部分PC機(jī)在使用 時,電源并沒接地。主要是電源沒有接地,或電源插座沒有地線,從而造成PC機(jī)地線與地之間往往有幾十伏以上的漏電電壓存在,這個電壓很容易就引入網(wǎng)卡或收 款機(jī)中,從而導(dǎo)致網(wǎng)卡或收款機(jī)通訊損壞。因此,我們要求PC機(jī)需要良好的接地。保證網(wǎng)卡或收款機(jī)的正常工作。