RS485和Modbus

UART協議中,空閑狀態為高電平,也就是1,

?R25和R27,

?

485收發器

特性MAX485?(美信)SSP485?(國產替代)AZRS3080?(安格)
供電電壓+5V+5V+3.3V ~ +5.5V
靜態電流300μA (接收模式)120μA (接收模式)150μA (接收模式)
傳輸速率2.5Mbps10Mbps20Mbps
總線負載能力32 Unit Loads32 Unit Loads128 Unit Loads
ESD防護±15kV (HBM)±8kV (HBM)±25kV (HBM)
工作溫度-40°C ~ +85°C-40°C ~ +85°C-40°C ~ +125°C
半/全雙工半雙工半雙工半雙工
故障保護開路/短路檢測接收器開路保護總線開路/短路/空閑保護
封裝SOIC-8, DIP-8SOP-8DFN-8, SOP-8
關鍵優勢工業驗證,高可靠性低成本,高速寬壓、高溫、超高ESD

?RO接單片機的RX引腳,當芯片的A-B>200mV時,芯片通過RO給單片機輸出高電平;當芯片的A-B<-200mV時,芯片通過RO給單片機輸出低電平。

DI接單片機的TX引腳

485電路中,一般接在RE和DE上的電平是同步變化的,作用就是切換485芯片的工作模式(接受模式/發送模式),DE、RE都接高時,處于發送模式,DI起作用;DE、RE都接低時,處于接收模式,RO起作用

?485芯片右側的電路,上下拉電阻的右側電路為防護電路;為什么要有上下拉電阻,空閑狀態:通過上下拉電阻使得A-B>200mV,即對用邏輯1,即對應UART中的高電平,空閑狀態

在A上加上拉,B上加下拉電阻,主要原因是:RS-485總線在空閑(idle)狀態時,電平是不固定的,即電平在-200mV~+200mV之間,收發器可能輸出高也可能輸出低,UART在空閑時需要保持高電平的,如果此時收發器輸出一個低電平,對UART來說是一個start bit,會導致通信異常。(所以RX需要加上上拉)其中:

? ? ? ? ? ? ? ? ? ? ?① A上加上拉,B上加下拉,接反數據通信也可能出錯。

? ? ? ? ? ? ? ? ? ? ?② 某些收發器內部集成上下拉電阻,則外部不需要再添加。

RS-485標準定義信號閾值的上下限為±200mV。即當A-B>200mV時,總線狀態應表示為“1”;當A-B<-200mV時,總線狀態應表示為“0”。但當A-B在±200mV之間時,則總線狀態為不確定,所以我們會在A、B線上面設上、下拉電阻,以盡量避免這種不確定狀態。

上圖中,TX、RX 引腳均需要上拉電阻,這一點特別重要。

接收:默認沒有數據時,TX 為高電平,三極管Q1 導通,RE 為低電平使能,RO 收數據有效, RS485 為接收態。

發送:發送數據 1 時,TX 為高電平時,三極管導通,DE 為低電平(RE也為低電平),此時收發器處于接收狀態,驅動器(也就是這個芯片,因為是在討論此芯片的發送功能,所以也叫驅動器)就變成了高阻態(也就是說此芯片電阻無窮大),也就是發送端(芯片)與A\B斷開了,此時 A\B 之間的電壓就取決于 A\B 的上下拉電阻了,A 為高電平、B 為低電平,也就成為 RS485 的邏輯 1 了。

發送數據 0 時,TX 為低電平,三極管截止,DE 為高電平,驅動器使能,此時正好 DI 接地,也就是低電平,驅動器也就會驅動輸出 B 為 1,A 為 0,也就是所謂的 RS485 的邏輯 0 了。

理解自收發的作用,關鍵是要理解 RE 和 DE 的作用,尤其是 DE 為 0 時,驅動器與 A\B 之間就是高阻態,也就是斷開狀態,而且 A/B 都要有上下拉電阻。然后就有了邏輯 0-1 間的切換。所以很巧妙,但這里也有一個很明顯的 Bug,只適用于“半雙工”,如果是全雙工就不行了,因為 TX 為 1 時,接收使能,此時從機如果回復數據就亂了。

MAX485高阻態模式本質

當?DE=0(發送使能關閉)時,MAX485的驅動器輸出級進入高阻態(High-Z),此時:

  1. 驅動器與A/B總線物理斷開(等效開關斷開)

  2. A/B線電平完全由外部電路決定

  3. 接收器是否工作取決于?RE引腳(RE=0時接收使能)

