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

UART和RS232、RS485的联系和区别、以及对软件编程的影响

1、串口、UART、RS232、RS485概念的理解

(1)狭义上的串口:指的是串口协议,就是时序图、数据收发先后顺序等,是抽象出来的协议;
(2)广义上的串口:指的是符合串口协议的接口,UART、RS232、RS485在实际工作中都叫做串口;
(3)UART:主要指的是Soc端的串口控制器和引脚,也是串口编程主要考虑的;
(4)RS232和RS485是在两个Soc的串口引脚相连的中间电路,负责做转换,解决传输距离和电压不匹配的问题;

2、UART

2.1、UART介绍

参考博客:《ARM芯片(S5PV210芯片)——串口通信详解》;

2.2、UART接口

在这里插入图片描述在这里插入图片描述

(1)现在的Soc都内置了串口控制器,串口一般都是两根线,一根发送(TX)一根接收(RX),用的TTL电平;
(2)上面是S5PV210芯片的原理图,总共有4组串口。有的串口还有CTS、RTS接口,这是和自动流控相关,不是必要功能,用于保证数据传输的正确性,现在基本不用了,因为串口常用作打印输出或者用于连接低速的设备,对数据正确性没有太高要求;

2.3、UART的使用场景

(1)实际上我们使用串口时,不会直接使用Soc的引脚,中间会有转换过程,一般是转换成RS232或者RS485进行操作;
(2)UART现在一般用作打印串口,或者连接一些低速的外设;

2.4、为什么还要有RS232、RS422、RS485

(1)串口协议只是规定了数据传输时的协议,也就是规定了先传输1还是先传输0的问题,但是什么电压表示数据1,什么电压表示0,这并没有做规定;
(2)UART是相对于Soc这端来说的,Soc端集成了串口控制器,控制器支持串口协议(比如开始位、停止位、数据位、校验位等),用的是TTL电平;
(3)实际中两个设备的串口控制器要通信,中间是有一段距离的,Soc的引脚一般电平都比较低,数据能传输的有效距离很短;并且不同的设备所使用的电压也不一样,不能直接相连;
(4)需要中间电路负责来解决电压不匹配、传输距离等问题,于是有了RS232、RS422、RS485;
(5)RS232、RS422、RS485都是从电气层面(也就是物理器件)来区分的,具体的通信协议都是串口协议,但是使用的电压范围、是电平信号还是差分信号等不同;

3、RS232

3.1、RS232介绍

(1)RS232是串口协议在电气层面的实现,RS-232标准接口定义了电压范围,规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15V;
(2)Soc的串口引脚一般是3.3V或者5V的电压,所以Soc的串口引脚要使用RS232必须添加TTL电平转RS232电平的转换芯片;
(3)RS232的接口有多种(DB9接口、四线接口、三线接口),但是起主要作用的都是TX和RX引脚,可以简单理解成,RS232和UART的区别就是使用的电压范围不一样;

3.2、RS232的特点

(1)优点:RS232标准接口的传输距离更长,在15米作用;
(2)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换芯片才能与Soc的串口引脚连接;

3.3、DB9接口

在这里插入图片描述

DB9接口有9根线,最主要的就是RxD和TxD,其余的线是用于保证数据传输的正确性;

3.4、四线接口

在这里插入图片描述

四线就是在RX、TX、GND的基础上,多了一根VCC;

3.5、三线接口

在这里插入图片描述

只有TX、RX、GND三根线,使用的RS232电平;

4、RS485

4.1、RS485介绍

(1)RS485采用的是差分信号,用的双绞线,传输距离可达上千米;
(2)RS485常用的是两根线,因为采用的是差分信号,所以只能同时传输一组信号,是半双工的;(也有4根线的RS485,实现全双工)
(3)RS485总线可以挂接多个设备,最多不超过32个,采用主从模式;
(4)虽然485支持挂载多个设备,但是没有规定主从设备之间是如何通信的,需要编程人员考虑,可以参考I2C协议的主从实现;

4.2、RS485接口:半双工

在这里插入图片描述

4.3、RS485接口:全双工

