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

Uart,RS232,RS485串口通讯协议学习

目录

定义

UART(通常被称为串口,简单意味着使用广泛,具有普适性)

RS232

RS232电平转换

RS485 -Recommended  Standard (再推荐标准)

485和232的对比 

RS485组网

总结


定义

串口是我们都很熟悉的,尤其是需要串口调试的时候,打印信息插桩调试是再好不过的了。

而RS232和RS485都是串口通讯的变种.。

UART RS232是全双工通讯,而RS485可以是半双工通讯.也可以是全双工通讯.

RS485在半双工模式下,数据只能以单向的方式进行传输,即发送和接收不能同时进行;而在全双工模式下,发送和接收可以同时进行,实现双向通讯。因此,RS485既可以用于半双工通讯,也可以用于全双工通讯,具体取决于系统设计和实现。需要注意的是,在RS485半双工通讯中,需要通过控制线路来切换发送和接收的方向,从而实现数据的双向传输。

UART(通常被称为串口,简单意味着使用广泛,具有普适性)

串口通讯时要约定好帧格式和波特率

一般串口数据:(十位)

  1.  第一位为起始位,低电平
  2. 数据位为8位,通过8位的排列组合共256种代表256种不同的信息.(还有7位或5位的数据位)
  3. 第十位为停止位

波特率:9600代表1s内能传输9600个高低电平,也就是9600位数据位.

串口通讯采用TTL逻辑 Transistor -transistor login  晶体管 晶体管 逻辑

5v>高电平>2.4v。 0.4v>低电平>0v

 

默认认为其高电平是5v,低电平是0v,这就导致其抗干扰能力极其弱,这导致它的传输距离很短,一般在两块电路板或芯片和电脑通讯。距离小于1m,为了更稳定的通讯需要,有了RS232.

 

RS232

为了提高串口通讯的稳定性,Recommend  Standard  (推荐标准)

RS232接口:(咋一看怎么有点像连接显示器的VGA的接口),它们的功能和用途并不同.

VGA接口是一种视频传输接口,用于连接计算机主机和显示器,并传输图像信号。而RS232通讯则是一种串行通信协议,用于在计算机与外部设备之间传输数据。两者功能和用途不同,不能混淆。

 一般只用标注的3根线和串口一样,共地为了保证参考电压相同.

RS232通讯需要在原来串口通讯的基础上加一个电平转换芯片.例如MAX232,这样就能够把TTL电平转换位RS232电平

 

10:24:56

VGA接口是RS232通讯吗

不是。VGA接口是一种视频传输接口,用于连接计算机主机和显示器,并传输图像信号。而RS232通讯则是一种串行通信协议,用于在计算机与外部设备之间传输数据。两者功能和用途不同,不能混淆。

RS232电平转换

RS232标准规定的逻辑电平是:高电平为-3V至-15V,低电平为+3V至+15V。因此,RS232会将TTL的高电平(一般指5V)通过电平转换器转换成负电平,其数值应在-3V至-15V之间。具体转换电压取决于使用的电平转换器和实际电路设计。

  1. 传输的数据依然和UART传输的数据相同,只是高低电平的范围变大了(12v的范围),这使得其通讯的抗干扰能力增强了。
  2. 通讯距离可达15m(UART最大为1m),但速率只有20k(19200的波特率)

为了更远的距离需求,人们提出了RS485。

RS485 -Recommended  Standard (再推荐标准)

RS485在串口通讯的前提上加一个485转换芯片.把输入的串口信号转换为差分信号.如下图.

 485转换芯片可以把差分信号转换为TTL信号,也可以把TTL信号转换为差分信号.具体怎么用,看你怎么接线了.

用两根线:差分信号线(双绞线缠绕) ——来表示逻辑1和逻辑0.并不需要地线,若受干扰也是同时受到干扰,差分信号线的电压差值几乎保持不变,提高了抗干扰的能力.传输距离可以到达1200m,传输的频率更高可以到达50M.

