99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

485通訊中的故障解決

RS485基本都是由RS232轉換而來,此時就需要將全雙工切換到半雙工,目前大部分的工程師基本都是使用軟件換向的方法,作者就遇到過軟件換向不及時丟包的方法,并提供一種解決思路工參考。

問題描述

最近公司在做一個采集器,具體的原理就是通過串口將客戶數(shù)據(jù)采集上來,由于客戶的接口是RS232的,而我們的采集器只有RS485接口,無法直接對接,因此我們引入了一個中間的RS232/RS485轉換器,對接我們的采集器,這種用法相信也是論壇工程師絕大多數(shù)的選擇,不料在進行可靠性測試過程一個晚上,丟包率竟然高度10%,這種有線的連接,又是低速率串口,理論上的丟包率應該是0。

圖1:信號采集原理圖

原因分析

首先我們排除以下幾個原因:

1、走線長度:設備都擺放在一起,長度只有2米不到;2、干擾問題:這是在辦公室測試的,沒有大的干擾;3、數(shù)據(jù)速率:波特率只用了115200,常規(guī)波特率;4、軟件問題:這個RS485采集軟件已經(jīng)用了好幾年,一直很穩(wěn)定;5、客戶的PLC程序:客戶在現(xiàn)場也用了好幾年,也很穩(wěn)定。

問題的定位基本可以大致確定方向,就是出在這個RS485和RS232的數(shù)據(jù)轉換上,我們的采集器的接口設計原理圖如下:

 

圖2:采集器端口設計原理圖

通過示波器的抓波我們發(fā)現(xiàn),問題原因就在這個端口上。如下圖;TX是我們采集器發(fā)出的信號,RX是客戶PLC回復的信號,DIR是我們的采集器的方向控制信號。簡單說,就是在0uS的時候,我們發(fā)出去數(shù)據(jù),PLC在150uS左右就回復數(shù)據(jù),而我們的方向切換引腳在200~300uS不等。也就是說我們發(fā)送完數(shù)據(jù),來不及切換到接收狀態(tài),PLC就回復數(shù)據(jù)了,導致數(shù)據(jù)丟失。

通過和軟件工程師溝通,由于我們跑的是Linux系統(tǒng),方向引腳控制采取的是進程控制的方法,這個進程本來優(yōu)先級已經(jīng)很高,到時由于是多進程運行,還是會被其他系統(tǒng)進程搶占,所以導致無法做到更高的切換速度,或者是切換速度無法明確,只能是一個區(qū)間。

圖3:示波器實測圖

解決方案

既然是采集器來不及換向,解決的思路很簡單,有兩個方案;

1、將采集的換向速度提高,提高到100uS以內;2、將PLC的回復時間變慢,延長到500uS以后。

由于客戶擔心改程序出問題,所以不愿意改,只好我們修改采集器的換向速度,我們的軟件工程師也不愿意改,理由是產(chǎn)品運行多年,很穩(wěn)定,怕改出問題。按照自然法制,怕麻煩的事,用錢肯定能解決!

終于不負有心人,我們找到了兩個用錢解決的思路,就是更換RS485接口芯片,不讓軟件參與換向。可選的芯片有兩種:

1、美信公司的MAX13488:由芯片自動切換方向,無需軟件干預切換方向,驅動能力強,通信速率高,MAX13488宣稱最高可以到16Mbps,與普通的RS485芯片性能一樣。

 

圖4;MAX13487 內部框圖

2、周立功公司的RSM(3)485PHT,由芯片自動切換方向,無需軟件干預切換方向,驅動能力強,通信速率高,DC電源、隔離、RS485芯片功能三合一,節(jié)省板卡空間。

 

圖5;RSM(3)485PHT原理圖

最終,我們選擇了周立功的RSM(3)485PHT,經(jīng)過7天的長時間丟包測試,丟包率為0%,測試通過。

舉一反三

在接口轉換設計中,匹配性問題是我們經(jīng)常會遇到的,RS485由于定位是比較低速的串口,使用起來一般都不會有問題,我們的采集器也是99%的設備接入都沒問題,這個客戶的PLC也是我們遇到的唯一回復時間這么快的PLC,正常的PLC都會在500uS以后。這就給我們啟示:所有的雙工通信轉換為單工通信時,都應該考慮換向不及時導致的數(shù)據(jù)丟失。

