RS-485是一種雙工通信系統(tǒng),其中同一總線上的多個設備可以雙向通信。RS485通信接口最常用作半雙工,如上圖所示,只有一條通信線路(“A”和“B”成對)。在半雙工中,設備輪流使用同一條線路,在該線路中主機將斷言對總線的控制并發(fā)送命令,所有其他設備都在監(jiān)聽。預期的接收者將偵聽其地址,然后該設備將斷言控制并做出響應。相反,在全雙工系統(tǒng)中,例如串行外設接口(SPI射頻模塊)或通用異步收發(fā)器 (UART串口模塊),主機和從設備可以使用專用輸入和輸出線同時通信。
在數據層,RS485接口通常使用 UART 進行串行通信,主機UART以全雙工方式驅動和接收串行通信。它連接到構成物理層的RS485接口通信差分收發(fā)器,并將信號轉換為半雙工差分格式,以便在RS485總線上使用。然后主機將通過UART與RS485端口之間通信,它會告訴收發(fā)器何時在發(fā)送和接收之間切換。從設備也將以同樣的方式使用它們的UART。
具有專用發(fā)送和接收線路的UART串口模塊允許它以全雙工、半雙工甚至單工方式運行,這意味著數據只能通過一條線路輸出或輸入。由于RS485接口通信通常是半雙工的,因此連接到它的UART也將以半雙工方式運行。
圖7:UART 轉 RS-485 的常見用途
UART 接口是異步的,這意味著通信不包括時鐘。主機和從機設備必須使用自己的內部時鐘,并且兩個設備都必須知道數據將以何種時鐘速率傳輸。這與串行外設接口 (SPI) 等同步系統(tǒng)不同,其中一條信號線包含一個時鐘,總線上的監(jiān)聽設備可以在該時鐘上捕獲數據。
此外,UART 通常具有大多數設備將使用的標準格式,但可以配置許多選項來更改標準。UART 的空閑狀態(tài)是高電壓,因此要開始傳輸,UART 使用一個稱為起始位的低脈沖,然后是 8 位數據,并以高停止位完成,圖 8。
圖8:UART 數據幀
主處理器將使用一個IO 引腳將 RS-485 收發(fā)器置于發(fā)送模式,并將一個字節(jié)從 UART TX 線發(fā)送到 RS-485 收發(fā)器的數據(D 或 DI)線。收發(fā)器會將單端 UART 比特流轉換為 A 和 B 線上的差分比特流,圖 3。數據離開收發(fā)器后,主機立即將收發(fā)器模式切換為接收。從機系統(tǒng)是相同的,這意味著從機 RS-485 收發(fā)器接收傳入的比特流,將其轉換為單端信號,并通過從機的 UART RX 線將其發(fā)送到主機設備。當從設備準備好響應時,它會像主機最初那樣發(fā)送,而主機現在接收,圖 9。
圖9:主機通過RS-485總線發(fā)送命令,從機響應示意圖
圖10:定義了數據鏈路層的 OSI 模型
億佰特人每一天都致力于更好的助力物聯化、智能化、自動化的發(fā)展,提升資源利用率,更多產品更多資料,感興趣的小伙伴可以登錄我們的官網http://www.vc0p1s10a.cn/進行了解,還有客服小姐姐在線答疑哦!