485和232的对比 

 

RS485组网

一主多从的形式.而RS232和UART都是点对点的形式。

 

 

总结

 串口UART,RS232,RS485只定义了物理层,对我们的编程没有任何影响,我们只需要会UART串口通讯,就能通用这3个物理层的通讯。应用层和物理层分层的好处就体现出来了。

参考

爱上半导体

相关文章:

Uart,RS232,RS485串口通讯协议学习

目录 定义 UART(通常被称为串口,简单意味着使用广泛,具有普适性) RS232 RS232电平转换 RS485 -Recommended Standard (再推荐标准) 485和232的对比 RS485组网 总结 定义 串口是我们都很熟悉的,尤其是需要串口调试的时候,打印信息插…...

UML中的assembly关系

UML中的assembly关系 1.什么是Assembly关系 在UML(统一建模语言)中,"assembly"(组装)是一种表示组件之间关系的关联关系。组件是系统中可替换和独立的模块,可以通过组装来构建更大的系统。 当一…...

[Python]缓存cachetools与TTLCache简介

文章目录 cachetools缓存策略缓存操作 TTLCache cachetools是一个Python第三方库,提供了多种缓存算法的实现。 cachetools 使用前需要先安装pip install cachetools,说明文档参见https://cachetools.readthedocs.io/en/latest/。 cachetools提供了五种…...

现在的00后,真是卷死了呀,辞职信已经写好了·····

都说00后躺平了,但是有一说一,该卷的还是卷。这不,三月份春招我们公司来了个00后,工作没两年,跳槽到我们公司起薪23K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…...

【wpf】列表类,用相对源时,如何绑定到子项

前言 在之前的一篇文章 :《【wpf】深度解析,Binding是如何寻找数据源的》https://blog.csdn.net/songhuangong123/article/details/126195727#:~:text%E3%80%90wpf%E3%80%91%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90%EF%BC%8CBinding%E6%98%AF%E5%A6%82%E4…...

头歌计算机组成原理实验—运算器设计(3)第3关:4位快速加法器设计

第3关:4位快速加法器设计 实验目的 帮助学生掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。 视频讲解 实验内容 利用前一步设…...

Java中synchronized的优化

