與 CAN 類似,RS-485 是一種工業控制環境中常用的通訊協議,它具有抗干擾能力強、傳輸距離遠的特點。RS-485 通訊協議由 RS-232協議改進而來,協議層不變,只是改進了物理層,因而保留了串口通訊協議應用簡單的特點。
1 RS-485的物理層
從《CAN—通訊實驗》章節中了解到,差分信號線具有很強的干擾能力,特別適合應用于電磁環境復雜的工業控制環境中,RS-485 協議主要是把 RS-232的信號改進成差分信號,從而大大提高了抗干擾特性,它的通訊網絡示意圖見圖。
(1)差分信號
差分傳輸是一種信號傳輸的技術,區別于傳統的一根信號線一根地線的做法,差分傳輸在這兩根線上都傳輸信號,這兩個信號的振幅相等,相位相差180度,極性相反。在這兩根線上傳輸的信號就是差分信號。
信號接收端比較這兩個電壓的差值來判斷發送端發送的是邏輯0還是邏輯1。在電路板上,差分走線必須是等長、等寬、緊密靠近、且在同一層面的兩根線。
(2)RS485的物理網絡特點
RS485的通信網絡中每個節點都是由一個通訊控制器和一個收發器組成,在 RS-485 通訊網絡中,節點中的串口控制器使用 RX與 TX信號線連接到收發器上,而收發器通過差分線連接到網絡總線,串口控制器與收發器之間一般使用 TTL信號傳輸,收發器與總線則使用差分信號來傳輸。發送數據時,串口控制器的 TX信號經過收發器轉換成差分信號傳輸到總線上,而接收數據時,收發器把總線上的差分信號轉化成 TTL信號通過 RX引腳傳輸到串口控制器中。
2、RS485與RS232的區別
RS-485通訊網絡的最大傳輸距離可達 1200米,總線上可掛載 128個通訊節點,而由于 RS-485 網絡只有一對差分信號線,它使用差分信號來表達邏輯,當 AB 兩線間的電壓差為-6V~-2V時表示邏輯 1,當電壓差為+2V~+6V 表示邏輯 0,在同一時刻只能表達一個信號,所以它的通訊是半雙工形式的,它與 RS-232 通訊協議的特性對比見圖。
總結一下RS232月RS485的特點有:
1、 RS-485以電壓差表示0、1(正負2-6V),電平降低了,這樣不易損壞電路芯片,與TTL電平兼容。
2、 RS-485的數據最高傳輸速率為10Mbps,是半雙工通信。
3、 RS485接口抗噪聲干擾性好
4、 RS-485最大傳輸距離標準值為4000英尺,實際上可達3000米
RS-485接口在總線上允許連接多大128個收發器。即具有多個站能力,這樣用戶可以利用單一的RS-485接口方便的建立起設備網絡
RS-485與 RS-232 的差異只體現在物理層上,它們的協議層是相同的,也是使用串口數據包的形式傳輸數據。而由于 RS-485 具有強大的組網功能,人們在基礎協議之上還制定了 MODBUS 協議,被廣泛應用在工業控制網絡中。此處說的基礎協議是指前面串口章節中講解的,僅封裝了基本數據包格式的協議(基于數據位),而 MODBUS 協議是使用基本數據包組合成通訊幀格式的高層應用協議(基于數據包或字節)。感興趣的讀者可查找MODBUS協議的相關資料了解。
由于 RS-485與 RS-232 的協議層沒有區別,進行通訊時,我們同樣是使用 STM32的USART 外設作為通訊節點中的串口控制器,再外接一個 RS-485收發器芯片把 USART外設的 TTL電平信號轉化成 RS-485的差分信號即可。
3、RS485電路介紹
RS485推薦在點對點、線型、總線型網絡中,但不能是星型、環型網絡。理想情況下RS485需要2個匹配電阻,其值要求等于傳輸電纜的特性阻抗(一般為120歐),沒有特性阻抗的話,當所有的設備都靜止或者沒有能量的時候就會產生噪聲。485推薦的連接方式如下圖。