在工業(yè)控制領(lǐng)域,RS485 通信協(xié)議憑借其出色的性能,得到了極為廣泛的應(yīng)用。RS485 采用差分物理信號,在電磁環(huán)境復(fù)雜的工業(yè)現(xiàn)場,展現(xiàn)出強大的抗干擾能力。對于專注于應(yīng)用軟件開發(fā)的工程師而言,使用 RS485 進行數(shù)據(jù)傳輸時,往往只關(guān)注的數(shù)據(jù)收發(fā)器。然而,在硬件層面,RS485 通信的數(shù)據(jù)收發(fā)需要遵循特定的機制。接下來,我們將詳細探討 RS485 通信的數(shù)據(jù)收發(fā)機制。
RS485 作為工業(yè)領(lǐng)域常用的通信方式,具備以下顯著特點:
- 信號電平與使能控制:收發(fā)器輸出 A、B 之間的電平為 +2V~+6V 時,表示邏輯 “1”;為-6V~-2V 時,表示邏輯 “0”。相較于 RS232,其信號電平降低,降低了損壞接口芯片的風(fēng)險。此外,還有 “使能” 控制信號,可使收發(fā)器處于高阻狀態(tài),切斷與傳輸線的連接,便于靈活控制通信狀態(tài)。
- 高靈敏度接收:接收器的輸入靈敏度為 200mV,即當接收端 A、B 之間的電平相差 200mV 時,即可輸出邏輯信號,保證了數(shù)據(jù)接收的準確性。
- 高速遠距離傳輸:RS485 具有較高的傳輸速率,可達 10Mbps,同時傳輸距離能達到 1200m,滿足了工業(yè)現(xiàn)場不同距離的通信需求。
- 多站點連接能力:RS485 總線允許掛接多達 128 個收發(fā)器,能夠建立大規(guī)模的設(shè)備網(wǎng)絡(luò),實現(xiàn)多個設(shè)備之間的通信。
- 共模電壓范圍要求:RS485 收發(fā)器的共模電壓范圍為-7V~+12V,只有在該范圍內(nèi),整個網(wǎng)絡(luò)才能正常工作。若網(wǎng)絡(luò)線路中共模電壓超出此范圍,會影響通信穩(wěn)定性,甚至損壞接口。
RS485 屬于半雙工總線,在實際使用中,通常采用主機輪詢或令牌傳遞的方法來分配總線控制權(quán)。RS485 設(shè)備需要進行發(fā)送和接收方向的轉(zhuǎn)換,常見的控制方法有以下兩種:
程序換向是常用的 RS485 收發(fā)換向方法。通過 的一個 I/O 端口控制 RS485 收發(fā)器件的收發(fā)使能引腳,平時使 RS485 收發(fā)器件處于接收狀態(tài)。例如,使用 TI 的 SN65LBC184 芯片,其速率可達 250Kbps。當需要發(fā)送數(shù)據(jù)時,MCU 將 RS485 收發(fā)器件引腳(網(wǎng)絡(luò) RS485_EN2)置于發(fā)送狀態(tài),完成數(shù)據(jù)發(fā)送后,再將其切回接收狀態(tài)。這種方式簡單易行,無需增加額外成本,被廣泛應(yīng)用。

圖 1 程序換向控制示例
在某些情況下,如采用工控或板進行二次開發(fā)時,可能沒有足夠的 I/O 端口,或者開發(fā)平臺的底層驅(qū)動未對外開放,難以進行二次開發(fā),此時程序換向方法無法實現(xiàn),需要采用自動換向技術(shù)。
自動換向是指使能引腳不需要單獨的 I/O 口控制,而是由發(fā)送引腳發(fā)送數(shù)據(jù)時順便控制。可以在使能處加一個反相器來實現(xiàn)。在空閑狀態(tài)下,串口的發(fā)送信號 TXD2 為高電平,經(jīng)過反相器后輸出低電平,使 SN65LBC184 處于接收狀態(tài),RS485 總線由于上下拉電阻的作用處于 A 高 B 低的狀態(tài)。當發(fā)送數(shù)據(jù)時,TXD2 信號線上的低電平比特位控制 SN65LBC184 進入發(fā)送狀態(tài),將該比特發(fā)送出去;高電平比特位則使 SN65LBC184 處于接收狀態(tài),由 RS485 總線上下拉電阻把總線置于 A 高 B 低的狀態(tài),表示發(fā)送了高電平。

圖 2 自動換向 - 反相器控制示例
反相器也可以用代替,工作原理與加反相器相同。但這種方法在發(fā)送高電平時的驅(qū)動能力有限,會限制通訊距離,一般適用于距離較近的場合。

圖 3 自動換向 - 三極管控制示例
為了省去控制的麻煩,還可以采用專門的、帶有 AutoDirection 功能的 485 芯片,如 MAX13487E,它省去了常用的 485 使能信號,簡化了設(shè)計電路。

圖 4 帶有 AutoDirection 功能的 485 芯片示例
關(guān)鍵詞:RS485 通信