本發(fā)明屬于產品設計與檢測用方法,涉及一種實現(xiàn)rs485無極性連接的方法。
背景技術:
rs–485作為國際通用串口通信標準,以其結構簡單、價格低廉、通信距離和數(shù)據傳輸速率適當?shù)忍攸c,在很多的測控系統(tǒng)中得到了廣泛應用。rs-485利用兩根數(shù)據線采用平衡式發(fā)送、差分式接收的方式實現(xiàn)通信,兩根數(shù)據線在連接時是有極性區(qū)別的,如果接反,就會造成系統(tǒng)工作不正常。目前rs485的無極性連接解決方案主要有三種,一種是硬件判斷人工修正法,這種方法采用的是在模塊的發(fā)送端與地、接收端與地之間加led指示燈,通過led的指示辨別極性并通過人工撥碼開關修改連線,這種解決方案存在以下缺點:不但需要技術人員參與調試糾正,施工不便,而且發(fā)送模塊在調整時不能發(fā)送數(shù)據;第二種是軟件判斷自動修正法,這種方式是由主機發(fā)送一個測試信號,如果在設定時間內沒有收到從機的應答,就說明線路連接錯誤,所謂自動修正就是主機改變連接線極性重發(fā)測試信號,而改變連接線極性是通過繼電器、固態(tài)模擬開關或電子開關等方法改變一個雙刀雙擲開關的方向,這種解決方案存在以下缺點:需要增加繼電器或開關等硬件電路,也增加了軟件控制的復雜度;第三種是采用曼徹斯特編碼法,即將信號進行差分曼徹斯特編碼后可實現(xiàn)無極性連接,根據差分曼徹斯特編碼原則可知,接線錯誤變成反相的波形信號后,仍可以解調出原始數(shù)據信號,這種解決方案存在以下缺點:需要在uart和rs485芯片之間加入編碼電路和解碼電路,同時需要同步的時鐘信號。由以上敘述可知,三種方法雖都能實現(xiàn)rs485的無極性連接,但都存在一些不足。
技術實現(xiàn)要素:
要解決的技術問題
為了避免現(xiàn)有技術的不足之處,本發(fā)明提出一種rs485串行通信的無極性連接方法,該方法采取在接收端增加一個相應的rs485芯片,在從機增加相應的極性判斷及切換軟件,從而實現(xiàn)rs485接線的無極性連接,同時如果在數(shù)據正常通信中,存在主機重啟、通信線重接等通信異常情況時,軟件也可以自動重新判斷極性,適應新的狀態(tài),不需要人工干預,提高了系統(tǒng)的工作效率和可靠性。
技術方案
一種實現(xiàn)rs485無極性連接的方法,其特征在于發(fā)送端的rs-485芯片d1不變,在接收端使用兩個相同的rs-485芯片d2和d3同時接收,兩芯片的差分接收端極性相反地連接至信號傳輸線上,即將d2的a端和d3的b端相連,d2的b端和d3的a端相連;發(fā)送端的d1和控制系統(tǒng)組成了主機,接收端的d2和d3和控制系統(tǒng)組成了從機;步驟如下:
步驟1:主機主動發(fā)送同步字,當接收端的d2和d3的使能端/re=0,de=0時,接收使能有效,此時從機自數(shù)據線上接收串口數(shù)據,這里定義接收端兩個485串口芯片d2和d3的串口分別為com1和com2;
步驟2:從機首先預設com1口工作,com2口閑置;讀取com1口數(shù)據,對收到的同步字進行判斷,在固定時長內對同步字計數(shù),如果計數(shù)值滿足設定要求,判斷硬件極性連接正常,即com1口對應的485芯片處于正常工作狀態(tài),這時進行數(shù)據收取、處理即可;如果在一個檢測周期內不能檢測到足夠多的同步字信息,則認為串口數(shù)據極性有誤,主動切換極性到com2口,同樣在固定時長內對同步字計數(shù),判別com2口對應的485芯片是否處于正常工作狀態(tài);
步驟4:在com1和com2之間交替進行測試和判斷,直到滿足要求則轉入正常工作狀態(tài)。
步驟2中的固定時長設置為3s。
步驟2中的計數(shù)值的設定要求為55。
所述的控制系統(tǒng)為計算機或單片機。
有益效果
本發(fā)明提出的一種rs485串行通信的無極性連接方法,使用這種方式只需增加少許的軟硬件就實現(xiàn)了無極性的連接,系統(tǒng)具有自動極性判斷和串口切換的功能,不需要采用有標志的雙絞線進行連接,不需要增加繼電器等成本較高的硬件電路,也不需要技術人員參與調試糾正,極大地提高了系統(tǒng)工作的穩(wěn)定性、可靠性和效率。
附圖說明
圖1rs–485常規(guī)連接方式
圖2rs–485無極性連接方式
圖3串行通信系統(tǒng)組成圖
圖4軟件極性判斷和切換流程圖
具體實施方式
根據需要解決的問題,實現(xiàn)本方法需要硬件和軟件來配合完成。硬件是在從機增加一個相應的rs485芯片,完成和主機串口的連接;軟件完成rs485接口連接的極性判別及自動修正。
rs–485標準的數(shù)據信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為a,另一線定義為b,通常情況下,發(fā)送端和接收端通過平衡雙絞線將a–a,b–b對應相連,如圖1所示。當在接收端a–b之間有大于+200mv的電平(即va-vb≥200mv)時,輸出為正邏輯電平“0”;小于-200mv時(即va-vb≤-200mv),輸出為負邏輯電平“1”,當200mv≥va-vb≥-200mv時,輸出為不定狀態(tài)。
解決無極性連接,發(fā)送端不變,在接收端使用兩個相同的rs-485芯片同時接收,兩芯片的差分接收端極性相反地連接至信號傳輸線上,即將一個芯片的a端和另一個芯片的b端相連,b端和另一個的a端相連,如圖2所示。
軟件方面本發(fā)明分主從機網絡結構,主機以固定的頻率主動發(fā)送同步字,從機自數(shù)據線上接收數(shù)據,如果在一個檢測周期內不能檢測到足夠多的同步字信息,則認為串口數(shù)據極性有誤,主動切換極性,繼續(xù)偵聽。
如果在數(shù)據正常通信中,存在主機重啟、通信線重接等通信異常情況時,從機均可以通過看門狗使軟件復位,重新判斷極性,自動適應新的狀態(tài)。
作為一種常用的通訊接口芯片,許多半導體公司都在生產,而且引腳完全兼容,同時兼容工業(yè)標準規(guī)范。所以,這里不局限于哪個廠家的產品,統(tǒng)一叫做rs485芯片,做通用性描述。另外,因為rs485為雙向傳輸,發(fā)送端同時也是接收端,而我們這種串行通信的無極性連接方法只是在從機采取措施,所以這里只做單一性描述。雙向傳輸同理。
現(xiàn)結合實施例、附圖對本發(fā)明作進一步描述:
圖3為串行通信系統(tǒng)組成圖。參照圖3,接收端將兩片485的差分輸入交叉連接在一起,即將d2的a端和d3的b端相連,d2的b端和d3的a端相連,rs485的輸入端di和控制端/re,控制端de,以及系統(tǒng)輸出ro與控制系統(tǒng)相連。控制系統(tǒng)可以是單片機、計算機等可以對控制端/re,de進行收發(fā)控制,可以發(fā)送數(shù)據和接收數(shù)據的系統(tǒng)。電阻r1、r2是為了防止遠距離傳輸時傳輸線中的反射和干擾,一般加在信號線ab間的匹配電阻。
軟件方面,主機(包括控制系統(tǒng)和發(fā)送端的rs485)主動發(fā)送同步字,當接收器(接收端的2片rs485)使能端/re=0,de=0時,接收使能有效,此時從機(包括控制系統(tǒng)和接收端的rs485)自數(shù)據線上接收串口數(shù)據,這里定義接收端兩個485串口芯片(圖3)d2和d3的串口分別為com1和com2。從機首先預設com1口工作,com2口閑置。讀取com1口數(shù)據,對收到的同步字進行判斷,在固定時長內(比如3s)對同步字計數(shù),如果計數(shù)值滿足設定要求(比如55)可以判斷硬件極性連接正常,即com1口對應的485芯片處于正常工作狀態(tài),這時進行數(shù)據收取、處理即可;如果在一個檢測周期內不能檢測到足夠多的同步字信息,則認為串口數(shù)據極性有誤,主動切換極性到com2口,同樣在固定時長內(比如3s)對同步字計數(shù),判別com2口對應的485芯片是否處于正常工作狀態(tài)。在com1和com2之間交替進行測試和判斷,直到滿足要求則轉入正常工作狀態(tài)。
軟件極性判斷流程如圖4所示。