作者:瑞生,来源:科技老顽童

微信公众号:芯片之家(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通信自动收发电路,历史上最详细的解释相关推荐

  1. 485通信自动收发数据实现

    485通信是工业控制中很常用的一种通信方式,但是编写通信程序的时候需要在代码中手动控制接收和发送,如果接收和发送逻辑没处理好往往会造成通信故障,实现起来比较麻烦.那能不能让485通信是接收和发送数据可 ...

  2. (分分钟秒懂)历史上最详细的动态路由技术和基础配置

    文章目录 一,动态路由 1,自治系统 2,动态路由协议分类: 3,IGP协议 二,rip路由协议:RIP-路由信息协议 1,基本概念和分类 2,分类: 3,周期更新: 4,RIP的开销值: 5,RIP ...

  3. 调试stc8a8k64d4单片机485通信总结

    一开始感觉很简单,没想到几经折腾,还好,最后基本找到原因,暂时先记录下来. 先说明一下:单片机型号stc8a8k64d,485串口使用UART3(P5.10,P5.1),485使用网上找的一种方案,自 ...

  4. android qq消息数 拖拽动画,史上最详细仿QQ未读消息拖拽粘性效果的实现

    好久没写文章了,前段时间由于项目代码重构忙了一段时间,现在终于有点时间了就为大家带来一篇关于动画学习的自定义View:类似QQ消息拖拽的效果. 其实QQ当时更新的时候我还没注意到这个小红点是可以拖拽的 ...

  5. 485通信实现自动收发功能

    在平时使用485通信时,好多人往往首选的就是MAX485芯片,如下图所示: 常规的方法就是使用RE和DE引脚通过程序来切换接收数据和发送数据,但是这样写起程序来比较麻烦,调试起来也比较费劲.为了方便的 ...

  6. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  7. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个ATM自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  8. 历史上最全最常用的HTTP状态码(超详细)

    历史上最全最常用的HTTP状态码(超详细) 简介 100-199信息响应 200-299成功响应 300-399重定向消息 400-499 客户端错误响应 500-599 服务器错误响应 简介 HTT ...

  9. 【历史上的今天】11 月 30 日:Windows Vista 诞生;初代 Nook 电子书发布;自动驾驶先驱出生

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 11 月 30 日,在 1609 年的今天,意大利著名天文家伽利略第一次用望远镜观测月球.回顾计算机 ...

最新文章

  1. Maven私服安装及配置——(十二)
  2. Android --- Android layout属性应有尽有
  3. VBA遍历文件夹下文件文件实用源码
  4. jzoj3084-超级变变变【数学】
  5. linux网络编程九:splice函数,高效的零拷贝
  6. pppcloud云主机内LINUX用户安全管理2
  7. 你们关心十三香不香,我却关心背后的质检稳不稳
  8. 非常有用的101道算法部分常见面试题
  9. WinCE6.0下TCPMP的BenchMark汇总
  10. 软件测试报告模板什么样的?
  11. 阻抗匹配 及 SI9000 使用
  12. 淘宝按图搜索商品(拍立淘)、图片上传API接口、图片识别商品接口img2text标题栏、链接及图片相关参数字段API数据获取调用示例
  13. php的入门是html5,h5自学教程:6个适合初学者的零基础html5入门自学教程推荐
  14. 服务器版系统里无线网卡如何打开,无线网卡被禁用了怎么开启
  15. 聚沙成塔--爬虫系列(四)(爬取糗事百科段子)
  16. BAM进入新赛段,智能音箱何去何从?
  17. 模型包装,答辩吹牛方法论!
  18. 新手小白如何购买阿里云服务器(2021新版详细图文教程)
  19. 【2019-游记】中山纪念中学暑期游Day5
  20. C++快慢指针理解与应用

热门文章

  1. why Participants tab in GM6 is hidden - by extension
  2. why COMM_PRFREEATTR could not appear in F4 help
  3. How is an SAP OData Batch request handled in the backend
  4. Contact support button enablement logic
  5. one order callback frequency
  6. proxy in nodejs code
  7. SAP CRM WebClient UI Abstract Page的Selenium实现
  8. 使用javap深入理解Java整型常量和整型变量的区别
  9. 频域分析方法的理解(信号、频谱、能量谱、功率谱、倒频谱、小波分析)(终极教程)
  10. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...