串口通讯UART/RS232/RS485/RS-422笔记

2023-05-16

串口通讯详解笔记

  • 串口通讯概述
  • 串口通讯传输数据帧的结构
  • UART
  • RS232
  • RS485
  • RS-422
  • RS-232、RS-422和RS-485的主要区别(重要)

串口通讯概述

串口通讯是指数据按位(bit)发送和接收字节的一种传输方式。一个字节的数据传输要分为8次进行,由低位到高位按顺序一位一位的进行传送。
由于串行通信的数据是逐位传输的,所以发送方和接收方都需要具有固定的时间间隔来发送/接收每一位,也就是要保证通讯双方具有相同的波特率即每秒传输的bit数量。(常见的波特率9600/115200)。
对于串口来说,单个调制状态对应点二进制位数为1,所以波特率=比特率。
我们常见的UART,RS232,RS485/RS422都是串口通讯,都遵循串口通信时序协议。

串口通讯传输数据帧的结构

在这里插入图片描述

  • 起始位:是表示传输开始的位,通常为发送1位逻辑0,开始传输数据。

  • 数据位:可以是5~8位的数据,先发LSB。常见的就是8位(1个字节)。

  • 校验位:用于奇偶校验的位。用于检测错误。它可以采用以下值:

     		偶校验,消息中的单元数是偶数
     		奇校数,消息中的单元数为奇数
     		始终为 1,奇偶校验位始终为 1
     		始终为 0,奇偶校验位始终为 0
     		未使用(无)
    
  • 停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1。

  • 空闲位:空闲位是紧跟停止位之后的,在停止位保持到逻辑1时,空闲时数据线为逻辑1状态,代表无数据传输。

UART

UART(通用异步收发器) 是串行异步通讯总线。通常处理器都会集成UART控制器,它由两条数据线构成,可以实现全双工的发送和接收。但UART通讯没有统一的电气接口,抗干扰能力比较差,通讯的距离特别短。

UART的硬件连接仅需要3条线。发送数据端TX,要接接收设备的RX,发送数据端RX,要接接收设备的TX,GND是保证两设备共地,有统一的参考平面 。
在这里插入图片描述

RS232

RS-232 和UART一样,也是点对点的数据传输。接口工作在全双工模式。区别是在电气层做的改变,RS-232 提升了逻辑传输的电压。定义了硬件接口标准。因此,RS-232在速度9600 bps下,通讯距离通常在 15 米左右。在最短距离下,速度通常为 115.2 kbps。
用于 RS-232 的 DB9 连接器的引脚排列
在这里插入图片描述
我们在使用RS-232 接口的时候通常使用 TxD、RxD 和 GND 地线,其余线是用于控制数据流的。

我们使用的CPU会集成UART控制器,但是处理器产生的信号都是TTL电平,因此在使用RS232时候,我们需要在硬件上添加电路对信号电平进行转化,而软件代码则和UART相同。即处理器-RS232电平转换芯片-RS232电平转换芯片-处理器。

RS232相对UART提升了传输距离,也有了统一的接口标准。但是RS232传输的接口信号电平电压高,和TTL电平不兼容。而且会产生共模干扰,通讯的距离也比较短。

RS485

在工业上,最常见的接口是 RS-485 ,RS-485 采用多点拓扑结构,允许连接多个接收器和发射器(有点像IIC)。这样可以利用单一的RS485 接口方便的建立起一个设备网络,在 RS-485 网络的一个部分中,最多可以有 32 个设备,但在附加中继器和信号放大器的帮助下,最多可以有 256 个设备。但一次只能激活一个发射器。而上面到UART和RS232的拓扑是点对点。

RS-485差分线路由两个信号组成:
A,对于逻辑1低,对于逻辑0高,
B,对于逻辑1高,对于逻辑0低。

RS-485 有两种类型:
RS-485 带 2 个触点,以半双工模式运行,同一时间只能接收/发送。在这里插入图片描述

RS-485 带 4 个触点,以全双工模式运行,同一时间能接收/发送。在这里插入图片描述
RS-485 标准没有特别定义特定类型的连接器,但通常是接线端子或 DB9 连接器。连接器的引脚分配取决于设备制造商。
为了在远距离匹配线路,RS-485 还在线路的起点和终点配备了 120 欧姆的终端电阻。RS485的通讯距离最大1200 米,9600 bps。
RS232和RS485对比:
在这里插入图片描述