02

匹配電阻使用不當導致RS485通信失敗

很多工程師都知道RS485的匹配電阻120R電阻的重要性,因此設計時候都有預留該電阻。但多個RS485設備并聯(lián)時,需要注意該電阻的影響。

問題描述

之前我們公司做過數(shù)據(jù)采集器,采集是通過RS485與其他客戶的設備連接的,產(chǎn)品設計之初是一對一連接,產(chǎn)品發(fā)布了2年基本沒有收到市場的問題反饋,最近一個月時,客戶有反饋我們的RS485讀取不到數(shù)據(jù),更換好幾個全新的數(shù)據(jù)依舊,要求我們盡快解決。

原因分析

由于我們的產(chǎn)品已經(jīng)發(fā)布2年都沒問題,所以我們的主要懷疑方向就是客戶的現(xiàn)場應用方案。我們先審視一下我們自己的RS485端口設計,如下圖1。這個方案在點對點應用場景多年都ok。

圖1:RS485端口設計原理圖

接著我們審視客戶的應用方案,如圖2所示,客戶采用的是手拉手的模式,這種模式也是常用的拓撲結構。

圖2:客戶的現(xiàn)場應用方案

由于暫時還沒有找到原因,我們去RS485的標準這里找一些參考,終于,我們在RS485的標準里面找到以下關鍵信息;如下表:

總結下來,主要是以下的幾條;

(1)驅動器輸出信號電平(負載最小時):±1.5V;(2)驅動器負載最小阻抗:54Ω;

(3)接收器門檻電壓:±200mV;(4)接收器輸入阻抗最小值:≥12KΩ。

根據(jù)RS485差分阻抗的計算公式,當有64個終端并接時(n=64時),當RS485總線上只有首位兩端有終端匹配電阻Rt時,總線上的差分阻抗為54.74Ω,剛剛符合RS485的標準。

圖3,多個RS485并聯(lián)的示意圖

但是,由于我們的終端匹配電阻Rt是使用一個固定120歐姆阻值的電阻焊接在主板上,客戶沒有辦法把中間的電阻刪除,導致整個RS485總線上并聯(lián)了多個120R的電阻,導致RS485總線上的差分阻抗遠遠小于54Ω,無法滿足標準要求的大于54歐姆的要求,總線上的阻抗太小,導致驅動電流太大,RS485芯片無法提供足夠的電流。解決方案

已經(jīng)定位到原因,主要還是最初的設計定位是點對點通信,忽略了客戶的對點通信的需求,將RS485總線上的匹配電阻Rt全部都焊接了,客戶一旦使用多個設備并聯(lián)時,導致了總線的差分阻抗太小。解決的辦法就是將除了收尾兩端的Rt全部刪除。如下圖4

圖4:刪除中間設備的Rt,只保留收尾兩端的Rt

整改之后,經(jīng)過我們測試部的測試和客戶的使用1個多月,再也沒有反饋問題,問題基本算解決。

總結

通過這次的事故,我們還總結了RS485以下的容易犯的錯誤:

(1)上下拉電阻的主要作用:RS485增加上下拉電阻的主要目的是為了解決總線在空閑狀態(tài)、或者是開路狀態(tài)(485收發(fā)器與總線斷開)下,使得總線上的電壓大于RS485標準要求的200mV(實際應用考慮余量設置為300mV);

(2)上下拉電阻的常規(guī)值:RS485的上下拉電阻阻值選擇主要滿足空閑狀態(tài)下Vab大于300mV,該電阻越小,功耗越大,功耗大到一定程度時,甚至會觸發(fā)RS485 的電源輸出保護,導致通信失敗,因此滿足空閑下300mV情況該電阻越大越好,一般的應用,該電阻選擇1K/R0805即可;

(3)多節(jié)點時的上下拉電阻:當RS485的總線上的節(jié)點增加時,由于RS485芯片內部也有內部上下拉電阻(該阻值一般都是上百K),該阻值與輸入阻抗Rin并聯(lián)后,再與終端匹配電阻并聯(lián),最終的等效差分阻抗很容易會小于RS485標準要求的54Ω。因此,2個節(jié)點以上的應用,則需要考慮外部上下拉電阻帶來的阻抗減小,

