485通信自动收发电路,历史上最详细的解释
作者:瑞生,来源:科技老顽童
微信公众号:芯片之家(ID:chiphome-dy)
上边的485通信自动收发电路,实测波特率9600不会有问题,但是,波特率115200的话,曾经出现过问题。
我们先看看普通的收发电路。
普通的485电路,除了“用RXD连接485芯片的RO引脚、用TXD连接485芯片的DI引脚”,还会用一个单片机的普通IO引脚连接到RE、DE引脚上。
当单片机要发送数据的时候,控制CTRL为高电平,数据通过TXD发送出去。
当单片机要接收数据的时候,控制CTRL为低电平,数据通过RXD接收回来。
然而,自动收发,就是不用单片机引脚CTRL,当数据进来的时候,数据会自动通过RXD到单片机,当需要发送数据时,自动通过TXD发送出去。也就是只需要连接单片机的RXD和TXD引脚就可以,无需用单片机引脚连接485芯片的DE RE引脚。
文章中第一张图,就是实现自动收发的电路,实际上,自动收发的电路,还有好几种连接方法。今天,我们只研究这一种我经常用的。
很多人,都会使用这个电路,但是不知道其中的原理。(是的,就是在说你呢!)
所以今天我来给大家解释一下其中的工作原理,详细到每个元器件。
电阻R1的作用:
RXD连接电阻R1到485芯片的RO,这里R1的作用是限流,保护引脚。R1的大小,可以选择330欧、470欧、560欧、1K。
电阻R2、R3和三极管Q1:
电阻R2、电阻R3和NPN三极管Q1组成一个典型的三极管开关电路。R3是限流电阻,最好选择4.7K,也可以选择10K。R2是上拉电阻,可以选择4.7K,也可以选择10K。
R3为什么最好选择4.7K,我之前写过一篇文章,详细的提到过,主要是你需要了解三极管工作在放大区、截至区和饱和区的特点。上瑞生网,搜索“三极管”,有一篇文章的题目叫做《把三极管当开关用 基极限流电阻怎么选》。
NPN三极管,高电平导通,这个大家都知道。当TXD高电平,三极管导通,RE DE引脚接地,进入接收模式。当TXD低电平,三极管截止,RE DE引脚接高电平,进入发送模式。
电容C1:
C1是电源旁路电容,作用是给485芯片提供一个干净的电源,使它稳定的工作。
你在设计电路板的时候,如果芯片没有特殊要求,需要把每个芯片旁边放上一个0.1微法电容。在PCB布线的时候,电容到电源引脚的距离最好在2mm以内。
电阻R4和R5:
R4是下拉电阻,接到B上。R5是上拉电阻,接到A上。为什么要这样做,下面会讲,现在还不是时候,请继续往下看。
双向稳压二极管D1、D2、D3:
这里使用的双向稳压二极管型号是SMAJ6.5CA。他们的作用是把A、B引脚对地的电压以及A和B引脚之间的电压,牵制到6.5V以内,保护485芯片。
从SP3485芯片手册得到,AB的耐压值是正负15V以内。
有人很好奇,为什么会看这两个参数?因为AB这两个引脚就是Drivers output和Receivers input。请看下图:
接线端子P1:
是用来连接外面需要通信的A和B电线的。(这个好像不用说啊!)
现在,每个元器件就介绍完了,接下来说说为什么可以实现自动收发功能。
你们最大的疑问就是:DI引脚本来是接TXD的,但是电路中直接接地了,那岂不是发送的数据会一直都是0?
答案就在下方。
发送数据过程:
发送数据,用的是单片机的TXD引脚,也就是说,在TXD引脚上表现数据。
例如要发送数据0x55,写成二进制就是0x01010101,TXD引脚上就会依次的用高低电平体现1和0。
当TXD发送0时,三极管不导通,DE接高电平,进入发送模式,485芯片会把DI上的电平反应到AB引脚上输出,因为DI已经接地,所以AB引脚会传输0。你看看,当TXD发送0时,AB引脚发送0。
当TXD发送1时,三极管导通,RE接低电平,进入接收模式,485芯片的AB引脚进入高阻状态,因为R5把A拉高,R4把B拉低,所以,AB传输的是1。你看看,当TXD发送1时,AB引脚发送1。
总结,TXD发1,AB就发1;TXD发0,AB就发0。
接收数据过程:
接收数据,用的是单片机引脚RXD,也就是说,在RXD引脚上表现数据。
在接收数据的过程中,TXD引脚是一直保持高电平的,当TXD是高电平时,RE是低电平,正好调理成了接收状态,然后485芯片的RO引脚(也就是接RXD的引脚)就会反应AB传输过来的数据。
知道了这个电路的接收和发送数据的过程,那就已经完全了解了。你现在如果感觉到还是迷迷糊糊,自己做一个电路,实践一下,思路立马会变得清晰。
今天的分享,是否对你有帮助呢?关于电路的学习,希望大家enjoy!喜欢请 点赞并转发 支持我们,您的转发就是我们继续创作的 最佳动力,谢谢大家!
-END-
点击关注下方公众号,一起学习嵌入式。
485通信自动收发电路,历史上最详细的解释相关推荐
- 485通信自动收发数据实现
485通信是工业控制中很常用的一种通信方式,但是编写通信程序的时候需要在代码中手动控制接收和发送,如果接收和发送逻辑没处理好往往会造成通信故障,实现起来比较麻烦.那能不能让485通信是接收和发送数据可 ...
- (分分钟秒懂)历史上最详细的动态路由技术和基础配置
文章目录 一,动态路由 1,自治系统 2,动态路由协议分类: 3,IGP协议 二,rip路由协议:RIP-路由信息协议 1,基本概念和分类 2,分类: 3,周期更新: 4,RIP的开销值: 5,RIP ...
- 调试stc8a8k64d4单片机485通信总结
一开始感觉很简单,没想到几经折腾,还好,最后基本找到原因,暂时先记录下来. 先说明一下:单片机型号stc8a8k64d,485串口使用UART3(P5.10,P5.1),485使用网上找的一种方案,自 ...
- android qq消息数 拖拽动画,史上最详细仿QQ未读消息拖拽粘性效果的实现
好久没写文章了,前段时间由于项目代码重构忙了一段时间,现在终于有点时间了就为大家带来一篇关于动画学习的自定义View:类似QQ消息拖拽的效果. 其实QQ当时更新的时候我还没注意到这个小红点是可以拖拽的 ...
- 485通信实现自动收发功能
在平时使用485通信时,好多人往往首选的就是MAX485芯片,如下图所示: 常规的方法就是使用RE和DE引脚通过程序来切换接收数据和发送数据,但是这样写起程序来比较麻烦,调试起来也比较费劲.为了方便的 ...
- 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...
- 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个ATM自动取款机
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...
- 历史上最全最常用的HTTP状态码(超详细)
历史上最全最常用的HTTP状态码(超详细) 简介 100-199信息响应 200-299成功响应 300-399重定向消息 400-499 客户端错误响应 500-599 服务器错误响应 简介 HTT ...
- 【历史上的今天】11 月 30 日:Windows Vista 诞生;初代 Nook 电子书发布;自动驾驶先驱出生
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 11 月 30 日,在 1609 年的今天,意大利著名天文家伽利略第一次用望远镜观测月球.回顾计算机 ...
最新文章
- Maven私服安装及配置——(十二)
- Android --- Android layout属性应有尽有
- VBA遍历文件夹下文件文件实用源码
- jzoj3084-超级变变变【数学】
- linux网络编程九:splice函数,高效的零拷贝
- pppcloud云主机内LINUX用户安全管理2
- 你们关心十三香不香,我却关心背后的质检稳不稳
- 非常有用的101道算法部分常见面试题
- WinCE6.0下TCPMP的BenchMark汇总
- 软件测试报告模板什么样的?
- 阻抗匹配 及 SI9000 使用
- 淘宝按图搜索商品(拍立淘)、图片上传API接口、图片识别商品接口img2text标题栏、链接及图片相关参数字段API数据获取调用示例
- php的入门是html5,h5自学教程:6个适合初学者的零基础html5入门自学教程推荐
- 服务器版系统里无线网卡如何打开,无线网卡被禁用了怎么开启
- 聚沙成塔--爬虫系列(四)(爬取糗事百科段子)
- BAM进入新赛段,智能音箱何去何从?
- 模型包装,答辩吹牛方法论!
- 新手小白如何购买阿里云服务器(2021新版详细图文教程)
- 【2019-游记】中山纪念中学暑期游Day5
- C++快慢指针理解与应用
热门文章
- why Participants tab in GM6 is hidden - by extension
- why COMM_PRFREEATTR could not appear in F4 help
- How is an SAP OData Batch request handled in the backend
- Contact support button enablement logic
- one order callback frequency
- proxy in nodejs code
- SAP CRM WebClient UI Abstract Page的Selenium实现
- 使用javap深入理解Java整型常量和整型变量的区别
- 频域分析方法的理解(信号、频谱、能量谱、功率谱、倒频谱、小波分析)(终极教程)
- 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...