RS-422

RS-422 和RS-485很类似。使用的都是差分信号。但是在 RS-422 网络中,发送设备只能有 1 个,接收设备最多可以有 10 个。
RS-422 是 定义4 根线用于数据传输。(2 根双绞线用于传输,2 根双绞线用于接收)和一根公共 GND 地线。
RS485和RS422相比较,RS485一般是2线制,虽然有些厂商可能会指定4线制RS485,这种方式比较少见,因此在用四线传输的时候选择RS-422 多一些。

RS-232、RS-422和RS-485的主要区别(重要)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串口通讯UART/RS232/RS485/RS-422笔记 的相关文章

  • UART一对多通信的方法

    通常 xff0c uart为单对单通信 xff0c 当用到一对多时可以用RS485 然而有时候我们MCU的uart口只剩一个 xff0c 又要接多个uart的外围芯片 xff0c 这时如果转成RS485需要加多个485收发器 xff0c 成
  • 1、串口(UART/COM/TTL/RS232/RS485)

    目录 串口简介 串行通讯制式 UART 2 1 简介 2 2 电平标准 TTL RS232 RS485 2 3 电平转换 xff08 重点讲解RS232 TTL xff09 USB转TTL USB转RS232 USB转RS485 RS232
  • UART

    一 S3C2410内置的UART控制器 S3C2410内部具有3个独立的UART控制器 xff0c 每个控制器都可以工作在Interrupt xff08 中断 xff09 模式或DMA xff08 直接内存访问 xff09 模式 xff0c
  • UART, IIC, SCI, SPI, 232, 485, 422, CAN, SDIO, GPIO, MODBUS, TCP/IP汇总简介

    UART IIC SCI SPI 232 485 422 CAN SDIO GPIO MODBUS TCP IP汇总简介 UART xff1a Universal Asynchronous Receiver Transmitter xff1
  • UART详解

    UART 通用异步收发传输器 xff08 Universal Asynchronous Receiver Transmitter xff0c 通常称作UART xff09 是一种串行异步收发协议 xff0c 应用十分广泛 UART工作原理是
  • 串口通讯(USART)

    对于通讯协议 xff0c 我们也以分层的方式来理解 xff0c 最基本的是把它分为物理层和协议层 物理层规定通讯系统中具有机械 电子功能部分的特性 xff0c 确保原始数据在物理媒体的传输 协议层主要规定通讯逻辑 xff0c 统一收发双方的
  • 【总线】一文看懂RS232和RS485通信总线

    目录 RS232概述 RS232特性 RS485 概述 RS485 特性 RS232 和 RS485 的区别 区别总结 RS232概述 RS 232接口符合电子工业联盟 xff08 EIA xff09 建立的串行数据通信接口标准 原始编号是
  • STM32 硬件UART接收超时检测设置

    STM32 硬件UART接收超时检测设置 本文作者 智御电子 xff0c 期待与电子爱好者交流学习 应用场景 在uart应用中有时候需要进行双工通信 xff0c 主机需要对从机的数据进行接收超时检测 xff0c 例如modbus协议 xff
  • arduino学习——UART串口通信

    Serial begin 初始化串口 用作串口的启动 xff0c 常放置在setup xff08 xff09 中 原型 xff1a Serial begin speed Serial begin speed config 参数 xff1a
  • 串口发送通信---UART发送---STM32F4实现

    串口发送程序配置过程 xff08 HAL库 xff09 初始化串口相关参数 xff0c 使能串口 HAL StatusTypeDef span class token function HAL UART Init span span cla
  • DSPF28335 SCI FIFO串口通讯

    在工作过程中 xff0c 通过串口进行上位机与控制器之间进行数据的传输 xff0c 标准的串口通讯容易造成数据的丢失和内存堆满的现象 xff0c 便使用SCI中的FIFO对数据进行中断处理 一 串口通信基本知识 F28335 处理器共有 3
  • 51单片机串口通信(UART)

    项目描述 1 串口工作方式为1 8位UART 波特率可变 无校验位 2 通信数据格式为 1位起始位 8位数据位 1位停止位 3 上电后MCU给上位机发送问候语 之后等待上位机的信息 MCU和上位机的通信为收发交替进行 MCU接收到的信息会实
  • stm32f103串口接收队列,DMA循环模式+空闲中断

    串口通讯最主要的就是要不丢数据 不丢帧 基本设想就是建立一个大的串口缓冲区 串口接收到的数据使用循环队列的方式全部往这个缓冲区放 不过这种方式需要把串口缓冲区弄大一点 防止数据覆盖 在stm32中 利用DMA 空闲中断很容易做到这一点 只需
  • MicroPython串口数据转换技巧

    技巧一 还原从串口接收的HEX字符串 首先上官方文档 确认接收数据类型为bytes 串口读来的bytes类型HEX数据转换成HEX类型字符串转换函数 ByteToHex的转换 返回数据16进制字符串 def ByteToHex bins r
  • UART通信原理

    UART 通信格式 串口全称叫做串行接口 通常也叫做 COM 接口 串行接口指的是数据一个一个的顺序传输 通信线路简单 使用两条线即可实现双向通信 一条用于发送 一条用于接收 串口通信距离远 但是速度相对会低 串口是一种很常用的工业接口 I
  • STM32双串口

    STM32双串口的使用 最近老是需要stm32通过串口去跟WiFi模块 蓝牙模块 openmv进行数据交互 然后需要用到stm32的串口调试 就把这个程序整理成一个工程 方便调试 实验目的 外设模块 WiFi模块 蓝牙模块 openmv 发
  • RS-485详解(一)

    RS 485是美国电子工业协会 EIA 在1983年批准了一个新的平衡传输标准 balanced transmission standard EIA一开始将RS Recommended Standard 做为标准的前缀 不过后来为了便于识别
  • Microchip PIC 的 Modbus 堆栈

    有人可以建议为 Microchip PIC18 处理器实现 Modbus RTU 从站的开源实现吗 我正在寻找 RS 232 RS 485 的 Modbus RTU 实现 但 Modbus TCP IP 实现也将受到欢迎 我已经为 PIC1
  • 如何在R中从串口读取数据

    我想绘制来自串行端口的实时数据 我认为 R 将是完成这项工作的好工具 我在尝试从串行端口 COM4 读取数据时遇到了困难 我已经验证数据是通过 terra term 传入的 并在尝试 R 之前关闭会话 但我似乎无法在 R 中获取任何内容 我
  • 跨线程操作无效:从创建它的线程以外的线程访问控制“textBox1”[重复]

    这个问题在这里已经有答案了 我想使用 UART 将温度值从微控制器发送到 C 接口并显示温度Label Content 这是我的微控制器代码 while 1 key scan get value of temp if Usart Data