在这里插入图片描述

5、从电路原理图分析

5.1、RS232的三线接口电路原理图

在这里插入图片描述>(1)最左边的M_UART0_RXD和M_UART_TXD是Soc的串口接收、发送引脚,TPT3232E是TTL转RS232的芯片,最终得到RS232_R和RS232_T这两个符合RS232标准的接收、发送引脚;
(2)J83就是上面展示的电路板上的三线串口接口;

5.2、半双工RS485的电路原理图

在这里插入图片描述

SOC_484-0_TXD和SOC_484-0_RXD是Soc端的485发送、接收引脚,SOC_484-0_RTS是用于控制方向的,上面的电路图是半双工的RS485;

5.3、DB9接口的的电路原理图

在这里插入图片描述

SP3232E是支持同时转换两路RS232的电平转换芯片,右边的TXD0和RX0、TX2和RX2是Soc的两组串口引脚,左边是两个DB9接口,可以看到实际DB9接口也只接了三根新,和三线接口是一样的;

6、软件编程上的区分

(1)UART和RS232只是在电平上有区别,在软件编程上没有差别;
(2)RS485支持挂载多个设备、半双工、全双工,所以串口编程半双工时需要考虑总线的总裁,也就是主从模式,类似I2C;

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

相关文章:

UART和RS232、RS485的联系和区别、以及对软件编程的影响

1、串口、UART、RS232、RS485概念的理解 (1)狭义上的串口:指的是串口协议,就是时序图、数据收发先后顺序等,是抽象出来的协议; (2)广义上的串口:指的是符合串口协议的接口,UART、RS232、RS485在实际工作中都…...

ajax是什么?咋实现的

创建交互式网页应用的网页开发技术 再不重新加载整个网页的前提下,与服务器交换数据并且更新部分内容 简单来说就是无页面刷新的数据交互 通过创建xmlhttprequest对象向服务器异步发送请求从而获取数据,然后操作dom更新内容 1,创建xmlhttpr…...

AI推理计算框架中的内存优化

背景 内存管理是AI计算中非常重要的一部分。我们希望模型计算时占用内存尽可能小,这样我们训练或推理时就可以用更大的batch size使其尽快收敛,或者提高吞吐率。又或者让我们可以使用参数更多、或更复杂的模型从而达到更好的准确率。由于现代深度学习模…...

C语言学习小结(1)——初认识C语言

一、C语言概念 C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着…...

30分钟吃掉wandb可视化自动调参

wandb.sweep: 低代码,可视化,分布式 自动调参工具。使用wandb 的 sweep 进行超参调优,具有以下优点。(1)低代码:只需配置一个sweep.yaml配置文件,或者定义一个配置dict,几乎不用编写调参相关代码。(2)可视化…...

【8】AMBA_SOC项目自学IC验证项目-仿真平台脚本使用讲解

仿真平台文件介绍和脚本使用说明 1、项目路径:2、文件夹说明:3、仿真运行命令:第一步:进入项目路径第二步:设置环境第三步:运行仿真第四步:查看波形1、项目路径: 位置:/tool/project/axi 2、文件夹说明: a、env就是放的我们uvm环境相关的env文件; b、out就是我们…...

智慧水务未来技术发展方向预测探讨

随着科技的不断发展和城市化的加速,智慧水务作为一种新的水务模式,逐渐受到广泛关注。未来,智慧水务将会面临更多的技术挑战和商机。本博客将对智慧水务的未来技术发展方向进行预测,以探讨智慧水务未来可能的技术重点。 1. 人工…...

数据结构 | 栈与队列

🔥Go for it!🔥 📝个人主页:按键难防 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 📖系列专栏:数据结构与算法 &#x1f52…...

Redux 源码分析

Redux 目录结构 redux ├─ .babelrc.js ├─ .editorconfig ├─ .gitignore …...

第五十二章 BFS进阶(二)——双向广搜

第五十二章 BFS进阶(二)——双向广搜一、双向广搜1、优越之处2、实现逻辑3、复杂度分析二、例题1、问题2、分析3、代码一、双向广搜 1、优越之处 双向广搜是指我们从终点和起点同时开始搜索,当二者到达同一个中间状态的时候,即相…...

