RS485 硬件自收发切换的实现

2023-11-02

         RS485抗噪音抗干扰能力强、传输距离远、支持多点通信,是工控行业首选串行接口。485规定的电气特性为2线,半双工多点通信。采用两线差分信号传输数据,具有抗共模干扰的能力。由于是半双工模式,因此通讯时需要切换收发状态。目前常用的485收发切换方案有以下几种:


1.传统RS485电路(带收发控制脚非隔离RS-485电路)
        传统的485应用电路如下图所示,采用3线控制,UART_RXD、UART_TXD和收发控制端UART_CON。

带收发控制脚非隔离RS-485电路

       控制策略如下:UART_CON为低电平,485处于接收状态;UART_CON为高电平,485处于发送状态。通过切换UART_CON的电平来达到485收发状态的切换。


2.硬件自收发切换 非隔离RS-485电路

这里写图片描述

       带收发控制脚的485在编程时需要切换控制端电平,增加了程序的复杂度。为了编程方便,常常将电路改为如上图所示的自动收发电路。这种采用分立元件搭建非隔离自动收发RS485电路的优点在于控制简单,收发控制脚不需要程序干预。

       虽然采用分立元件搭建的非隔离RS485自动收发电路解决了带收发控制脚非隔离RS485电路编程上操作复杂的问题,但受三极管切换速度、收发器内部接口阻抗等影响,分立元件搭建的自动收发切换电路降低了系统稳定运行的最大波特率。


3.收发切换隔离RS485电路

这里写图片描述

       带有隔离电路的485是最稳定的设计,需要选择隔离485芯片以及隔离电源,此方案成本相对于前两种方案会高很多。

        下面介绍一种485硬件收发切换电路实例。

