RS485總線
RS-485采用半雙工工作方式,支持多點數據通信。RS-485總線網絡拓撲一般采用終端匹配的總線型結構。即采用一條總線將各個節點串接起來,不支持環形或星型網絡。 RS-485采用平衡發送和差分接收,因此具有抑制共模干擾的能力。加上總線收發器具有高靈敏度,能檢測低至200mV的電壓,故傳輸信號能在千米以外得到恢復。 有些RS-485收發器修改輸入阻抗以便允許將多達8倍以上的節點數連接到相同總線。RS-485最常見的應用是在工業環境下可編程邏輯控制器內部之間的通信(廣州亞大傳動推出的一體化伺服電機,內置驅動器,支持RS485,CAN通訊)。
RS-485總線標準
RS-485采用平衡發送和差分接收方式實現通信:發送端將串行口的TTL電平信號轉換成差分信號A,B兩路輸出,經過線纜傳輸之后在接收端將差分信號還原成TTL電平信號。由于傳輸線通常使用雙絞線,又是差分傳輸,所以又極強的抗共模干擾的能力,總線收發器靈敏度很高,可以檢測到低至200mV電壓。故傳輸信號在千米之外都是可以恢復。RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485采用半雙工工作方式,支持多點數據通信。RS-485總線網絡拓撲一般采用終端匹配的總線型結構。即采用一條總線將各個節點串接起來,不支持環形或星型網絡。如果需要使用星型結構,就必須使用485中繼器或者485集線器才可以。RS-485總線一般最大支持32個節點,如果使用特制的485芯片,可以達到128個或者256個節點,最大的可以支持到400個節點。
RS-485總線的理論
在自動化領域,隨著分布式控制系統的發展,迫切需要一種總線能適合遠距離的數字通信。在RS-422標準的基礎上,EIA研究出了一種支持多節點、遠距離和接收高靈敏度的RS-485總線標準。
RS-485標準采有用平衡式發送,差分式接收的數據收發器來驅動總線,具體規格要求:
1. 接收器的輸入電阻RIN≥12kΩ
2. 驅動器能輸出±7V的共模電壓
3.輸入端的電容≤50pF
4. 在節點數為32個,配置了120Ω的終端電阻的情況下,驅動器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數有關)
5.接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號"0";(V+)-(V-)≤-0.2V,表示信號"1")
因為RS-485的遠距離、多節點(32個)以及傳輸線成本低的特性,使得EIA RS-485成為工業應用中數據傳輸的首選標準?;诖?,RS-485的自動化領域的應用非常廣泛,但是在實際工程中RS-485總線運用仍然存在著很多問題,影響了工程的質量,為工程施工帶來了很多的不方便(廣州亞大傳動推出的一體化直流伺服電機,內置驅動器,支持RS485,CAN通訊)。
布線規范
1.485總線必須要接地。在很多技術文檔中,都提到485總線必須要接地,但是沒有詳細的提出如何接地。嚴格的說,485總線必須要單點可靠接地。單點就是整個485總線上只能是有一個點接地,不能多點接地,因為將其接地是因為要將地線(一般都是屏蔽線作地線)上的電壓保持一致,防止共模干擾,如果多點接地適得其反??煽拷拥貢r整個485線路的地線必須要有良好的接觸,從而保證電壓一致,因為在實際施工中,為了接線方便,將線剪成多段再連接,但是沒有將屏蔽線作良好的連接,從而使得其地線分成了多段,電壓不能保持一致,導致共模干擾。
2.485信號線可以和強電電源線一同走線。在實際施工當中,由于走線都是通過管線走的,施工方有的時候為了圖方便,直接將485信號線和電源線綁在一起,由于強電具有強烈的電磁信號對弱電進行干擾,從而導致485信號不穩定,導致通信不穩定。
3.選擇使用普通的超五類屏蔽雙絞線即網線就可以。由于原材料價格上漲,導致現在市場上的線材魚龍混雜,有不良商人利用某種合金來頂替銅絲來做網線,在外面鍍銅以蒙混客戶。具體區別方法:看網線截面,如果是銅色的話,就是銅絲,如為白色,則是用合金以次充好。合金一般比較脆,容易斷,而且導電性遠不如銅絲,很容易在工程施工中造成問題。線材一般那建議選擇標準的485線,其為屏蔽雙絞線,傳輸線不是像網線那樣為單股的銅絲,而是多股銅絲絞在一起形成一根線,從而即使某根小銅絲斷掉,也不會影響整個的使用。
4.485信號線可以使用平行線作為布線,也可以使用非屏蔽線作為布線。由于485信號是利用差模傳輸的,即由485+與485-的電壓差來作為信號傳輸。如果外部有一個干擾源對其進行干擾,使用雙絞線進行485信號傳輸的時候,由于其雙絞,干擾對于485+,485-的干擾效果都是一樣的,那電壓差依然是不變的,對于485信號的干擾縮到了最小。同樣的道理,如果有屏蔽線起到屏蔽作用的話,外部干擾源對于其的干擾影響也可以盡可能的縮小。
5.485布線可以任意布設成星型接線與樹形接線。485布線規范是必須要手牽手的布線,一旦沒有借助485集線器和485中繼器直接布設成星型連接和樹形連接,很容易造成信號反射導致總線不穩定。很多施工方在485布線過程中,使用了星型接線和樹形接線,有的時候整個系統非常穩定,但是有的時候則總是出現問題,又很難查找原因,一般都是由于不規范布線所引起的。如果由于現場的限制,必須要進行星型連接或者樹形連接,可以使用485集線器和485中繼器解決相關問題
RS-485總線運用存在的問題
1、 阻抗不連續
信號在傳輸過程中如果遇到阻抗突變,信號在這個地方就會引起反射,這種信號反射的原理,與光從一種媒質進入另一種媒質要引起反射是相似的。消除這種反射的方法,就是盡量保持傳輸線阻抗連續,實際工程中在電纜線的末端跨接一個與電纜的特性阻抗同樣大小的終端電阻的原理就是為了減小信號反射。
從理論上分析,在傳輸電纜的末端只要跨接了與電纜特性阻抗相匹配的終端電阻,就能有效的減少信號反射。但是,在實現應用中,由于傳輸電纜的特性阻抗與通訊波特率等應用環境有關,特性阻抗不可能與終端電阻完全相等,因此或多或少的信號反射還會存在。信號反射對數據傳輸的影響,歸根結底是因為反射信號觸發了接收器輸入端的比較器,使接收器收到了錯誤的信號,導致CRC校驗錯誤或整個數據幀錯誤。這種情況是無法改變的,只有盡量去避免它。
2、RS-485接地問題
僅僅用一對雙絞線將各個接口的A、B端連接起來,而不對RS-485通信鏈路的信號接地,在某些情況下也可以工作,但給系統埋下了隱患。RS-485接口采用差分方式傳輸信號并不需要對于某個參照點來檢測信號系統,只需檢測兩線之間的電位差就可以了。但應該注意的是收發器只有在共模電壓不超出一定范圍(-7V至+12V)的條件下才能正常工作。當共模電壓超出此范圍,就會影響通信的可靠直至損壞接口。如圖1所示,當發送器A向接收器B發送數據時,發送器A的輸出共模電壓為VOS,由于兩個系統具有各自獨立的接地系統存在著地電位差VGPD,那么接收器輸入端的共模電壓就會達到VCM=VOS+VGPD。RS-485標準規定VOS≤3V,但VGPD可能會有很大幅度(十幾伏甚至數十伏),并可能伴有強干擾信號致使接收器共模輸入VCM超出正常圍,在信號線上產生干擾電流輕則影響正常通信,重則損壞設備。
3、RS-485的總線結構及傳輸距離
RS-485支持半雙工或全雙工模式。網絡拓撲一般采用終端匹配的總線型結構不支持環形或星形網絡,最好采用一條總線將各個節點串接起來。從總線到每個節點的引出線長度應盡量短,以便使引出線中的反射信號對總線信號的影響最低。在使用RS485接口時,對于特定的傳輸線經,從發生器到負載其數據信號傳輸所允許的最大電纜長度是數據信號速率的函數,這個長度數據主要是受信號失真及噪聲等影響所限制。當數據信號速率降低到90Kbit/S以下時,假定最大允許的信號損失為6dBV時,則電纜長度被限制在1200M。實際上,在實用時是完全可以取得比它大的電纜長度。當使用不同線徑的電纜。則取得的最大電纜長度是不相同的(廣州亞大傳動推出的一體化伺服電機,內置驅動器,支持RS485,CAN通訊)。
CAN
CAN為國際標準現場總線,應用廣泛。作為國際標準ISO11898和ISO11519的控制器局域網CAN[1],最初雖然是為汽車的監測、控制系統設計的,但由于它在性能、可靠性等方面的突出優勢,現已廣泛地應用于各工業領域[2]。在CAN總線技術中,其MAC機制是基本的和關鍵的部分之一。在CAN的技術規范中首先提到的就是仲裁,而仲裁規則是通過報文優先級體現的。目前國內外雖然對CAN報文優先級有一些理論研究和分析,但尚未見到有文獻介紹有效的方法或手段來產生和檢測報文的優先級。這在很大程度上阻礙了CAN總線的進一步研究與應用(廣州亞大傳動推出的一體化伺服電機,直流伺服電機,內置驅動器,支持RS485,CAN通訊)。
硬件支持
CAN報文優先級檢測系統由4個CAN通信節點組成,通過各節點的CAN-H和CAN-L端口并聯到總線上,總線兩端各接上一個120Ω左右的終端電阻,構成一個閉合回路。4個節點的主體結構是基本相同的,根據系統功能的需要每個節點在硬件結構上又有所差別。系統總體結構如圖所示。每個節點均有鍵盤和顯示單元;節點1、2、3為發送節點,每個節點均有“啟動發送”按鈕;節點1還有“停止發送”按鈕,并可對CAN總線電平進行檢測,亦即可對CAN總線MAC(媒體訪問控制)幀進行檢測;節點4為接收節點,可顯示接收到的報文。
圖 系統結構
MAC機制分析
CAN技術規范中的MAC機制就是指對媒體訪問的控制/仲裁機制[4, 5]。CAN網絡上的一個節點發送的報文可被網絡上所有其它節點監聽并應答。當總線開放時,任何CAN節點均可開始發送報文,若多個節點同時開始發送報文,總線訪問沖突借助標識符進行逐位仲裁來解決。仲裁期間,每一個發送器都將發送的位電平與在總線上監視到的電平進行比較,若相同,則該單元可以繼續發送;若不同,該單元丟失仲裁,并且必須退出而不再發送后續位。
這里指出,對于多個節點同時發送情況下總線訪問的仲裁,CAN采用的是帶優先權的非破壞性逐位仲裁機制來解決總線沖突的;對于一個節點想要發送而另一個節點正在發送的總線訪問情況,CAN采用的是載波監聽技術。這二者共同的基礎是CAN總線上一個節點發送的報文可被所有節點(包括自身)監聽。帶優先權的非破壞性逐位仲裁機制所依賴的其它基礎是顯性位(“0”)的優先權高于隱性位(“1”),即當一個隱性位和一個顯性位同時被發送至總線上時,總線上所出現的結果為一個顯性位,“非破壞性”即是對高優先權的“0”而言的;參與逐位仲裁的位為仲裁場(11位標識符和RTR位(對于標準格式)),如圖所示。
圖 CAN的非破壞性逐位仲裁
報文優先級產生與檢測方法
1、方法的基本原理
根據CAN的MAC機制及仲裁規則,如果高優先級的報文一直占用著總線,則其它低優先級的報文將無法獲得仲裁,但是會嘗試重新發送。只有當高優先級報文不再占用總線時,低優先級的報文才可能發送成功。因此,檢測報文優先級的前提和關鍵是如何讓不同優先級報文同時競爭總線。
為方便說明,首先命名標識符。節點1要發送兩種報文,將其發送報文標識符分別命名為SENT_ID_11和SENT_ID_12;將節點2和節點3發送報文標識符分別命名為SENT_ID_2和SENT_ID_3,報文的優先級順序:SENT_ID_11>SENT_ID_2,SENT_ID_11>SENT_ID_3,SENT_ID_12>SENT_ID_2,SENT_ID_12>SENT_ID_3,SENT_ID_11不同于SENT_ID_12,SENT_ID_2不同于SENT_ID_3。使節點1連續發送標識符為SENT_ID_11的報文,目的是讓高優先級的報文占用總線,使總線一直處于“忙”的狀態。然后使節點2和節點3分別開始發送標識符為SENT_ID_2 和SENT_ID_3報文,節點2、3發送的報文優先級不同且均比節點1優先級低。此時,節點2和3監聽總線的結果是:發現有比其本身優先級高的報文正在發送,因此要邊監聽邊等待。這時節點1停止發送后,節點2和3會同時競爭總線,從而創造了使不同優先級的報文同時競爭總線的條件。根據節點4接收到報文的先后順序即可驗證節點2和節點3所發報文的優先級了,并且兩個節點發出的報文都被成功接收,也驗證了CAN總線的非破壞性仲裁機制。另外,通過節點1檢測到的MAC幀也能確定節點2和3的報文優先級。這里要注意的是,SENT_ID_12的報文作為檢測開始的標志。使節點1停止連續發送報文,讓節點1再發送一幀ID為SENT_ID_12的報文,同時開始檢測總線電平,捕捉MAC幀。在第三次檢測到連續11個“1”時停止檢測,即第三幀報文結束時停止檢測。節點1將檢測到的MAC幀的各位值通過顯示單元順序地顯示出來,并與節點2和3發送的MAC幀相比較,可體現節點2和3的報文優先級。這就雙方面驗證了報文優先級,保證了準確性和可信度。
2、方法的軟件實施
軟件實施是嚴格依據方法的基本原理設計的,各個節點的軟件實施流程如圖所示。
圖 各節點軟件流程
對實施流程作如下幾點說明:
(1)配置CAN位定時寄存器時要保證各節點的通信波特率嚴格一致;
(2)配置CAN接受碼和接受屏蔽寄存器時要保證節點1、2和3屏蔽總線上所有報文,節點4只接受來自節點2和節點3的報文;
(3)節點1軟件流程中第一次配置仲裁場、控制場及數據場是為連續報文發送做準備,第二次配置是為標定報文檢測起始標志做準備。
(4)節點1軟件流程中第一次鍵盤掃描目的是為啟動連續報文發送,第二次鍵盤掃描是為停止連續報文發送。
(5)CAN的MAC幀檢測是過檢測單元中斷服務程序實現的。
其中表1給出了各節點實際設置發送的報文;根據方法的基本原理,表2給出了報文過濾設置情況;表3給出了節點1實際檢測到的CAN的MAC幀(灰色陰影標示位為位填充),其檢測到的順序從前到后依次是SENT_ID_12,SENT_ID_2,SENT_ID_3,實際檢測情況與理論分析相符合,進而報文優先級得以驗證。另外,節點4液晶顯示的接收到的報文順序也與理論分析相符合,更進一步證實了方法的可行性。
廣州亞大傳動設備有限公司,主營,一體化伺服電機,無刷電機,行星減速機等,一體化直流伺服電機,內置驅動器,節省空間,抗干擾能力強,調試簡單無需電柜,廣泛運用于包裝機器,精密機械設備,機器人手臂,VGA小車等。