当前位置: 首页 > backend >正文

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.xdnf.cn/news/15966.html

相关文章:

  • 全新开发范式:uni-app X助力全平台原生应用
  • 前端,demo操作,增删改查,to do list小项目
  • 网络编程及原理(八)网络层 IP 协议
  • 企业开发转型 | 前端AI化数字化自动化现状
  • C语言字符串相关函数
  • 若依开源框架相关
  • Telink BLE 低功耗学习
  • 板凳-------Mysql cookbook学习 (十二--------3_2)
  • STM32小实验四--按键控制LED灯
  • Android Navigation 组件:简化应用导航的利器
  • Nacos中feign.FeignException$BadGateway: [502 Bad Gateway]
  • Node.js- node管理工具nvm
  • ansible批量部署zabbix客户端
  • 过往记录系列 篇七:大A突破3500点历史梳理
  • 【MySQL】Linux配置MySQL Windows远程连接
  • day27 力扣332.重新安排行程 力扣51. N皇后 力扣37. 解数独 力扣455.分发饼干 力扣376. 摆动序列 力扣53. 最大子序和
  • 【爬虫】06 - 自动化爬虫selenium
  • 二分查找-35.搜索插入位置-力扣(LeetCode)
  • HTML前端颜色渐变动画完整指南
  • IFN影视官网入口 - 4K影视在线看网站|网页|打不开|下载
  • 数据结构-哈希表(一)哈希函数、哈希表介绍、优缺点
  • 解决 Ant Design v5.26.5 与 React 19.0.0 的兼容性问题
  • vue3实现可视化大屏布局
  • Redis入门教程(一):基本数据类型
  • k8s知识点
  • 3x3矩阵教程
  • 第十八节:第七部分:java高级:注解的应用场景:模拟junit框架
  • 如何用纯 HTML 文件实现 Vue.js 应用,并通过 CDN 引入 Element UI
  • Python 进阶(七):XML 基本操作
  • 【编程语言】C、C++、C#深度对比:三种语言的演进历程与应用场景