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