(4)終端匹配電阻:從上面公式可以看出,只增加2個匹配電阻,差分阻抗就降低到60Ω,如果再增加一個就降低到40Ω,因此,使用多個節(jié)點時,最多只能在首尾兩端增加120Ω的匹配電阻。

RS485純硬件反相法自動換向過早導致數(shù)據(jù)丟包

之前我們的產(chǎn)品的RS485設計借鑒了圖1中的轉換器的原理,該方案的原理主要是使用反相器法,具體的實現(xiàn)原理就是:反相法使用了一個反相器,依賴于發(fā)送信號TX的電平?jīng)Q定RS485芯片屬于發(fā)送還是接收狀態(tài),例如,TX為高電平時,反相后為低電平,此時收發(fā)器處于接收狀態(tài),AB總線上的邏輯由上下拉決定,此時為邏輯1;當TX為低電平時,反相后為高電平,此時收發(fā)器處于發(fā)送狀態(tài),AB總線上的邏輯為0。簡單說,就是反相法可以發(fā)送低電平,高電平其實是有AB線上的上下拉電阻決定的。

經(jīng)過我們的長時間的驗證,該種方案在100kbps波特率以內都不會丟包,但是波特率大約100kbps以上,例如115200bps時,丟包可以達到0.1%,這是我們不允許的。

圖1:Tps563200現(xiàn)貨價格

原因分析

反相器法的原理上是沒有問題的,但是我們忽略了一個串口的底層實現(xiàn)方式,串口通信是異步通信,雙方?jīng)]有時鐘同步,依賴于雙方的聲稱。

UART通信沒有時鐘同步,不是說不需要時鐘,而是兩個系統(tǒng)的時鐘來自兩個設備,各跑各的,沒有同步。這就要求兩個系統(tǒng)的時鐘誤差不能太大。UART接收的流程如下:

(1)接收端選定好與發(fā)送端一致的起始位數(shù)、數(shù)據(jù)位數(shù)、校驗位數(shù)、停止位數(shù)、波特率,例如下圖起始位1、數(shù)據(jù)位8、校驗無、停止位1、波特率9600bps。

(2)RX線上無傳輸時,保持為高電平,RX端有采樣器,采樣器以波特率的16倍采樣周期對一位bit數(shù)據(jù)進行采樣。確認起始位后,再經(jīng)過16個采樣周期,采樣第一位數(shù)據(jù),再經(jīng)過16個采樣周期,采樣第二位,以此類推。

圖2:UART 采樣示意圖

圖3:UART 過采樣示意圖

圖4:UART 誤差允許范圍

這里就存在一個問題,發(fā)送和接收的底層啟動都是由不同的廠家不同的工程師做的,大部分的工程師都是取數(shù)據(jù)bit的50%~80%位寬的數(shù)據(jù),如果雙方的波特率誤差過大,就有可能數(shù)據(jù)還沒有發(fā)送接收,但是RS485芯片已經(jīng)切換到接收狀態(tài)了,導致發(fā)送的數(shù)據(jù)錯誤。

使用100k速率仿真現(xiàn)有的方案,TXD信號和方向引腳同時切換,幾乎沒有余量。極端情況下就有可能數(shù)據(jù)沒有傳輸結束,方向引腳就切換了,導致數(shù)據(jù)傳不出去。理想的方案應該是方向引腳延后30%~50%的位寬再切換方向。

圖5:現(xiàn)有反向器的RS485方向切換方案仿真圖

解決方案

解決的方案需要在原有的基礎上,增加D1、R3、R4、C1。如下圖6。

由于該換向的原理是發(fā)送數(shù)據(jù)0的時候,DE/RE引腳為高電平,U2為發(fā)送狀態(tài),數(shù)據(jù)有U2發(fā)送出去。而發(fā)送數(shù)據(jù)1的時候,DE/RE引腳為低電平,U2實際為接收狀態(tài),AB總線上的 邏輯1其實是有R1、R2的上下拉電阻使得Va-Vb>200mV的。因此,我們的設計主要保證發(fā)送數(shù)據(jù)0的時候,方向引腳比數(shù)據(jù)延遲30%~50%左右,保證數(shù)據(jù)順利發(fā)送出去。

