回覆列表
-
1 # 物聯網全棧開發
-
2 # 玩轉嵌入式
RS485介面在工控行業中廣泛應用,即可以走Modbus-RTU協議,又可以走Modbus TCP/IP協議,傳輸舉例可達數公里,工控行業的集控系統用這個介面比較多。RS485介面的電路也比較簡單,一般採用微控制器加電平轉換的方式來實現。今天介紹一下RS485介面電路的設計。
1. RS485介面電路的設計RS485介面電路需要用到微控制器的UART/USART功能,再加上合適的電平轉換晶片,如MAX3082、SP3485等,即可實現電路的設計。這裡用MAX3082所實現的電路如下所示。
電平轉換晶片為MAX3082,埠RXD接微控制器的RXD口,TXD接微控制器的TXD口,DIR接微控制器的GPIO當作資料方向控制介面。晶片的A,B線上分別串接了小阻值的電阻和磁耦可以有效的提高抗干擾能力並利於認證,圖中的120Ω的阻值為終端電阻,接入與否可供選擇。
2. RS485介面電路的隔離設計通訊介面一般都比較脆弱,比較容易受外界干擾,所以考慮將RS485介面隔離,DIR方向埠使用光耦即可實現隔離。通訊介面的隔離可以使用光耦也可以使用專用的數字隔離晶片,在選型光耦時必須要考慮通訊波特率和光耦的響應時間。
3. RS485的配置在除錯RS485介面時,必須主搞清楚RS485裝置是從機還是主機。如果是從機,必須要搞清楚每臺裝置的從機地址、通訊波特率(4800/9600/115200等)、資料格式,如資料位數(一般位八位)、停止位、校驗方式(奇校驗、偶校驗、無校驗)等。
MAX3082電平轉換晶片和ADuM1201數字隔離晶片的實物圖如下所示。
RS485介面電路
附圖是本人在設計的控制器中使用的RS485介面電路。
MCU採用ST的STM32F103RCT6, RS485的晶片採用MAX485。
STM32F103是3.3V工作,但其IO口可以容忍5.0V的輸入電壓。
因此,為了降低成本,選用了5.0V工作的MAX485.
MAX486的介面電路比較簡單,一個數據輸入RO腳,連線MCU的RXD,用於UART的接收。
一個是資料輸出DI腳,連線MCU的TXD,用於UART的傳送。
接收和傳送使用控制腳RE和DE連線在一起之後,連線至MCU的傳送/接收使能控制腳。
為了實現5.0V和3.3V的數字電平相容,在MCU的輸出腳(UART傳送、485的傳送/接收使能腳)與MAX485之間串一個100歐的電阻並透過10K電阻上拉至5.0V。
同時,在MCU的輸入腳(UART的接收腳)與MAX485之間串了一個10K的電阻.
在RS485匯流排的正端A+和負端B-的埠上,同時接一個6.0v的TVS,保護輸入埠.
同時在A+上拉10K至5.0V,在B-下拉10K至地.
保證匯流排空閒的相對電平.
RS485組網RS485透過差分資訊進行主\從結構的通訊,因此,RS485匯流排宜採用雙絞線,雙絞線的好處理,匯流排的兩根線所受到的干擾完全一樣,所以產生的干擾訊號是完全相同的共模訊號,非常容易從差分的通訊訊號分離出來.
採用雙絞線採用手拉手的連線方式,將各個節點串接起來,從匯流排到每個節點的引出線長度應儘量短,以減少訊號的反射干擾.
在匯流排的最末端,應該接一個120歐的匹配電阻,減少訊號的反射干擾,根據傳輸線理論,當終端匹配電阻與導線的特性阻抗相等時,反射最小.
所以當在末端連線120歐的終端匹配電阻時,還需要確認組網用的雙絞線是否為120歐左右.