485硬件切换电路


       485芯片采用MAX485芯片,电路使用NPN三极管开切换收发。控制原理是:MCU的UART的TX和RX引脚需要连上拉电阻(TX和RX在没有通信时均是高电平),防止刚上电TX和RX引脚电平不稳定引起收到扰乱数据。A上拉电阻B下拉电阻,终端并联120欧姆电阻,D10、D11、D12为三个防雷防浪涌的TVS管。

       接收: 默认没有数据时,UART_TX为高电平,三极管导通,MAX485芯片RE低电平使能,RO接收数据使能,此时从485AB口收到什么数据就会通过RO通道传到MCU,完成数据接收过程。

       发送: 当发送数据时,UART_TX会有一个下拉的电平,表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据‘0’时,由于DI口连接地,此时数据‘0’就会传输到AB口 A-B<0,传输‘0’,完成了低电平的传输。当发送‘1’时,此时三极管导通,按理说RO使能,此时由于还处在发送数据中,这种状态下MAX485处于高阻态,此时的状态通过A上拉B下拉电阻决定,此时A-B>0传输‘1’,完成高电平的传输。

       PS: 此时有人肯定也会有疑惑,发送数据‘1’,三极管导通RE低电平有效应该是接收使能,为什么芯片会是高阻状态?

       因为UART发送收据会有一定的格式,数据均以“位”为最小单位进行传输。在收发数据之前,UART之间要约定好数据的传输速率(即每位所占据的时间,其倒数为波特率)、数据的传输格式(有多少数据位、是否有校验位、奇校验还是偶校验、是否有停止位)。 平时数据线处于“空闲状态”(1状态)。当发送数据时,TX由‘1’变为‘0’维持1位的时间,这样收方检测开始位后,再等待1.5位时间就开始一位一位的进行数据传输。意思是说,已经确定好发送状态,电路发送‘1’此时RE有效,接收有效但有由于它处于发送阶段,此时芯片会处于高阻状态。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RS485 硬件自收发切换的实现 的相关文章

  • 又是第一!GBASE南大通用蝉联中国分析型数据库管理系统市场TOP1

    报告指出 大数据时代 用户对数据分析的需求不断提升 希望从大量数据中获得新的数据价值 数据分析需求不断上升 分析型数据库市场保持稳定增长 GBASE南大通用作为分析型数据库市场的代表企业 位居本土厂商第一名 在分析型数据库市场 GBASE自
  • 插件分享

    前言 要问我Goby怎么样 我会坚定回答你 最强实时网络空间测绘 没有之一 初次发现Goby还是来自于同事 hq404的推荐 看完第一反应 真漂亮 我馋了 我要xxxxxx 其Logo和UI做的相当棒 当然不仅拥有华丽的外表 更让我深爱又离
  • python爬取新发地菜价

    import requests from bs4 import BeautifulSoup import csv url http www xinfadi com cn marketanalysis 0 list 1 shtml respo
  • 【机试练习】【C++】【PAT A1053】Path of Equal Weight(玄学一样的“段错误”)

    此题有较大的玄学 如果将cmp函数的默认返回值更改为true 则会出现最后一个测试用例的 段错误 在代码中以 我的天 玄学 标识出 include
  • Java阻塞队列

    目录 一 阻塞队列的特点 二 生产者 消费者 存在问题 三 阻塞队列 Java实现 属性 方法 put方法 生产者 线程专门调用的方法 get方法 消费者 线程专门调用的方法 执行顺序分析 图解 在我们上图的代码当中 如果把while改成i
  • Sharding-JDBC(八)5.3 系列升级解读

    目录 一 背景 二 影响范围 1 Maven 坐标调整 2 自定义算法调整 3 事务调整 4 配置文件调整 三 升级指导 1 新的 ShardingSphereDriver 数据库驱动 2 正在使用 Spring Boot Starter
  • 2023华为OD机试真题【找朋友/单调栈】

    题目描述 在学校中 N个小朋友站成一队 第i个小朋友的身高为height i 第i个小朋友可以看到的第一个比自己身高更高的小朋友j 那么j是i的好朋友 要求j gt i 请重新生成一个列表 对应位置的输出是每个小朋友的好朋友位置 如果没有看
  • python爬虫系列5--xpath

    教程地址 http www runoob com xpath xpath tutorial html XPath在python的爬虫学习中 起着举足轻重的地位 对比正则表达式re两者可以完成同样的工作 实现的功能也差不多 但XPath明显比
  • 用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)

    概述 在使用 DHT11 的时候 时序通信需要微秒来操作 STM32CubeMX 自带一个系统时钟 但是实现的是毫秒级别的 因此就自己用通用计时器实现一个 文章目录 概述 1 配置定时器时钟 2 计数器时钟频率及计数模式 预分频系数 计数器
  • tomcat调优的几个方面

    和早期版本相比最新的Tomcat提供更好的性能和稳定性 所以一直使用最新的Tomcat版本 现在本文使用下面几步来提高Tomcat服务器的性能 增加JVM堆内存大小 修复JRE内存泄漏 线程池设置 压缩 数据库性能调优 Tomcat本地库
  • css画间距可控制的虚线

    借助linear gradient dash div margin left 50px margin right 50px height 10px background linear gradient to left transparent
  • linux git代码明明是最新版本的,status为啥全是modified?

    解决办法 依次执行以下两句代码 git rm cached r git reset hard
  • 使用 PyTorch 对自定义数据集进行二分类(基于Vision Transformer)

    内容 简短描述 ViT 的简短描述 编码部分 使用 ViT 对自定义数据集进行二分类 附录 ViT hypermeters 解释 简短描述 视觉转换器是深度学习领域中流行的转换器之一 在视觉转换器出现之前 我们不得不在计算机视觉中使用卷积神
  • 【Python】turtle海龟画图练习

    Turtle 方法查看 turtle 海龟绘图 同心圆 import turtle i 1 r 0 while i lt 6 r 30 自己设 turtle circle r 画个圆 turtle penup 起笔 turtle sety
  • 前后端RSA加解密

    前端vue RSA加密 一 安装 npm install jsencrypt save dev 二 创建js文件 在src目录下创建util文件夹 然后在util文件夹下创建 security js 文件 1 引入jsencrypt 引入加
  • Java数据类型转换

    1 基本数据类型 byte short char int long float double boolean 2 引用类型数据 String 枚举 数组 接口 枚举 3 基本数据和引用类型数据的区别 1 基本数据类型变量 存的是值的本身 2
  • APP从苹果开发者A账号转移到B账号的流程

    今天把公司的一个APP从苹果开发者A账号转移到B账号 在这里记录具体操作流程 准备好开发者账号A APP所在的原账号 开发者账号B APP迁移目标账号 登录A账号 选择 App Store Connect 点击 Go to App Stor
  • Linux相关关机命令及服务器关机后如何进行开机操作

    linux一般用在服务器上 很少遇到关机的情况 毕竟关机服务就会中断 除非特殊情况不得已才会关闭 正确的关机流程 sync gt shutdown或reboot或halt 无论重启还是关机 都需要先sync将内存数据同步到硬盘中 避免数据丢