业务建模题

一. 单选题:1.在活动图中负责在一个活动节点执行完毕后切换到另一个节点的元素是( A)。A.控制流 B.对象流 C.判断节点 D.扩展区城2.以下说法错误的是(C)。A.活动图中的开始标记一般只有一一个,而终止标记可能有多个B.判断节点的出口条件必须保证不互相重复,并且不缺…...

电子秤专用模拟数字(AD)转换器芯片HX711介绍

HX711简介HX711是一款专为高精度电子秤而设计的24 位A/D 转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本&#xff…...

微服务 RocketMQ-延时消息 消息过滤 管控台搜索问题

~~微服务 RocketMQ-延时消息 消息过滤 管控台搜索问题~~ RocketMQ-延时消息实现延时消息RocketMQ-消息过滤Tag标签过滤SQL标签过滤管控台搜索问题RocketMQ-延时消息 给消息设置延时时间,到一定时间,消费者才能消费的到,中间件内部通过每秒钟扫…...

js发送邮件(node.js)

以前看别人博客留言或者评论文章时必须填写邮箱信息,感觉甚是麻烦。 后来才知道是为了在博主回复后让访客收到邮件,用心良苦。 于是我也在新增留言和文章评论的接口里,新增了给自己发送邮件提醒的功能。 我用的QQ邮箱,具体如下…...

English Learning - Day58 一周高频问题汇总 2023.2.12 周日

English Learning - Day58 一周高频问题汇总 2023.2.12 周日这周主要内容继续说说状语从句结果状语从句这周主要内容 DAY58【周日总结】 一周高频问题汇总 (打卡作业详见 Day59) 一近期主要讲了 一 01.主动脉修饰 以下是最常问到的知识点拓展&#xff…...

【微电网】基于风光储能和需求响应的微电网日前经济调度(Python代码实现)

目录 1 概述 2 知识点及数学模型 3 算例实现 3.1算例介绍 3.2风光参与的模型求解 3.3 风光和储能参与的模型求解 3.5 风光储能和需求响应都参与模型求解 3.6 结果分析对比 4 Python代码及算例数据 1 概述 近年来,微电网、清洁能源等已成为全球关注的热点…...

四种方式的MySQL安装

mysql安装常见的方法有四种序号 安装方式 说明1 yum\rpm简单、快速,不能定制参数2二进制 解压,简单配置就可使用 免安装 mysql-a.b.c-linux2.x-x86_64.tar.gz3源码编译 可以定制参数,安装时间长 mysql-a.b.c.tar.gz4源码制成rpm包 把源码制…...

软考高级信息系统项目管理师系列之九:项目范围管理

软考高级信息系统项目管理师系列之九:项目范围管理 一、范围管理输入、输出、工具和技术表二、范围管理概述三、规划范围管理四、收集需求1.收集需求:2.需求分类3.收集需求的工具与技术4.收集需求过程主要输出5.需求文件内容6.需求管理7.可跟踪性8.双向可跟踪性9.需求跟踪矩阵…...

【项目精选】javaEE健康管理系统(论文+开题报告+答辩PPT+源代码+数据库+讲解视频)

点击下载源码 javaEE健康管理系统主要功能包括:教师登录退出、教师饮食管理、教师健康日志、体检管理等等。本系统结构如下: (1)用户模块: 实现登录功能 实现用户登录的退出 实现用户注册 (2)教…...

ctfshow nodejs

web 334 大小写转换特殊字符绕过。 “ı”.toUpperCase() ‘I’,“ſ”.toUpperCase() ‘S’。 “K”.toLowerCase() ‘k’. payload: CTFſHOW 123456web 335 通过源码可知 eval(xxx),eval 中可以执行 js 代码,那么我们可以依此执行系…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

C++ 基础特性深度解析

目录 引言 一、命名空间(namespace) C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用(reference)​ C 中的引用​ 与 C 语言的对比​ 四、inline(内联函数…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...