随机推荐

  • stm32 串口+DMA+环形FIFO缓存收发数据

    cos环境例程 freertos环境例程 重要几点 1 配置DMA xff0c 串口及环形buff之间的关系 xff1b 2 USART IT IDLE空闲中断接收完一帧数据 xff0c 处理环形buff入口指针 通知用户程序接收完一次数据
  • VScode 中 C或C++ 结构体提示,代码补全不准确的 解决方案

    1 找到项目工作区的 settings json文件 2 修改 C Cpp intelliSenseEngine Tag Parser 为 C Cpp intelliSenseEngine Default 解释 Tag Parser 提供非
  • C/C++ 避免重复定义

    加入宏定义 第一种 xff1a span class token macro property span class token directive keyword ifndef span STUDENT H span span class
  • vscode文件标签栏显示多行

    设置步骤 xff1a 按下 ctrl 43 shift 43 p xff0c 如下图 xff1a 输入 open workspace settings xff0c 打开工作区设置 输入 workbench editor wrapTabs x
  • ::在C++中的意思

    表示作用域 xff0c 和所属关系 class A int A test 表示test是属于A类的 关于 的具体解析 xff1a 是运算符中等级最高的 xff0c 它分为三种 1 global scope 全局作用域符 xff09 xff0
  • 【Linux问题解决】操作系统用C语言多线程编程 对‘pthread_create’未定义的引用 报错解决办法

    操作系统用C语言多线程编程 对 pthread create 未定义的引用 报错解决办法 今天写操作系统作业 在Ubuntu Linux系统中用C语言编写多线程程序 在命令行进行编译 没通过编译 报错如下 xff1a In file inc
  • linux 服务器执行post请求 curl命令详解

    什么是curl xff1f curl是一个命令行访问URL的计算机逻辑语言的工具 xff0c 发出网络请求 xff0c 然后得到数据并提取出 xff0c 显示在标准输出 stdout 上面 xff0c 可以用它来构造http request
  • open-falcon 监控cpu指标及含义

    user 30512019 从系统启动开始累计到当前时刻 xff0c 用户态的CPU时间 xff0c 不包含nice值为负进程 nice 2905 从系统启动开始累计到当前时刻 xff0c nice值为负的进程所占用的CPU时间 syste
  • [Unity] 串口读取数据错误 IOException: 拒绝访问。

    错误内容 IOException 拒绝访问 System IO Ports WinSerialStream ReportIOError System String optional arg at lt 14e3453b740b4bd690e
  • px4仿真无法起飞问题(Failsafe enabled: no datalink)

    报错信息 问题描述 xff1a 使用JMAVSim和gazebo仿真px4起飞时报错如下 xff1a WARN commander Failsafe enabled no datalink 说不安全 解决方法 打开QGC 就可以起飞了
  • TCP (传输控制协议)和 UDP

    传输控制协议 xff08 TCP xff0c Transmission Control Protocol xff09 是一种面向连接的 可靠的 基于字节流的传输层通信协议 是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输
  • 全网第一篇 Jetson AGX Xaiver + Jetpack5.0.2(Ubuntu20.04) + ROS2 + ORB-SLAM3 + ZED2

    本机系统 xff1a Jetpack5 0 2 Ubuntu 20 04 LTS 注意事项 xff1a 想要避坑 xff0c 务必按照文中版本准备各种环境 一 安装软件 1 Pangolin 0 5 网址 xff1a https githu
  • java中char转化为int的几种方法

    java中char转化为int的几种方法总结 方法一 xff1a 在char后面 0 span class token keyword public span span class token keyword class span span
  • 大疆 RoboMaster 3508/2006/GM6020 电机使用教程

    19年开始使用大疆的电机 xff0c 刚开始接触有很多东西不懂 xff0c 网上除了RM官网提供的一些资料外没有很多其他的资料 xff0c 现在使用大疆电机近一年了 xff0c 想分享一下自己的经验 1 硬件部分 1 C610电调只能连接M
  • DBC文件解析及CAN通信矩阵

    一般的 DBC 文件中包含了如下的8种信息 xff1a 1 版本与新符号 2 波特率定义 3 网络节点的定义 4 报文帧的定义 5 信号的定义 6 注解部分 7 特征部分 8 数值表部分 VERSOIN 34 34 版本信息 xff0c 为
  • 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图

    文章目录 前言一 ROS分布式通信 xff08 配置多机通信 xff09 1 简介2 步骤2 1 准备2 2 修改配置文件2 3配置主机IP2 4配置从机IP 二 RPlidar的使用教程1 创建环境2 下载激光雷达的功能包3 编译4 启动
  • TCP连接建立的步骤

    TCP连接建立的步骤 一 客户端向服务器端发送连接请求后 xff0c 就被动地等待服务器的响应 典型的TCP客户端要经过下面三步操作 xff1a 1 创建一个Socket实例 xff1a 构造函数向指定的远程主机和端口建立一个TCP连接 x
  • 能否在头文件中放置函数定义?

    语法上是可以这样做的 xff0c 但是在编程规范中并不鼓励这样做 成员函数一般是不可以在头文件中定义的 xff0c 只能在头文件中声明 因为函数只能有一次定义 xff0c 而可以有多次声明 xff0c 当头文件被多次包含的时候 xff0c
  • 万能的sprintf

    0 前言 先推荐一本书 xff0c 政治书籍 政治的人生 xff0c 算是一本日记题材 是现任 xff0c 作者大家百度一下就知道了 xff0c 这里不宜过多说明 从这本书里 xff0c 可以看出来现在的社会 这本书是30年前的 大佬就是大
  • 串口通讯UART/RS232/RS485/RS-422笔记

    串口通讯详解笔记 串口通讯概述串口通讯传输数据帧的结构UARTRS232RS485RS 422RS 232 RS 422和RS 485的主要区别 xff08 重要 xff09 串口通讯概述 串口通讯是指数据按位 xff08 bit xff0