随机推荐

  • 抽象数据类型Polynomial 的实现(第二章 P40-43 算法2.22,2.23)

    抽象数据类型Polynomial 的实现 多项式的加法 乘法 typedef int Status Status是函数的类型 其值是函数结果状态代码 如OK等 typedef int Boolean Boolean是布尔类型 其值是TRUE
  • vue关于json数据格式的展示<pre>标签的使用

    起因 需要把字符串按json格式展示到页面上 直接展示或者利用JSON parse 展示页面上数据都会挤成一坨 解决方法 利用
  • 重构——在对象之间搬移特性(1)

    我们都知道 类往往因为承担过多的责任而变得臃肿不堪 这种情况下 一般会使用 提炼类 这种手法将一部分责任分离出去 如果一个类变得 不负责任 一般会使用 内联类 这种手法将它融入另一个类 如果一个类使用了另一个类 一般会运用 隐藏委托关系 手
  • Fast DDS入门六、Fast DDS的动态类型及示例程序

    上一节 Fast DDS入门五 在Windows平台创建一个简单的FastDDS示例程序 该示例程序介绍了采用Fast DDS Gen工具通过接口定义语言 IDL 来生成数据结构类 该数据结构类具备序列化反序列化处理 用户只需要关注编写ID
  • java linkedhashmap list_java – 将所有键从LinkedHashMap提取到列表的方法

    我正在使用许多LinkedHashMap 它们是LinkedHashMap lt Long Long gt LinkedHashMap lt Long Double gt 或LinkedHashMap lt Long Integer gt
  • SGI STL一级二级空间配置器代码剖析笔记

    STL不仅是一个可复用组件库 而且是一个包罗算法与数据结构的软件框架 说到框架本身就有庞大 稳定 完整而可扩展的含义 因此学习STL源码不仅可以帮助我们编写良好代码的习惯 而且能够让我们熟悉算法 数据结构 我们也会受到这种编程思维影响 在编
  • AliOS-Things引入

    目录 一 简介 1 1 硬件抽象层 1 2 AliOS Things内核 rhino 编辑 1 3 AliOS Things组件 二 如何进行AliOS Things开发 三 安装环境 安装python pip git 修改pip镜像源 安
  • Python——实验四

    Python 实验四 一 数字出现次数排序 问题描述 给定n个整数 请统计出每个整数出现的次数 按出现次数从多到少的顺序输出 输入形式 第一行包含一个整数n 表示给定数字的个数 第二行包含n个整数 相邻的整数之间用一个空格分隔 表示所给定的
  • Python爬虫三:正则表达式的使用大全

    1 正则表达式的简介 1 1概念 正则表达式是对字符串操作的一种逻辑公式 就是用事先定义好的一些特定字符 及这些特定字符的组合 组成一个 规则字符串 这个 规则字符串 用来表达对字符串的一种过滤逻辑简而言之就是数据筛选过滤 1 2应用场景
  • python实现Flask GET Demo

    python代码 from flask import Flask request jsonify app Flask name 用 data路径路由 app route data def get data 以下一行是从URL中获取参数的ge
  • abb机器人指令手册_ABB机器人自定义错误处理

    更多内容请点击上方 ABB机器人实战技巧 关注 也可点击公众号下方 往期经典 浏览更多内容 转载请先后台留言 大家一起支持原创 推动机器人使用和发展 本公众号对各类ABB机器人应用 仿真 毕业设计提供技术支持 详细后台留言 本公众号诚挚希望
  • 【SQL】Spark HiveSQL常见报错

    无权限更新 Authorization failed No privilege Update found for outputs 库或表对象不存在 com microsoft sqlserver jdbc SQLServerExceptio
  • HDF5 CMake 生成 C\C++ 可用的 lib 文件和 dll 文件

    一 原料 HDF5 源码 下载地址 https www hdfgroup org downloads hdf5 source code 下载对应系统的版本 我的是 Windows 10 选择红框标示的版本 CMake 下载地址 https
  • Python Pandas对空值的处理

    1 dropna 删除所有值为空的行 s3 dropna axis index how all inplace False how字段可选有any和all any表示只要有空值出现就删除 all表示全部为空值才删除 inplace字段表示是
  • html实现侧边滑动效果,基于slideout.js实现移动端侧边栏滑动特效

    HTML5现在本领太大了 PC端已经无法满足它的胃口了 它将强势攻入移动端 所以移动端中各种特效也得基于HTML5实现 看看我们将要介绍的slideout js 能帮我们实现怎么样的侧边栏滑动特效呢 先看下运行效果 一 准备资料 只需要准备
  • 概率论 思维导图复习提纲

    2020 4 27更新 原xmind及pdf文件已上传至百度网盘 链接 https pan baidu com s 1q1U4cNkphVbfP8rZByLgrw 提取码 xte7 2020 4 4 更新 如果需要原xmind文件或pdf文
  • 图解红黑树-一文带你搞定旋转、插入、删除

    图解红黑树 一文带你搞定旋转 插入 删除 文章目录 图解红黑树 一文带你搞定旋转 插入 删除 toc 1 定义 2 性质 3 平衡操作 0 总结 1 插入 1 0 插入的节点为红色节点 1 1 被插入的节点是根节点 1 2 被插入的节点的父
  • Sublime Text 2.0.1 2217 版本破解注册方法(32位)

    准备工具 十六进制编辑器 这里以WinHex为例 1 安装最新的Sublime Text 2 0 1 2217版本http www sublimetext com 2 32位 2 备份sublime text exe 然后用 WinHex十
  • IntelliJ IDEA使用教程:一个沉浸式的 IDE 工具

    IntelliJ IDEA 一个沉浸式的 IDE 工具 本文基础 IntelliJ IDEA 旗舰版或者说是 JetBrains 家所有 IDE 的旗舰版 核心概念 讲 IntelliJ IDEA 的好 带更多人入坑 说几句老实话 劝别人换
  • RS485 硬件自收发切换的实现

    RS485抗噪音抗干扰能力强 传输距离远 支持多点通信 是工控行业首选串行接口 485规定的电气特性为2线 半双工多点通信 采用两线差分信号传输数据 具有抗共模干扰的能力 由于是半双工模式 因此通讯时需要切换收发状态 目前常用的485收发切