首页 > 其他分享 >RS485通信详解

RS485通信详解

时间:2024-10-18 09:50:32浏览次数:7  
标签:接收器 高电平 RS485 低电平 通信 详解 驱动器 RO

1.RS485介绍

RS485是串行通信标准,使用差分信号传输,抗干扰能力强,常用于工控领域。

RS485具有强大的组网功能,在串口基础协议之上还制定MODBUS协议。

串口基础协议:仅指封装了基本数据包格式的协议(基于数据位)

MODBUS协议:使用基本数据包组合成通讯帧格式的高层应用协议(基于数据包或字节)

RS485 的特点包括:

  • 接口电平低,不易损坏芯片。RS485 的电气特性:逻辑“1”以两线间的电压差为+(2~6)V 表示;逻辑“0”以两线间的电压差为-(2~6)V 表示。接口信号电平比 RS232 降低了,不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。
  • 传输速率高。10 米时,RS485 的数据最高传输速率可达 35Mbps,在 1200m 时,传输速度可达 100Kbps。
  • 抗干扰能力强。RS485 接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
  • 传输距离远,支持节点多。RS485 总线最长可以传输 1200m 左右,更远的距离则需要中继传输设备支持但这时(速率≤100Kbps)才能稳定传输,一般最大支持 32 个节点,如果使用特制的 485 芯片,可以达到 128 个或者 256 个节点,最大的可以支持到 400 个节点。

2.RS485总线连接

RS485总线连接图

电平转换芯片:SP3485、TP8485E、MAX485。

匹配电阻:确保RS485总线的稳定性,抑制噪声。

3.RS485通信电路

正点原子探索者 STM32F407 板载的 RS485 接口电路图:

RS485通信电路

RO: 接收器输出端                                       RE: 接收器输出使能(低电平有效)
DE: 驱动器输出使能(高电平有效)           DI: 驱动器输入端
B : 接收器的输入端 / 驱动器的输出端          A : 接收器的输入端 / 驱动器的输出端

注意:R19和R22是两个偏置电阻,用来保证总线空闲时,A、B 之间的电压差都会大于 200mV(逻辑 1)。从而避免因总线空闲时因 A、B 压差不稳定,可能出现的乱码。

                      DI驱动器输入端:                                                 RO接收器输出端:
          DI为低电平,A为低电平,B为高电平                  如果 A - B ≥ +0.2V,RO则为高电平  
          DI为高电平,A为高电平,B为低电平                  如果 A - B ≤ -0.2  V,RO则为低电平 

4.RS485通信波形

485通信波形图
发送端接收端
如果发送1,即A为高电平,B为低电平如果 A - B ≥ +0.2V,RO则为高电平
如果发送0,即A为低电平,B为高电平如果 A - B ≤ -0.2V,RO则为低电平

标签:接收器,高电平,RS485,低电平,通信,详解,驱动器,RO
From: https://blog.csdn.net/weixin_43042683/article/details/142590285

相关文章

  • 鸿蒙ArkTS中的资源管理详解
    在鸿蒙应用开发中,资源管理是一个非常重要的话题。ArkTS作为鸿蒙原生开发语言,提供了强大的资源管理功能。本文将深入探讨ArkTS中的资源管理,特别是$r语法的使用注意事项,以及其他实用的资源管理技巧。1.$r语法简介在ArkTS中,$r是一个用于引用资源的特殊语法。它允许开发者......
  • Linux驱动开发 platform设备注册详解
    常用的与平台设备注册相关的函数及其作用:1.platform_device_register()功能:用于注册平台设备到内核设备模型中。注册后,设备与相应的驱动程序绑定,驱动的probe函数被调用以进行初始化。函数原型:intplatform_device_register(structplatform_device*pdev);参数:pde......
  • 预科02》:Markdown语法详解
    Markdown学习标题三级标题四级标题标题语法:#空格标题名回车(几极标题就用几个#号)字体hello,word!hello,word!hello,word!hello,word!(前面后面加*号鼠标点一下可以看见)引用选择狂神说学java走向人生巅峰!(语法:>空格描述)分割线语法---或者***......
  • Java之Lambda表达式详解
    一、Lambda表达式的概念与特点Lambda表达式是Java8引入的一个重要特性,它提供了一种简洁、优雅的方式来处理集合、过滤、映射等操作。Lambda表达式可以看做是匿名函数,它允许开发者以更简洁的方式声明匿名函数。Lambda表达式的基本语法由箭头指示符“->”表示,它将参数与函数......
  • 【数据结构】之链表详解
    链表是一种常用的数据结构,它是一种线性数据结构,但与数组不同,它并非连续存储数据,而是通过指针将数据节点连接起来。每个节点都包含数据域和指向下一个节点的指针域。这种结构赋予链表独特的优势和局限性,使其在某些场景下优于数组,在另一些场景下则相对逊色。本文将深入探讨链表,包......
  • 【数据结构】之数组详解
    数组是数据结构中最基础的概念之一,它在编程中被广泛应用。理解数组的工作原理、操作方式以及底层实现,对于我们构建更复杂的数据结构和算法至关重要。本文将从多个角度深入剖析数组,并以Java语言示例进行讲解,帮助你建立对数组的深刻理解。一、什么是数组?数组是一种线性数据结构......
  • Java数据结构二叉树面试题精华(画图详解)
    前言:    针对二叉树,因为涉及到递归,需要跟多的练习强化递归的思想,其中也包括需要画图理解一些想不通的问题来提升自己!    一下面这些题为例,一起来提升自己的逻辑思维能力!(可能其中一些题已经写过,但是希望能再写一遍有助于提高代码能力)相同的树:      ......
  • Witness组件详解
    Witness组件详解 ......
  • Nuxt.js 应用中的 app:resolve 事件钩子详解
    title:Nuxt.js应用中的app:resolve事件钩子详解date:2024/10/17updated:2024/10/17author:cmdragonexcerpt:app:resolve是Nuxt.js中的生命周期钩子,在解析app实例后调用。这个钩子允许开发者在应用完全初始化后执行一些自定义操作,比如注册插件、设置中间件或进......
  • 【Docker系列】docker-compose down 命令详解
    ......