当前位置: 首页 > 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 代码,那么我们可以依此执行系…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...