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

串口RS232、RS485最本质区别

由下图可看出不管是RS232还是RS485,其本质都是串口通信,只不过是串口通信电平上的变种而已。所以,我们首先从串口通信讲起。
1、串口通信
在这里插入图片描述
任何一种通信都要有物理接口和通信协议。串口通信物理接口如下图:
在这里插入图片描述
串口通信协议首先要约定好帧格式和波特率。下图是我们常见的帧格式。
在这里插入图片描述
该数据帧一共有10位,第一位为起始位(永远为低电平),最后一位为停止位(永远为高电平),中间的8个位数据位,数据位的内容由用户自定义,正好构成1字节,通过这8个数据位不同的排列组合(高低电平),就能代表256种不同的数字,对应ASCII码表即可得256种不同的信息。
那串口通信高低电压的范围是什么呢?
串口通信采用的是TTL逻辑(Transistor-transistor logic),其输出的高电平最小为2.4V,输出的低电平最大为0.4V(如下图)。
在这里插入图片描述
我们一般认为串口通信的高电平为5V,低电平为0V,这就造成了其抗干扰能力很弱。
在这里插入图片描述
若在某个时刻突然来了一个静电(如下图),就很可能把某一位低电平变高,这就导致串口通讯的距离必须要很短,一般都在1m之内。
在这里插入图片描述
2、RS232标准
为了提高串口通信的距离和稳定性,美国工业联盟制定了一个RS232标准(RS是Recommended Standard),下图为RS232的接口。
在这里插入图片描述
在这里插入图片描述
虽然RS232有9个接口,但是我们通常只用上图中的3根线,和基础的串口通信接口保持一致(全双工通信),如下图。
在这里插入图片描述
我们知道,单片机与电脑进行基本的串口通信时,电脑需要通过USB转TTL,那么单片机与电脑如何进行RS232通信呢?
如下图所示,只需在原来串口通信的基础上加一个电平转换芯片,例如MAX232,这样它就能把TTL电平转换成RS232电平了。比如,单片机给MAX232发送的是5V,则通过电平转换,输出12V,如果给它发送0V,则MAX232输出-12V。反之,如果MAX232收到12V电压,则会把12V电压转换成5V的TTL电平。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
RS232的高电平的范围很广,电压处在3-15V之间都算高电平;低电平是-3V~ -15V。
在这里插入图片描述
RS232只是改变了电平的大小,传输的还是原来的串口的那些0或者1的二进制数据,而且RS232也是全双工通信(实际用到的物理接口与串口一致)。由下图可知,传输同样的一帧数据,串口与RS232最大的区别在于最大最小电平,RS232的高低电平相差了近20V。这样,即使某一个信号受到干扰,它的高低电平还有很大的改变余量,所以它的抗干扰能力增强了很多,通信距离可达15米,但是速率只有20K(19200/s)。

在这里插入图片描述
在这里插入图片描述
3、RS485
面对更为严苛的工业环境,与更远更快的传输距离需求,RS232就力不从心了,所以RS485标准就诞生了。
与RS232差不多,RS485通信是在串口通信的基础上加了一个485电平转换芯片,如下图。
在这里插入图片描述
485转换芯片可以把单片机TTL发送的串口信号转换为差分信号(如下图),485芯片既可以把串口TTL信号转换成差分信号,也可以把差分信号转换成单片机能识别的TTL信。
在这里插入图片描述
差分信号只需要两根线,不需要地线,如下图。比如当信号A大于信号B时,它代表逻辑0;当信号A小于信号B时,它代表逻辑1。
在这里插入图片描述
在这里插入图片描述
差分信号最大的优势就是抗干扰能力强,因为他用的是两根信号线的差值来表示逻辑0和1。而且它的两根线采用双绞线形式缠绕在一起(如下图),这样即使受到干扰,也是两根线同时受到干扰,所以最后的电压差也基本保持不变。因此RS485可以传输更远的距离,可达1.2千米,且传输频率可达50M。
在这里插入图片描述
在这里插入图片描述
但注意:RS485是半双工通信,也就是在同一时间,其要么在发送数据,要么在接收数据,不能同时进行。其带来的好处是可以进行一主多从的组网通信,而串口通信和RS232只能进行点对点的简单通信。
在这里插入图片描述
最后,无论是RS232还是RS485,他们只定义了物理层,规定了电平标准(如下图),对编程没有影响,所以只需会串口通信即可掌握RS232和RS485通信,这就是串口、RS232和RS485最本质的区别。
在这里插入图片描述
注:转自B站视频教程UP:爱上半导体

http://www.xdnf.cn/news/844453.html

相关文章:

  • 履带无人车+无人机+自组网:空地一体化技术详解
  • 四种IP广播地址
  • 阿里云服务器 安装mysql
  • 微软 Visual Studio 2017 RC 中文版下载 - 免费社区版/专业版/企业版
  • 永恒之蓝漏洞补丁-MS17010补丁列表KB号
  • OpenCV CornerHarris角点检测(C#)
  • 金融专业英语词汇大全
  • java聊天室回调_用JavaEE7、Websockets和GlassFish4打造聊天室(一)
  • TOGAF架构开发方法
  • flowable使用流程任务和监听器设计知会我的任务
  • 调用ThunderAgent 迅雷局域网版的开发
  • 如何监控员工电脑的聊天记录
  • Java 11 新特性介绍
  • 2024年最全网络安全人士必备的13个漏洞库_通用漏洞数据库,你还看不懂吗
  • Java面试复习大纲
  • RFID开发介绍—概述
  • Microsoft Office SharePoint Designer 2007 简介
  • Git常用命令行整理(非常详细)零基础入门到精通,收藏这一篇就够了
  • QT下载安装
  • 用 Java 实现人脸识别功能
  • 全面解析性能测试中的瓶颈分析与优化策略!
  • NOIP 2008 普及组初赛试题完善程序 4.2 (找第k大的数)
  • d3dcompiler_43.dll丢失了怎么办,详细解答和d3dcompiler_43.dll修复方法
  • 常用的自动化测试工具有哪些?
  • 阿里巴巴中国站1688商品详情API:获取商品详情的指南和最佳实践
  • 微信小程序云开发使用方法新手初体验
  • U盘内数据防拷贝的方法:U盘里面的文件怎么不让复制
  • Go 语言开发工具
  • 木马彩衣的原理和代码示例
  • VBA:VBA常用小代码合集