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