本文介绍为了实现高效并发,虚拟机对 synchronized 做的一系列的锁优化措施 高效并发是从 JDK5 升级到 JDK6 后一项重要的改进项,HotSpot 虚拟机开发团队在 JDK6 这个版本上花费了大量的资源去实现各种锁优化技术,如适应性自旋(Ada…...

软件测试技术课程:软件测试流程

软件测试流程如下: 测试计划测试设计测试执行 单元测试集成测试确认测试系统测试验收测试回归测试验证活动 测试计划 测试计划由测试负责人来编写,用于确定各个测试阶段的目标和策略。这个过程将输出测试计划,明确要完成的测试活动&#x…...

【Redis】聊一下缓存双写一致性

缓存虽然可以提高查询数据的的性能,但是在缓存和数据 进行更新的时候 其实会出现数据不一致现象,而这个不一致其实可能会给业务来带一定影响。无论是Redis 分布式缓存还是其他的缓存机制都面临这样的问题。 数据不一致是如何发生? 数据一致…...

Java学习笔记-04

目录 静态成员 mian方法 多态 抽象类 接口 内部类 成员内部类 静态内部类 方法内部类 匿名内部类 静态成员 static关键字可以修饰成员方法,成员变量被static修饰的成员,成员变量就变成了静态变量,成员方法就变成了静态方法static修…...

pubspec.yaml 第三方依赖版本控制

以下是一些常见的版本控制方式: 精确版本号:您可以指定特定的版本号,例如 dependency_name: 1.2.3。这将确保只有指定的版本被安装和使用。 范围约束:您可以使用比较运算符来指定版本范围,例如 dependency_name: ^1.2…...

打印机出现错误0x00000709的原因及解决方法

一般来说,出现错误0x00000709,可能是用户试图设置默认打印机时,系统无法完成操作的错误。这种错误通常发生在Windows 10或Windows 7操作系统上。**驱动人生**分析,其原因可能是以下几种情况: 1、已经设置了另一个打印…...

代码随想录算法训练营第二十九天|491.递增子序列、46.全排列、47.全排列 II

目录 491.递增子序列 46.全排列 47.全排列 II 491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序…...

【Kafka】Kafka监控工具Kafka-eagle简介

Kafka-eagle是一种基于Web的开源管理工具,可以用来监控、管理多个Kafka集群。 下面是使用Docker部署Kafka-eagle的步骤: 下载并安装Docker和Docker Compose。 创建文件夹,例如kafka-eagle,并在其中创建docker-compose.yml文件&a…...

Java操作MongoDB

上一篇文章: http://blog.csdn.net/gaowenhui2008/article/details/40045719 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过前一篇文章我们对MongoDB有了全面的认识和理解。现在我们就用Java来操作MongoDB的数据。 开发环境: System&#xff1a…...

Java断言(assert)的介绍和使用

Java断言(assert)的介绍和使用 在Java编程中,断言(assert)是一种有用的工具,用于在代码中进行条件检查和调试。通过使用断言,我们可以验证程序的逻辑和假设,确保程序在运行时达到预…...

我的世界Fabric mod开发-快速漏斗

前往我的主页以阅读完整内容,并获取源码 DearXuan的主页 MOD介绍 使用漏斗链进行分类或传递物品时,常常会发现漏斗速度太慢,难以收集全部掉落物.或者漏斗太多,影响性能.而现有的漏斗加速mod则是引入新的快速漏斗,存在各种兼容问题.开服时发现paper服务器可以修改原…...

AI“应用商店”来了!OpenAI首批70个ChatGPT Plugin最全梳理

OpenAI放出大招,本周将向所有ChatGPT Plus用户开放联网功能和众多插件本周将向所有ChatGPT Plus用户开放联网功能和众多插件,允许ChatGPT访问互联网并使用70个第三方插件。 本批第三方插件能够全方位覆盖衣食住行、社交、工作以及学习等日常所需&#x…...

NSS LitCTF部分wp

web 1、PHP是世界上最好的语言!! 直接cat flag flagNSSCTF{11eaebe0-3764-410d-be83-b23532a24235} 2、这是什么?SQL !注一下 ! 直接查询,发现注入点是id 使用sqlmap列出所以数据库 ​sqlmap -u "h…...

【开发者指南】如何在MyEclipse中编辑HTML或JSP文件?(一)

MyEclipse v2022.1.0正式版下载 如果您有HTML或JSP文件要编辑,这里将介绍如何编辑。查找以下信息: 编辑源代码大纲和属性视图参数页面 该功能在MyEclipse中是可用的。 一、HTML / JSP编辑器 要编辑HTML或JSP文件,请执行以下操作当中的一…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法

使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...

虚幻基础:角色旋转

能帮到你的话,就给个赞吧 😘 文章目录 移动组件使用控制器所需旋转:组件 使用 控制器旋转将旋转朝向运动:组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转:必须移动才能旋转,不移动不旋转控制器…...

基于Uniapp的HarmonyOS 5.0体育应用开发攻略

一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...

C++11 constexpr和字面类型:从入门到精通

文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...

iOS 项目怎么构建稳定性保障机制?一次系统性防错经验分享(含 KeyMob 工具应用)

崩溃、内存飙升、后台任务未释放、页面卡顿、日志丢失——稳定性问题,不一定会立刻崩,但一旦积累,就是“上线后救不回来的代价”。 稳定性保障不是某个工具的功能,而是一套贯穿开发、测试、上线全流程的“观测分析防范”机制。 …...