?? 誤區糾正:
TX引腳電平不影響總線!TX僅在DE=1時有效。


二、各狀態真值表(核心邏輯)

控制引腳總線狀態等效電路總線電平來源
DE=1驅動器激活內部MOSFET導通由TX信號通過反相器驅動
DE=0驅動器高阻態MOSFET關斷→A/B懸空完全由外部上下拉電阻決定
RE=0接收器激活差分比較器工作可讀取A-B電壓差
RE=1接收器高阻態比較器關閉RO引腳無輸出

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915467.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Android】交叉編譯faiss庫 | 問題解決

目錄 一 解決 FAISS 交叉編譯到 Android 時的 BLAS/MKL 依賴問題 二 交叉編譯faiss ■禁用 BLAS并交叉編譯faiss ■使用 OpenBLAS 的 Android 移植版本并交叉編譯faiss 三 報錯處理 ■報錯 ■SWIG 一 解決 FAISS 交叉編譯到 Android 時的 BLAS/MKL 依賴問題

《使用 IDEA 部署 Docker 應用指南》

使用 IDEA 部署 Docker 應用的詳細步驟 一、創建 Dockerfile 配置文件 在項目根目錄下創建Dockerfile文件&#xff0c;配置內容如下&#xff1a; # 使用官方的OpenJDK鏡像作為基礎鏡像 FROM openjdk:17-jdk-slim# 設置維護者信息(可選) LABEL maintainer"三木豪"# 設…

【Docker#3】Window 和 Linux 上 docker安裝 相關知識

前置了解&#xff1a; X86 高并發&#xff1a;基于 x86 架構的處理器&#xff0c;在高負載下處理大量并發請求的能力。ARM &#xff1a;使用 ARM 架構處理器的移動設備&#xff0c;具有低功耗和高性能的特點。 操作系統&#xff1a; CentOS&#xff1a;基于 Red Hat Enterprise…

一次 POI 版本升級踩坑記錄

前言 結論先行。 開發過程中由于可能涉及到二次開發&#xff0c;若原系統開發時間久遠&#xff0c;沒有達成一致規范設計&#xff0c;導致風格各異&#xff0c;確實滿足當時開發場景&#xff0c;但增大了后續的更新的難度&#xff0c;容易出現俄羅斯套娃現象&#xff0c;新的更…

硬件設計學習DAY13——電源緩沖電路設計全解

每日更新教程&#xff0c;評論區答疑解惑&#xff0c;小白也能變大神&#xff01;" 目錄 一.緩沖電路介紹 1.1緩沖電路的作用 1.2寄生參數的來源 1.3緩沖電路的類型 1.4常見緩沖電路設計 1.5設計原則 二.吸收與緩沖 2.1吸收與緩沖的核心作用 2.2電壓尖峰與吸收措…

鴻蒙搜狐新聞如何在Native調用ArkTS方法

01前言鴻蒙作為一款新興的智能操作系統&#xff0c;現在適配鴻蒙系統的應用越來越多&#xff0c;同時會面臨三端兼容問題&#xff0c;如同一產品功能&#xff0c;需要維護iOS、Android、鴻蒙三端代碼。拿文件上傳、下載功能場景舉例&#xff0c;同時要適配iOS、Android、鴻蒙三…

Java行為型模式---中介者模式

中介者模式基礎概念中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是通過一個中介對象來封裝一系列對象之間的交互&#xff0c;使各對象不需要顯式地相互引用&#xff0c;從而降低耦合度&#xff0c;并可以獨立地改變它們之間…

Python爬蟲實戰:研究Korean庫相關技術

一、引言 1.1 研究背景與意義 隨著韓流文化在全球的傳播,韓語網頁內容急劇增加。韓國在科技、娛樂等領域的信息具有重要研究價值。然而,韓語獨特的黏著語特性(如助詞體系、詞尾變化)給信息處理帶來挑戰。傳統爬蟲缺乏對韓語語言特點的針對性處理,本研究旨在開發一套完整…

表單校驗--數組各項獨立校驗

寫需求時遇到一個這樣的問題&#xff0c;就是校樣項是多個的&#xff0c;但是其字段名稱相同這時我們可以這樣校驗&#xff0c;注意字段之間的關聯性<div v-for"(item,index) in formData.hospitalDoctorList" :key"item.key || index"><el-form-…

基于SpringBoot和leaflet-timeline-slider的歷史敘事GIS展示-以哪吒2的海外國家上映安排為例

