UART協議中,空閑狀態為高電平,也就是1,
?R25和R27,
?
485收發器
特性 | MAX485?(美信) | SSP485?(國產替代) | AZRS3080?(安格) |
---|---|---|---|
供電電壓 | +5V | +5V | +3.3V ~ +5.5V |
靜態電流 | 300μA (接收模式) | 120μA (接收模式) | 150μA (接收模式) |
傳輸速率 | 2.5Mbps | 10Mbps | 20Mbps |
總線負載能力 | 32 Unit Loads | 32 Unit Loads | 128 Unit Loads |
ESD防護 | ±15kV (HBM) | ±8kV (HBM) | ±25kV (HBM) |
工作溫度 | -40°C ~ +85°C | -40°C ~ +85°C | -40°C ~ +125°C |
半/全雙工 | 半雙工 | 半雙工 | 半雙工 |
故障保護 | 開路/短路檢測 | 接收器開路保護 | 總線開路/短路/空閑保護 |
封裝 | SOIC-8, DIP-8 | SOP-8 | DFN-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),此時:
驅動器與A/B總線物理斷開(等效開關斷開)
A/B線電平完全由外部電路決定
接收器是否工作取決于?RE引腳(RE=0時接收使能)
?? 誤區糾正:
TX引腳電平不影響總線!TX僅在DE=1時有效。
二、各狀態真值表(核心邏輯)
控制引腳 | 總線狀態 | 等效電路 | 總線電平來源 |
---|---|---|---|
DE=1 | 驅動器激活 | 內部MOSFET導通 | 由TX信號通過反相器驅動 |
DE=0 | 驅動器高阻態 | MOSFET關斷→A/B懸空 | 完全由外部上下拉電阻決定 |
RE=0 | 接收器激活 | 差分比較器工作 | 可讀取A-B電壓差 |
RE=1 | 接收器高阻態 | 比較器關閉 | RO引腳無輸出 |
?