實現(xiàn)的原理如下:TXD發(fā)送數(shù)據(jù)0的時候,經(jīng)過反相器U1,DE/RE引腳為高電平,使得U2為發(fā)送狀態(tài),下一bit數(shù)據(jù)即將為1,但是經(jīng)過R4、C1的RC充電效應,U2的pin3引腳并不會立即為高電平,而是經(jīng)過延遲后才為高電平,延遲的時間即是我們設計的方向延遲時間。舉例子,假設U1的高電平閾值為1.5V,U1的供電電壓為5V,R4=36K,C1=300pF,根據(jù)公式:t = RC*Ln[(V1-V0)/(V1-Vt)],可以估算出切換方向延遲的時間約3.1uS。

TXD發(fā)送數(shù)據(jù)1的時候,經(jīng)過反相器U1,DE/RE引腳為低電平,使得U2為接收狀態(tài),接收狀態(tài)下,AB總線上的值由上拉R1,下拉R2決定,不再需要U2發(fā)送數(shù)據(jù),因此方向控制信號等同于無效。

圖6:方向信號延后措施

使用100K的頻率進行仿真,結果顯示方向引腳可以延后1.85uS,可以滿足要求。

圖7:100K頻率仿真圖

總結

本文主要通過增加RC延遲和反相器波形整形,從而達到方向切換比數(shù)據(jù)bit延后的目的,讀者在實際使用過程,還需要根據(jù)自己設計的最高波特率來選擇RC的參數(shù),如RC時間太長,在頻率很高的情況下,反相器可能沒有輸出,一致時0,一般設置為位寬的30%左右即可,例如115200bps的波特率,位寬是8.6uS,延遲參數(shù)可以設置為8.6*0.3=2.5u左右。二極管D1和R3主要是為了應付TXD信號由高變低的時候,能夠快速的釋放反相器輸入引腳的電壓,讓反相器的輸出為高電平,及時將數(shù)據(jù)0發(fā)送出去。

全部回復(4)
正序查看
倒序查看
2022-01-22 14:37

485通信在PLC應用中也時常用到,像各種傳感器、集線器都用485,但是吧,在單片機開發(fā)中還真沒有用過。

0
回復
2022-01-22 14:38

這個帖子寫的非常好,值得學習。

0
回復
2022-01-24 11:34

一般來說,對于設備數(shù)量較少時不需要匹配電阻的,特別是用到多個485設備時,如果自己的產(chǎn)品是從機時,最好不要焊接匹配電阻

0
回復
lsx3021
LV.1
5
2022-02-09 11:36

很好的經(jīng)驗和學習資料,收藏了!

0
回復
發(fā)
主站蜘蛛池模板: 白丝美女被操黄色视频国产免费 | 嘿咻嘿咻免费区在线观看 | 国产在线日韩欧美 | 国产AV无码专区亚洲精品 | 1024最新合集 | 国产一级精品片 | 欧美诱惑一区 | 国产在线欧美日韩精品一区 | 青青操在线播放 | 日韩欧美精品一区二区三区经典 | 曰本黄色片 | 麻豆影音 | 自拍偷在线精品自拍偷无码专区 | 伊人久久视频在线 | 日韩视频中文字幕视频一区 | 国产精品视频1区2区3区 | 日韩欧美福利 | 51精品国产人成在线观看 | 国产高清在线视频观看 | 国产对白女主播勾搭野战在线 | 一级在线播放 | 国产一级片内射视频 | 成年人在线免费观看视频网站 | 中文字幕日韩精品视频一区视频二区 | 国产熟妇乱子伦hd | 在线观看免费视频国产 | 免费无码成人AV片在线在线播放 | 久久亚洲美女精品国产精品 | 中文字幕欧美日韩一区 | 免费观看一级特黄欧美大片 | 亚洲人成自拍网站在线观看 | 精品久久久久久久人人人人传媒 | 男人添女人下身视频高清 | 无码人妻精品一区二区三区久久 | 被黑人伦流澡到高潮hn小说 | 超碰97人人爱| 久久久精品一区二区毛片免费看 | 91视频porny| 免费观看黄色av | 国产秋霞理论久久久 | 无码专区在线观看韩国 |