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