目錄 前言 一、哪吒2的海外之路 1、海外征戰歷程 2、上映國家空間查詢 二、后端接口的實現 1、模型層的實現 2、上映時間與國家 3、控制層的實現 三、基于leaflet-timeline-slider的前端實現 1、時間軸控件的引入及定義 2、時間軸綁定事件 3、成果展示 四、總結 前言…

tar 解壓:Cannot change ownership to uid 1000, gid 1000: Operation not permitted

tar 解壓 tar.gz 壓縮包報錯&#xff1a; # tar xzf $INPUT_FOLDER/archive.tar.gz -C /mnt/test-nas/[..] tar: xx.jpg: Cannot change ownership to uid 1000, gid 1000: Operation not permitted原因是用普通用戶執行的解壓縮腳本&#xff0c;用root用戶執行tar解壓縮&…

騰訊客戶端開發面試真題分析

以下是針對騰訊客戶端開發工程師面試問題的分類與高頻問題分析&#xff08;基于??105道問題&#xff0c;總出現次數118次??&#xff09;。按技術領域整合為??7大類別??&#xff0c;按占比排序并精選高頻問題標注優先級&#xff08;1-5&#x1f31f;&#xff09;&#x…

線上問題排查之【CPU飆高100%】

目錄 案例 發現問題 排查問題 步驟一 步驟二 步驟三 案例 import java.util.concurrent.TimeUnit;/*** 簡單寫一個CPU飆高的案例*/ public class CpuLoadUp {// 這里定義了一個標識private volatile static int flag 0;public static void main(String[] args) {// 執行…

c語言 進階 動態內存管理

動態內存管理1. 為什么存在動態內存分配2. 動態內存函數的介紹?2.1 malloc 和 freemalloc 函數free 函數2.2內存泄漏2.3 calloc2.4 realloc3. 常見的動態內存錯誤3.1 對NULL指針的解引用操作3.2 對動態開辟空間的越界訪問3.3 對非動態開辟內存使用free釋放3.4 使用free釋放一塊…

Redis的五大基本數據類型

一、Redis基本知識與Redis鍵&#xff08;key&#xff09;常用操作命令。redis的默認端口6379。mysql默認端口號3306。 默認16個數據庫&#xff0c;類似數組的下標從0開始&#xff0c;初始默認使用0號庫。可以使用select index來切換數據庫&#xff0c;如&#xff1a;select 1&a…

達夢數據庫JSON_TABLE使用說明

在達夢數據庫&#xff08;DM Database&#xff09;中&#xff0c;將 JSON 數據轉換為表格形式可以使用內置的 JSON_TABLE 函數。以下是詳細步驟和示例&#xff1a;1. 核心函數&#xff1a;JSON_TABLE JSON_TABLE 用于將 JSON 數據解析為關系表結構&#xff0c;支持從 JSON 對象…

A316-1926-V1 USB多路高清音頻解碼器模組技術解析

隨著數字音頻技術的不斷發展&#xff0c;高品質音頻解決方案的需求日益增長。本文將介紹一款基于XMOS技術的高性能USB音頻解碼器模組——A316-1926-V1&#xff0c;這是一款專為高清音頻應用設計的專業模組。核心技術與特性A316-1926-V1是一款集成了多項先進技術的USB多路高清音…

.NET 8 中的 KeyedService

.NET 8 中的 KeyedService&#xff1a;新特性解析與使用示例 一、引言 在 .NET 8 的 Preview 7 版本中&#xff0c;引入了 KeyedService 支持。這一特性為開發者提供了按名稱&#xff08;name&#xff09;獲取服務的便利&#xff0c;在某些場景下&#xff0c;開發者無需再自行…

Paimon對比基于消息隊列(如Kafka)的傳統實時數倉方案的優勢

弊端&#xff1a;數據重復 -> 優勢&#xff1a;Paimon 主鍵表原生去重原方案弊端 (Kafka)問題: 消息隊列&#xff08;Kafka&#xff09;是僅支持追加&#xff08;Append-Only&#xff09;的日志流。當 Flink 作業發生故障恢復&#xff08;Failover&#xff09;或業務邏輯迭代…

Linux Shell 命令 + 項目場景

shell 命令1. 基礎文件操作命令1.1 ls - 列出目錄內容1.2 find - 文件搜索2. 版本控制命令2.1 git - 版本控制系統2.2 高級 Git 操作3. 文本搜索命令3.1 grep - 文本搜索3.2 高級搜索技巧4. Android 構建系統命令4.1 source - 加載環境變量4.2 lunch - 選擇構建目標4.3 m - And…